CSIT:bound-service-state is not present for IPv6 39/73439/6
authorKarthikeyan Krishnan <karthikeyangceb007@gmail.com>
Tue, 26 Jun 2018 09:39:15 +0000 (15:09 +0530)
committerSam Hague <shague@redhat.com>
Thu, 28 Jun 2018 20:40:37 +0000 (20:40 +0000)
Issue:
=======
The following warning message was throwing multiple times
from IPv6 service module in all CSIT gate job ran.

2018-04-05T17:51:37,507 | INFO  |
opendaylight-cluster-data-notification-dispatcher-593 |
FlowBasedServicesConfigListener  | 252 -
org.opendaylight.genius.interfacemanager-impl- 0.4.1.SNAPSHOT |Service
Binding Entry removed for Interface: 7642ee10-978f-4511-9416-
2697fa813982,ServiceName: ipv6.7642ee10-978f-4511-9416-2697fa813982,
ServicePriority 7 2018-04-05T17:51:37,508 | WARN  |
ForkJoinPool-1-worker-3 |FlowBasedServicesConfigListener  | 252 -
org.opendaylight.genius.interfacemanager-impl - 0.4.1.SNAPSHOT |
bound-service-state is not present for
interface:7642ee10-978f-4511-9416-2697fa813982, service-mode:class
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager
.servicebinding.rev160406.ServiceModeIngress,
service-name:ipv6.7642ee10-978f-4511-9416-2697fa813982,
service-priority:7

Log_Ref:
https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-1node-openstack-queens-upstream-stateful-oxygen/401/odl_1/odl1_karaf.log.gz

Solution:
==========
RCA: In IPv6service module network_dhcp interface also treated as a
VM host interface and it is doing IPv6 service binding and unbinding
of that interface is leading the problem for above warning message.

As part of this fix, ignoring network_dhcp interface for
binding/unbinding of IPv6 service.

Change-Id: I3e2209540b32af2681b056333c64792fd5ba875e
Signed-off-by: Karthikeyan Krishnan <karthikeyangceb007@gmail.com>
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/NeutronPortChangeListener.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/utils/Ipv6Constants.java

index eea824a5c883f24bed940ec03bdb1a26876f7e3f..fbde5388b0160834dbf463920f23eb55dc92a816 100644 (file)
@@ -58,6 +58,10 @@ public class NeutronPortChangeListener extends AsyncClusteredDataTreeChangeListe
             LOG.info("IPv6Service (TODO): Skipping router_gateway port {} for add event", port);
             return;
         }
+        if (port.getDeviceOwner().equalsIgnoreCase(Ipv6Constants.DEVICE_OWNER_DHCP)) {
+            LOG.info("IPv6Service: Skipping network_dhcp port {} for add event", port);
+            return;
+        }
 
         LOG.debug("Add port notification handler is invoked for port {} ", port);
         List<FixedIps> ipList = port.getFixedIps();
@@ -76,6 +80,10 @@ public class NeutronPortChangeListener extends AsyncClusteredDataTreeChangeListe
             LOG.info("IPv6Service (TODO): Skipping router_gateway port {} for remove event", port);
             return;
         }
+        if (port.getDeviceOwner().equalsIgnoreCase(Ipv6Constants.DEVICE_OWNER_DHCP)) {
+            LOG.info("IPv6Service: Skipping network_dhcp port {} for remove event", port);
+            return;
+        }
 
         LOG.debug("remove port notification handler is invoked for port {}", port);
         ifMgr.removePort(port.getUuid());
@@ -88,6 +96,10 @@ public class NeutronPortChangeListener extends AsyncClusteredDataTreeChangeListe
             LOG.info("IPv6Service (TODO): Skipping router_gateway port {} for update event", update);
             return;
         }
+        if (update.getDeviceOwner().equalsIgnoreCase(Ipv6Constants.DEVICE_OWNER_DHCP)) {
+            LOG.info("IPv6Service: Skipping network_dhcp port {} for update event", update);
+            return;
+        }
 
         LOG.debug("update port notification handler is invoked for port {} ", update);
 
index e1af229760a427bc191a913562ed0f8da8e9570a..d64fe6110dfa8683002f693f2cf8d16035d7f3dc 100644 (file)
@@ -54,6 +54,7 @@ public interface Ipv6Constants {
     String IP_VERSION_V6 = "IPv6";
     String NETWORK_ROUTER_INTERFACE = "network:router_interface";
     String NETWORK_ROUTER_GATEWAY = "network:router_gateway";
+    String DEVICE_OWNER_DHCP = "network:dhcp";
 
     BigInteger INVALID_DPID = new BigInteger("-1");
     short DEFAULT_FLOW_PRIORITY = 50;