Bug 5372: Don't remove flows when PACKET_IN is notified on internal port. 86/36086/1
authorShigeru Yasuda <s-yasuda@da.jp.nec.com>
Thu, 10 Mar 2016 12:22:10 +0000 (21:22 +0900)
committerHideyuki Tai <Hideyuki.Tai@necam.com>
Fri, 11 Mar 2016 01:16:55 +0000 (01:16 +0000)
If OF swtich has IPv6 support, it may transmit IPv6 neighbor advertisement
packet to every port. VTN Manager may remove unexpected flow entries if
that IPv6 packet transmitted to internal port is notified.

This removal was intended for removing obsolete flow entries once
installed by VTN Manager. But it is no longer needed because VTN Manager
removes all the obsolete flow entries when a new OF switch is detected.

Change-Id: I1cd9713c7f53c67e6eff71494013a7d464d04ed2
Signed-off-by: Shigeru Yasuda <s-yasuda@da.jp.nec.com>
(cherry picked from commit 946cb11956057918045566581e034a6556286fca)

manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/vnode/VTenantManager.java

index fd36ae43015f881433f9f4def4aa1a33000b1298..f73fc578d7facc11a3a13860be823789357f0bc8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 NEC Corporation. All rights reserved.
+ * Copyright (c) 2015, 2016 NEC Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -29,8 +29,6 @@ import org.opendaylight.vtn.manager.internal.TxContext;
 import org.opendaylight.vtn.manager.internal.TxTask;
 import org.opendaylight.vtn.manager.internal.VTNManagerProvider;
 import org.opendaylight.vtn.manager.internal.VTNSubSystem;
-import org.opendaylight.vtn.manager.internal.flow.remove.FlowRemoverQueue;
-import org.opendaylight.vtn.manager.internal.flow.remove.PortFlowRemover;
 import org.opendaylight.vtn.manager.internal.inventory.VTNInventoryListener;
 import org.opendaylight.vtn.manager.internal.inventory.VtnNodeEvent;
 import org.opendaylight.vtn.manager.internal.inventory.VtnPortEvent;
@@ -1405,11 +1403,6 @@ public final class VTenantManager
             ctx.log(LOG, VTNLogLevel.DEBUG,
                     "Ignore packet from internal node connector: {}",
                     ingress);
-
-            // This PACKET_IN may be caused by an obsolete flow entry.
-            // So all flow entries related to this port should be removed.
-            ctx.getSpecific(FlowRemoverQueue.class).
-                enqueue(new PortFlowRemover(ingress));
             return;
         }