Migrate HwvtepHACache users to HwvtepNodeHACache 90/66790/8
authorTom Pantelis <tompantelis@gmail.com>
Thu, 28 Dec 2017 18:59:03 +0000 (13:59 -0500)
committerSam Hague <shague@redhat.com>
Wed, 4 Apr 2018 15:54:50 +0000 (15:54 +0000)
The static HwvtepHACache instance is replaced by the
HwvtepNodeHACache singleton service so migrate users.

Change-Id: I3bab48856df6d1ccb4aad0d34c90b4d68d64d668
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Signed-off-by: Sam Hague <shague@redhat.com>
38 files changed:
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsBase.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStateful.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStatefulIPv6.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedAceBuilder.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedInterfaceWithAclBuilder.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedSubnetIpPrefixBuilder.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.StateInterfaceBuilderHelper.java._trace [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsBase.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStateful.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStatefulIPv6.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedAceBuilder.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedInterfaceWithAclBuilder.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedSubnetIpPrefixBuilder.java [new file with mode: 0644]
aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/StateInterfaceBuilderHelper.java [new file with mode: 0644]
dhcpservice/impl/src/main/java/org/opendaylight/netvirt/dhcpservice/DhcpMcastMacListener.java
dhcpservice/impl/src/main/resources/org/opendaylight/blueprint/dhcpservice.xml
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwUtilsCacheCli.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwValidateCli.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/HAEventHandler.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeCopier.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAConfigNodeListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAListeners.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpClusteredListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeDataListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepLocalUcastMacListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepLogicalSwitchListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepRemoteMcastMacListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepTerminationPointListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java
elanmanager/impl/src/main/resources/org/opendaylight/blueprint/commands.xml
elanmanager/impl/src/main/resources/org/opendaylight/blueprint/elanmanager.xml
elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/NodeConnectedHandlerTest.java

diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsBase.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsBase.java._trace
new file mode 100644 (file)
index 0000000..a74ec40
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsBase.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStateful.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStateful.java._trace
new file mode 100644 (file)
index 0000000..6b41785
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStateful.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStatefulIPv6.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStatefulIPv6.java._trace
new file mode 100644 (file)
index 0000000..2ade4c8
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.FlowEntryObjectsStatefulIPv6.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedAceBuilder.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedAceBuilder.java._trace
new file mode 100644 (file)
index 0000000..a60ed79
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedAceBuilder.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedInterfaceWithAclBuilder.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedInterfaceWithAclBuilder.java._trace
new file mode 100644 (file)
index 0000000..31d0d61
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedInterfaceWithAclBuilder.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedSubnetIpPrefixBuilder.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedSubnetIpPrefixBuilder.java._trace
new file mode 100644 (file)
index 0000000..037fc1e
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.IdentifiedSubnetIpPrefixBuilder.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.StateInterfaceBuilderHelper.java._trace b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.StateInterfaceBuilderHelper.java._trace
new file mode 100644 (file)
index 0000000..3395e8f
Binary files /dev/null and b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/.StateInterfaceBuilderHelper.java._trace differ
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsBase.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsBase.java
new file mode 100644 (file)
index 0000000..a0ed06c
--- /dev/null
@@ -0,0 +1,1685 @@
+/**
+ * Copyright (c) 2016 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import com.google.common.collect.Iterables;
+import java.math.BigInteger;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.genius.mdsalutil.ActionInfo;
+import org.opendaylight.genius.mdsalutil.FlowEntity;
+import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
+import org.opendaylight.genius.mdsalutil.InstructionInfo;
+import org.opendaylight.genius.mdsalutil.MatchInfoBase;
+import org.opendaylight.genius.mdsalutil.MetaDataUtil;
+import org.opendaylight.genius.mdsalutil.NwConstants;
+import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSha;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType;
+import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source;
+import org.opendaylight.genius.mdsalutil.matches.MatchMetadata;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6;
+
+@SuppressWarnings("all")
+public class FlowEntryObjectsBase {
+  protected List<? extends Iterable<FlowEntity>> fixedFlowsPort1() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    return Collections.<Iterable<FlowEntity>>unmodifiableList(CollectionLiterals.<Iterable<FlowEntity>>newArrayList(_fixedIngressFlowsPort1, _fixedEgressFlowsPort1));
+  }
+  
+  protected List<FlowEntity> fixedIngressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5));
+  }
+  
+  protected List<FlowEntity> fixedEgressL2BroadcastFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F3");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchMetadata)));
+      it.setPriority(61005);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> fixedIngressL3BroadcastFlows() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setFlowId("Ingress_v4_Broadcast_123_987_10.0.0.255_Permit");
+      it.setFlowName("ACL");
+      it.setHardTimeOut(0);
+      it.setIdleTimeOut(0);
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MacAddress _macAddress = new MacAddress("ff:ff:ff:ff:ff:ff");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.255/32");
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination(_ipv4Prefix);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetDestination, _matchEthernetType, _matchIpv4Destination, _nxMatchRegister)));
+      it.setPriority(61010);
+      it.setSendFlowRemFlag(false);
+      it.setStrictFlag(false);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected Iterable<FlowEntity> fixedEgressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F3_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(67);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(68);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    List<FlowEntity> _fixedEgressArpFlowsPort1 = this.fixedEgressArpFlowsPort1();
+    return Iterables.<FlowEntity>concat(Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6)), _fixedEgressArpFlowsPort1);
+  }
+  
+  protected List<FlowEntity> fixedEgressArpFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F310.0.0.1/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.1/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> fixedIngressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5));
+  }
+  
+  protected List<FlowEntity> fixedEgressL2BroadcastFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F4");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchMetadata)));
+      it.setPriority(61005);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected Iterable<FlowEntity> fixedEgressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 67));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 68));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 68));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 67));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 546));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 547));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    List<FlowEntity> _fixedEgressArpFlowsPort2 = this.fixedEgressArpFlowsPort2();
+    return Iterables.<FlowEntity>concat(Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6)), _fixedEgressArpFlowsPort2);
+  }
+  
+  protected List<FlowEntity> fixedEgressArpFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F410.0.0.2/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.2/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> fixedIngressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5));
+  }
+  
+  protected List<FlowEntity> fixedEgressL2BroadcastFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F5");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchMetadata)));
+      it.setPriority(61005);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> fixedEgressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F5_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(67);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(68);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F510.0.0.3/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.3/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7));
+  }
+  
+  public static List<FlowEntity> fixedIngressFlowsPort4() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5));
+  }
+  
+  public static List<FlowEntity> fixedEgressFlowsPort4() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987__Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(67);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(68);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v6_123_987__Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(547);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(546);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    FlowEntityBuilder _flowEntityBuilder_8 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_8 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F6");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_8 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_8, _function_8);
+    FlowEntityBuilder _flowEntityBuilder_9 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_9 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F6");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_9 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_9, _function_9);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7, _doubleGreaterThan_8, _doubleGreaterThan_9));
+  }
+  
+  protected Iterable<FlowEntity> remoteFlows() {
+    List<FlowEntity> _remoteIngressFlowsPort1 = this.remoteIngressFlowsPort1();
+    List<FlowEntity> _remoteEgressFlowsPort1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_remoteIngressFlowsPort1, _remoteEgressFlowsPort1);
+    List<FlowEntity> _remoteIngressFlowsPort2 = this.remoteIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _remoteIngressFlowsPort2);
+    List<FlowEntity> _remoteEgressFlowsPort2 = this.remoteEgressFlowsPort2();
+    return Iterables.<FlowEntity>concat(_plus_1, _remoteEgressFlowsPort2);
+  }
+  
+  protected List<FlowEntity> remoteIngressFlowsPort1() {
+    FlowEntity _remoteIngressFlowsPort = this.remoteIngressFlowsPort("10.0.0.1");
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_remoteIngressFlowsPort));
+  }
+  
+  protected List<FlowEntity> remoteIngressFlowsPort2() {
+    FlowEntity _remoteIngressFlowsPort = this.remoteIngressFlowsPort("10.0.0.2");
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_remoteIngressFlowsPort));
+  }
+  
+  protected List<FlowEntity> remoteEgressFlowsPort1() {
+    FlowEntity _remoteEgressFlowsPort = this.remoteEgressFlowsPort("10.0.0.1");
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_remoteEgressFlowsPort));
+  }
+  
+  protected List<FlowEntity> remoteEgressFlowsPort2() {
+    FlowEntity _remoteEgressFlowsPort = this.remoteEgressFlowsPort("10.0.0.2");
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_remoteEgressFlowsPort));
+  }
+  
+  protected FlowEntity remoteIngressFlowsPort(final String ip) {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Acl_Filter_Egress_" + ip) + "/32_2"));
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination(ip, "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_REMOTE_ACL_TABLE);
+    };
+    return XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+  }
+  
+  protected FlowEntity remoteEgressFlowsPort(final String ip) {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Acl_Filter_Ingress_" + ip) + "/32_2"));
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source(ip, "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_REMOTE_ACL_TABLE);
+    };
+    return XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+  }
+  
+  protected List<FlowEntity> remoteIngressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Acl_Filter_Ingress_10.0.0.2/32_4");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(64L), BigInteger.valueOf(16777200L));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(100);
+      it.setTableId(((short) 246));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> remoteEgressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Acl_Filter_Egress_10.0.0.2/32_4");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(64L), BigInteger.valueOf(16777200L));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(100);
+      it.setTableId(((short) 216));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+  }
+  
+  protected List<FlowEntity> expectedFlows(final String mac) {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Egress_DHCP_Client_v4123_987_" + mac) + "_Permit_"));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(67);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(68);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Egress_DHCP_Client_v6_123_987_" + mac) + "_Permit_"));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(547);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(546);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    FlowEntityBuilder _flowEntityBuilder_8 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_8 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_8 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_8, _function_8);
+    FlowEntityBuilder _flowEntityBuilder_9 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_9 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_9 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_9, _function_9);
+    FlowEntityBuilder _flowEntityBuilder_10 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_10 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_10 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_10, _function_10);
+    FlowEntityBuilder _flowEntityBuilder_11 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_11 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_11 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_11, _function_11);
+    FlowEntityBuilder _flowEntityBuilder_12 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_12 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_12 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_12, _function_12);
+    FlowEntityBuilder _flowEntityBuilder_13 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_13 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_13 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_13, _function_13);
+    FlowEntityBuilder _flowEntityBuilder_14 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_14 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId(("Egress_ARP_123_987_" + mac));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_14 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_14, _function_14);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7, _doubleGreaterThan_8, _doubleGreaterThan_9, _doubleGreaterThan_10, _doubleGreaterThan_11, _doubleGreaterThan_12, _doubleGreaterThan_13, _doubleGreaterThan_14));
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStateful.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStateful.java
new file mode 100644 (file)
index 0000000..bf3ea2e
--- /dev/null
@@ -0,0 +1,2970 @@
+/**
+ * Copyright (c) 2016 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import com.google.common.collect.Iterables;
+import java.math.BigInteger;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.genius.mdsalutil.ActionInfo;
+import org.opendaylight.genius.mdsalutil.FlowEntity;
+import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
+import org.opendaylight.genius.mdsalutil.InstructionInfo;
+import org.opendaylight.genius.mdsalutil.MatchInfoBase;
+import org.opendaylight.genius.mdsalutil.MetaDataUtil;
+import org.opendaylight.genius.mdsalutil.NwConstants;
+import org.opendaylight.genius.mdsalutil.actions.ActionDrop;
+import org.opendaylight.genius.mdsalutil.actions.ActionNxConntrack;
+import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSha;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType;
+import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv4;
+import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source;
+import org.opendaylight.genius.mdsalutil.matches.MatchMetadata;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchCtState;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchTcpDestinationPort;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchUdpDestinationPort;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.netvirt.aclservice.tests.FlowEntryObjectsBase;
+import org.opendaylight.netvirt.aclservice.tests.IdHelper;
+import org.opendaylight.netvirt.aclservice.utils.AclConstants;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6;
+
+@SuppressWarnings("all")
+public class FlowEntryObjectsStateful extends FlowEntryObjectsBase {
+  protected Iterable<FlowEntity> etherFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _etherEgressFlowsPort1 = this.etherEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _etherEgressFlowsPort1);
+    List<FlowEntity> _fixedIngressFlowsPort2 = this.fixedIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _fixedIngressFlowsPort2);
+    List<FlowEntity> _fixedConntrackIngressFlowsPort2 = this.fixedConntrackIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _fixedConntrackIngressFlowsPort2);
+    List<FlowEntity> _etherIngressFlowsPort2 = this.etherIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _etherIngressFlowsPort2);
+    List<FlowEntity> _etherIngressFlowsPort2_1 = this.etherIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _etherIngressFlowsPort2_1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort2 = this.fixedEgressL2BroadcastFlowsPort2();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _fixedEgressL2BroadcastFlowsPort2);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows_1 = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedIngressL3BroadcastFlows_1);
+    Iterable<FlowEntity> _fixedEgressFlowsPort2 = this.fixedEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_12 = Iterables.<FlowEntity>concat(_plus_11, _fixedEgressFlowsPort2);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort2 = this.fixedConntrackEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_13 = Iterables.<FlowEntity>concat(_plus_12, _fixedConntrackEgressFlowsPort2);
+    List<FlowEntity> _etheregressFlowPort2 = this.etheregressFlowPort2();
+    Iterable<FlowEntity> _plus_14 = Iterables.<FlowEntity>concat(_plus_13, _etheregressFlowPort2);
+    List<FlowEntity> _remoteEgressFlowsPort1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_15 = Iterables.<FlowEntity>concat(_plus_14, _remoteEgressFlowsPort1);
+    List<FlowEntity> _remoteEgressFlowsPort2 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_16 = Iterables.<FlowEntity>concat(_plus_15, _remoteEgressFlowsPort2);
+    List<FlowEntity> _remoteEgressFlowsPort1_1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_17 = Iterables.<FlowEntity>concat(_plus_16, _remoteEgressFlowsPort1_1);
+    List<FlowEntity> _remoteEgressFlowsPort2_1 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_18 = Iterables.<FlowEntity>concat(_plus_17, _remoteEgressFlowsPort2_1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_19 = Iterables.<FlowEntity>concat(_plus_18, _ingressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1_1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_20 = Iterables.<FlowEntity>concat(_plus_19, _ingressCommitNonConntrack1_1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_21 = Iterables.<FlowEntity>concat(_plus_20, _egressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1_1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_22 = Iterables.<FlowEntity>concat(_plus_21, _egressCommitNonConntrack1_1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_23 = Iterables.<FlowEntity>concat(_plus_22, _ingressCommitConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1_1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_24 = Iterables.<FlowEntity>concat(_plus_23, _ingressCommitConntrack1_1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_25 = Iterables.<FlowEntity>concat(_plus_24, _egressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1_1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_26 = Iterables.<FlowEntity>concat(_plus_25, _egressCommitConntrack1_1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_27 = Iterables.<FlowEntity>concat(_plus_26, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _ingressfixedAclMissDrop1_1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_28 = Iterables.<FlowEntity>concat(_plus_27, _ingressfixedAclMissDrop1_1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_29 = Iterables.<FlowEntity>concat(_plus_28, _egressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1_1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_30 = Iterables.<FlowEntity>concat(_plus_29, _egressfixedAclMissDrop1_1);
+    List<FlowEntity> _ingressDispatcherFirst = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_31 = Iterables.<FlowEntity>concat(_plus_30, _ingressDispatcherFirst);
+    List<FlowEntity> _ingressDispatcherFirst_1 = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_32 = Iterables.<FlowEntity>concat(_plus_31, _ingressDispatcherFirst_1);
+    List<FlowEntity> _ingressDispatcherLast = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_33 = Iterables.<FlowEntity>concat(_plus_32, _ingressDispatcherLast);
+    List<FlowEntity> _ingressDispatcherLast_1 = this.ingressDispatcherLast();
+    return Iterables.<FlowEntity>concat(_plus_33, _ingressDispatcherLast_1);
+  }
+  
+  protected Iterable<FlowEntity> tcpFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _tcpIngressFlowPort1 = this.tcpIngressFlowPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _tcpIngressFlowPort1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _fixedIngressFlowsPort2 = this.fixedIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _fixedIngressFlowsPort2);
+    List<FlowEntity> _fixedConntrackIngressFlowsPort2 = this.fixedConntrackIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _fixedConntrackIngressFlowsPort2);
+    List<FlowEntity> _tcpIngressFlowPort2 = this.tcpIngressFlowPort2();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _tcpIngressFlowPort2);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort2 = this.fixedEgressL2BroadcastFlowsPort2();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _fixedEgressL2BroadcastFlowsPort2);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows_1 = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _fixedIngressL3BroadcastFlows_1);
+    Iterable<FlowEntity> _fixedEgressFlowsPort2 = this.fixedEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedEgressFlowsPort2);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort2 = this.fixedConntrackEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_12 = Iterables.<FlowEntity>concat(_plus_11, _fixedConntrackEgressFlowsPort2);
+    List<FlowEntity> _tcpEgressFlowPort2 = this.tcpEgressFlowPort2();
+    Iterable<FlowEntity> _plus_13 = Iterables.<FlowEntity>concat(_plus_12, _tcpEgressFlowPort2);
+    List<FlowEntity> _tcpEgressFlowPort2_1 = this.tcpEgressFlowPort2();
+    Iterable<FlowEntity> _plus_14 = Iterables.<FlowEntity>concat(_plus_13, _tcpEgressFlowPort2_1);
+    List<FlowEntity> _egressDispatcherFirst = this.egressDispatcherFirst();
+    Iterable<FlowEntity> _plus_15 = Iterables.<FlowEntity>concat(_plus_14, _egressDispatcherFirst);
+    List<FlowEntity> _egressDispatcherFirst_1 = this.egressDispatcherFirst();
+    Iterable<FlowEntity> _plus_16 = Iterables.<FlowEntity>concat(_plus_15, _egressDispatcherFirst_1);
+    List<FlowEntity> _egressDispatcherLast = this.egressDispatcherLast();
+    Iterable<FlowEntity> _plus_17 = Iterables.<FlowEntity>concat(_plus_16, _egressDispatcherLast);
+    List<FlowEntity> _egressDispatcherLast_1 = this.egressDispatcherLast();
+    Iterable<FlowEntity> _plus_18 = Iterables.<FlowEntity>concat(_plus_17, _egressDispatcherLast_1);
+    List<FlowEntity> _remoteIngressFlowsPort1 = this.remoteIngressFlowsPort1();
+    Iterable<FlowEntity> _plus_19 = Iterables.<FlowEntity>concat(_plus_18, _remoteIngressFlowsPort1);
+    List<FlowEntity> _remoteIngressFlowsPort2 = this.remoteIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_20 = Iterables.<FlowEntity>concat(_plus_19, _remoteIngressFlowsPort2);
+    List<FlowEntity> _remoteIngressFlowsPort1_1 = this.remoteIngressFlowsPort1();
+    Iterable<FlowEntity> _plus_21 = Iterables.<FlowEntity>concat(_plus_20, _remoteIngressFlowsPort1_1);
+    List<FlowEntity> _remoteIngressFlowsPort2_1 = this.remoteIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_22 = Iterables.<FlowEntity>concat(_plus_21, _remoteIngressFlowsPort2_1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_23 = Iterables.<FlowEntity>concat(_plus_22, _ingressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1_1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_24 = Iterables.<FlowEntity>concat(_plus_23, _ingressCommitNonConntrack1_1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_25 = Iterables.<FlowEntity>concat(_plus_24, _egressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1_1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_26 = Iterables.<FlowEntity>concat(_plus_25, _egressCommitNonConntrack1_1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_27 = Iterables.<FlowEntity>concat(_plus_26, _ingressCommitConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1_1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_28 = Iterables.<FlowEntity>concat(_plus_27, _ingressCommitConntrack1_1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_29 = Iterables.<FlowEntity>concat(_plus_28, _egressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1_1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_30 = Iterables.<FlowEntity>concat(_plus_29, _egressCommitConntrack1_1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_31 = Iterables.<FlowEntity>concat(_plus_30, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _ingressfixedAclMissDrop1_1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_32 = Iterables.<FlowEntity>concat(_plus_31, _ingressfixedAclMissDrop1_1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_33 = Iterables.<FlowEntity>concat(_plus_32, _egressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1_1 = this.egressfixedAclMissDrop1();
+    return Iterables.<FlowEntity>concat(_plus_33, _egressfixedAclMissDrop1_1);
+  }
+  
+  protected Iterable<FlowEntity> udpFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _udpEgressFlowsPort1 = this.udpEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _udpEgressFlowsPort1);
+    List<FlowEntity> _fixedIngressFlowsPort2 = this.fixedIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _fixedIngressFlowsPort2);
+    List<FlowEntity> _fixedConntrackIngressFlowsPort2 = this.fixedConntrackIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _fixedConntrackIngressFlowsPort2);
+    List<FlowEntity> _udpIngressFlowsPort2 = this.udpIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _udpIngressFlowsPort2);
+    List<FlowEntity> _udpIngressFlowsPort2_1 = this.udpIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _udpIngressFlowsPort2_1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort2 = this.fixedEgressL2BroadcastFlowsPort2();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _fixedEgressL2BroadcastFlowsPort2);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows_1 = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedIngressL3BroadcastFlows_1);
+    Iterable<FlowEntity> _fixedEgressFlowsPort2 = this.fixedEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_12 = Iterables.<FlowEntity>concat(_plus_11, _fixedEgressFlowsPort2);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort2 = this.fixedConntrackEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_13 = Iterables.<FlowEntity>concat(_plus_12, _fixedConntrackEgressFlowsPort2);
+    List<FlowEntity> _udpEgressFlowsPort2 = this.udpEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_14 = Iterables.<FlowEntity>concat(_plus_13, _udpEgressFlowsPort2);
+    List<FlowEntity> _ingressDispatcherFirst = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_15 = Iterables.<FlowEntity>concat(_plus_14, _ingressDispatcherFirst);
+    List<FlowEntity> _ingressDispatcherFirst_1 = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_16 = Iterables.<FlowEntity>concat(_plus_15, _ingressDispatcherFirst_1);
+    List<FlowEntity> _ingressDispatcherLast = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_17 = Iterables.<FlowEntity>concat(_plus_16, _ingressDispatcherLast);
+    List<FlowEntity> _ingressDispatcherLast_1 = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_18 = Iterables.<FlowEntity>concat(_plus_17, _ingressDispatcherLast_1);
+    List<FlowEntity> _remoteEgressFlowsPort1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_19 = Iterables.<FlowEntity>concat(_plus_18, _remoteEgressFlowsPort1);
+    List<FlowEntity> _remoteEgressFlowsPort2 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_20 = Iterables.<FlowEntity>concat(_plus_19, _remoteEgressFlowsPort2);
+    List<FlowEntity> _remoteEgressFlowsPort1_1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_21 = Iterables.<FlowEntity>concat(_plus_20, _remoteEgressFlowsPort1_1);
+    List<FlowEntity> _remoteEgressFlowsPort2_1 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_22 = Iterables.<FlowEntity>concat(_plus_21, _remoteEgressFlowsPort2_1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_23 = Iterables.<FlowEntity>concat(_plus_22, _ingressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1_1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_24 = Iterables.<FlowEntity>concat(_plus_23, _ingressCommitNonConntrack1_1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_25 = Iterables.<FlowEntity>concat(_plus_24, _egressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1_1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_26 = Iterables.<FlowEntity>concat(_plus_25, _egressCommitNonConntrack1_1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_27 = Iterables.<FlowEntity>concat(_plus_26, _ingressCommitConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1_1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_28 = Iterables.<FlowEntity>concat(_plus_27, _ingressCommitConntrack1_1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_29 = Iterables.<FlowEntity>concat(_plus_28, _egressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1_1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_30 = Iterables.<FlowEntity>concat(_plus_29, _egressCommitConntrack1_1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_31 = Iterables.<FlowEntity>concat(_plus_30, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _ingressfixedAclMissDrop1_1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_32 = Iterables.<FlowEntity>concat(_plus_31, _ingressfixedAclMissDrop1_1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_33 = Iterables.<FlowEntity>concat(_plus_32, _egressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1_1 = this.egressfixedAclMissDrop1();
+    return Iterables.<FlowEntity>concat(_plus_33, _egressfixedAclMissDrop1_1);
+  }
+  
+  protected Iterable<FlowEntity> icmpFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _icmpIngressFlowsPort1 = this.icmpIngressFlowsPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _icmpIngressFlowsPort1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _fixedIngressFlowsPort2 = this.fixedIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _fixedIngressFlowsPort2);
+    List<FlowEntity> _fixedConntrackIngressFlowsPort2 = this.fixedConntrackIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _fixedConntrackIngressFlowsPort2);
+    List<FlowEntity> _icmpIngressFlowsPort2 = this.icmpIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _icmpIngressFlowsPort2);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort2 = this.fixedEgressL2BroadcastFlowsPort2();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _fixedEgressL2BroadcastFlowsPort2);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows_1 = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _fixedIngressL3BroadcastFlows_1);
+    Iterable<FlowEntity> _fixedEgressFlowsPort2 = this.fixedEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedEgressFlowsPort2);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort2 = this.fixedConntrackEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_12 = Iterables.<FlowEntity>concat(_plus_11, _fixedConntrackEgressFlowsPort2);
+    List<FlowEntity> _icmpEgressFlowsPort2 = this.icmpEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_13 = Iterables.<FlowEntity>concat(_plus_12, _icmpEgressFlowsPort2);
+    List<FlowEntity> _icmpEgressFlowsPort2_1 = this.icmpEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_14 = Iterables.<FlowEntity>concat(_plus_13, _icmpEgressFlowsPort2_1);
+    List<FlowEntity> _egressDispatcherFirst = this.egressDispatcherFirst();
+    Iterable<FlowEntity> _plus_15 = Iterables.<FlowEntity>concat(_plus_14, _egressDispatcherFirst);
+    List<FlowEntity> _egressDispatcherFirst_1 = this.egressDispatcherFirst();
+    Iterable<FlowEntity> _plus_16 = Iterables.<FlowEntity>concat(_plus_15, _egressDispatcherFirst_1);
+    List<FlowEntity> _egressDispatcherLast = this.egressDispatcherLast();
+    Iterable<FlowEntity> _plus_17 = Iterables.<FlowEntity>concat(_plus_16, _egressDispatcherLast);
+    List<FlowEntity> _egressDispatcherLast_1 = this.egressDispatcherLast();
+    Iterable<FlowEntity> _plus_18 = Iterables.<FlowEntity>concat(_plus_17, _egressDispatcherLast_1);
+    List<FlowEntity> _remoteIngressFlowsPort1 = this.remoteIngressFlowsPort1();
+    Iterable<FlowEntity> _plus_19 = Iterables.<FlowEntity>concat(_plus_18, _remoteIngressFlowsPort1);
+    List<FlowEntity> _remoteIngressFlowsPort2 = this.remoteIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_20 = Iterables.<FlowEntity>concat(_plus_19, _remoteIngressFlowsPort2);
+    List<FlowEntity> _remoteIngressFlowsPort1_1 = this.remoteIngressFlowsPort1();
+    Iterable<FlowEntity> _plus_21 = Iterables.<FlowEntity>concat(_plus_20, _remoteIngressFlowsPort1_1);
+    List<FlowEntity> _remoteIngressFlowsPort2_1 = this.remoteIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_22 = Iterables.<FlowEntity>concat(_plus_21, _remoteIngressFlowsPort2_1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_23 = Iterables.<FlowEntity>concat(_plus_22, _ingressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1_1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_24 = Iterables.<FlowEntity>concat(_plus_23, _ingressCommitNonConntrack1_1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_25 = Iterables.<FlowEntity>concat(_plus_24, _egressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1_1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_26 = Iterables.<FlowEntity>concat(_plus_25, _egressCommitNonConntrack1_1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_27 = Iterables.<FlowEntity>concat(_plus_26, _ingressCommitConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1_1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_28 = Iterables.<FlowEntity>concat(_plus_27, _ingressCommitConntrack1_1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_29 = Iterables.<FlowEntity>concat(_plus_28, _egressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1_1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_30 = Iterables.<FlowEntity>concat(_plus_29, _egressCommitConntrack1_1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_31 = Iterables.<FlowEntity>concat(_plus_30, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _ingressfixedAclMissDrop1_1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_32 = Iterables.<FlowEntity>concat(_plus_31, _ingressfixedAclMissDrop1_1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_33 = Iterables.<FlowEntity>concat(_plus_32, _egressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1_1 = this.egressfixedAclMissDrop1();
+    return Iterables.<FlowEntity>concat(_plus_33, _egressfixedAclMissDrop1_1);
+  }
+  
+  protected Iterable<FlowEntity> dstRangeFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _udpIngressPortRangeFlows = this.udpIngressPortRangeFlows();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _udpIngressPortRangeFlows);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _tcpEgressRangeFlows = this.tcpEgressRangeFlows();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _tcpEgressRangeFlows);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _ingressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _egressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _ingressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _egressCommitConntrack1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    return Iterables.<FlowEntity>concat(_plus_11, _egressfixedAclMissDrop1);
+  }
+  
+  protected Iterable<FlowEntity> dstAllFlows() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _udpIngressAllFlows = this.udpIngressAllFlows();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _udpIngressAllFlows);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _tcpEgressAllFlows = this.tcpEgressAllFlows();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _tcpEgressAllFlows);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _ingressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _egressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _ingressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _egressCommitConntrack1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    return Iterables.<FlowEntity>concat(_plus_11, _egressfixedAclMissDrop1);
+  }
+  
+  protected Iterable<FlowEntity> icmpFlowsForTwoAclsHavingSameRules() {
+    List<FlowEntity> _fixedIngressFlowsPort3 = this.fixedIngressFlowsPort3();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort3 = this.fixedConntrackIngressFlowsPort3();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort3, _fixedConntrackIngressFlowsPort3);
+    List<FlowEntity> _icmpIngressFlowsPort3 = this.icmpIngressFlowsPort3();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _icmpIngressFlowsPort3);
+    List<FlowEntity> _fixedEgressFlowsPort3 = this.fixedEgressFlowsPort3();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressFlowsPort3);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort3 = this.fixedConntrackEgressFlowsPort3();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedConntrackEgressFlowsPort3);
+    List<FlowEntity> _icmpEgressFlowsPort3 = this.icmpEgressFlowsPort3();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _icmpEgressFlowsPort3);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _ingressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _egressCommitConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _ingressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _egressCommitNonConntrack1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _egressfixedAclMissDrop1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedIngressL3BroadcastFlows);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort3 = this.fixedEgressL2BroadcastFlowsPort3();
+    return Iterables.<FlowEntity>concat(_plus_11, _fixedEgressL2BroadcastFlowsPort3);
+  }
+  
+  protected Iterable<FlowEntity> aapWithIpv4AllFlows() {
+    Iterable<FlowEntity> _icmpFlows = this.icmpFlows();
+    List<FlowEntity> _aapIpv4AllFlowsPort2 = this.aapIpv4AllFlowsPort2();
+    return Iterables.<FlowEntity>concat(_icmpFlows, _aapIpv4AllFlowsPort2);
+  }
+  
+  protected Iterable<FlowEntity> aapFlows() {
+    Iterable<FlowEntity> _icmpFlows = this.icmpFlows();
+    List<FlowEntity> _aapRemoteFlowsPort1 = this.aapRemoteFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_icmpFlows, _aapRemoteFlowsPort1);
+    List<FlowEntity> _aapRemoteFlowsPort1_1 = this.aapRemoteFlowsPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _aapRemoteFlowsPort1_1);
+    List<FlowEntity> _aapFlowsPort2 = this.aapFlowsPort2();
+    return Iterables.<FlowEntity>concat(_plus_1, _aapFlowsPort2);
+  }
+  
+  protected Iterable<FlowEntity> multipleAcl() {
+    List<FlowEntity> _fixedIngressFlowsPort1 = this.fixedIngressFlowsPort1();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort1 = this.fixedConntrackIngressFlowsPort1();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort1, _fixedConntrackIngressFlowsPort1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort1 = this.fixedEgressL2BroadcastFlowsPort1();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _fixedEgressL2BroadcastFlowsPort1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedIngressL3BroadcastFlows);
+    Iterable<FlowEntity> _fixedEgressFlowsPort1 = this.fixedEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedEgressFlowsPort1);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort1 = this.fixedConntrackEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _fixedConntrackEgressFlowsPort1);
+    List<FlowEntity> _etherEgressFlowsPort1 = this.etherEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _etherEgressFlowsPort1);
+    List<FlowEntity> _fixedIngressFlowsPort2 = this.fixedIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _fixedIngressFlowsPort2);
+    List<FlowEntity> _fixedConntrackIngressFlowsPort2 = this.fixedConntrackIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _fixedConntrackIngressFlowsPort2);
+    List<FlowEntity> _etherIngressFlowsPort2 = this.etherIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _etherIngressFlowsPort2);
+    List<FlowEntity> _etherIngressFlowsPort2_1 = this.etherIngressFlowsPort2();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _etherIngressFlowsPort2_1);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort2 = this.fixedEgressL2BroadcastFlowsPort2();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _fixedEgressL2BroadcastFlowsPort2);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows_1 = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedIngressL3BroadcastFlows_1);
+    Iterable<FlowEntity> _fixedEgressFlowsPort2 = this.fixedEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_12 = Iterables.<FlowEntity>concat(_plus_11, _fixedEgressFlowsPort2);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort2 = this.fixedConntrackEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_13 = Iterables.<FlowEntity>concat(_plus_12, _fixedConntrackEgressFlowsPort2);
+    List<FlowEntity> _etheregressFlowPort2 = this.etheregressFlowPort2();
+    Iterable<FlowEntity> _plus_14 = Iterables.<FlowEntity>concat(_plus_13, _etheregressFlowPort2);
+    List<FlowEntity> _remoteEgressFlowsPort1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_15 = Iterables.<FlowEntity>concat(_plus_14, _remoteEgressFlowsPort1);
+    List<FlowEntity> _remoteEgressFlowsPort2 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_16 = Iterables.<FlowEntity>concat(_plus_15, _remoteEgressFlowsPort2);
+    List<FlowEntity> _remoteEgressFlowsPort1_1 = this.remoteEgressFlowsPort1();
+    Iterable<FlowEntity> _plus_17 = Iterables.<FlowEntity>concat(_plus_16, _remoteEgressFlowsPort1_1);
+    List<FlowEntity> _remoteEgressFlowsPort2_1 = this.remoteEgressFlowsPort2();
+    Iterable<FlowEntity> _plus_18 = Iterables.<FlowEntity>concat(_plus_17, _remoteEgressFlowsPort2_1);
+    List<FlowEntity> _tcpEgressFlowPort2WithRemoteIpSg = this.tcpEgressFlowPort2WithRemoteIpSg();
+    Iterable<FlowEntity> _plus_19 = Iterables.<FlowEntity>concat(_plus_18, _tcpEgressFlowPort2WithRemoteIpSg);
+    List<FlowEntity> _tcpEgressFlowPort2WithRemoteIpSg_1 = this.tcpEgressFlowPort2WithRemoteIpSg();
+    Iterable<FlowEntity> _plus_20 = Iterables.<FlowEntity>concat(_plus_19, _tcpEgressFlowPort2WithRemoteIpSg_1);
+    List<FlowEntity> _tcpIngressFlowPort1WithMultipleSG = this.tcpIngressFlowPort1WithMultipleSG();
+    Iterable<FlowEntity> _plus_21 = Iterables.<FlowEntity>concat(_plus_20, _tcpIngressFlowPort1WithMultipleSG);
+    List<FlowEntity> _tcpIngressFlowPort1WithMultipleSG_1 = this.tcpIngressFlowPort1WithMultipleSG();
+    Iterable<FlowEntity> _plus_22 = Iterables.<FlowEntity>concat(_plus_21, _tcpIngressFlowPort1WithMultipleSG_1);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_23 = Iterables.<FlowEntity>concat(_plus_22, _ingressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitNonConntrack1_1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_24 = Iterables.<FlowEntity>concat(_plus_23, _ingressCommitNonConntrack1_1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_25 = Iterables.<FlowEntity>concat(_plus_24, _egressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1_1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_26 = Iterables.<FlowEntity>concat(_plus_25, _egressCommitNonConntrack1_1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_27 = Iterables.<FlowEntity>concat(_plus_26, _ingressCommitConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1_1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_28 = Iterables.<FlowEntity>concat(_plus_27, _ingressCommitConntrack1_1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_29 = Iterables.<FlowEntity>concat(_plus_28, _egressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1_1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_30 = Iterables.<FlowEntity>concat(_plus_29, _egressCommitConntrack1_1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_31 = Iterables.<FlowEntity>concat(_plus_30, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _ingressfixedAclMissDrop1_1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_32 = Iterables.<FlowEntity>concat(_plus_31, _ingressfixedAclMissDrop1_1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_33 = Iterables.<FlowEntity>concat(_plus_32, _egressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1_1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_34 = Iterables.<FlowEntity>concat(_plus_33, _egressfixedAclMissDrop1_1);
+    List<FlowEntity> _remoteEgressFlowsPort3 = this.remoteEgressFlowsPort3();
+    Iterable<FlowEntity> _plus_35 = Iterables.<FlowEntity>concat(_plus_34, _remoteEgressFlowsPort3);
+    List<FlowEntity> _egressDispatcherLast1 = this.egressDispatcherLast1();
+    Iterable<FlowEntity> _plus_36 = Iterables.<FlowEntity>concat(_plus_35, _egressDispatcherLast1);
+    List<FlowEntity> _egressDispatcherFirst1 = this.egressDispatcherFirst1();
+    Iterable<FlowEntity> _plus_37 = Iterables.<FlowEntity>concat(_plus_36, _egressDispatcherFirst1);
+    List<FlowEntity> _ingressDispatcherLast = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_38 = Iterables.<FlowEntity>concat(_plus_37, _ingressDispatcherLast);
+    List<FlowEntity> _ingressDispatcherFirst = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_39 = Iterables.<FlowEntity>concat(_plus_38, _ingressDispatcherFirst);
+    List<FlowEntity> _egressDispatcherLast1_1 = this.egressDispatcherLast1();
+    Iterable<FlowEntity> _plus_40 = Iterables.<FlowEntity>concat(_plus_39, _egressDispatcherLast1_1);
+    List<FlowEntity> _egressDispatcherFirst1_1 = this.egressDispatcherFirst1();
+    Iterable<FlowEntity> _plus_41 = Iterables.<FlowEntity>concat(_plus_40, _egressDispatcherFirst1_1);
+    List<FlowEntity> _ingressDispatcherLast_1 = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_42 = Iterables.<FlowEntity>concat(_plus_41, _ingressDispatcherLast_1);
+    List<FlowEntity> _ingressDispatcherFirst_1 = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_43 = Iterables.<FlowEntity>concat(_plus_42, _ingressDispatcherFirst_1);
+    List<FlowEntity> _ingressDispatcherFirst_2 = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_44 = Iterables.<FlowEntity>concat(_plus_43, _ingressDispatcherFirst_2);
+    List<FlowEntity> _ingressDispatcherFirst_3 = this.ingressDispatcherFirst();
+    Iterable<FlowEntity> _plus_45 = Iterables.<FlowEntity>concat(_plus_44, _ingressDispatcherFirst_3);
+    List<FlowEntity> _ingressDispatcherLast_2 = this.ingressDispatcherLast();
+    Iterable<FlowEntity> _plus_46 = Iterables.<FlowEntity>concat(_plus_45, _ingressDispatcherLast_2);
+    List<FlowEntity> _ingressDispatcherLast_3 = this.ingressDispatcherLast();
+    return Iterables.<FlowEntity>concat(_plus_46, _ingressDispatcherLast_3);
+  }
+  
+  protected List<FlowEntity> tcpEgressFlowPort2WithRemoteIpSg() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId1 = "TCP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614976L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpIngressFlowPort1WithMultipleSG() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> aapIpv4AllFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType)));
+      it.setPriority(61010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType)));
+      it.setPriority(61010);
+      it.setTableId(((short) 240));
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F40.0.0.0/0");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 67));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 68));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3));
+  }
+  
+  protected List<FlowEntity> aapRemoteFlowsPort1() {
+    FlowEntity _remoteIngressFlowsPort = this.remoteIngressFlowsPort("10.0.0.100");
+    FlowEntity _remoteIngressFlowsPort_1 = this.remoteIngressFlowsPort("10.0.0.101");
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_remoteIngressFlowsPort, _remoteIngressFlowsPort_1));
+  }
+  
+  protected List<FlowEntity> aapFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.100/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.100", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.100/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.100", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(((short) 240));
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_10.0.0.101/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.101", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_10.0.0.101/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.101", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(((short) 240));
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F410.0.0.100/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.100/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:A410.0.0.101/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.101/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:A4_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 67));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 68));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 67));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 68));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    FlowEntityBuilder _flowEntityBuilder_8 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_8 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_L2Broadcast_123_987_0D:AA:D8:42:30:A4");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:A4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchMetadata)));
+      it.setPriority(61005);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_8 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_8, _function_8);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7, _doubleGreaterThan_8));
+  }
+  
+  protected List<FlowEntity> fixedConntrackIngressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 243));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  protected List<FlowEntity> etherIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ETHERnullIngress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_REMOTE_ACL_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchRegister, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> fixedConntrackEgressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  protected List<FlowEntity> fixedConntrackIngressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.2/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  protected List<FlowEntity> fixedConntrackEgressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.2/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 213));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  protected List<FlowEntity> fixedConntrackIngressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_10.0.0.3/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.3", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  protected List<FlowEntity> fixedConntrackEgressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_10.0.0.3/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.3", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  public static List<FlowEntity> fixedConntrackIngressFlowsPort4() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_10.0.0.4/32_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.4", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetDestination, _matchEthernetType_1, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetDestination, _matchEthernetType_1)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_New");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(32L, 32L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(50);
+      it.setTableId(NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3));
+  }
+  
+  public static List<FlowEntity> fixedConntrackEgressFlowsPort4() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_10.0.0.4/32_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.4", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F6");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchEthernetType)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_New");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(32L, 32L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(50);
+      it.setTableId(NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3));
+  }
+  
+  protected List<FlowEntity> etherEgressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> etheregressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpIngressFlowPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpIngressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpEgressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614944L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> udpEgressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> udpIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_REMOTE_ACL_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _nxMatchRegister, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> udpEgressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpIngressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpEgressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614944L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> udpIngressPortRangeFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_2000_65532Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(2000, 65532);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpEgressRangeFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "TCP_DESTINATION_776_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId2 = "TCP_DESTINATION_512_65280Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId3 = "TCP_DESTINATION_334_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId4 = "TCP_DESTINATION_333_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId5 = "TCP_DESTINATION_336_65520Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId6 = "TCP_DESTINATION_352_65504Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId7 = "TCP_DESTINATION_384_65408Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId8 = "TCP_DESTINATION_768_65528Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(776, 65534);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(512, 65280);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId3);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(334, 65534);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId3);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+      FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId4);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(333, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId4);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+      FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId5);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(336, 65520);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId5);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+      FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId6);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(352, 65504);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId6);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+      FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId7);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(384, 65408);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId7);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+      FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId8);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(768, 65528);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId8);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> udpIngressAllFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_1_0Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> tcpEgressAllFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_1_0Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpIngressFlowsPort3() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      final String flowId2 = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpEgressFlowsPort3() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId2 = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE);
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(2048L);
+        MatchIcmpv4 _matchIcmpv4 = new MatchIcmpv4(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 1));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv4, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> expectedFlows(final String mac) {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v4123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 68));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 67));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_DHCP_Server_v6_123_987_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 546));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 547));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_130_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 130), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_ARP_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    FlowEntityBuilder _flowEntityBuilder_8 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_8 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Egress_DHCP_Client_v4123_987_" + mac) + "_Permit_"));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 67));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 68));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_8 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_8, _function_8);
+    FlowEntityBuilder _flowEntityBuilder_9 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_9 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 68));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 67));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_9 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_9, _function_9);
+    FlowEntityBuilder _flowEntityBuilder_10 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_10 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(((short) 546));
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(((short) 547));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_10 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_10, _function_10);
+    FlowEntityBuilder _flowEntityBuilder_11 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_11 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_11 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_11, _function_11);
+    FlowEntityBuilder _flowEntityBuilder_12 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_12 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_12 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_12, _function_12);
+    FlowEntityBuilder _flowEntityBuilder_13 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_13 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_13 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_13, _function_13);
+    FlowEntityBuilder _flowEntityBuilder_14 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_14 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_14 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_14, _function_14);
+    FlowEntityBuilder _flowEntityBuilder_15 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_15 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_15 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_15, _function_15);
+    FlowEntityBuilder _flowEntityBuilder_16 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_16 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_16 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_16, _function_16);
+    FlowEntityBuilder _flowEntityBuilder_17 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_17 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_17 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_17, _function_17);
+    FlowEntityBuilder _flowEntityBuilder_18 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_18 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE);
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_18 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_18, _function_18);
+    FlowEntityBuilder _flowEntityBuilder_19 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_19 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId((("Egress_ARP_123_987_" + mac) + "10.0.0.1/32"));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.1/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_19 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_19, _function_19);
+    FlowEntityBuilder _flowEntityBuilder_20 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_20 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId(("Egress_L2Broadcast_123_987_" + mac));
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MacAddress _macAddress = new MacAddress(mac);
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetSource, _matchMetadata)));
+      it.setPriority(61005);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_20 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_20, _function_20);
+    FlowEntityBuilder _flowEntityBuilder_21 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_21 = (FlowEntityBuilder it) -> {
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setFlowId("Ingress_v4_Broadcast_123_987_10.0.0.255_Permit");
+      it.setFlowName("ACL");
+      it.setHardTimeOut(0);
+      it.setIdleTimeOut(0);
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE);
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MacAddress _macAddress = new MacAddress("ff:ff:ff:ff:ff:ff");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.255/32");
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination(_ipv4Prefix);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetDestination, _matchEthernetType, _matchIpv4Destination, _nxMatchRegister)));
+      it.setPriority(61010);
+      it.setSendFlowRemFlag(false);
+      it.setStrictFlag(false);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_21 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_21, _function_21);
+    FlowEntityBuilder _flowEntityBuilder_22 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_22 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]");
+      it.setFlowName("ACL");
+      ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+      List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.ZERO, BigInteger.valueOf(2L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 247));
+    };
+    FlowEntity _doubleGreaterThan_22 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_22, _function_22);
+    FlowEntityBuilder _flowEntityBuilder_23 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_23 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]");
+      it.setFlowName("ACL");
+      ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+      List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.ZERO, BigInteger.valueOf(2L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 247));
+    };
+    FlowEntity _doubleGreaterThan_23 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_23, _function_23);
+    FlowEntityBuilder _flowEntityBuilder_24 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_24 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]");
+      it.setFlowName("ACL");
+      ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+      List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219202L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 217));
+    };
+    FlowEntity _doubleGreaterThan_24 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_24, _function_24);
+    FlowEntityBuilder _flowEntityBuilder_25 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_25 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]");
+      it.setFlowName("ACL");
+      ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+      List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219202L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 217));
+    };
+    FlowEntity _doubleGreaterThan_25 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_25, _function_25);
+    FlowEntityBuilder _flowEntityBuilder_26 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_26 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Acl_Commit_Non_Conntrack_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614914L), BigInteger.valueOf(1152920405095219202L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 217));
+    };
+    FlowEntity _doubleGreaterThan_26 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_26, _function_26);
+    FlowEntityBuilder _flowEntityBuilder_27 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_27 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Acl_Commit_Non_Conntrack_123_987");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(2L), BigInteger.valueOf(2L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(((short) 247));
+    };
+    FlowEntity _doubleGreaterThan_27 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_27, _function_27);
+    FlowEntityBuilder _flowEntityBuilder_28 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_28 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Acl_Rule_Miss_Drop_123_987");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister)));
+      it.setPriority(50);
+      it.setTableId(((short) 244));
+    };
+    FlowEntity _doubleGreaterThan_28 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_28, _function_28);
+    FlowEntityBuilder _flowEntityBuilder_29 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_29 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Acl_Rule_Miss_Drop_123_987");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+      it.setPriority(50);
+      it.setTableId(((short) 214));
+    };
+    FlowEntity _doubleGreaterThan_29 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_29, _function_29);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7, _doubleGreaterThan_8, _doubleGreaterThan_9, _doubleGreaterThan_10, _doubleGreaterThan_11, _doubleGreaterThan_12, _doubleGreaterThan_13, _doubleGreaterThan_14, _doubleGreaterThan_15, _doubleGreaterThan_16, _doubleGreaterThan_17, _doubleGreaterThan_18, _doubleGreaterThan_19, _doubleGreaterThan_20, _doubleGreaterThan_21, _doubleGreaterThan_22, _doubleGreaterThan_23, _doubleGreaterThan_24, _doubleGreaterThan_25, _doubleGreaterThan_26, _doubleGreaterThan_27, _doubleGreaterThan_28, _doubleGreaterThan_29));
+  }
+  
+  protected List<FlowEntity> ingressCommitConntrack1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]";
+      final String flowId2 = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+        List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+        ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.ZERO, BigInteger.valueOf(2L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister, _matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 247));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+        List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+        ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.ZERO, BigInteger.valueOf(2L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister, _matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 247));
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressCommitConntrack1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]";
+      final String flowId2 = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+        List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+        ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219202L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 217));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        ActionNxConntrack.NxCtMark _nxCtMark = new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE);
+        List<ActionNxConntrack.NxCtAction> _singletonList = Collections.<ActionNxConntrack.NxCtAction>singletonList(_nxCtMark);
+        ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 1, 0, 5000, ((short) 255), _singletonList);
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack, _actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219202L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 217));
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressCommitNonConntrack1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_Acl_Commit_Non_Conntrack_123_987";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614914L), BigInteger.valueOf(1152920405095219202L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 217));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> ingressCommitNonConntrack1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Ingress_Acl_Commit_Non_Conntrack_123_987";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 220));
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(2L), BigInteger.valueOf(2L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchMetadata)));
+        it.setPriority(100);
+        it.setTableId(((short) 247));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> ingressfixedAclMissDrop1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Ingress_Fixed_Acl_Rule_Miss_Drop_123_987";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100481L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionDrop _actionDrop = new ActionDrop();
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister)));
+        it.setPriority(50);
+        it.setTableId(((short) 244));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressfixedAclMissDrop1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_Fixed_Acl_Rule_Miss_Drop_123_987";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100481L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionDrop _actionDrop = new ActionDrop();
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        it.setPriority(50);
+        it.setTableId(((short) 214));
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> ingressDispatcherFirst() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Ingress_ACL_Dispatcher_First_123_987_2";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 245));
+        InstructionWriteMetadata _instructionWriteMetadata = new InstructionWriteMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable, _instructionWriteMetadata)));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> ingressDispatcherLast() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Ingress_ACL_Dispatcher_Last_123_987_2";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100481L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionDrop _actionDrop = new ActionDrop();
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressDispatcherFirst() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_ACL_Dispatcher_First_123_987_2";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 215));
+        InstructionWriteMetadata _instructionWriteMetadata = new InstructionWriteMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable, _instructionWriteMetadata)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressDispatcherLast() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_ACL_Dispatcher_Last_123_987_2";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100481L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionDrop _actionDrop = new ActionDrop();
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614944L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressDispatcherFirst1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_ACL_Dispatcher_First_123_987_4";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 215));
+        InstructionWriteMetadata _instructionWriteMetadata = new InstructionWriteMetadata(BigInteger.valueOf(64L), BigInteger.valueOf(16777200L));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable, _instructionWriteMetadata)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> egressDispatcherLast1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "Egress_ACL_Dispatcher_Last_123_987_4";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100481L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        ActionDrop _actionDrop = new ActionDrop();
+        InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+          Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614976L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStatefulIPv6.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/FlowEntryObjectsStatefulIPv6.java
new file mode 100644 (file)
index 0000000..44a519a
--- /dev/null
@@ -0,0 +1,1429 @@
+/**
+ * Copyright (c) 2017 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import com.google.common.collect.Iterables;
+import java.math.BigInteger;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.genius.mdsalutil.ActionInfo;
+import org.opendaylight.genius.mdsalutil.FlowEntity;
+import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
+import org.opendaylight.genius.mdsalutil.InstructionInfo;
+import org.opendaylight.genius.mdsalutil.MatchInfoBase;
+import org.opendaylight.genius.mdsalutil.MetaDataUtil;
+import org.opendaylight.genius.mdsalutil.NwConstants;
+import org.opendaylight.genius.mdsalutil.actions.ActionDrop;
+import org.opendaylight.genius.mdsalutil.actions.ActionNxConntrack;
+import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions;
+import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSha;
+import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource;
+import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType;
+import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination;
+import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source;
+import org.opendaylight.genius.mdsalutil.matches.MatchMetadata;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort;
+import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchCtState;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchTcpDestinationPort;
+import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchUdpDestinationPort;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.netvirt.aclservice.tests.FlowEntryObjectsStateful;
+import org.opendaylight.netvirt.aclservice.tests.IdHelper;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6;
+
+@SuppressWarnings("all")
+public class FlowEntryObjectsStatefulIPv6 extends FlowEntryObjectsStateful {
+  @Override
+  public Iterable<FlowEntity> icmpFlowsForTwoAclsHavingSameRules() {
+    List<FlowEntity> _fixedIngressFlowsPort3 = this.fixedIngressFlowsPort3();
+    List<FlowEntity> _fixedConntrackIngressFlowsPort3 = this.fixedConntrackIngressFlowsPort3();
+    Iterable<FlowEntity> _plus = Iterables.<FlowEntity>concat(_fixedIngressFlowsPort3, _fixedConntrackIngressFlowsPort3);
+    List<FlowEntity> _icmpIngressFlowsPort4 = this.icmpIngressFlowsPort4();
+    Iterable<FlowEntity> _plus_1 = Iterables.<FlowEntity>concat(_plus, _icmpIngressFlowsPort4);
+    List<FlowEntity> _fixedEgressFlowsPort3 = this.fixedEgressFlowsPort3();
+    Iterable<FlowEntity> _plus_2 = Iterables.<FlowEntity>concat(_plus_1, _fixedEgressFlowsPort3);
+    List<FlowEntity> _fixedConntrackEgressFlowsPort5 = this.fixedConntrackEgressFlowsPort5();
+    Iterable<FlowEntity> _plus_3 = Iterables.<FlowEntity>concat(_plus_2, _fixedConntrackEgressFlowsPort5);
+    List<FlowEntity> _icmpEgressFlowsPort4 = this.icmpEgressFlowsPort4();
+    Iterable<FlowEntity> _plus_4 = Iterables.<FlowEntity>concat(_plus_3, _icmpEgressFlowsPort4);
+    List<FlowEntity> _ingressCommitNonConntrack1 = this.ingressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_5 = Iterables.<FlowEntity>concat(_plus_4, _ingressCommitNonConntrack1);
+    List<FlowEntity> _egressCommitNonConntrack1 = this.egressCommitNonConntrack1();
+    Iterable<FlowEntity> _plus_6 = Iterables.<FlowEntity>concat(_plus_5, _egressCommitNonConntrack1);
+    List<FlowEntity> _ingressCommitConntrack1 = this.ingressCommitConntrack1();
+    Iterable<FlowEntity> _plus_7 = Iterables.<FlowEntity>concat(_plus_6, _ingressCommitConntrack1);
+    List<FlowEntity> _egressCommitConntrack1 = this.egressCommitConntrack1();
+    Iterable<FlowEntity> _plus_8 = Iterables.<FlowEntity>concat(_plus_7, _egressCommitConntrack1);
+    List<FlowEntity> _ingressfixedAclMissDrop1 = this.ingressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_9 = Iterables.<FlowEntity>concat(_plus_8, _ingressfixedAclMissDrop1);
+    List<FlowEntity> _egressfixedAclMissDrop1 = this.egressfixedAclMissDrop1();
+    Iterable<FlowEntity> _plus_10 = Iterables.<FlowEntity>concat(_plus_9, _egressfixedAclMissDrop1);
+    List<FlowEntity> _fixedIngressL3BroadcastFlows = this.fixedIngressL3BroadcastFlows();
+    Iterable<FlowEntity> _plus_11 = Iterables.<FlowEntity>concat(_plus_10, _fixedIngressL3BroadcastFlows);
+    List<FlowEntity> _fixedEgressL2BroadcastFlowsPort3 = this.fixedEgressL2BroadcastFlowsPort3();
+    return Iterables.<FlowEntity>concat(_plus_11, _fixedEgressL2BroadcastFlowsPort3);
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackIngressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 241));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 243));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48, 48);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> etherIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ETHERnullIngress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 246));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchRegister, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackEgressFlowsPort1() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_10.0.0.1/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F3");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.1", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 213));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackIngressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.2/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 241));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 243));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48, 48);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackEgressFlowsPort2() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_10.0.0.2/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F4");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.2", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 213));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackIngressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_10.0.0.3/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 241));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetDestination _matchEthernetDestination = new MatchEthernetDestination(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Destination _matchIpv4Destination = new MatchIpv4Destination("10.0.0.3", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchEthernetDestination, _matchEthernetType, _matchIpv4Destination)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 243));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _nxMatchRegister)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48, 48);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> fixedConntrackEgressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_10.0.0.3/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.3", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE);
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_nxMatchRegister, _matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+  
+  @Override
+  public List<FlowEntity> etherEgressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> etheregressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> tcpIngressFlowPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> tcpIngressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> tcpEgressFlowPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "TCP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 216));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614944L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> udpEgressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> udpIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "UDP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 246));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(32L), BigInteger.valueOf(16777200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _nxMatchRegister, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> udpEgressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(80, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> icmpIngressFlowsPort1() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> icmpIngressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> icmpEgressFlowsPort2() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V6_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 216));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614944L), BigInteger.valueOf(1152920405111996400L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> udpIngressPortRangeFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_2000_65532Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchUdpDestinationPort _nxMatchUdpDestinationPort = new NxMatchUdpDestinationPort(2000, 65532);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchUdpDestinationPort, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> tcpEgressRangeFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "TCP_DESTINATION_776_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId2 = "TCP_DESTINATION_512_65280Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId3 = "TCP_DESTINATION_334_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId4 = "TCP_DESTINATION_333_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId5 = "TCP_DESTINATION_336_65520Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId6 = "TCP_DESTINATION_352_65504Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId7 = "TCP_DESTINATION_384_65408Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId8 = "TCP_DESTINATION_768_65528Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(776, 65534);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(512, 65280);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId3);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(334, 65534);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId3);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+      FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId4);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(333, 65535);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId4);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+      FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId5);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(336, 65520);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId5);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+      FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId6);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(352, 65504);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId6);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+      FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId7);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(384, 65408);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId7);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+      FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId8);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        NxMatchTcpDestinationPort _nxMatchTcpDestinationPort = new NxMatchTcpDestinationPort(768, 65528);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _nxMatchTcpDestinationPort, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId8);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> udpIngressAllFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "UDP_DESTINATION_1_0Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> tcpEgressAllFlows() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String theFlowId = "TCP_DESTINATION_1_0Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(theFlowId);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 6));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(theFlowId);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> icmpIngressFlowsPort3() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      final String flowId2 = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpIngressFlowsPort4() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7";
+      final String flowId2 = "ICMP_V6_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 247));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        NxMatchRegister _nxMatchRegister = new NxMatchRegister(NxmNxReg6.class, 252672L, Long.valueOf(268435200L));
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _nxMatchRegister)));
+        it.setPriority(1004);
+        it.setTableId(NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> icmpEgressFlowsPort3() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V6_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId2 = "ICMP_V6_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId2);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  protected List<FlowEntity> icmpEgressFlowsPort4() {
+    List<FlowEntity> _xblockexpression = null;
+    {
+      final String flowId1 = "ICMP_V6_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6";
+      final String flowId2 = "ICMP_V6_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21";
+      FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId1);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _matchMetadata)));
+        Integer _id = IdHelper.getId(flowId1);
+        it.setPriority((_id).intValue());
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+      FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+      final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+        it.setDpnId(BigInteger.valueOf(123L));
+        it.setCookie(BigInteger.valueOf(110100480L));
+        it.setFlowId(flowId2);
+        it.setFlowName("ACL");
+        InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 217));
+        it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+        MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+        MatchEthernetType _matchEthernetType_1 = new MatchEthernetType(34525L);
+        MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 2), ((short) 3));
+        MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+        MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+        it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchEthernetType_1, _matchIcmpv6, _matchIpProtocol, _matchMetadata)));
+        it.setPriority(1004);
+        it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+      };
+      FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+      _xblockexpression = Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1));
+    }
+    return _xblockexpression;
+  }
+  
+  @Override
+  public List<FlowEntity> fixedEgressFlowsPort3() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F5_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(67);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(68);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata, _matchEthernetSource)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v4123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(68);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(67);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_DHCP_Server_v6_123_987_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 17));
+      MatchUdpDestinationPort _matchUdpDestinationPort = new MatchUdpDestinationPort(546);
+      MatchUdpSourcePort _matchUdpSourcePort = new MatchUdpSourcePort(547);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchUdpDestinationPort, _matchUdpSourcePort, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    FlowEntityBuilder _flowEntityBuilder_3 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_3 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_134_Drop_");
+      it.setFlowName("ACL");
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList()));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 134), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63020);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_3 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_3, _function_3);
+    FlowEntityBuilder _flowEntityBuilder_4 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_4 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_133_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 133), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_4 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_4, _function_4);
+    FlowEntityBuilder _flowEntityBuilder_5 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_5 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_135_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 135), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_5 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_5, _function_5);
+    FlowEntityBuilder _flowEntityBuilder_6 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_6 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ICMPv6_123_987_136_Permit_");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(34525L);
+      MatchIpProtocol _matchIpProtocol = new MatchIpProtocol(((short) 58));
+      MatchIcmpv6 _matchIcmpv6 = new MatchIcmpv6(((short) 136), ((short) 0));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchIpProtocol, _matchIcmpv6, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_6 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_6, _function_6);
+    FlowEntityBuilder _flowEntityBuilder_7 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_7 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_ARP_123_987_0D:AA:D8:42:30:F510.0.0.3/32");
+      it.setFlowName("ACL");
+      ActionNxResubmit _actionNxResubmit = new ActionNxResubmit(((short) 17));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxResubmit)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2054L);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchArpSha _matchArpSha = new MatchArpSha(_macAddress);
+      MacAddress _macAddress_1 = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress_1);
+      Ipv4Prefix _ipv4Prefix = new Ipv4Prefix("10.0.0.3/32");
+      MatchArpSpa _matchArpSpa = new MatchArpSpa(_ipv4Prefix);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchArpSha, _matchEthernetSource, _matchArpSpa, _matchMetadata)));
+      it.setPriority(63010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan_7 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_7, _function_7);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2, _doubleGreaterThan_3, _doubleGreaterThan_4, _doubleGreaterThan_5, _doubleGreaterThan_6, _doubleGreaterThan_7));
+  }
+  
+  protected List<FlowEntity> fixedConntrackEgressFlowsPort5() {
+    FlowEntityBuilder _flowEntityBuilder = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_10.0.0.3/32");
+      it.setFlowName("ACL");
+      InstructionGotoTable _instructionGotoTable = new InstructionGotoTable(((short) 211));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionGotoTable)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), MetaDataUtil.METADATA_MASK_LPORT_TAG);
+      MacAddress _macAddress = new MacAddress("0D:AA:D8:42:30:F5");
+      MatchEthernetSource _matchEthernetSource = new MatchEthernetSource(_macAddress);
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchIpv4Source _matchIpv4Source = new MatchIpv4Source("10.0.0.3", "32");
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _matchEthernetSource, _matchEthernetType, _matchIpv4Source)));
+      it.setPriority(61010);
+      it.setTableId(((short) 210));
+    };
+    FlowEntity _doubleGreaterThan = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder, _function);
+    FlowEntityBuilder _flowEntityBuilder_1 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_1 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100481L));
+      it.setFlowId("Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid");
+      it.setFlowName("ACL");
+      ActionDrop _actionDrop = new ActionDrop();
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionDrop)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      NxMatchCtState _nxMatchCtState = new NxMatchCtState(48L, 48L);
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchMetadata, _nxMatchCtState)));
+      it.setPriority(62020);
+      it.setTableId(NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_1 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_1, _function_1);
+    FlowEntityBuilder _flowEntityBuilder_2 = new FlowEntityBuilder();
+    final Procedure1<FlowEntityBuilder> _function_2 = (FlowEntityBuilder it) -> {
+      it.setDpnId(BigInteger.valueOf(123L));
+      it.setCookie(BigInteger.valueOf(110100480L));
+      it.setFlowId("Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc");
+      it.setFlowName("ACL");
+      ActionNxConntrack _actionNxConntrack = new ActionNxConntrack(2, 0, 0, 5000, ((short) 213));
+      InstructionApplyActions _instructionApplyActions = new InstructionApplyActions(
+        Collections.<ActionInfo>unmodifiableList(CollectionLiterals.<ActionInfo>newArrayList(_actionNxConntrack)));
+      it.setInstructionInfoList(Collections.<InstructionInfo>unmodifiableList(CollectionLiterals.<InstructionInfo>newArrayList(_instructionApplyActions)));
+      MatchEthernetType _matchEthernetType = new MatchEthernetType(2048L);
+      MatchMetadata _matchMetadata = new MatchMetadata(BigInteger.valueOf(1085217976614912L), BigInteger.valueOf(1152920405095219200L));
+      it.setMatchInfoList(Collections.<MatchInfoBase>unmodifiableList(CollectionLiterals.<MatchInfoBase>newArrayList(_matchEthernetType, _matchMetadata)));
+      it.setPriority(100);
+      it.setTableId(NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE);
+    };
+    FlowEntity _doubleGreaterThan_2 = XtendBuilderExtensions.<FlowEntity, FlowEntityBuilder>operator_doubleGreaterThan(_flowEntityBuilder_2, _function_2);
+    return Collections.<FlowEntity>unmodifiableList(CollectionLiterals.<FlowEntity>newArrayList(_doubleGreaterThan, _doubleGreaterThan_1, _doubleGreaterThan_2));
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedAceBuilder.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedAceBuilder.java
new file mode 100644 (file)
index 0000000..849be40
--- /dev/null
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2016 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import java.util.Optional;
+import java.util.function.Consumer;
+import javax.annotation.concurrent.NotThreadSafe;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.netvirt.aclservice.tests.infra.DataTreeIdentifierDataObjectPairBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.AccessLists;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.Ipv4Acl;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.AclKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.AccessListEntries;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.AceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.AceKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.Actions;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.ActionsBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.Matches;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.actions.packet.handling.Permit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.ace.actions.packet.handling.PermitBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.DirectionBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.SecurityRuleAttr;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.SecurityRuleAttrBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+@NotThreadSafe
+@SuppressWarnings("all")
+public class IdentifiedAceBuilder implements DataTreeIdentifierDataObjectPairBuilder<Ace> {
+  private String sgUuid;
+  
+  private String newRuleName;
+  
+  private Matches newMatches;
+  
+  private Class<? extends DirectionBase> newDirection;
+  
+  private Optional<Uuid> newRemoteGroupId = Optional.<Uuid>empty();
+  
+  @Override
+  public LogicalDatastoreType type() {
+    return LogicalDatastoreType.CONFIGURATION;
+  }
+  
+  @Override
+  public InstanceIdentifier<Ace> identifier() {
+    InstanceIdentifier.InstanceIdentifierBuilder<AccessLists> _builder = InstanceIdentifier.<AccessLists>builder(AccessLists.class);
+    AclKey _aclKey = new AclKey(this.sgUuid, Ipv4Acl.class);
+    InstanceIdentifier.InstanceIdentifierBuilder<Acl> _child = _builder.<Acl, AclKey>child(Acl.class, _aclKey);
+    InstanceIdentifier.InstanceIdentifierBuilder<AccessListEntries> _child_1 = _child.<AccessListEntries>child(AccessListEntries.class);
+    AceKey _aceKey = new AceKey(this.newRuleName);
+    InstanceIdentifier.InstanceIdentifierBuilder<Ace> _child_2 = _child_1.<Ace, AceKey>child(Ace.class, _aceKey);
+    return _child_2.build();
+  }
+  
+  @Override
+  public Ace dataObject() {
+    AceBuilder _aceBuilder = new AceBuilder();
+    final Procedure1<AceBuilder> _function = (AceBuilder it) -> {
+      AceKey _aceKey = new AceKey(this.newRuleName);
+      it.setKey(_aceKey);
+      it.setRuleName(this.newRuleName);
+      it.setMatches(this.newMatches);
+      ActionsBuilder _actionsBuilder = new ActionsBuilder();
+      final Procedure1<ActionsBuilder> _function_1 = (ActionsBuilder it_1) -> {
+        PermitBuilder _permitBuilder = new PermitBuilder();
+        final Procedure1<PermitBuilder> _function_2 = (PermitBuilder it_2) -> {
+          it_2.setPermit(Boolean.valueOf(true));
+        };
+        Permit _doubleGreaterThan = XtendBuilderExtensions.<Permit, PermitBuilder>operator_doubleGreaterThan(_permitBuilder, _function_2);
+        it_1.setPacketHandling(_doubleGreaterThan);
+      };
+      Actions _doubleGreaterThan = XtendBuilderExtensions.<Actions, ActionsBuilder>operator_doubleGreaterThan(_actionsBuilder, _function_1);
+      it.setActions(_doubleGreaterThan);
+      SecurityRuleAttrBuilder _securityRuleAttrBuilder = new SecurityRuleAttrBuilder();
+      final Procedure1<SecurityRuleAttrBuilder> _function_2 = (SecurityRuleAttrBuilder it_1) -> {
+        it_1.setDirection(this.newDirection);
+        final Consumer<Uuid> _function_3 = (Uuid uuid) -> {
+          it_1.setRemoteGroupId(uuid);
+        };
+        this.newRemoteGroupId.ifPresent(_function_3);
+      };
+      SecurityRuleAttr _doubleGreaterThan_1 = XtendBuilderExtensions.<SecurityRuleAttr, SecurityRuleAttrBuilder>operator_doubleGreaterThan(_securityRuleAttrBuilder, _function_2);
+      it.addAugmentation(SecurityRuleAttr.class, _doubleGreaterThan_1);
+    };
+    return XtendBuilderExtensions.<Ace, AceBuilder>operator_doubleGreaterThan(_aceBuilder, _function);
+  }
+  
+  public IdentifiedAceBuilder sgUuid(final String sgUuid) {
+    IdentifiedAceBuilder _xblockexpression = null;
+    {
+      this.sgUuid = sgUuid;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedAceBuilder newRuleName(final String newRuleName) {
+    IdentifiedAceBuilder _xblockexpression = null;
+    {
+      this.newRuleName = newRuleName;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedAceBuilder newMatches(final Matches newMatches) {
+    IdentifiedAceBuilder _xblockexpression = null;
+    {
+      this.newMatches = newMatches;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedAceBuilder newDirection(final Class<? extends DirectionBase> newDirection) {
+    IdentifiedAceBuilder _xblockexpression = null;
+    {
+      this.newDirection = newDirection;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedAceBuilder newRemoteGroupId(final Uuid newRemoteGroupId) {
+    IdentifiedAceBuilder _xblockexpression = null;
+    {
+      Optional<Uuid> _of = Optional.<Uuid>of(newRemoteGroupId);
+      this.newRemoteGroupId = _of;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedInterfaceWithAclBuilder.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedInterfaceWithAclBuilder.java
new file mode 100644 (file)
index 0000000..3631963
--- /dev/null
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2016 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.concurrent.NotThreadSafe;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.netvirt.aclservice.tests.infra.DataTreeIdentifierDataObjectPairBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAcl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.InterfaceAclBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.interfaces._interface.AllowedAddressPairs;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+@NotThreadSafe
+@SuppressWarnings("all")
+public class IdentifiedInterfaceWithAclBuilder implements DataTreeIdentifierDataObjectPairBuilder<Interface> {
+  private String interfaceName;
+  
+  private Boolean portSecurity;
+  
+  private List<Uuid> newSecurityGroups = new ArrayList<Uuid>();
+  
+  private List<AllowedAddressPairs> ifAllowedAddressPairs = new ArrayList<AllowedAddressPairs>();
+  
+  @Override
+  public LogicalDatastoreType type() {
+    return LogicalDatastoreType.CONFIGURATION;
+  }
+  
+  @Override
+  public InstanceIdentifier<Interface> identifier() {
+    InstanceIdentifier.InstanceIdentifierBuilder<Interfaces> _builder = InstanceIdentifier.<Interfaces>builder(Interfaces.class);
+    InterfaceKey _interfaceKey = new InterfaceKey(this.interfaceName);
+    InstanceIdentifier.InstanceIdentifierBuilder<Interface> _child = _builder.<Interface, InterfaceKey>child(Interface.class, _interfaceKey);
+    return _child.build();
+  }
+  
+  @Override
+  public Interface dataObject() {
+    InterfaceBuilder _interfaceBuilder = new InterfaceBuilder();
+    final Procedure1<InterfaceBuilder> _function = (InterfaceBuilder it) -> {
+      InterfaceAclBuilder _interfaceAclBuilder = new InterfaceAclBuilder();
+      final Procedure1<InterfaceAclBuilder> _function_1 = (InterfaceAclBuilder it_1) -> {
+        it_1.setPortSecurityEnabled(this.portSecurity);
+        it_1.setSecurityGroups(this.newSecurityGroups);
+        it_1.setAllowedAddressPairs(this.ifAllowedAddressPairs);
+      };
+      InterfaceAcl _doubleGreaterThan = XtendBuilderExtensions.<InterfaceAcl, InterfaceAclBuilder>operator_doubleGreaterThan(_interfaceAclBuilder, _function_1);
+      it.addAugmentation(InterfaceAcl.class, _doubleGreaterThan);
+      it.setName(this.interfaceName);
+      it.setType(L2vlan.class);
+    };
+    return XtendBuilderExtensions.<Interface, InterfaceBuilder>operator_doubleGreaterThan(_interfaceBuilder, _function);
+  }
+  
+  public IdentifiedInterfaceWithAclBuilder interfaceName(final String interfaceName) {
+    IdentifiedInterfaceWithAclBuilder _xblockexpression = null;
+    {
+      this.interfaceName = interfaceName;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedInterfaceWithAclBuilder portSecurity(final Boolean portSecurity) {
+    IdentifiedInterfaceWithAclBuilder _xblockexpression = null;
+    {
+      this.portSecurity = portSecurity;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedInterfaceWithAclBuilder addAllNewSecurityGroups(final List<Uuid> newSecurityGroups) {
+    IdentifiedInterfaceWithAclBuilder _xblockexpression = null;
+    {
+      this.newSecurityGroups.addAll(newSecurityGroups);
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedInterfaceWithAclBuilder addAllIfAllowedAddressPairs(final List<AllowedAddressPairs> ifAllowedAddressPairs) {
+    IdentifiedInterfaceWithAclBuilder _xblockexpression = null;
+    {
+      this.ifAllowedAddressPairs.addAll(ifAllowedAddressPairs);
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedSubnetIpPrefixBuilder.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/IdentifiedSubnetIpPrefixBuilder.java
new file mode 100644 (file)
index 0000000..b035fb0
--- /dev/null
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2017 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.concurrent.NotThreadSafe;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.netvirt.aclservice.tests.infra.DataTreeIdentifierDataObjectPairBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.IpPrefixOrAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.PortsSubnetIpPrefixes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.ports.subnet.ip.prefixes.PortSubnetIpPrefixes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.ports.subnet.ip.prefixes.PortSubnetIpPrefixesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.aclservice.rev160608.ports.subnet.ip.prefixes.PortSubnetIpPrefixesKey;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+@NotThreadSafe
+@SuppressWarnings("all")
+public class IdentifiedSubnetIpPrefixBuilder implements DataTreeIdentifierDataObjectPairBuilder<PortSubnetIpPrefixes> {
+  private String newInterfaceName;
+  
+  private List<IpPrefixOrAddress> newIpPrefixOrAddress = new ArrayList<IpPrefixOrAddress>();
+  
+  @Override
+  public PortSubnetIpPrefixes dataObject() {
+    PortSubnetIpPrefixesBuilder _portSubnetIpPrefixesBuilder = new PortSubnetIpPrefixesBuilder();
+    final Procedure1<PortSubnetIpPrefixesBuilder> _function = (PortSubnetIpPrefixesBuilder it) -> {
+      PortSubnetIpPrefixesKey _portSubnetIpPrefixesKey = new PortSubnetIpPrefixesKey(this.newInterfaceName);
+      it.setKey(_portSubnetIpPrefixesKey);
+      it.setPortId(this.newInterfaceName);
+      it.setSubnetIpPrefixes(this.newIpPrefixOrAddress);
+    };
+    return XtendBuilderExtensions.<PortSubnetIpPrefixes, PortSubnetIpPrefixesBuilder>operator_doubleGreaterThan(_portSubnetIpPrefixesBuilder, _function);
+  }
+  
+  @Override
+  public InstanceIdentifier<PortSubnetIpPrefixes> identifier() {
+    InstanceIdentifier.InstanceIdentifierBuilder<PortsSubnetIpPrefixes> _builder = InstanceIdentifier.<PortsSubnetIpPrefixes>builder(PortsSubnetIpPrefixes.class);
+    PortSubnetIpPrefixesKey _portSubnetIpPrefixesKey = new PortSubnetIpPrefixesKey(this.newInterfaceName);
+    InstanceIdentifier.InstanceIdentifierBuilder<PortSubnetIpPrefixes> _child = _builder.<PortSubnetIpPrefixes, PortSubnetIpPrefixesKey>child(PortSubnetIpPrefixes.class, _portSubnetIpPrefixesKey);
+    return _child.build();
+  }
+  
+  @Override
+  public LogicalDatastoreType type() {
+    return LogicalDatastoreType.OPERATIONAL;
+  }
+  
+  public IdentifiedSubnetIpPrefixBuilder interfaceName(final String interfaceName) {
+    IdentifiedSubnetIpPrefixBuilder _xblockexpression = null;
+    {
+      this.newInterfaceName = interfaceName;
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+  
+  public IdentifiedSubnetIpPrefixBuilder addAllIpPrefixOrAddress(final List<IpPrefixOrAddress> ipPrefixOrAddress) {
+    IdentifiedSubnetIpPrefixBuilder _xblockexpression = null;
+    {
+      this.newIpPrefixOrAddress.addAll(ipPrefixOrAddress);
+      _xblockexpression = this;
+    }
+    return _xblockexpression;
+  }
+}
diff --git a/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/StateInterfaceBuilderHelper.java b/aclservice/impl/src/test/xtend-gen/org/opendaylight/netvirt/aclservice/tests/StateInterfaceBuilderHelper.java
new file mode 100644 (file)
index 0000000..83f2ca6
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2016 Red Hat, Inc. and others. 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,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.netvirt.aclservice.tests;
+
+import java.util.Collections;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.genius.mdsalutil.MDSALUtil;
+import org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state._interface.Statistics;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state._interface.StatisticsBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+@SuppressWarnings("all")
+public class StateInterfaceBuilderHelper {
+  public static void putNewStateInterface(final DataBroker dataBroker, final String interfaceName, final String mac) {
+    InstanceIdentifier.InstanceIdentifierBuilder<InterfacesState> _builder = InstanceIdentifier.<InterfacesState>builder(InterfacesState.class);
+    InterfaceKey _interfaceKey = new InterfaceKey(interfaceName);
+    InstanceIdentifier.InstanceIdentifierBuilder<Interface> _child = _builder.<Interface, InterfaceKey>child(Interface.class, _interfaceKey);
+    final InstanceIdentifier<Interface> id = _child.build();
+    InterfaceBuilder _interfaceBuilder = new InterfaceBuilder();
+    final Procedure1<InterfaceBuilder> _function = (InterfaceBuilder it) -> {
+      it.setName(interfaceName);
+      PhysAddress _physAddress = new PhysAddress(mac);
+      it.setPhysAddress(_physAddress);
+      it.setLowerLayerIf(Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("openflow:123:456")));
+      it.setIfIndex(Integer.valueOf(987));
+      it.setOperStatus(Interface.OperStatus.Up);
+      it.setAdminStatus(Interface.AdminStatus.Up);
+      it.setType(L2vlan.class);
+      StatisticsBuilder _statisticsBuilder = new StatisticsBuilder();
+      final Procedure1<StatisticsBuilder> _function_1 = (StatisticsBuilder it_1) -> {
+        DateAndTime _defaultInstance = DateAndTime.getDefaultInstance("8330-42-22T79:08:74Z");
+        it_1.setDiscontinuityTime(_defaultInstance);
+      };
+      Statistics _doubleGreaterThan = XtendBuilderExtensions.<Statistics, StatisticsBuilder>operator_doubleGreaterThan(_statisticsBuilder, _function_1);
+      it.setStatistics(_doubleGreaterThan);
+    };
+    final Interface stateInterface = XtendBuilderExtensions.<Interface, InterfaceBuilder>operator_doubleGreaterThan(_interfaceBuilder, _function);
+    MDSALUtil.<Interface>syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL, id, stateInterface);
+  }
+}
index 762f2b16320c2e608a8695421bebde922f6b28cd..352f7a68dce2be6dba3ba2eceb74a21957ca9593 100644 (file)
@@ -16,6 +16,7 @@ import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepAbstractDataTreeChangeListener;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
 import org.opendaylight.netvirt.dhcpservice.api.DhcpMConstants;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
@@ -46,8 +47,9 @@ public class DhcpMcastMacListener
     public DhcpMcastMacListener(DhcpExternalTunnelManager dhcpManager,
                                 DhcpL2GwUtil dhcpL2GwUtil,
                                 DataBroker dataBroker,
-                                final DhcpserviceConfig config) {
-        super(RemoteMcastMacs.class, DhcpMcastMacListener.class);
+                                final DhcpserviceConfig config,
+                                HwvtepNodeHACache hwvtepNodeHACache) {
+        super(RemoteMcastMacs.class, DhcpMcastMacListener.class, hwvtepNodeHACache);
         this.externalTunnelManager = dhcpManager;
         this.dataBroker = dataBroker;
         this.dhcpL2GwUtil = dhcpL2GwUtil;
index afc402bcd9054d6a54f1e74681c7489c710154d6..e513e59b90d4b04c44ffc2d59c8fb65727a230e0 100644 (file)
@@ -20,6 +20,8 @@
              interface="org.opendaylight.infrautils.jobcoordinator.JobCoordinator" />
   <reference id="l2GatewayCache"
              interface="org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayCache"/>
+  <reference id="hwvtepNodeHACache"
+             interface="org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache"/>
 
   <odl:rpc-service id="odlInterfaceRpcService"
     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
index 5fadb56c53acc1c32b28fdb189c23af816604c08..e141348cf195aac0f552f2ff79a68ee2e24675c8 100644 (file)
@@ -21,7 +21,7 @@ import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.Option;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.opendaylight.genius.utils.cache.CacheUtil;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
 import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayCache;
 import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
@@ -42,9 +42,11 @@ public class L2GwUtilsCacheCli extends OsgiCommandSupport {
     String elanName;
 
     private final L2GatewayCache l2GatewayCache;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
-    public L2GwUtilsCacheCli(L2GatewayCache l2GatewayCache) {
+    public L2GwUtilsCacheCli(L2GatewayCache l2GatewayCache, HwvtepNodeHACache hwvtepNodeHACache) {
         this.l2GatewayCache = l2GatewayCache;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
     }
 
     @Override
@@ -90,23 +92,23 @@ public class L2GwUtilsCacheCli extends OsgiCommandSupport {
     private void dumpHACache(PrintStream printStream) {
 
         printStream.println("HA enabled nodes");
-        for (InstanceIdentifier<Node> id : HwvtepHACache.getInstance().getHAChildNodes()) {
+        for (InstanceIdentifier<Node> id : hwvtepNodeHACache.getHAChildNodes()) {
             String nodeId = id.firstKeyOf(Node.class).getNodeId().getValue();
             printStream.println(nodeId);
         }
 
         printStream.println("HA parent nodes");
-        for (InstanceIdentifier<Node> id : HwvtepHACache.getInstance().getHAParentNodes()) {
+        for (InstanceIdentifier<Node> id : hwvtepNodeHACache.getHAParentNodes()) {
             String nodeId = id.firstKeyOf(Node.class).getNodeId().getValue();
             printStream.println(nodeId);
-            for (InstanceIdentifier<Node> childId : HwvtepHACache.getInstance().getChildrenForHANode(id)) {
+            for (InstanceIdentifier<Node> childId : hwvtepNodeHACache.getChildrenForHANode(id)) {
                 nodeId = childId.firstKeyOf(Node.class).getNodeId().getValue();
                 printStream.println("    " + nodeId);
             }
         }
 
         printStream.println("Connected Nodes");
-        Map<String, Boolean> nodes = HwvtepHACache.getInstance().getConnectedNodes();
+        Map<String, Boolean> nodes = hwvtepNodeHACache.getNodeConnectionStatuses();
         for (Entry<String, Boolean> entry : nodes.entrySet()) {
             printStream.print(entry.getKey());
             printStream.print("    : connected : ");
index 5ae2ca6fb287273aeee2c408df15f07a290c452a..14eacfffb05862d28ea77290b37fc1932066ff8d 100644 (file)
@@ -29,7 +29,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
 import org.opendaylight.netvirt.elan.l2gw.ha.commands.LogicalSwitchesCmd;
@@ -93,15 +93,18 @@ public class L2GwValidateCli extends OsgiCommandSupport {
 
     private final DataBroker dataBroker;
     private final L2GatewayCache l2GatewayCache;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
     private List<L2gateway> l2gateways;
     private List<L2gatewayConnection> l2gatewayConnections;
 
     private PrintWriter pw;
 
-    public L2GwValidateCli(DataBroker dataBroker, L2GatewayCache l2GatewayCache) {
+    public L2GwValidateCli(DataBroker dataBroker, L2GatewayCache l2GatewayCache,
+            HwvtepNodeHACache hwvtepNodeHACache) {
         this.dataBroker = dataBroker;
         this.l2GatewayCache = l2GatewayCache;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
     }
 
     @Override
@@ -225,8 +228,7 @@ public class L2GwValidateCli extends OsgiCommandSupport {
     private void verifyHANodes() {
         pw.println("Verifying HA nodes");
         boolean parentChildComparison = true;
-        HwvtepHACache haCache = HwvtepHACache.getInstance();
-        Set<InstanceIdentifier<Node>> parentNodes = HwvtepHACache.getInstance().getHAParentNodes();
+        Set<InstanceIdentifier<Node>> parentNodes = hwvtepNodeHACache.getHAParentNodes();
         if (HwvtepHAUtil.isEmpty(parentNodes)) {
             return;
         }
@@ -234,7 +236,7 @@ public class L2GwValidateCli extends OsgiCommandSupport {
             String parentNodeId = parentNodeIid.firstKeyOf(Node.class).getNodeId().getValue();
             Node parentOpNode = operationalNodes.get(parentNodeIid);
             Node parentCfgNode = configNodes.get(parentNodeIid);
-            Set<InstanceIdentifier<Node>> childNodeIids = haCache.getChildrenForHANode(parentNodeIid);
+            Set<InstanceIdentifier<Node>> childNodeIids = hwvtepNodeHACache.getChildrenForHANode(parentNodeIid);
             if (HwvtepHAUtil.isEmpty(childNodeIids)) {
                 pw.println("No child nodes could be found for parent node " + parentNodeId);
                 continue;
index 04165200809dc81ff3efc4666d16fa951e92c208..4653806a3d74398e3743114eb0f3272ce71c40b2 100644 (file)
@@ -11,10 +11,10 @@ import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastor
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Strings;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -24,7 +24,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.commands.SwitchesCmd;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
@@ -76,8 +76,6 @@ public final class HwvtepHAUtil {
     public static final String MANAGER_KEY = "managerKey";
     public static final String L2GW_JOB_KEY = ":l2gw";
 
-    static HwvtepHACache hwvtepHACache = HwvtepHACache.getInstance();
-
     private HwvtepHAUtil() { }
 
     public static HwvtepPhysicalLocatorRef buildLocatorRef(InstanceIdentifier<Node> nodeIid, String tepIp) {
@@ -367,31 +365,6 @@ public final class HwvtepHAUtil {
         return childNodeIds;
     }
 
-    /**
-     * Return PS children for passed PS node .
-     *
-     * @param psNodId PS node path
-     * @return child Switches
-     */
-    public static Set<InstanceIdentifier<Node>> getPSChildrenIdsForHAPSNode(String psNodId) {
-        if (!psNodId.contains(PHYSICALSWITCH)) {
-            return Collections.emptySet();
-        }
-        String nodeId = convertToGlobalNodeId(psNodId);
-        InstanceIdentifier<Node> iid = convertToInstanceIdentifier(nodeId);
-        if (hwvtepHACache.isHAParentNode(iid)) {
-            Set<InstanceIdentifier<Node>> childSwitchIds = new HashSet<>();
-            Set<InstanceIdentifier<Node>> childGlobalIds = hwvtepHACache.getChildrenForHANode(iid);
-            final String append = psNodId.substring(psNodId.indexOf(PHYSICALSWITCH));
-            for (InstanceIdentifier<Node> childId : childGlobalIds) {
-                String childIdVal = childId.firstKeyOf(Node.class).getNodeId().getValue();
-                childSwitchIds.add(convertToInstanceIdentifier(childIdVal + append));
-            }
-            return childSwitchIds;
-        }
-        return Collections.EMPTY_SET;
-    }
-
     public static HwvtepGlobalAugmentation getGlobalAugmentationOfNode(Node node) {
         HwvtepGlobalAugmentation result = null;
         if (node != null) {
@@ -606,4 +579,13 @@ public final class HwvtepHAUtil {
         }
         return true;
     }
+
+    public static void addToCacheIfHAChildNode(InstanceIdentifier<Node> childPath, Node childNode,
+            HwvtepNodeHACache hwvtepNodeHACache) {
+        String haId = HwvtepHAUtil.getHAIdFromManagerOtherConfig(childNode);
+        if (!Strings.isNullOrEmpty(haId)) {
+            InstanceIdentifier<Node> parentId = HwvtepHAUtil.createInstanceIdentifierFromHAId(haId);
+            hwvtepNodeHACache.addChild(parentId, childPath/*child*/);
+        }
+    }
 }
index 0f9e7b59fc6278f2632b369dd782009fd3c8a8d1..98f74b4b7bf57f61b6f6456da0d2269c20b5b36b 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
@@ -26,8 +27,8 @@ public class HAEventHandler implements IHAEventHandler {
     private final OpNodeUpdatedHandler opNodeUpdatedHandler = new OpNodeUpdatedHandler();
 
     @Inject
-    public HAEventHandler(DataBroker db) {
-        nodeConnectedHandler = new NodeConnectedHandler(db);
+    public HAEventHandler(DataBroker db, HwvtepNodeHACache hwvtepNodeHACache) {
+        nodeConnectedHandler = new NodeConnectedHandler(db, hwvtepNodeHACache);
     }
 
     @Override
index 7c646c6c45521157b2290fbbf06139742898985a..ad1d24995ba739d3036b94f626dad2aeca141220 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
 import org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAJobScheduler;
 import org.opendaylight.netvirt.elan.l2gw.ha.merge.GlobalAugmentationMerger;
@@ -40,15 +40,16 @@ public class NodeConnectedHandler {
 
     private static final Logger LOG = LoggerFactory.getLogger(NodeConnectedHandler.class);
 
-    GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
-    PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
-    GlobalNodeMerger globalNodeMerger = GlobalNodeMerger.getInstance();
-    PSNodeMerger psNodeMerger = PSNodeMerger.getInstance();
-    DataBroker db;
-    HwvtepHACache hwvtepHACache = HwvtepHACache.getInstance();
+    private final GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
+    private final PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
+    private final GlobalNodeMerger globalNodeMerger = GlobalNodeMerger.getInstance();
+    private final PSNodeMerger psNodeMerger = PSNodeMerger.getInstance();
+    private final DataBroker db;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
-    public NodeConnectedHandler(DataBroker db) {
+    public NodeConnectedHandler(final DataBroker db, final HwvtepNodeHACache hwvtepNodeHACache) {
         this.db = db;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
     }
 
     /**
@@ -89,7 +90,7 @@ public class NodeConnectedHandler {
                  */
                 HAJobScheduler.getInstance().submitJob(() -> {
                     try {
-                        hwvtepHACache.updateConnectedNodeStatus(childNodePath);
+                        hwvtepNodeHACache.updateConnectedNodeStatus(childNodePath);
                         LOG.info("HA child reconnected handleNodeReConnected {}",
                                 childNode.getNodeId().getValue());
                         ReadWriteTransaction tx1 = db.newReadWriteTransaction();
index a1e6496b928e5cfeb0ff37112c989f0684997597..f045129b077321a37a92086607e32d9bad5d1e0f 100644 (file)
@@ -15,12 +15,10 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.BatchedTransaction;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
 import org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAJobScheduler;
@@ -45,12 +43,11 @@ public class NodeCopier implements INodeCopier {
 
     private static final Logger LOG = LoggerFactory.getLogger(NodeCopier.class);
 
-    GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
-    PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
-    GlobalNodeMerger globalNodeMerger = GlobalNodeMerger.getInstance();
-    PSNodeMerger psNodeMerger = PSNodeMerger.getInstance();
-    DataBroker db;
-    HwvtepHACache hwvtepHACache = HwvtepHACache.getInstance();
+    private final GlobalAugmentationMerger globalAugmentationMerger = GlobalAugmentationMerger.getInstance();
+    private final PSAugmentationMerger psAugmentationMerger = PSAugmentationMerger.getInstance();
+    private final GlobalNodeMerger globalNodeMerger = GlobalNodeMerger.getInstance();
+    private final PSNodeMerger psNodeMerger = PSNodeMerger.getInstance();
+    private final DataBroker db;
 
     @Inject
     public NodeCopier(DataBroker db) {
index 489ed1cf3a7cff1ef957a9f79a42db42b2cfe7b1..7ce8b12883c5dd94c7765303f869e1f2c41d2b80 100644 (file)
@@ -10,6 +10,8 @@ package org.opendaylight.netvirt.elan.l2gw.ha.listeners;
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION;
 
 import com.google.common.base.Optional;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import javax.inject.Inject;
@@ -19,6 +21,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.IHAEventHandler;
@@ -38,8 +41,8 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
 
     @Inject
     public HAConfigNodeListener(DataBroker db, HAEventHandler haEventHandler,
-                                NodeCopier nodeCopier) throws Exception {
-        super(LogicalDatastoreType.CONFIGURATION, db);
+            NodeCopier nodeCopier, HwvtepNodeHACache hwvtepNodeHACache) throws Exception {
+        super(LogicalDatastoreType.CONFIGURATION, db, hwvtepNodeHACache);
         this.haEventHandler = haEventHandler;
         this.nodeCopier = nodeCopier;
     }
@@ -50,7 +53,7 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
                      ReadWriteTransaction tx) throws ReadFailedException {
         //copy the ps node data to children
         String psId = haPSNode.getNodeId().getValue();
-        Set<InstanceIdentifier<Node>> childSwitchIds = HwvtepHAUtil.getPSChildrenIdsForHAPSNode(psId);
+        Set<InstanceIdentifier<Node>> childSwitchIds = getPSChildrenIdsForHAPSNode(psId);
         if (childSwitchIds.isEmpty()) {
             LOG.error("Failed to find any ha children {}", haPsPath);
             return;
@@ -72,7 +75,7 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
             ReadWriteTransaction tx) throws InterruptedException, ExecutionException, ReadFailedException {
         //copy the ps node data to children
         String psId = haPSUpdated.getNodeId().getValue();
-        Set<InstanceIdentifier<Node>> childSwitchIds = HwvtepHAUtil.getPSChildrenIdsForHAPSNode(psId);
+        Set<InstanceIdentifier<Node>> childSwitchIds = getPSChildrenIdsForHAPSNode(psId);
         for (InstanceIdentifier<Node> childSwitchId : childSwitchIds) {
             haEventHandler.copyHAPSUpdateToChild(childSwitchId, mod, tx);
         }
@@ -85,7 +88,7 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
                             DataObjectModification<Node> mod,
                             ReadWriteTransaction tx)
             throws InterruptedException, ExecutionException, ReadFailedException {
-        Set<InstanceIdentifier<Node>> childNodeIds = hwvtepHACache.getChildrenForHANode(key);
+        Set<InstanceIdentifier<Node>> childNodeIds = getHwvtepNodeHACache().getChildrenForHANode(key);
         for (InstanceIdentifier<Node> haChildNodeId : childNodeIds) {
             haEventHandler.copyHAGlobalUpdateToChild(haChildNodeId, mod, tx);
         }
@@ -97,7 +100,7 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
                         ReadWriteTransaction tx) throws ReadFailedException {
         //delete ps children nodes
         String psId = deletedPsNode.getNodeId().getValue();
-        Set<InstanceIdentifier<Node>> childPsIds = HwvtepHAUtil.getPSChildrenIdsForHAPSNode(psId);
+        Set<InstanceIdentifier<Node>> childPsIds = getPSChildrenIdsForHAPSNode(psId);
         for (InstanceIdentifier<Node> childPsId : childPsIds) {
             HwvtepHAUtil.deleteNodeIfPresent(tx, CONFIGURATION, childPsId);
         }
@@ -109,10 +112,29 @@ public class HAConfigNodeListener extends HwvtepNodeBaseListener {
                             ReadWriteTransaction tx)
             throws ReadFailedException {
         //delete child nodes
-        Set<InstanceIdentifier<Node>> children = hwvtepHACache.getChildrenForHANode(key);
+        Set<InstanceIdentifier<Node>> children = getHwvtepNodeHACache().getChildrenForHANode(key);
         for (InstanceIdentifier<Node> childId : children) {
             HwvtepHAUtil.deleteNodeIfPresent(tx, CONFIGURATION, childId);
         }
         HwvtepHAUtil.deletePSNodesOfNode(key, haNode, tx);
     }
+
+    private Set<InstanceIdentifier<Node>> getPSChildrenIdsForHAPSNode(String psNodId) {
+        if (!psNodId.contains(HwvtepHAUtil.PHYSICALSWITCH)) {
+            return Collections.emptySet();
+        }
+        String nodeId = HwvtepHAUtil.convertToGlobalNodeId(psNodId);
+        InstanceIdentifier<Node> iid = HwvtepHAUtil.convertToInstanceIdentifier(nodeId);
+        if (getHwvtepNodeHACache().isHAParentNode(iid)) {
+            Set<InstanceIdentifier<Node>> childSwitchIds = new HashSet<>();
+            Set<InstanceIdentifier<Node>> childGlobalIds = getHwvtepNodeHACache().getChildrenForHANode(iid);
+            final String append = psNodId.substring(psNodId.indexOf(HwvtepHAUtil.PHYSICALSWITCH));
+            for (InstanceIdentifier<Node> childId : childGlobalIds) {
+                String childIdVal = childId.firstKeyOf(Node.class).getNodeId().getValue();
+                childSwitchIds.add(HwvtepHAUtil.convertToInstanceIdentifier(childIdVal + append));
+            }
+            return childSwitchIds;
+        }
+        return Collections.emptySet();
+    }
 }
index cfeb7f06515ab868d8d4f00929452e9841ec68c4..c8ba9206c32f6a59b556aad8b5ba3d7e5956cc09 100644 (file)
@@ -14,6 +14,7 @@ import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
 import org.opendaylight.netvirt.elan.l2gw.ha.commands.LocalMcastCmd;
 import org.opendaylight.netvirt.elan.l2gw.ha.commands.LocalUcastCmd;
@@ -49,18 +50,18 @@ public class HAListeners implements AutoCloseable {
     private final List<HwvtepNodeDataListener<?>> listeners = new ArrayList<>();
 
     @Inject
-    public HAListeners(DataBroker broker) {
+    public HAListeners(DataBroker broker, HwvtepNodeHACache hwvtepNodeHACache) {
         this.broker = broker;
-        registerListener(LocalMcastMacs.class, new LocalMcastCmd());
-        registerListener(RemoteMcastMacs.class, new RemoteMcastCmd());
-        registerListener(LocalUcastMacs.class, new LocalUcastCmd());
-        registerListener(RemoteUcastMacs.class, new RemoteUcastCmd());
-        registerListener(LogicalSwitches.class, new LogicalSwitchesCmd());
+        registerListener(LocalMcastMacs.class, new LocalMcastCmd(), hwvtepNodeHACache);
+        registerListener(RemoteMcastMacs.class, new RemoteMcastCmd(), hwvtepNodeHACache);
+        registerListener(LocalUcastMacs.class, new LocalUcastCmd(), hwvtepNodeHACache);
+        registerListener(RemoteUcastMacs.class, new RemoteUcastCmd(), hwvtepNodeHACache);
+        registerListener(LogicalSwitches.class, new LogicalSwitchesCmd(), hwvtepNodeHACache);
 
         PhysicalLocatorCmd physicalLocatorCmd = new PhysicalLocatorCmd();
-        listeners.add(new PhysicalLocatorListener(broker, physicalLocatorCmd,
+        listeners.add(new PhysicalLocatorListener(broker, hwvtepNodeHACache, physicalLocatorCmd,
                 LogicalDatastoreType.CONFIGURATION));
-        listeners.add(new PhysicalLocatorListener(broker, physicalLocatorCmd,
+        listeners.add(new PhysicalLocatorListener(broker, hwvtepNodeHACache, physicalLocatorCmd,
                 LogicalDatastoreType.OPERATIONAL));
     }
 
@@ -73,20 +74,21 @@ public class HAListeners implements AutoCloseable {
     }
 
     private <T extends ChildOf<HwvtepGlobalAttributes>> void registerListener(Class<T> clazz,
-                                                                              MergeCommand<T, ?, ?> mergeCommand) {
-        listeners.add(new GlobalAugmentationListener(broker, clazz, HwvtepNodeDataListener.class, mergeCommand,
-                LogicalDatastoreType.CONFIGURATION));
-        listeners.add(new GlobalAugmentationListener(broker, clazz, HwvtepNodeDataListener.class, mergeCommand,
-                LogicalDatastoreType.OPERATIONAL));
+            MergeCommand<T, ?, ?> mergeCommand, HwvtepNodeHACache hwvtepNodeHACache) {
+        listeners.add(new GlobalAugmentationListener(broker, hwvtepNodeHACache, clazz, HwvtepNodeDataListener.class,
+                mergeCommand, LogicalDatastoreType.CONFIGURATION));
+        listeners.add(new GlobalAugmentationListener(broker, hwvtepNodeHACache, clazz, HwvtepNodeDataListener.class,
+                mergeCommand, LogicalDatastoreType.OPERATIONAL));
     }
 
     private static class GlobalAugmentationListener<T extends DataObject
             & ChildOf<HwvtepGlobalAttributes>> extends HwvtepNodeDataListener<T> {
 
-        GlobalAugmentationListener(DataBroker broker, Class<T> clazz, Class<HwvtepNodeDataListener<T>> eventClazz,
+        GlobalAugmentationListener(DataBroker broker, HwvtepNodeHACache hwvtepNodeHACache,
+                                   Class<T> clazz, Class<HwvtepNodeDataListener<T>> eventClazz,
                                    MergeCommand<T, ?, ?> mergeCommand,
                                    LogicalDatastoreType datastoreType) {
-            super(broker, clazz, eventClazz, mergeCommand, datastoreType);
+            super(broker, hwvtepNodeHACache, clazz, eventClazz, mergeCommand, datastoreType);
         }
 
         @Override
@@ -99,9 +101,10 @@ public class HAListeners implements AutoCloseable {
 
     private static class PhysicalLocatorListener extends HwvtepNodeDataListener<TerminationPoint> {
 
-        PhysicalLocatorListener(DataBroker broker, MergeCommand<TerminationPoint, ?, ?> mergeCommand,
-                LogicalDatastoreType datastoreType) {
-            super(broker, TerminationPoint.class, (Class)PhysicalLocatorListener.class, mergeCommand, datastoreType);
+        PhysicalLocatorListener(DataBroker broker, HwvtepNodeHACache hwvtepNodeHACache,
+                MergeCommand<TerminationPoint, ?, ?> mergeCommand, LogicalDatastoreType datastoreType) {
+            super(broker, hwvtepNodeHACache, TerminationPoint.class, (Class)PhysicalLocatorListener.class,
+                    mergeCommand, datastoreType);
         }
 
         @Override
index 23583fff418031658e4320ea4090680bf57f32c5..5f250efacf277d32754afb4c5e0444f8a177edff 100644 (file)
@@ -8,10 +8,8 @@
 package org.opendaylight.netvirt.elan.l2gw.ha.listeners;
 
 import com.google.common.base.Optional;
-import com.google.common.base.Strings;
 import com.google.common.collect.Sets;
 import java.util.Collections;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -26,9 +24,8 @@ import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Managers;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
@@ -42,8 +39,8 @@ public class HAOpClusteredListener extends HwvtepNodeBaseListener implements Clu
     private final Map<InstanceIdentifier<Node>, Set<Consumer<Optional<Node>>>> waitingJobs = new ConcurrentHashMap<>();
 
     @Inject
-    public HAOpClusteredListener(DataBroker db) throws Exception {
-        super(LogicalDatastoreType.OPERATIONAL, db);
+    public HAOpClusteredListener(DataBroker db, HwvtepNodeHACache hwvtepNodeHACache) throws Exception {
+        super(LogicalDatastoreType.OPERATIONAL, db, hwvtepNodeHACache);
         LOG.info("Registering HAOpClusteredListener");
     }
 
@@ -54,26 +51,26 @@ public class HAOpClusteredListener extends HwvtepNodeBaseListener implements Clu
     @Override
     synchronized  void onGlobalNodeDelete(InstanceIdentifier<Node> key, Node added, ReadWriteTransaction tx)  {
         connectedNodes.remove(key);
-        hwvtepHACache.updateDisconnectedNodeStatus(key);
+        getHwvtepNodeHACache().updateDisconnectedNodeStatus(key);
     }
 
     @Override
     void onPsNodeDelete(InstanceIdentifier<Node> key, Node addedPSNode, ReadWriteTransaction tx)  {
         connectedNodes.remove(key);
-        hwvtepHACache.updateDisconnectedNodeStatus(key);
+        getHwvtepNodeHACache().updateDisconnectedNodeStatus(key);
     }
 
     @Override
     void onPsNodeAdd(InstanceIdentifier<Node> key, Node addedPSNode, ReadWriteTransaction tx)    {
         connectedNodes.add(key);
-        hwvtepHACache.updateConnectedNodeStatus(key);
+        getHwvtepNodeHACache().updateConnectedNodeStatus(key);
     }
 
     @Override
     public synchronized void onGlobalNodeAdd(InstanceIdentifier<Node> key, Node updated, ReadWriteTransaction tx) {
         connectedNodes. add(key);
-        addToCacheIfHAChildNode(key, updated);
-        hwvtepHACache.updateConnectedNodeStatus(key);
+        HwvtepHAUtil.addToCacheIfHAChildNode(key, updated, getHwvtepNodeHACache());
+        getHwvtepNodeHACache().updateConnectedNodeStatus(key);
         if (waitingJobs.containsKey(key) && !waitingJobs.get(key).isEmpty()) {
             try {
                 HAJobScheduler jobScheduler = HAJobScheduler.getInstance();
@@ -91,24 +88,15 @@ public class HAOpClusteredListener extends HwvtepNodeBaseListener implements Clu
         }
     }
 
-    public static void addToCacheIfHAChildNode(InstanceIdentifier<Node> childPath, Node childNode) {
-        String haId = HwvtepHAUtil.getHAIdFromManagerOtherConfig(childNode);
-        if (!Strings.isNullOrEmpty(haId)) {
-            InstanceIdentifier<Node> parentId = HwvtepHAUtil.createInstanceIdentifierFromHAId(haId);
-            //HwvtepHAUtil.updateL2GwCacheNodeId(childNode, parentId);
-            hwvtepHACache.addChild(parentId, childPath/*child*/);
-        }
-    }
-
     @Override
     void onGlobalNodeUpdate(InstanceIdentifier<Node> childPath,
                             Node updatedChildNode,
                             Node beforeChildNode,
                             DataObjectModification<Node> mod,
                             ReadWriteTransaction tx) {
-        boolean wasHAChild = hwvtepHACache.isHAEnabledDevice(childPath);
+        boolean wasHAChild = getHwvtepNodeHACache().isHAEnabledDevice(childPath);
         addToHACacheIfBecameHAChild(childPath, updatedChildNode, beforeChildNode);
-        boolean isHAChild = hwvtepHACache.isHAEnabledDevice(childPath);
+        boolean isHAChild = getHwvtepNodeHACache().isHAEnabledDevice(childPath);
 
 
         if (!wasHAChild && isHAChild) {
@@ -127,46 +115,6 @@ public class HAOpClusteredListener extends HwvtepNodeBaseListener implements Clu
         return nodeId;
     }
 
-    /**
-     * If Normal non-ha node changes to HA node , its added to HA cache.
-     *
-     * @param childPath HA child path which got converted to HA node
-     * @param updatedChildNode updated Child node
-     * @param beforeChildNode non-ha node before updated to HA node
-     */
-    public static void addToHACacheIfBecameHAChild(InstanceIdentifier<Node> childPath,
-                                                   Node updatedChildNode,
-                                                   Node beforeChildNode) {
-        HwvtepGlobalAugmentation updatedAugmentaion = updatedChildNode.getAugmentation(HwvtepGlobalAugmentation.class);
-        HwvtepGlobalAugmentation beforeAugmentaion = null;
-        if (beforeChildNode != null) {
-            beforeAugmentaion = beforeChildNode.getAugmentation(HwvtepGlobalAugmentation.class);
-        }
-        List<Managers> up = null;
-        List<Managers> be = null;
-        if (updatedAugmentaion != null) {
-            up = updatedAugmentaion.getManagers();
-        }
-        if (beforeAugmentaion != null) {
-            be = beforeAugmentaion.getManagers();
-        }
-        if (up != null) {
-            if (be != null) {
-                if (up.size() > 0) {
-                    if (be.size() > 0) {
-                        Managers m1 = up.get(0);
-                        Managers m2 = be.get(0);
-                        if (!m1.equals(m2)) {
-                            LOG.trace("Manager entry updated for node {} ", updatedChildNode.getNodeId().getValue());
-                            addToCacheIfHAChildNode(childPath, updatedChildNode);
-                        }
-                    }
-                }
-            }
-            //TODO handle unhaed case
-        }
-    }
-
     public Set<InstanceIdentifier<Node>> getConnected(Set<InstanceIdentifier<Node>> candidateds) {
         if (candidateds == null) {
             return Collections.emptySet();
index 05fc5c995d45f1add6ab48f59a4b44ce321731aa..1f511c755a6a5afeeeb8913b292f9c888d805377 100644 (file)
@@ -11,21 +11,19 @@ import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastor
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.function.BiPredicate;
-import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.IHAEventHandler;
@@ -46,8 +44,6 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
         return psNodeId.startsWith(globalNodeId) && psNodeId.contains("physicalswitch");
     };
 
-    static Predicate<InstanceIdentifier<Node>> IS_NOT_HA_CHILD = (iid) -> hwvtepHACache.getParent(iid) == null;
-
     private final IHAEventHandler haEventHandler;
     private final HAOpClusteredListener haOpClusteredListener;
     private final NodeCopier nodeCopier;
@@ -55,8 +51,8 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
     @Inject
     public HAOpNodeListener(DataBroker db, HAEventHandler haEventHandler,
                             HAOpClusteredListener haOpClusteredListener,
-                            NodeCopier nodeCopier) throws Exception {
-        super(OPERATIONAL, db);
+                            NodeCopier nodeCopier, HwvtepNodeHACache hwvtepNodeHACache) throws Exception {
+        super(OPERATIONAL, db, hwvtepNodeHACache);
         this.haEventHandler = haEventHandler;
         this.haOpClusteredListener = haOpClusteredListener;
         this.nodeCopier = nodeCopier;
@@ -75,10 +71,10 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
         //copy ha global config node to child global config node
         LOG.trace("Node connected {} - Checking if Ha or Non-Ha enabled ", childNode.getNodeId().getValue());
         haOpClusteredListener.onGlobalNodeAdd(childGlobalPath, childNode, tx);
-        if (IS_NOT_HA_CHILD.test(childGlobalPath)) {
+        if (isNotHAChild(childGlobalPath)) {
             return;
         }
-        InstanceIdentifier<Node> haNodePath = hwvtepHACache.getParent(childGlobalPath);
+        InstanceIdentifier<Node> haNodePath = getHwvtepNodeHACache().getParent(childGlobalPath);
         LOG.trace("Ha enabled child node connected {}", childNode.getNodeId().getValue());
         try {
             nodeCopier.copyGlobalNode(Optional.fromNullable(childNode),
@@ -101,14 +97,14 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
 
         String oldHAId = HwvtepHAUtil.getHAIdFromManagerOtherConfig(originalChildNode);
         if (!Strings.isNullOrEmpty(oldHAId)) { //was already ha child
-            InstanceIdentifier<Node> haPath = hwvtepHACache.getParent(childGlobalPath);
+            InstanceIdentifier<Node> haPath = getHwvtepNodeHACache().getParent(childGlobalPath);
             LOG.debug("Copy oper update from child {} to parent {}", childGlobalPath, haPath);
             haEventHandler.copyChildGlobalOpUpdateToHAParent(haPath, mod, tx);
             return;//TODO handle unha case
         }
 
-        HAOpClusteredListener.addToHACacheIfBecameHAChild(childGlobalPath, updatedChildNode, originalChildNode);
-        if (IS_NOT_HA_CHILD.test(childGlobalPath)) {
+        addToHACacheIfBecameHAChild(childGlobalPath, updatedChildNode, originalChildNode);
+        if (isNotHAChild(childGlobalPath)) {
             return;
         }
         LOG.info("{} became ha child ", updatedChildNode.getNodeId().getValue());
@@ -121,13 +117,13 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
                             ReadWriteTransaction tx) throws
             ReadFailedException {
         haOpClusteredListener.onGlobalNodeDelete(childGlobalPath, childNode, tx);
-        if (IS_NOT_HA_CHILD.test(childGlobalPath)) {
+        if (isNotHAChild(childGlobalPath)) {
             LOG.info("non ha child global delete {} ", getNodeId(childGlobalPath));
             return;
         }
         LOG.info("ha child global delete {} ", getNodeId(childGlobalPath));
-        InstanceIdentifier<Node> haNodePath = hwvtepHACache.getParent(childGlobalPath);
-        Set<InstanceIdentifier<Node>> children = hwvtepHACache.getChildrenForHANode(haNodePath);
+        InstanceIdentifier<Node> haNodePath = getHwvtepNodeHACache().getParent(childGlobalPath);
+        Set<InstanceIdentifier<Node>> children = getHwvtepNodeHACache().getChildrenForHANode(haNodePath);
         if (haOpClusteredListener.getConnected(children).isEmpty()) {
             LOG.info("All child deleted for ha node {} ", HwvtepHAUtil.getNodeIdVal(haNodePath));
             //ha ps delete is taken care by ps node delete
@@ -150,11 +146,11 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
         if (!haOpClusteredListener.getConnectedNodes().contains(childGlobalPath)) {
             return;
         }
-        if (IS_NOT_HA_CHILD.test(childGlobalPath)) {
+        if (isNotHAChild(childGlobalPath)) {
             return;
         }
         LOG.info("ha ps child connected {} ", getNodeId(childPsPath));
-        InstanceIdentifier<Node> haGlobalPath = hwvtepHACache.getParent(childGlobalPath);
+        InstanceIdentifier<Node> haGlobalPath = getHwvtepNodeHACache().getParent(childGlobalPath);
         InstanceIdentifier<Node> haPsPath = HwvtepHAUtil.convertPsPath(childPsNode, haGlobalPath);
         try {
             nodeCopier.copyPSNode(Optional.fromNullable(childPsNode), childPsPath, haPsPath, haGlobalPath,
@@ -172,10 +168,10 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
             DataObjectModification<Node> mod,
             ReadWriteTransaction tx) throws ReadFailedException {
         InstanceIdentifier<Node> childGlobalPath = HwvtepHAUtil.getGlobalNodePathFromPSNode(updatedChildPSNode);
-        if (IS_NOT_HA_CHILD.test(childGlobalPath)) {
+        if (isNotHAChild(childGlobalPath)) {
             return;
         }
-        InstanceIdentifier<Node> haGlobalPath = hwvtepHACache.getParent(childGlobalPath);
+        InstanceIdentifier<Node> haGlobalPath = getHwvtepNodeHACache().getParent(childGlobalPath);
         haEventHandler.copyChildPsOpUpdateToHAParent(updatedChildPSNode, haGlobalPath, mod, tx);
     }
 
@@ -187,12 +183,12 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
         //find if all child ps nodes disconnected then delete parent ps node
         haOpClusteredListener.onPsNodeDelete(childPsPath, childPsNode, tx);
         InstanceIdentifier<Node> disconnectedChildGlobalPath = HwvtepHAUtil.getGlobalNodePathFromPSNode(childPsNode);
-        if (IS_NOT_HA_CHILD.test(disconnectedChildGlobalPath)) {
+        if (isNotHAChild(disconnectedChildGlobalPath)) {
             LOG.info("on non ha ps child delete {} ", getNodeId(childPsPath));
             return;
         }
-        InstanceIdentifier<Node> haGlobalPath = hwvtepHACache.getParent(disconnectedChildGlobalPath);
-        Set<InstanceIdentifier<Node>> childPsPaths = hwvtepHACache.getChildrenForHANode(haGlobalPath).stream()
+        InstanceIdentifier<Node> haGlobalPath = getHwvtepNodeHACache().getParent(disconnectedChildGlobalPath);
+        Set<InstanceIdentifier<Node>> childPsPaths = getHwvtepNodeHACache().getChildrenForHANode(haGlobalPath).stream()
                 .map((childGlobalPath) -> HwvtepHAUtil.convertPsPath(childPsNode, childGlobalPath))
                 .collect(Collectors.toSet());
         //TODO validate what if this is null
@@ -238,4 +234,8 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener {
             }
         });
     }
+
+    private boolean isNotHAChild(InstanceIdentifier<Node> nodeId) {
+        return  getHwvtepNodeHACache().getParent(nodeId) == null;
+    }
 }
index 6122644bf5740cfa79b479cb5173e0b8510fb31f..8597706e796d9372045dcf4e24c50d074f94decb 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.netvirt.elan.l2gw.ha.listeners;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.concurrent.ExecutionException;
 import javax.annotation.PreDestroy;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -19,10 +20,12 @@ import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.genius.datastoreutils.TaskRetryLooper;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
 import org.opendaylight.netvirt.elan.l2gw.ha.BatchedTransaction;
 import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Managers;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
@@ -38,13 +41,14 @@ public abstract class HwvtepNodeBaseListener implements DataTreeChangeListener<N
     private static final int STARTUP_LOOP_TICK = 500;
     private static final int STARTUP_LOOP_MAX_RETRIES = 8;
 
-    static HwvtepHACache hwvtepHACache = HwvtepHACache.getInstance();
-
     private final ListenerRegistration<HwvtepNodeBaseListener> registration;
     private final DataBroker dataBroker;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
-    public HwvtepNodeBaseListener(LogicalDatastoreType datastoreType, DataBroker dataBroker) throws Exception {
+    public HwvtepNodeBaseListener(LogicalDatastoreType datastoreType, DataBroker dataBroker,
+            HwvtepNodeHACache hwvtepNodeHACache) throws Exception {
         this.dataBroker = dataBroker;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
 
         final DataTreeIdentifier<Node> treeId = new DataTreeIdentifier<>(datastoreType, getWildcardPath());
         TaskRetryLooper looper = new TaskRetryLooper(STARTUP_LOOP_TICK, STARTUP_LOOP_MAX_RETRIES);
@@ -56,6 +60,43 @@ public abstract class HwvtepNodeBaseListener implements DataTreeChangeListener<N
         return dataBroker;
     }
 
+    protected HwvtepNodeHACache getHwvtepNodeHACache() {
+        return hwvtepNodeHACache;
+    }
+
+    /**
+     * If Normal non-ha node changes to HA node , its added to HA cache.
+     *
+     * @param childPath HA child path which got converted to HA node
+     * @param updatedChildNode updated Child node
+     * @param beforeChildNode non-ha node before updated to HA node
+     */
+    protected void addToHACacheIfBecameHAChild(InstanceIdentifier<Node> childPath, Node updatedChildNode,
+            Node beforeChildNode) {
+        HwvtepGlobalAugmentation updatedAugmentaion = updatedChildNode.getAugmentation(HwvtepGlobalAugmentation.class);
+        HwvtepGlobalAugmentation beforeAugmentaion = null;
+        if (beforeChildNode != null) {
+            beforeAugmentaion = beforeChildNode.getAugmentation(HwvtepGlobalAugmentation.class);
+        }
+        List<Managers> up = null;
+        List<Managers> be = null;
+        if (updatedAugmentaion != null) {
+            up = updatedAugmentaion.getManagers();
+        }
+        if (beforeAugmentaion != null) {
+            be = beforeAugmentaion.getManagers();
+        }
+
+        if (up != null && be != null && up.size() > 0 && be.size() > 0) {
+            Managers m1 = up.get(0);
+            Managers m2 = be.get(0);
+            if (!m1.equals(m2)) {
+                LOG.trace("Manager entry updated for node {} ", updatedChildNode.getNodeId().getValue());
+                HwvtepHAUtil.addToCacheIfHAChildNode(childPath, updatedChildNode, hwvtepNodeHACache);
+            }
+        }
+    }
+
     @Override
     public void onDataTreeChanged(final Collection<DataTreeModification<Node>> changes) {
         HAJobScheduler.getInstance().submitJob(() -> {
index 5e306e70f158c03df382d37ef7d0b74ea660ebef..04cfefd7d435892d46d10b89d7dc20e404baa87c 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
 import org.opendaylight.netvirt.elan.l2gw.ha.commands.MergeCommand;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs;
@@ -44,13 +44,16 @@ public abstract class HwvtepNodeDataListener<T extends DataObject>
     private final LogicalDatastoreType datastoreType;
     private final BiConsumer<InstanceIdentifier<T>, T> addOperation;
     private final BiConsumer<InstanceIdentifier<T>, T> removeOperation;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
     public HwvtepNodeDataListener(DataBroker broker,
+                                  HwvtepNodeHACache hwvtepNodeHACache,
                                   Class<T> clazz,
                                   Class<HwvtepNodeDataListener<T>> eventClazz,
                                   MergeCommand<T, ?, ?> mergeCommand,
                                   LogicalDatastoreType datastoreType) {
         super(clazz, eventClazz);
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
         this.txRunner = new ManagedNewTransactionRunnerImpl(broker);
         this.mergeCommand = mergeCommand;
         this.datastoreType = datastoreType;
@@ -186,11 +189,11 @@ public abstract class HwvtepNodeDataListener<T extends DataObject>
 
     protected Set<InstanceIdentifier<Node>> getChildrenForHANode(InstanceIdentifier identifier) {
         InstanceIdentifier<Node> parent = identifier.firstIdentifierOf(Node.class);
-        return HwvtepHACache.getInstance().getChildrenForHANode(parent);
+        return hwvtepNodeHACache.getChildrenForHANode(parent);
     }
 
     protected InstanceIdentifier<Node> getHAParent(InstanceIdentifier identifier) {
         InstanceIdentifier<Node> child = identifier.firstIdentifierOf(Node.class);
-        return HwvtepHACache.getInstance().getParent(child);
+        return hwvtepNodeHACache.getParent(child);
     }
 }
index c115a6576edff5f6a0c466b795491474e0cc2f01..8184288a40e1bc16913405cea6b386d07472a7ad 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepClusteredDataTreeChangeListener;
 import org.opendaylight.genius.utils.batching.ResourceBatchingManager;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepUtils;
 import org.opendaylight.netvirt.elan.cache.ElanInstanceCache;
 import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
@@ -46,8 +47,8 @@ public class HwvtepLocalUcastMacListener extends
     private final ElanInstanceCache elanInstanceCache;
 
     public HwvtepLocalUcastMacListener(DataBroker broker, ElanL2GatewayUtils elanL2GatewayUtils,
-            ElanInstanceCache elanInstanceCache) {
-        super(LocalUcastMacs.class, HwvtepLocalUcastMacListener.class);
+            ElanInstanceCache elanInstanceCache, HwvtepNodeHACache hwvtepNodeHACache) {
+        super(LocalUcastMacs.class, HwvtepLocalUcastMacListener.class, hwvtepNodeHACache);
 
         this.broker = broker;
         this.elanL2GatewayUtils = elanL2GatewayUtils;
index df6e11ea39c8f10e3d7f21750d30fac043356f9e..4ce137005fe112b931ef0b622dc1ed4153807b9c 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.netvirt.elan.l2gw.listeners;
 
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepClusteredDataTreeChangeListener;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.netvirt.elan.cache.ElanInstanceCache;
 import org.opendaylight.netvirt.elan.l2gw.jobs.LogicalSwitchAddedJob;
@@ -67,8 +68,9 @@ public class HwvtepLogicalSwitchListener extends
     public HwvtepLogicalSwitchListener(ElanInstanceCache elanInstanceCache, ElanL2GatewayUtils elanL2GatewayUtils,
             ElanClusterUtils elanClusterUtils, ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils,
             L2GatewayConnectionUtils l2GatewayConnectionUtils, L2GatewayDevice l2GatewayDevice,
-            String logicalSwitchName, Devices physicalDevice, Integer defaultVlanId, Uuid l2GwConnId) {
-        super(LogicalSwitches.class, HwvtepLogicalSwitchListener.class);
+            String logicalSwitchName, Devices physicalDevice, Integer defaultVlanId, Uuid l2GwConnId,
+            HwvtepNodeHACache hwvtepNodeHACache) {
+        super(LogicalSwitches.class, HwvtepLogicalSwitchListener.class, hwvtepNodeHACache);
         this.elanInstanceCache = elanInstanceCache;
         this.elanL2GatewayUtils = elanL2GatewayUtils;
         this.elanClusterUtils = elanClusterUtils;
index d2ba464009aea0374bcdef8a397d7b36ff2c9b84..2f113bb6c05b73f5e2146c3a7646eb58da87e455 100644 (file)
@@ -14,22 +14,19 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
-import java.util.concurrent.ExecutionException;
 import java.util.function.BiPredicate;
 import java.util.function.Predicate;
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepAbstractDataTreeChangeListener;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
@@ -94,37 +91,16 @@ public class HwvtepPhysicalSwitchListener
 
     private final ElanClusterUtils elanClusterUtils;
 
-    private final HwvtepHACache hwvtepHACache = HwvtepHACache.getInstance();
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
     private final L2gwServiceProvider l2gwServiceProvider;
 
-    private final BiPredicate<L2GatewayDevice, InstanceIdentifier<Node>> childConnectedAfterParent =
-        (l2GwDevice, globalIid) -> {
-            return !hwvtepHACache.isHAParentNode(globalIid)
-                    && l2GwDevice != null;
-                    // FIXME: The following call to equals compares different types (String and InstanceIdentifier) and
-                    // thus will always return false. I don't know what the intention is here so commented out for now.
-                    //&& !Objects.equals(l2GwDevice.getHwvtepNodeId(), globalIid);
-        };
+    private final BiPredicate<L2GatewayDevice, InstanceIdentifier<Node>> childConnectedAfterParent;
 
     private final Predicate<L2GatewayDevice> alreadyHasL2Gwids =
         (l2GwDevice) -> l2GwDevice != null && HwvtepHAUtil.isEmpty(l2GwDevice.getL2GatewayIds());
 
-    private final BiPredicate<L2GatewayDevice, InstanceIdentifier<Node>> parentConnectedAfterChild =
-        (l2GwDevice, globalIid) -> {
-            InstanceIdentifier<Node> existingIid = globalIid;
-            if (l2GwDevice != null && l2GwDevice.getHwvtepNodeId() != null) {
-                existingIid = HwvtepHAUtil.convertToInstanceIdentifier(l2GwDevice.getHwvtepNodeId());
-            }
-            return hwvtepHACache.isHAParentNode(globalIid)
-                    && l2GwDevice != null
-                    // FIXME: The following call to equals compares different types (String and InstanceIdentifier) and
-                    // thus will always return false. I don't know what the intention is here so commented out for now.
-                    //&& !Objects.equals(l2GwDevice.getHwvtepNodeId(), globalIid)
-                    && Objects.equals(globalIid, hwvtepHACache.getParent(existingIid));
-        };
-
-
+    private final BiPredicate<L2GatewayDevice, InstanceIdentifier<Node>> parentConnectedAfterChild;
     private final HAOpClusteredListener haOpClusteredListener;
 
     private final L2GatewayCache l2GatewayCache;
@@ -133,20 +109,14 @@ public class HwvtepPhysicalSwitchListener
 
     /**
      * Instantiates a new hwvtep physical switch listener.
-     * @param dataBroker DataBroker
-     * @param itmRpcService ItmRpcService
-     * @param elanClusterUtils ElanClusterUtils
-     * @param l2gwServiceProvider L2gwServiceProvider
-     * @param haListener HAOpClusteredListener
-     * @param l2GatewayCache L2GatewayCache
-     * @param staleVlanBindingsCleaner StaleVlanBindingsCleaner
      */
     @Inject
     public HwvtepPhysicalSwitchListener(final DataBroker dataBroker, ItmRpcService itmRpcService,
             ElanClusterUtils elanClusterUtils, L2gwServiceProvider l2gwServiceProvider,
             HAOpClusteredListener haListener, L2GatewayCache l2GatewayCache,
-            StaleVlanBindingsCleaner staleVlanBindingsCleaner) {
-        super(PhysicalSwitchAugmentation.class, HwvtepPhysicalSwitchListener.class);
+            StaleVlanBindingsCleaner staleVlanBindingsCleaner,
+            HwvtepNodeHACache hwvtepNodeHACache) {
+        super(PhysicalSwitchAugmentation.class, HwvtepPhysicalSwitchListener.class, hwvtepNodeHACache);
         this.dataBroker = dataBroker;
         this.txRunner = new ManagedNewTransactionRunnerImpl(dataBroker);
         this.itmRpcService = itmRpcService;
@@ -155,6 +125,28 @@ public class HwvtepPhysicalSwitchListener
         this.staleVlanBindingsCleaner = staleVlanBindingsCleaner;
         this.haOpClusteredListener = haListener;
         this.l2GatewayCache = l2GatewayCache;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
+
+        childConnectedAfterParent = (l2GwDevice, globalIid) -> {
+            return !hwvtepNodeHACache.isHAParentNode(globalIid)
+                    && l2GwDevice != null;
+            // FIXME: The following call to equals compares different types (String and InstanceIdentifier) and
+            // thus will always return false. I don't know what the intention is here so commented out for now.
+            //&& !Objects.equals(l2GwDevice.getHwvtepNodeId(), globalIid);
+        };
+
+        parentConnectedAfterChild = (l2GwDevice, globalIid) -> {
+            InstanceIdentifier<Node> existingIid = globalIid;
+            if (l2GwDevice != null && l2GwDevice.getHwvtepNodeId() != null) {
+                existingIid = HwvtepHAUtil.convertToInstanceIdentifier(l2GwDevice.getHwvtepNodeId());
+            }
+            return hwvtepNodeHACache.isHAParentNode(globalIid)
+                    && l2GwDevice != null
+                    // FIXME: The following call to equals compares different types (String and InstanceIdentifier) and
+                    // thus will always return false. I don't know what the intention is here so commented out for now.
+                    //&& !Objects.equals(l2GwDevice.getHwvtepNodeId(), globalIid)
+                    && Objects.equals(globalIid, hwvtepNodeHACache.getParent(existingIid));
+        };
     }
 
     @Override
@@ -278,8 +270,8 @@ public class HwvtepPhysicalSwitchListener
                 LOG.error("Global node is absent {}", globalNodeId);
                 return;
             }
-            HAOpClusteredListener.addToCacheIfHAChildNode(globalNodeIid, node.get());
-            if (hwvtepHACache.isHAEnabledDevice(globalNodeIid)) {
+            HwvtepHAUtil.addToCacheIfHAChildNode(globalNodeIid, node.get(), hwvtepNodeHACache);
+            if (hwvtepNodeHACache.isHAEnabledDevice(globalNodeIid)) {
                 LOG.trace("Ha enabled device {}", globalNodeIid);
                 return;
             }
@@ -320,15 +312,6 @@ public class HwvtepPhysicalSwitchListener
         });
     }
 
-    boolean updateHACacheIfHANode(InstanceIdentifier<Node> globalNodeId)
-            throws ExecutionException, InterruptedException {
-        try (ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction()) {
-            tx.read(LogicalDatastoreType.OPERATIONAL, globalNodeId).get().toJavaUtil().ifPresent(
-                node -> HAOpClusteredListener.addToCacheIfHAChildNode(globalNodeId, node));
-        }
-        return hwvtepHACache.isHAEnabledDevice(globalNodeId);
-    }
-
     /**
      * Handle add.
      *
index a1dc1daf9b81f068cca07a5b07c018a3d5bed7b3..bed971a2bb69438b5c18dd278fa264041d9109ba 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepClusteredDataTreeChangeListener;
 import org.opendaylight.genius.utils.SystemPropertyReader;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
 import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
@@ -72,8 +73,9 @@ public class HwvtepRemoteMcastMacListener
                                         L2GatewayDevice l2GatewayDevice,
                                         List<IpAddress> expectedPhyLocatorIps,
                                         Callable<List<ListenableFuture<Void>>> task,
-                                        JobCoordinator jobCoordinator) throws Exception {
-        super(RemoteMcastMacs.class, HwvtepRemoteMcastMacListener.class);
+                                        JobCoordinator jobCoordinator, HwvtepNodeHACache hwvtepNodeHACache)
+                                                throws Exception {
+        super(RemoteMcastMacs.class, HwvtepRemoteMcastMacListener.class, hwvtepNodeHACache);
         this.elanUtils = elanUtils;
         this.nodeId = new NodeId(l2GatewayDevice.getHwvtepNodeId());
         this.taskToRun = task;
index 44a56c6ad4b4f21e792d134124e0d4ec0ca9a8e3..07b154b0fbb21a056bc875a38085ad141a41bbb1 100644 (file)
@@ -18,6 +18,7 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.hwvtep.HwvtepClusteredDataTreeChangeListener;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.genius.utils.hwvtep.HwvtepUtils;
@@ -61,8 +62,9 @@ public class HwvtepTerminationPointListener
 
     @Inject
     public HwvtepTerminationPointListener(DataBroker broker, ElanL2GatewayUtils elanL2GatewayUtils,
-            ElanClusterUtils elanClusterUtils, L2GatewayCache l2GatewayCache) {
-        super(TerminationPoint.class, HwvtepTerminationPointListener.class);
+            ElanClusterUtils elanClusterUtils, L2GatewayCache l2GatewayCache,
+            HwvtepNodeHACache hwvtepNodeHACache) {
+        super(TerminationPoint.class, HwvtepTerminationPointListener.class, hwvtepNodeHACache);
 
         this.broker = broker;
         this.txRunner = new ManagedNewTransactionRunnerImpl(broker);
index 99dc2947d54030d132f67ce42b2600af80ae4807..3b790e9593e421e18fa23401e7a249351fac956f 100644 (file)
@@ -28,7 +28,7 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl;
 import org.opendaylight.genius.utils.batching.ResourceBatchingManager;
-import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
 import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
@@ -59,31 +59,27 @@ public class LocalUcastMacListener extends ChildListener<Node, LocalUcastMacs, S
     private static final Predicate<InstanceIdentifier<Node>> IS_PS_NODE_IID =
         (iid) -> iid.firstKeyOf(Node.class).getNodeId().getValue().contains(NODE_CHECK);
 
-    private static final Predicate<InstanceIdentifier<Node>> IS_NOT_HA_CHILD =
-        (iid) -> !HwvtepHACache.getInstance().isHAEnabledDevice(iid)
-                && !iid.firstKeyOf(Node.class).getNodeId().getValue().contains(HwvtepHAUtil.PHYSICALSWITCH);
-
-    private static final Predicate<InstanceIdentifier<Node>> IS_HA_CHILD =
-        (iid) -> HwvtepHACache.getInstance().isHAEnabledDevice(iid);
-
     private final ManagedNewTransactionRunner txRunner;
     private final ElanL2GatewayUtils elanL2GatewayUtils;
     private final HAOpClusteredListener haOpClusteredListener;
     private final JobCoordinator jobCoordinator;
     private final ElanInstanceCache elanInstanceCache;
+    private final HwvtepNodeHACache hwvtepNodeHACache;
 
     @Inject
     public LocalUcastMacListener(final DataBroker dataBroker,
                                  final HAOpClusteredListener haOpClusteredListener,
                                  final ElanL2GatewayUtils elanL2GatewayUtils,
                                  final JobCoordinator jobCoordinator,
-                                 final ElanInstanceCache elanInstanceCache) {
+                                 final ElanInstanceCache elanInstanceCache,
+                                 final HwvtepNodeHACache hwvtepNodeHACache) {
         super(dataBroker, false);
         this.txRunner = new ManagedNewTransactionRunnerImpl(dataBroker);
         this.elanL2GatewayUtils = elanL2GatewayUtils;
         this.haOpClusteredListener = haOpClusteredListener;
         this.jobCoordinator = jobCoordinator;
         this.elanInstanceCache = elanInstanceCache;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
     }
 
     @Override
@@ -95,7 +91,7 @@ public class LocalUcastMacListener extends ChildListener<Node, LocalUcastMacs, S
 
     @Override
     protected boolean proceed(final InstanceIdentifier<Node> parent) {
-        return IS_NOT_HA_CHILD.test(parent);
+        return isNotHAChild(parent);
     }
 
     protected String getElanName(final LocalUcastMacs mac) {
@@ -210,7 +206,7 @@ public class LocalUcastMacListener extends ChildListener<Node, LocalUcastMacs, S
         }
         ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(tx -> {
             haOpClusteredListener.onGlobalNodeAdd(nodeIid, modification.getRootNode().getDataAfter(), tx);
-            if (!IS_HA_CHILD.test(nodeIid)) {
+            if (!isHAChild(nodeIid)) {
                 LOG.trace("On parent add {}", nodeIid);
                 Node operNode = modification.getRootNode().getDataAfter();
                 Set<LocalUcastMacs> configMacs =
@@ -250,4 +246,13 @@ public class LocalUcastMacListener extends ChildListener<Node, LocalUcastMacs, S
         return HwvtepSouthboundUtils.createHwvtepTopologyInstanceIdentifier()
                 .child(Node.class);
     }
+
+    private boolean isNotHAChild(InstanceIdentifier<Node> nodeId) {
+        return !hwvtepNodeHACache.isHAEnabledDevice(nodeId)
+                && !nodeId.firstKeyOf(Node.class).getNodeId().getValue().contains(HwvtepHAUtil.PHYSICALSWITCH);
+    }
+
+    private boolean isHAChild(InstanceIdentifier<Node> nodeId) {
+        return hwvtepNodeHACache.isHAEnabledDevice(nodeId);
+    }
 }
index 4d59714d90cb42e3f0254685456f635f647b6126..248ec280670e5aafb973693bb43924404e170efe 100644 (file)
@@ -27,6 +27,7 @@ import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
 import org.opendaylight.genius.utils.hwvtep.HwvtepUtils;
 import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
@@ -70,6 +71,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable {
     private final L2GatewayCache l2GatewayCache;
     private final ElanInstanceCache elanInstanceCache;
     private final List<AutoCloseable> closeables = new CopyOnWriteArrayList<>();
+    private final HwvtepNodeHACache hwvtepNodeHACache;
     private final HAOpClusteredListener haOpClusteredListener;
 
     @Inject
@@ -77,7 +79,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable {
             ElanClusterUtils elanClusterUtils, ElanL2GatewayUtils elanL2GatewayUtils,
             JobCoordinator jobCoordinator, ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils,
             L2GatewayCache l2GatewayCache, HAOpClusteredListener haOpClusteredListener,
-            ElanInstanceCache elanInstanceCache) {
+            ElanInstanceCache elanInstanceCache, HwvtepNodeHACache hwvtepNodeHACache) {
         this.broker = dataBroker;
         this.elanL2GatewayUtils = elanL2GatewayUtils;
         this.elanClusterUtils = elanClusterUtils;
@@ -86,6 +88,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable {
         this.l2GatewayCache = l2GatewayCache;
         this.haOpClusteredListener = haOpClusteredListener;
         this.elanInstanceCache = elanInstanceCache;
+        this.hwvtepNodeHACache = hwvtepNodeHACache;
     }
 
     @Override
@@ -305,7 +308,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable {
                 if (logicalSwitch == null) {
                     HwvtepLogicalSwitchListener hwVTEPLogicalSwitchListener = new HwvtepLogicalSwitchListener(
                             elanInstanceCache, elanL2GatewayUtils, elanClusterUtils, elanL2GatewayMulticastUtils,
-                            this, l2GatewayDevice, elanName, l2Device, defaultVlan, l2GwConnId);
+                            this, l2GatewayDevice, elanName, l2Device, defaultVlan, l2GwConnId, hwvtepNodeHACache);
                     hwVTEPLogicalSwitchListener.registerListener(LogicalDatastoreType.OPERATIONAL, broker);
                     closeables.add(hwVTEPLogicalSwitchListener);
                     createLogicalSwitch = true;
@@ -370,7 +373,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable {
                         public void onSuccess(@Nonnull Optional<Node> resultNode) {
                             LocalUcastMacListener localUcastMacListener =
                                     new LocalUcastMacListener(broker, haOpClusteredListener,
-                                            elanL2GatewayUtils, jobCoordinator, elanInstanceCache);
+                                            elanL2GatewayUtils, jobCoordinator, elanInstanceCache, hwvtepNodeHACache);
                             settableFuture.set(resultNode);
                             Optional<Node> nodeOptional = resultNode;
                             if (nodeOptional.isPresent()) {
index b56d98fa09da1096b0495a7ae17fada5e0fdf1e0..a7cff4b80673e4ed3ce18119987084c4c5634f3a 100644 (file)
@@ -65,6 +65,7 @@
         <command>
             <action class="org.opendaylight.netvirt.elan.cli.l2gw.L2GwUtilsCacheCli">
               <argument ref="l2GatewayCache"/>
+              <argument ref="hwvtepNodeHACache"/>
             </action>
         </command>
         <command>
             <action class="org.opendaylight.netvirt.elan.cli.l2gw.L2GwValidateCli">
                 <argument ref="dataBroker"/>
                 <argument ref="l2GatewayCache"/>
+                <argument ref="hwvtepNodeHACache"/>
             </action>
         </command>
     </command-bundle>
index baf243b83e53c42b2b010f8ebc6452a7a20f3a53..6bac8948c2e4ec05e90d258ae9dd57a1baa0ea99 100644 (file)
@@ -30,6 +30,8 @@
              interface="org.opendaylight.infrautils.caches.CacheProvider"/>
   <reference id="serviceRecoveryRegistry"
              interface="org.opendaylight.genius.srm.ServiceRecoveryRegistry"/>
+  <reference id="hwvtepNodeHACache"
+             interface="org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache"/>
 
   <odl:rpc-service id="odlInterfaceRpcService"
     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
index a62950a926a9121879d8ce25cc922ba7abe82b40..aab49cb7c9527e5b0edf0c3288615810c8704017 100644 (file)
@@ -15,10 +15,11 @@ import java.util.UUID;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
+import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
 import org.opendaylight.netvirt.elan.l2gw.ha.handlers.NodeConnectedHandler;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -45,9 +46,8 @@ public class NodeConnectedHandlerTest extends AbstractConcurrentDataBrokerTest {
     // public @Rule RunUntilFailureRule repeater = new RunUntilFailureRule(classRepeater);
 
     static Logger LOG = LoggerFactory.getLogger(NodeConnectedHandlerTest.class);
-    DataBroker dataBroker;
 
-    NodeConnectedHandler nodeConnectedHandler = new NodeConnectedHandler(this.dataBroker);
+    NodeConnectedHandler nodeConnectedHandler;
     NodeConnectedHandlerUtils handlerUtils = new NodeConnectedHandlerUtils();
 
     String d1UUID;
@@ -84,7 +84,6 @@ public class NodeConnectedHandlerTest extends AbstractConcurrentDataBrokerTest {
 
     @Before
     public void setupForHANode() {
-        dataBroker = getDataBroker();
         d1UUID = java.util.UUID.nameUUIDFromBytes("d1uuid".getBytes()).toString();
         d2UUID = java.util.UUID.nameUUIDFromBytes("d2uuid".getBytes()).toString();
         d1NodePath = getInstanceIdentifier(d1UUID);
@@ -102,21 +101,23 @@ public class NodeConnectedHandlerTest extends AbstractConcurrentDataBrokerTest {
         d2PsNodePath = createInstanceIdentifier(d2PsNodeIdVal);
 
         haPsNodePath = createInstanceIdentifier(haNodeId.getValue() + "/physicalswitch/" + switchName);
+
+        nodeConnectedHandler = new NodeConnectedHandler(getDataBroker(), Mockito.mock(HwvtepNodeHACache.class));
     }
 
     @Test
     public void testD1Connect() throws Exception {
-        ReadWriteTransaction tx = this.dataBroker.newReadWriteTransaction();
+        ReadWriteTransaction tx = getDataBroker().newReadWriteTransaction();
         handlerUtils.addPsNode(d1PsNodePath, d1NodePath, DataProvider.getPortNameListD1(), tx).checkedGet();
 
-        tx = this.dataBroker.newReadWriteTransaction();
+        tx = getDataBroker().newReadWriteTransaction();
         handlerUtils.addNode(d1NodePath, d1PsNodePath, DataProvider.getLogicalSwitchDataD1(),
                 DataProvider.getLocalUcasMacDataD1(), DataProvider.getLocalMcastDataD1(),
                 DataProvider.getRemoteMcastDataD1(), DataProvider.getRemoteUcasteMacDataD1(),
                 DataProvider.getGlobalTerminationPointIpD1(), tx).checkedGet();
 
         readNodes();
-        tx = this.dataBroker.newReadWriteTransaction();
+        tx = getDataBroker().newReadWriteTransaction();
         nodeConnectedHandler.handleNodeConnected(d1GlobalOpNode.get(), d1NodePath, haNodePath, haGlobalConfigNode,
                 haPsConfigNode, tx);
         tx.submit().checkedGet();
@@ -128,7 +129,7 @@ public class NodeConnectedHandlerTest extends AbstractConcurrentDataBrokerTest {
         Assert.assertTrue(d1GlobalOpNode.isPresent() && haGlobalOpNode.isPresent() && d1PsOpNode.isPresent()
                 && haPsOpNode.isPresent());
         TestUtil.verifyHAOpNode(d1GlobalOpNode.get(), haGlobalOpNode.get(),
-                d1PsOpNode.get(), haPsOpNode.get(), haNodePath, d1PsNodePath, haPsNodePath, haNodeId, this.dataBroker);
+                d1PsOpNode.get(), haPsOpNode.get(), haNodePath, d1PsNodePath, haPsNodePath, haNodeId, getDataBroker());
     }
 
     public static InstanceIdentifier<Node> createInstanceIdentifier(String nodeIdString) {
@@ -157,7 +158,7 @@ public class NodeConnectedHandlerTest extends AbstractConcurrentDataBrokerTest {
     }
 
     public void readNodes() throws Exception {
-        ReadOnlyTransaction tx = this.dataBroker.newReadOnlyTransaction();
+        ReadOnlyTransaction tx = getDataBroker().newReadOnlyTransaction();
         d1GlobalOpNode = TestUtil.readNode(OPERATIONAL, d1NodePath, tx);
         d2GlobalOpNode = TestUtil.readNode(OPERATIONAL, d2NodePath, tx);
         haGlobalOpNode = TestUtil.readNode(OPERATIONAL, haNodePath, tx);