ELAN: VNI support in datapath for VxLAN networks 07/50807/31
authorAbhinav Gupta <abhinav.gupta@ericsson.com>
Thu, 12 Jan 2017 11:11:49 +0000 (16:41 +0530)
committerSam Hague <shague@redhat.com>
Fri, 21 Apr 2017 18:53:17 +0000 (18:53 +0000)
commitf1918dd7fcff4576afc500fb23821897a8b8f2dc
tree11797d6520c9ed9dd0edba0eb4cd0af332aa2fd1
parent990c8ea542c066a5b4e4c1f533960a1577769fa3
ELAN: VNI support in datapath for VxLAN networks

This commit adds support for VNI based datapath forwarding for VxLAN
based provider networks.
Spec: https://git.opendaylight.org/gerrit/#/c/48640/

a. Unicast
  1. Table 51 now sets VNI in tun_id field for packets egressing on
     tunnel ports
  2. On egress, table 36 now matches on VNI in tun_id field, sets the
     ELAN tag in metadata, and forwards the traffic to table 51

b. Broadcast
  1. Remote broadcast group now sets VNI in tun_id field for packets
     egressing on tunnel ports
  2. On egress, table 36 now matches on VNI in tun_id field, sets the
     ELAN tag in metadata, and forwards the traffic to table 51

Also, integrates the openstack-vni-semantics-enforced flag to enable
easier turning on/off of the feature

Change-Id: I7a6b14897344a8d00cb19291602d92cf586f15f7
Signed-off-by: Abhinav Gupta <abhinav.gupta@ericsson.com>
20 files changed:
vpnservice/elanmanager/elanmanager-api/src/main/java/org/opendaylight/netvirt/elanmanager/api/IElanService.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java
vpnservice/elanmanager/elanmanager-impl/src/main/resources/initial/netvirt-elanmanager-config.xml
vpnservice/elanmanager/elanmanager-impl/src/main/resources/org/opendaylight/blueprint/elanmanager.xml
vpnservice/elanmanager/elanmanager-impl/src/main/yang/elanmanager-config.yang
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/NaptEventHandler.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NaptSwitchHA.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/NatUtil.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/RouterDpnChangeListener.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/VpnFloatingIpHandler.java
vpnservice/neutronvpn/neutronvpn-api/src/main/java/org/opendaylight/netvirt/neutronvpn/interfaces/INeutronVpnManager.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManagerImpl.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/resources/initial/netvirt-neutronvpn-config.xml
vpnservice/neutronvpn/neutronvpn-impl/src/main/yang/neutronvpn-config.yang