BUG 7116: Change in TunnelInterfaceStateListener.java 77/46877/9
authorSuraj Ranjan <suraj.ranjan@ericsson.com>
Thu, 13 Oct 2016 10:37:05 +0000 (16:07 +0530)
committerSam Hague <shague@redhat.com>
Fri, 11 Nov 2016 14:03:17 +0000 (14:03 +0000)
Review [1] introduced some yang changes in genius. This review includes
relevent changes in netvirt.

[1] https://git.opendaylight.org/gerrit/#/c/46649/

Change-Id: Ide1f633bb8852562d297bf92f73b93b1faadb664
Signed-off-by: Suraj Ranjan <suraj.ranjan@ericsson.com>
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/TunnelInterfaceStateListener.java

index 5b83ed80659744fac8129bf9286d5e747fce5752..c625d67204cc3da17112dc00e523e7831726b35b 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.Tep
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TepTypeHwvtep;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TepTypeInternal;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelsState;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelOperStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.IsDcgwPresentInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.IsDcgwPresentOutput;
@@ -94,9 +95,14 @@ public class TunnelInterfaceStateListener extends AsyncDataTreeChangeListenerBas
         LOG.trace("ITM Tunnel {} of type {} state event changed from :{} to :{}",
                 update.getTunnelInterfaceName(),
                 fibManager.getTransportTypeStr(update.getTransportType().toString()),
-                original.isTunnelState(), update.isTunnelState());
+                original.getOperState(), update.getOperState());
         //withdraw all prefixes in all vpns for this dpn
-        boolean isTunnelUp = update.isTunnelState();
+        TunnelOperStatus tunOpStatus = update.getOperState();
+        if ((tunOpStatus != TunnelOperStatus.Down) && (tunOpStatus != TunnelOperStatus.Up)) {
+            LOG.trace("Returning from unsupported tunnelOperStatus {}", tunOpStatus);
+            return;
+        }
+        boolean isTunnelUp = (tunOpStatus == TunnelOperStatus.Up);
         handlePrefixesForDPNs(update, isTunnelUp ? UpdateRouteAction.ADVERTISE_ROUTE :
                 UpdateRouteAction.WITHDRAW_ROUTE);
     }
@@ -104,8 +110,13 @@ public class TunnelInterfaceStateListener extends AsyncDataTreeChangeListenerBas
     @Override
     protected void add(InstanceIdentifier<StateTunnelList> identifier, StateTunnelList add) {
         LOG.trace("Tunnel addition---- {}", add);
-
-        if (!add.isTunnelState()) {
+        TunnelOperStatus tunOpStatus = add.getOperState();
+        if ((tunOpStatus != TunnelOperStatus.Down) && (tunOpStatus != TunnelOperStatus.Up)) {
+            LOG.trace("Returning from unsupported tunnelOperStatus {}", tunOpStatus);
+            return;
+        }
+        boolean isTunnelUp = (tunOpStatus == TunnelOperStatus.Up);
+        if (!isTunnelUp) {
             LOG.trace("Tunnel {} is not yet UP.",
                     add.getTunnelInterfaceName());
             return;