Traffic not flowing after delete and add TEP 04/76604/4
authorSomashekar Byrappa <somashekar.b@altencalsoftlabs.com>
Wed, 3 Oct 2018 11:44:03 +0000 (17:14 +0530)
committerSam Hague <shague@redhat.com>
Thu, 25 Oct 2018 21:55:07 +0000 (21:55 +0000)
commitf9e0af721ebcb24a920216f30d512cf6f10672e9
tree54281c052a5be0b94b4df704fee1c55ea868d198
parent6fad9c997d2089029caaf6813b1ed2441af21bdf
Traffic not flowing after delete and add TEP

Two issues are addressed in this patch:

Issue-1:
-------
During controller restart, while processing onSubnetAddedToVpn,
VpnInstanceOpData was not populated due to race conditions. Due to
this, further processing breaks.

Solution-1:
-----------
VpnOpDataSyncer is used to wait for VpnInstanceOpData to be available
during processing of onSubnetAddedToVpn.

Issue-2:
-------
After controller restart, LearntIp adjacencies were lost for
VpnInterfaces because of out of order events. When VpnInterface-add
event comes first followed by Neutron port event, it was not
populating learnt IPs in the adjacency list. Hence the remote groups
refered by table 21 flows related to LearntIps were not updated during
TEP delete/add. It would remain as stale. It was resulting in traffic
loss.

Solution-2:
-----------
After controller restart, LearntIp adjacencies are populated back for
VpnInterfaces.

JIRA: NETVIRT-1356

Change-Id: If21ebf1d330ae3f2970c8fedafb0422cc4d38bdc
Signed-off-by: Somashekar Byrappa <somashekar.b@altencalsoftlabs.com>
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/SubnetRoutePacketInHandler.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceManager.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnSubnetRouteHandler.java
vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java