X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Frenderer%2Fovs%2Fstatehelpers%2FOvsInterfaceStateAddHelper.java;fp=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Frenderer%2Fovs%2Fstatehelpers%2FOvsInterfaceStateAddHelper.java;h=f43d40be54e9b370fc962fddcff2a13ba13c2cbd;hb=007910122eafb7ccfdfbdd2c48c6ec242c143c87;hp=d7fc08795dc949ef05fd44624d65f6fa16030f79;hpb=8e3be9c632b1b774191e602d8abb2a0592a9e2a8;p=vpnservice.git diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateAddHelper.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateAddHelper.java index d7fc0879..f43d40be 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateAddHelper.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateAddHelper.java @@ -101,11 +101,11 @@ public class OvsInterfaceStateAddHelper { return futures; } + BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId)); + long portNo = Long.valueOf(IfmUtil.getPortNoFromNodeConnectorId(nodeConnectorId)); // If this interface is a tunnel interface, create the tunnel ingress flow IfTunnel tunnel = iface.getAugmentation(IfTunnel.class); if(tunnel != null){ - BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId)); - long portNo = Long.valueOf(IfmUtil.getPortNoFromNodeConnectorId(nodeConnectorId)); InterfaceManagerCommonUtils.makeTunnelIngressFlow(futures, mdsalApiManager, tunnel,dpId, portNo, iface, ifIndex, NwConstants.ADD_FLOW); futures.add(transaction.submit()); @@ -116,11 +116,18 @@ public class OvsInterfaceStateAddHelper { // If this interface maps to a Vlan trunk entity, operational states of all the vlan-trunk-members // should also be created here. IfL2vlan ifL2vlan = iface.getAugmentation(IfL2vlan.class); - if (ifL2vlan == null || ifL2vlan.getL2vlanMode() != IfL2vlan.L2vlanMode.Trunk) { + if (ifL2vlan == null) { + futures.add(transaction.submit()); + return futures; + } + if(operStatus == Interface.OperStatus.Up) { + List matches = FlowBasedServicesUtils.getMatchInfoForVlanPortAtIngressTable(dpId, portNo, iface); + FlowBasedServicesUtils.installVlanFlow(dpId, portNo, iface, transaction, matches, ifIndex); + } + if (ifL2vlan.getL2vlanMode() != IfL2vlan.L2vlanMode.Trunk) { futures.add(transaction.submit()); return futures; } - InterfaceParentEntryKey interfaceParentEntryKey = new InterfaceParentEntryKey(iface.getName()); InterfaceParentEntry interfaceParentEntry = InterfaceMetaUtils.getInterfaceParentEntryFromConfigDS(interfaceParentEntryKey, dataBroker); @@ -148,7 +155,6 @@ public class OvsInterfaceStateAddHelper { if (!ifaceChild.isEnabled()) { operStatus = Interface.OperStatus.Down; } - InstanceIdentifier ifChildStateId = IfmUtil.buildStateInterfaceId(ifaceChild.getName()); List childLowerLayerIfList = new ArrayList<>(); @@ -162,6 +168,10 @@ public class OvsInterfaceStateAddHelper { // create lportTag Interface Map InterfaceMetaUtils.createLportTagInterfaceMap(transaction, ifaceChild.getName(), ifIndex); + if (operStatus == Interface.OperStatus.Up) { + List matches = FlowBasedServicesUtils.getMatchInfoForVlanPortAtIngressTable(dpId, portNo, ifaceChild); + FlowBasedServicesUtils.installVlanFlow(dpId, portNo, ifaceChild, transaction, matches, ifIndex); + } } /** Below code will be needed if we want to update the vlan-trunks on the of-port