Supporting DHCP as a service 05/41705/6
authorepgoraj <p.govinda.rajulu@ericsson.com>
Tue, 12 Jul 2016 11:12:08 +0000 (16:42 +0530)
committerFaseela K <faseela.k@ericsson.com>
Fri, 15 Jul 2016 06:44:43 +0000 (06:44 +0000)
Change-Id: Ie282296c6e79abe7c49a1976100ec4f23cef4a7c
Signed-off-by: epgoraj <p.govinda.rajulu@ericsson.com>
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/confighelpers/FlowBasedIngressServicesConfigBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/confighelpers/FlowBasedIngressServicesConfigUnbindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/statehelpers/FlowBasedServicesStateBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/statehelpers/FlowBasedServicesStateUnbindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/utilities/FlowBasedServicesUtils.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/NwConstants.java

index a91ea719755631b65213311067ec003a0a814ec0..2435adc61a54daf95c0871620d0917cc924b42bd 100644 (file)
@@ -97,6 +97,9 @@ public class FlowBasedIngressServicesConfigBindHelper implements FlowBasedServic
         }
 
         // Split based on type of interface....
+        if(ifState.getType() == null) {
+            return futures;
+        }
         if (ifState.getType().isAssignableFrom(L2vlan.class)) {
             return bindServiceOnVlan(boundServiceNew, allServices, ifState, dataBroker);
         } else if (ifState.getType().isAssignableFrom(Tunnel.class)) {
index b6179b75ba2e1ef323bc883685f86b64b80d5441..0b377e50b61b8b2710c00276018f487dc5e8ad87 100644 (file)
@@ -84,7 +84,7 @@ public class FlowBasedIngressServicesConfigUnbindHelper implements FlowBasedServ
 
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState =
                 InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(interfaceName, dataBroker);
-        if (ifState == null || ifState.getOperStatus() == OperStatus.Down) {
+        if (ifState == null || ifState.getType() == null || ifState.getOperStatus() == OperStatus.Down) {
             LOG.info("Not unbinding Service since operstatus is DOWN for Interface: {}", interfaceName);
             return futures;
         }
index 5c5930099753308fa5a1948c62d3647929beac8e..dac859984a13e1aac23b242f821248e3fed51386 100644 (file)
@@ -52,6 +52,9 @@ public class FlowBasedServicesStateBindHelper {
             return futures;
         }
 
+        if(ifaceState.getType() == null) {
+            return futures;
+        }
         if (ifaceState.getType().isAssignableFrom(L2vlan.class)) {
             return bindServiceOnVlan(allServices, ifaceState, dataBroker);
         } else if (ifaceState.getType().isAssignableFrom(Tunnel.class)){
index c742b551df367c0d302ade33fc006e234688ae06..8a40ed235c6c0c36bf220b53fa8c8b21c87a83ac 100644 (file)
@@ -48,6 +48,10 @@ public class FlowBasedServicesStateUnbindHelper {
             return futures;
         }
 
+        if(ifaceState.getType() == null) {
+            return futures;
+        }
+
         if (ifaceState.getType().isAssignableFrom(L2vlan.class)) {
             return unbindServiceOnVlan(allServices, ifaceState, ifaceState.getIfIndex(), dataBroker);
         } else if (ifaceState.getType().isAssignableFrom(Tunnel.class)){
index 4faa37297652e88da1729aa0bd92a2da373f527b..9ecbc0f9210d72893669252bdb1532165fa9932c 100644 (file)
@@ -348,7 +348,7 @@ public class FlowBasedServicesUtils {
             instructions.add(MDSALUtil.buildAndGetPopVlanActionInstruction(lportTag, instructionKey++));
         }
         instructions.add(MDSALUtil.buildAndGetWriteMetadaInstruction(metadata, metadataMask, instructionKey++));
-        instructions.add(MDSALUtil.buildAndGetGotoTableInstruction(NwConstants.DHCP_TABLE, instructionKey++));
+        instructions.add(MDSALUtil.buildAndGetGotoTableInstruction(NwConstants.LPORT_DISPATCHER_TABLE, instructionKey++));
         int priority =  isVlanTransparent ? 1 : vlanId == 0 ? IfmConstants.FLOW_PRIORITY_FOR_UNTAGGED_VLAN : IfmConstants.FLOW_HIGH_PRIORITY;
         String flowRef = getFlowRef(IfmConstants.VLAN_INTERFACE_INGRESS_TABLE, dpId, iface.getName());
         Flow ingressFlow = MDSALUtil.buildFlowNew(IfmConstants.VLAN_INTERFACE_INGRESS_TABLE, flowRef, priority, flowRef, 0, 0,
index c0a25792f9693f98afec5588528aa147216af349..35e3302e26a86e45890ebe02f1e4bb9727abeaa1 100644 (file)
@@ -55,6 +55,6 @@ public class NwConstants {
     public static final short VLAN_INTERFACE_INGRESS_TABLE = 0;
     public static final short INTERNAL_TUNNEL_TABLE = 36;
     public static final short EXTERNAL_TUNNEL_TABLE = 38;
-    public static final short DHCP_TABLE = 16;
+    public static final short DHCP_TABLE = 25;
     public static final short DHCP_TABLE_EXTERNAL_TUNNEL = 18;
  }