From 706e54ccc848e755c55de7df4973c5b20d23c4e5 Mon Sep 17 00:00:00 2001 From: Faseela K Date: Thu, 15 Dec 2016 11:38:44 +0530 Subject: [PATCH] flow entries for multiple subports not getting created Description :Update of vlanmember interfaces is causing unnecessary churn of deleting and adding back all the interfaces unnecessarily, even if there is no attribute which is modified. Change-Id: Ib2d3be95ce48e2d971b27a8ff6e11d113be532ef Signed-off-by: Faseela K --- .../OvsVlanMemberConfigUpdateHelper.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigUpdateHelper.java b/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigUpdateHelper.java index 320589baa..cdb0f2e23 100644 --- a/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigUpdateHelper.java +++ b/interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigUpdateHelper.java @@ -25,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.met import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406._interface.child.info._interface.parent.entry.InterfaceChildEntryKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs; +import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,7 +62,7 @@ public class OvsVlanMemberConfigUpdateHelper { return futures; } - if (ifL2vlanOld.getVlanId() != ifL2vlanNew.getVlanId() || + if (vlanIdModified(ifL2vlanOld.getVlanId(), ifL2vlanNew.getVlanId()) || !parentRefsOld.getParentInterface().equals(parentRefsNew.getParentInterface())) { futures.addAll(OvsVlanMemberConfigRemoveHelper.removeConfiguration(dataBroker, parentRefsOld, interfaceOld, ifL2vlanOld, idManager)); @@ -95,4 +96,16 @@ public class OvsVlanMemberConfigUpdateHelper { return futures; } + + public static boolean vlanIdModified(VlanId vlanIdOld, VlanId vlanIdNew){ + if ((vlanIdOld != null && vlanIdNew == null) || + (vlanIdOld == null && vlanIdOld != null)) { + return true; + } + + if (vlanIdOld != null && vlanIdNew != null && !vlanIdOld.equals(vlanIdNew)) { + return true; + } + return false; + } } \ No newline at end of file -- 2.36.6