Scale-in/Scale-out for NAT. 54/84254/7
authorChetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Fri, 6 Sep 2019 12:40:47 +0000 (18:10 +0530)
committerFaseela K <k.faseela@gmail.com>
Thu, 3 Oct 2019 05:48:44 +0000 (05:48 +0000)
commita86dd4ab5f0652fad745b124ecfdb4e2ed02872d
tree68874112b77b4f1aeb9817e20fbba8952ab8223b
parent493559bdc939dc3d44e0c3f56aafda451bcce9a5
Scale-in/Scale-out for NAT.

Description
-----------

1) NatScaleIn added to handle remove event which is
registered as a callback on if the node not unmarked as tomstone.
Whenever Scale-in of an particular DPN fails and TOMSTONE=true entry been
removed or marked as false, if that DPN have some
Router Presence(with SNAT enabled) and if the corresponding NAPT switch is
missing, this DPN will be re-elected as NAPT switch.

2) New Listener - NatTepChangeLister is added to handle remove event. The
Existing logic of NatTunnelInterfaceStateListener.remove() been moved into
this Listener. Whenever the TEP on a given DPNID is removed, this API take
care of withdrawing the FIB entries for those Floating-IP existing on this
DPN and perform re-election of NAPT Switch for a VRF to which the current
DPN is elected as NAPT Switch.

3) Changes done to validate the candidate list of DPNs set with
TOMSTONE=true and exclude them during NAPT Switch election.

Change-Id: I70704c985c3d92078fee80a19b4311de8258f834
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
13 files changed:
natservice/impl/pom.xml
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/EvpnDnatFlowProgrammer.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/ExternalRoutersListener.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NAPTSwitchSelector.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NaptSwitchHA.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatScalein.java [new file with mode: 0644]
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatTepChangeListener.java [new file with mode: 0644]
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatTunnelInterfaceStateListener.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatUtil.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/RouterDpnChangeListener.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/UpgradeStateListener.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/VpnFloatingIpHandler.java
natservice/impl/src/main/resources/OSGI-INF/blueprint/natservice.xml