Bug 8188: L3VNI without configured UC handled for EVPN 60/54560/12
authorkarthikeyan <karthikeyan.k@altencalsoftlabs.com>
Sat, 8 Apr 2017 17:21:57 +0000 (22:51 +0530)
committerKarthikeyan Krishnan <karthikeyan.k@altencalsoftlabs.com>
Wed, 19 Apr 2017 08:52:17 +0000 (08:52 +0000)
commit767d666b4a15f064be1478006328abf720c11c65
treea471ace5b00fc5b5136c82e50c377a13e1cee938
parenta43bf48ee4c0cbd5b36008b3b70179c81d7906a0
Bug 8188: L3VNI without configured UC handled for EVPN

Problem Description:
==================
L3VNI without configured in Internet VPN needs to be handled for EVPN in
NAT feature.
Currently Internet(External) VPN with L3VNI use case only handled for
external VXLAN network (EVPN) in NAT feature.

Internet(External) VPN without L3VNI use case also needs to be handled for
external VXLAN in NAT feature. Since Openstack Operator may configure L3VNI or
may not configure L3VNI.

Solution:
=========
Unconfigured of L3VNI value in Internet(External) VPN, will carve-out
the L3VNI value from OpenDaylight VXLAN VNI Pool to use SNAT and DNAT
flows.
The following UCs are handled based on the L3VNI configured/unconfigured
for GRE and VXLAN provider type.

Ext-Net-Type || Internet-VPN-L3VNI || External and Internal VXLAN uses
===============================================================================
GRE           Configured          Ignore L3VNI, allocate VNI from pool and
                                  use it for Intra-DC only
--------------------------------------------------------------------------------
GRE           Not Configured      A VNI taken from ODL Pool and used for
                                  Intra-DC communication
---------------------------------------------------------------------------------
VXLAN         Configured          Internet-VPN-L3VNI used for both
                                  Intra-Inter-DC communication
---------------------------------------------------------------------------------
VXLAN         Not Configured      A VNI taken from ODL Pool and used for both intra-
                                  inter-DC communication
---------------------------------------------------------------------------------

Note: If VNI value is unable to get from ODL VNI Pool, router-id will be
used as tunnel-id for external network provider type as VXLAN

Change-Id: I3c3f21e026303edf7eb2ad88bfd33622523085f0
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/EvpnDnatFlowProgrammer.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/EvpnNaptSwitchHA.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/EvpnSnatFlowProgrammer.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/ExternalRoutersListener.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatOverVxlanUtil.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatTunnelInterfaceStateListener.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/VpnFloatingIpHandler.java