Port update with no security groups
[netvirt.git] / aclservice / impl / src / test / java / org / opendaylight / netvirt / aclservice / tests / FlowEntryObjectsStateful.xtend
1 /*
2  * Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netvirt.aclservice.tests
9
10 import org.opendaylight.genius.mdsalutil.MetaDataUtil
11 import org.opendaylight.genius.mdsalutil.NwConstants
12 import org.opendaylight.genius.mdsalutil.actions.ActionDrop
13 import org.opendaylight.genius.mdsalutil.actions.ActionNxConntrack
14 import org.opendaylight.genius.mdsalutil.actions.ActionNxCtClear
15 import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit
16 import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions
17 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable
18 import org.opendaylight.genius.mdsalutil.matches.MatchArpSha
19 import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa
20 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination
21 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource
22 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType
23 import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv4
24 import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6
25 import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol
26 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination
27 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source
28 import org.opendaylight.genius.mdsalutil.matches.MatchMetadata
29 import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort
30 import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort
31 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchCtState
32 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister
33 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchTcpDestinationPort
34 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchUdpDestinationPort
35 import org.opendaylight.genius.mdsalutil.FlowEntityBuilder
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6
39
40 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
41 import org.opendaylight.netvirt.aclservice.utils.AclConstants
42 import org.opendaylight.yangtools.yang.common.Uint64
43 import java.math.BigInteger
44 import java.util.Collections
45
46 import org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata
47
48
49 class FlowEntryObjectsStateful extends FlowEntryObjectsBase {
50
51     protected def etherFlows(String ip1 ,String ip2, String prefix) {
52         egressCommitConntrack1
53         + egressCommitNonConntrack1
54         + egressfixedAclMissDrop1
55         + etheregressFlowPort2
56         + etherEgressFlowsPort1
57         + etherIngressFlowsPort2
58         + fixedConntrackEgressFlowsPort1(ip1, prefix)
59         + fixedConntrackEgressFlowsPort2(ip2, prefix)
60         + fixedConntrackIngressFlowsPort1(ip1, prefix)
61         + fixedConntrackIngressFlowsPort2(ip2, prefix)
62         + fixedEgressFlowsPort1(ip1, prefix)
63         + fixedEgressFlowsPort2(ip2, prefix)
64         + fixedEgressL2BroadcastFlowsPort1
65         + fixedEgressL2BroadcastFlowsPort2
66         + fixedIngressFlowsPort1
67         + fixedIngressFlowsPort2
68         + fixedIngressL3BroadcastFlows(prefix)
69         + ingressCommitConntrack1
70         + ingressCommitNonConntrack1
71         + ingressDispatcherFirst
72         + ingressDispatcherLast
73         + ingressfixedAclMissDrop1
74         + remoteEgressFlowsPort1(ip1, prefix)
75         + remoteEgressFlowsPort2(ip2, prefix)
76     }
77
78     protected def tcpFlows(String ip1 ,String ip2, String prefix) {
79         egressCommitConntrack1
80         + egressCommitNonConntrack1
81         + egressDispatcherFirst
82         + egressDispatcherLast
83         + egressfixedAclMissDrop1
84         + fixedConntrackEgressFlowsPort1(ip1, prefix)
85         + fixedConntrackEgressFlowsPort2(ip2, prefix)
86         + fixedConntrackIngressFlowsPort1(ip1, prefix)
87         + fixedConntrackIngressFlowsPort2(ip2, prefix)
88         + fixedEgressFlowsPort1(ip1, prefix)
89         + fixedEgressFlowsPort2(ip2, prefix)
90         + fixedEgressL2BroadcastFlowsPort1
91         + fixedEgressL2BroadcastFlowsPort2
92         + fixedIngressFlowsPort1
93         + fixedIngressFlowsPort2
94         + fixedIngressL3BroadcastFlows(prefix)
95         + ingressCommitConntrack1
96         + ingressCommitNonConntrack1
97         + ingressfixedAclMissDrop1
98         + remoteIngressFlowsPort1(ip1, prefix)
99         + remoteIngressFlowsPort2(ip2, prefix)
100         + tcpEgressFlowPort2
101         + tcpIngressFlowPort1
102         + tcpIngressFlowPort2
103     }
104
105     protected def udpFlows(String ip1 ,String ip2, String prefix) {
106         egressCommitConntrack1
107         + egressCommitNonConntrack1
108         + egressfixedAclMissDrop1
109         + fixedConntrackEgressFlowsPort1(ip1, prefix)
110         + fixedConntrackEgressFlowsPort2(ip2, prefix)
111         + fixedConntrackIngressFlowsPort1(ip1, prefix)
112         + fixedConntrackIngressFlowsPort2(ip2, prefix)
113         + fixedEgressFlowsPort1(ip1, prefix)
114         + fixedEgressFlowsPort2(ip2, prefix)
115         + fixedEgressL2BroadcastFlowsPort1
116         + fixedEgressL2BroadcastFlowsPort2
117         + fixedIngressFlowsPort1
118         + fixedIngressFlowsPort2
119         + fixedIngressL3BroadcastFlows(prefix)
120         + ingressCommitConntrack1
121         + ingressCommitNonConntrack1
122         + ingressDispatcherFirst
123         + ingressDispatcherLast
124         + ingressfixedAclMissDrop1
125         + remoteEgressFlowsPort1(ip1, prefix)
126         + remoteEgressFlowsPort2(ip2, prefix)
127         + udpEgressFlowsPort1
128         + udpEgressFlowsPort2
129         + udpIngressFlowsPort2
130     }
131
132     protected def icmpFlows(String ip1 ,String ip2, String prefix) {
133         egressCommitConntrack1
134         + egressCommitNonConntrack1
135         + egressDispatcherFirst
136         + egressDispatcherLast
137         + egressfixedAclMissDrop1
138         + fixedConntrackEgressFlowsPort1(ip1, prefix)
139         + fixedConntrackEgressFlowsPort2(ip2, prefix)
140         + fixedConntrackIngressFlowsPort1(ip1, prefix)
141         + fixedConntrackIngressFlowsPort2(ip2, prefix)
142         + fixedEgressFlowsPort1(ip1, prefix)
143         + fixedEgressFlowsPort2(ip2, prefix)
144         + fixedEgressL2BroadcastFlowsPort1
145         + fixedEgressL2BroadcastFlowsPort2
146         + fixedIngressFlowsPort1
147         + fixedIngressFlowsPort2
148         + fixedIngressL3BroadcastFlows(prefix)
149         + icmpEgressFlowsPort2
150         + icmpIngressFlowsPort1
151         + icmpIngressFlowsPort2
152         + ingressCommitConntrack1
153         + ingressCommitNonConntrack1
154         + ingressfixedAclMissDrop1
155         + remoteIngressFlowsPort1(ip1, prefix)
156         + remoteIngressFlowsPort2(ip2, prefix)
157     }
158
159     protected def dstRangeFlows(String ip1, String prefix) {
160         egressCommitConntrack1
161         + egressCommitNonConntrack1
162         + egressfixedAclMissDrop1
163         + fixedConntrackEgressFlowsPort1(ip1, prefix)
164         + fixedConntrackIngressFlowsPort1(ip1, prefix)
165         + fixedEgressFlowsPort1(ip1, prefix)
166         + fixedEgressL2BroadcastFlowsPort1
167         + fixedIngressFlowsPort1
168         + fixedIngressL3BroadcastFlows(prefix)
169         + ingressCommitConntrack1
170         + ingressCommitNonConntrack1
171         + ingressfixedAclMissDrop1
172         + tcpEgressRangeFlows
173         + udpIngressPortRangeFlows
174     }
175
176     protected def dstAllFlows(String ip1, String prefix) {
177         egressCommitConntrack1
178         + egressCommitNonConntrack1
179         + egressfixedAclMissDrop1
180         + fixedConntrackEgressFlowsPort1(ip1, prefix)
181         + fixedConntrackIngressFlowsPort1(ip1, prefix)
182         + fixedEgressFlowsPort1(ip1, prefix)
183         + fixedEgressL2BroadcastFlowsPort1
184         + fixedIngressFlowsPort1
185         + fixedIngressL3BroadcastFlows(prefix)
186         + ingressCommitConntrack1
187         + ingressCommitNonConntrack1
188         + ingressfixedAclMissDrop1
189         + tcpEgressAllFlows
190         + udpIngressAllFlows
191     }
192
193     protected def icmpFlowsForTwoAclsHavingSameRules(String ip3, String prefix) {
194         egressCommitConntrack1
195         + egressCommitNonConntrack1
196         + egressfixedAclMissDrop1
197         + fixedConntrackEgressFlowsPort3(ip3, prefix)
198         + fixedConntrackIngressFlowsPort3(ip3, prefix)
199         + fixedEgressFlowsPort3(ip3, prefix)
200         + fixedEgressL2BroadcastFlowsPort3
201         + fixedIngressFlowsPort3
202         + fixedIngressL3BroadcastFlows(prefix)
203         + icmpEgressFlowsPort3
204         + icmpIngressFlowsPort3
205         + ingressCommitConntrack1
206         + ingressCommitNonConntrack1
207         + ingressfixedAclMissDrop1
208     }
209
210     protected def aapWithIpv4AllFlows(String ip1 ,String ip2, String prefix) {
211         icmpFlows(ip1, ip2, prefix)
212         + aapIpv4AllFlowsPort2
213     }
214
215     protected def aapFlows(String ip1 ,String ip2, String ip100, String ip101, String prefix) {
216         icmpFlows(ip1, ip2, prefix)
217         + aapRemoteFlowsPort1(ip100, ip101, prefix)
218         + aapFlowsPort2(ip100, ip101, prefix)
219     }
220
221     protected def multipleAcl(String ip1 ,String ip2, String prefix) {
222         egressCommitConntrack1
223         + egressCommitNonConntrack1
224         + egressDispatcherFirst1
225         + egressDispatcherLast1
226         + egressfixedAclMissDrop1
227         + etheregressFlowPort2
228         + etherEgressFlowsPort1
229         + etherIngressFlowsPort2
230         + fixedConntrackEgressFlowsPort1(ip1, prefix)
231         + fixedConntrackEgressFlowsPort2(ip2, prefix)
232         + fixedConntrackIngressFlowsPort1(ip1, prefix)
233         + fixedConntrackIngressFlowsPort2(ip2, prefix)
234         + fixedEgressFlowsPort1(ip1, prefix)
235         + fixedEgressFlowsPort2(ip2, prefix)
236         + fixedEgressL2BroadcastFlowsPort1
237         + fixedEgressL2BroadcastFlowsPort2
238         + fixedIngressFlowsPort1
239         + fixedIngressFlowsPort2
240         + fixedIngressL3BroadcastFlows(prefix)
241         + ingressCommitConntrack1
242         + ingressCommitNonConntrack1
243         + ingressDispatcherFirst
244         + ingressDispatcherLast
245         + ingressfixedAclMissDrop1
246         + remoteEgressFlowsPort1(ip1, prefix)
247         + remoteEgressFlowsPort2(ip2, prefix)
248         + remoteEgressFlowsPort3(ip2, prefix)
249         + tcpEgressFlowPort2WithRemoteIpSg
250         + tcpIngressFlowPort1WithMultipleSG
251         + remoteEgressFlowsPort3(ip1, prefix)
252     }
253
254     protected def tcpEgressFlowPort2WithRemoteIpSg() {
255         val theFlowId1 ="TCP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21"
256         #[
257              new FlowEntityBuilder >> [
258                 dpnId = Uint64.valueOf(123bi)
259                 cookie = Uint64.valueOf(110100480bi)
260                 flowId = theFlowId1
261                 flowName = theFlowId1
262                 instructionInfoList = #[
263                     new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE)
264                 ]
265                 matchInfoList = #[
266                     new MatchEthernetType(2048L),
267                     new MatchEthernetType(2048L),
268                     new NxMatchTcpDestinationPort(80, 65535),
269                     new MatchIpProtocol(6 as short),
270                     new MatchMetadata(Uint64.valueOf(1085217976614976bi), Uint64.valueOf(1152920405111996400bi))
271                 ]
272                 priority = IdHelper.getId(theFlowId1)
273                 tableId = NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE
274             ]
275         ]
276     }
277
278     protected def tcpIngressFlowPort1WithMultipleSG() {
279         val theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22"
280         #[
281             new FlowEntityBuilder >> [
282                 dpnId = Uint64.valueOf(123bi)
283                 cookie = Uint64.valueOf(110100480bi)
284                 flowId = theFlowId
285                 flowName = theFlowId
286                 instructionInfoList = #[
287                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
288                 ]
289                 matchInfoList = #[
290                     new MatchEthernetType(2048L),
291                     new MatchEthernetType(2048L),
292                     new NxMatchTcpDestinationPort(80, 65535),
293                     new MatchIpProtocol(6 as short),
294                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
295                 ]
296                 priority = IdHelper.getId(theFlowId)
297                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
298             ]
299         ]
300     }
301
302     protected def aapIpv4AllFlowsPort2() {
303         #[
304             new FlowEntityBuilder >> [
305                 dpnId = Uint64.valueOf(123bi)
306                 cookie = Uint64.valueOf(110100480bi)
307                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0"
308                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0"
309                 instructionInfoList = #[
310                     new InstructionGotoTable(211 as short)
311                 ]
312                 matchInfoList = #[
313                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
314                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
315                     new MatchEthernetType(2048L)
316                 ]
317                 priority = 61010
318                 tableId = 210 as short
319             ],
320             new FlowEntityBuilder >> [
321                 dpnId = Uint64.valueOf(123bi)
322                 cookie = Uint64.valueOf(110100480bi)
323                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0"
324                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_0.0.0.0/0"
325                 instructionInfoList = #[
326                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
327                 ]
328                 matchInfoList = #[
329                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
330                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
331                     new MatchEthernetType(2048L)
332                 ]
333                 priority = 61010
334                 tableId = 240 as short
335             ],
336             new FlowEntityBuilder >> [
337                 dpnId = Uint64.valueOf(123bi)
338                 cookie = Uint64.valueOf(110100480bi)
339                 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F40.0.0.0/0"
340                 flowName = "Egress_ARP_123_987_0D:AA:D8:42:30:F40.0.0.0/0"
341                 instructionInfoList = #[
342                     new InstructionApplyActions(#[
343                         new ActionNxResubmit(17 as short)
344                     ])
345                 ]
346                 matchInfoList = #[
347                     new MatchEthernetType(2054L),
348                     new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F4")),
349                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
350                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
351                 ]
352                 priority = 63010
353                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
354             ],
355             new FlowEntityBuilder >> [
356                 dpnId = Uint64.valueOf(123bi)
357                 cookie = Uint64.valueOf(110100480bi)
358                 flowId = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_"
359                 flowName = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_"
360                 instructionInfoList = #[
361                     new InstructionApplyActions(#[
362                     new ActionNxResubmit(17 as short)
363                     ])
364                 ]
365                 matchInfoList = #[
366                     new MatchEthernetType(2048L),
367                     new MatchIpProtocol(17 as short),
368                     new MatchUdpDestinationPort(67 as short),
369                     new MatchUdpSourcePort(68 as short),
370                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
371                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4"))
372                 ]
373                 priority = 63010
374                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
375             ]
376         ]
377     }
378
379     protected def aapRemoteFlowsPort1(String ip100, String ip101, String prefix) {
380         #[
381             remoteIngressFlowsPort(ip100, prefix),
382             remoteIngressFlowsPort(ip101, prefix)
383         ]
384     }
385
386    protected def aapFlowsPort2(String ip100, String ip101, String prefix) {
387         #[
388             new FlowEntityBuilder >> [
389                 dpnId = Uint64.valueOf(123bi)
390                 cookie = Uint64.valueOf(110100480bi)
391                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip100 + "/" + prefix
392                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip100 + "/" + prefix
393                 instructionInfoList = #[
394                    new InstructionGotoTable(211 as short)
395                 ]
396                 matchInfoList = #[
397                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
398                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
399                     new MatchEthernetType(2048L),
400                     new MatchIpv4Source(ip100, prefix)
401                 ]
402                 priority = 61010
403                 tableId = 210 as short
404             ],
405             new FlowEntityBuilder >> [
406                 dpnId = Uint64.valueOf(123bi)
407                 cookie = Uint64.valueOf(110100480bi)
408                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip100 + "/" + prefix
409                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip100 + "/" + prefix
410                 instructionInfoList = #[
411                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
412                 ]
413                 matchInfoList = #[
414                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
415                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
416                     new MatchEthernetType(2048L),
417                     new MatchIpv4Destination(ip100, prefix)
418                 ]
419                 priority = 61010
420                 tableId = 240 as short
421             ],
422             new FlowEntityBuilder >> [
423                 dpnId = Uint64.valueOf(123bi)
424                 cookie = Uint64.valueOf(110100480bi)
425                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_" + ip101 + "/" + prefix
426                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_" + ip101 + "/" + prefix
427                 instructionInfoList = #[
428                     new InstructionGotoTable(211 as short)
429                 ]
430                 matchInfoList = #[
431                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
432                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
433                     new MatchEthernetType(2048L),
434                     new MatchIpv4Source(ip101, prefix)
435                 ]
436                 priority = 61010
437                 tableId = 210 as short
438             ],
439             new FlowEntityBuilder >> [
440                 dpnId = Uint64.valueOf(123bi)
441                 cookie = Uint64.valueOf(110100480bi)
442                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_" + ip101 + "/" + prefix
443                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:A4_" + ip101 + "/" + prefix
444                 instructionInfoList = #[
445                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
446                 ]
447                 matchInfoList = #[
448                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
449                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:A4")),
450                     new MatchEthernetType(2048L),
451                     new MatchIpv4Destination(ip101, prefix)
452                 ]
453                 priority = 61010
454                 tableId = 240 as short
455             ],
456             new FlowEntityBuilder >> [
457                 dpnId = Uint64.valueOf(123bi)
458                 cookie = Uint64.valueOf(110100480bi)
459                 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F4" + ip100 + "/" + prefix
460                 flowName = "Egress_ARP_123_987_0D:AA:D8:42:30:F4" + ip100 + "/" + prefix
461                 instructionInfoList = #[
462                     new InstructionApplyActions(#[
463                         new ActionNxResubmit(17 as short)
464                     ])
465                 ]
466                 matchInfoList = #[
467                     new MatchEthernetType(2054L),
468                     new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F4")),
469                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
470                     new MatchArpSpa(new Ipv4Prefix(ip100 + "/" + prefix)),
471                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
472                 ]
473                 priority = 63010
474                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
475             ],
476             new FlowEntityBuilder >> [
477                 dpnId = Uint64.valueOf(123bi)
478                 cookie = Uint64.valueOf(110100480bi)
479                 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:A4" + ip101 + "/" + prefix
480                 flowName = "Egress_ARP_123_987_0D:AA:D8:42:30:A4" + ip101 + "/" + prefix
481                 instructionInfoList = #[
482                     new InstructionApplyActions(#[
483                         new ActionNxResubmit(17 as short)
484                     ])
485                 ]
486                 matchInfoList = #[
487                     new MatchEthernetType(2054L),
488                     new MatchArpSha(new MacAddress("0D:AA:D8:42:30:A4")),
489                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
490                     new MatchArpSpa(new Ipv4Prefix(ip101 + "/" + prefix)),
491                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
492                 ]
493                 priority = 63010
494                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
495             ],
496             new FlowEntityBuilder >> [
497                 dpnId = Uint64.valueOf(123bi)
498                 cookie = Uint64.valueOf(110100480bi)
499                 flowId = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:A4_Permit_"
500                 flowName = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:A4_Permit_"
501                 instructionInfoList = #[
502                     new InstructionApplyActions(#[
503                         new ActionNxResubmit(17 as short)
504                     ])
505                 ]
506                 matchInfoList = #[
507                     new MatchEthernetType(2048L),
508                     new MatchIpProtocol(17 as short),
509                     new MatchUdpDestinationPort(67 as short),
510                     new MatchUdpSourcePort(68 as short),
511                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
512                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4"))
513                 ]
514                 priority = 63010
515                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
516             ],
517             new FlowEntityBuilder >> [
518                 dpnId = Uint64.valueOf(123bi)
519                 cookie = Uint64.valueOf(110100480bi)
520                 flowId = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_"
521                 flowName = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:F4_Permit_"
522                 instructionInfoList = #[
523                     new InstructionApplyActions(#[
524                         new ActionNxResubmit(17 as short)
525                     ])
526                 ]
527                 matchInfoList = #[
528                     new MatchEthernetType(2048L),
529                     new MatchIpProtocol(17 as short),
530                     new MatchUdpDestinationPort(67 as short),
531                     new MatchUdpSourcePort(68 as short),
532                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
533                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4"))
534                 ]
535                 priority = 63010
536                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
537             ],
538             new FlowEntityBuilder >> [
539                 dpnId = Uint64.valueOf(123bi)
540                 cookie = Uint64.valueOf(110100480bi)
541                 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:A4"
542                 flowName = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:A4"
543                 instructionInfoList = #[
544                     new InstructionApplyActions(#[
545                         new ActionNxResubmit(17 as short)
546                     ])
547                 ]
548                 matchInfoList = #[
549                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
550                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
551                 ]
552                 priority = 61005
553                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
554             ]
555         ]
556     }
557
558     protected def fixedConntrackIngressFlowsPort1(String ip1, String prefix) {
559         #[
560             new FlowEntityBuilder >> [
561                 dpnId = Uint64.valueOf(123bi)
562                 cookie = Uint64.valueOf(110100480bi)
563                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
564                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
565                 instructionInfoList = #[
566                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
567                 ]
568                 matchInfoList = #[
569                 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
570                 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F3")),
571                 new MatchEthernetType(2048L),
572                 new MatchIpv4Destination(ip1, prefix)
573                 ]
574                 priority = 61010
575                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
576             ],
577             new FlowEntityBuilder >> [
578                 dpnId = Uint64.valueOf(123bi)
579                 cookie = Uint64.valueOf(110100480bi)
580                 flowId = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
581                 flowName = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
582                 instructionInfoList = #[
583                     new InstructionApplyActions(#[
584                         new ActionNxConntrack(2, 0, 0, 5000, 243 as short)
585                     ])
586                 ]
587                 matchInfoList = #[
588                     new MatchEthernetType(2048L),
589                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
590                 ]
591                 priority = 100
592                 tableId = NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE
593             ],
594             new FlowEntityBuilder >> [
595                 dpnId = Uint64.valueOf(123bi)
596                 cookie = Uint64.valueOf(1085218086715393bi)
597                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
598                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
599                 instructionInfoList = #[
600                     new InstructionApplyActions(#[
601                         new ActionDrop()
602                     ])
603                 ]
604                 matchInfoList = #[
605                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
606                     new NxMatchCtState(48L, 48L)
607                 ]
608                 priority = 62020
609                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
610             ]
611         ]
612     }
613
614     protected def etherIngressFlowsPort2() {
615         val theFlowId = "ETHERnullIngress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
616         #[
617             new FlowEntityBuilder >> [
618                 dpnId = Uint64.valueOf(123bi)
619                 cookie = Uint64.valueOf(110100480bi)
620                 flowId = theFlowId
621                 flowName = theFlowId
622                 instructionInfoList = #[
623                      new InstructionGotoTable(NwConstants.EGRESS_REMOTE_ACL_TABLE)
624                 ]
625                 matchInfoList = #[
626                     new MatchEthernetType(2048L),
627                     new MatchEthernetType(2048L),
628                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
629                     new MatchMetadata(Uint64.valueOf(32bi), Uint64.valueOf(16777200bi))
630                 ]
631                 priority = IdHelper.getId(theFlowId)
632                 tableId = NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE
633             ]
634         ]
635     }
636
637     protected def fixedConntrackEgressFlowsPort1(String ip1, String prefix) {
638         #[
639             new FlowEntityBuilder >> [
640                 dpnId = Uint64.valueOf(123bi)
641                 cookie = Uint64.valueOf(110100480bi)
642                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
643                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
644                 instructionInfoList = #[
645                     new InstructionGotoTable(211 as short)
646                 ]
647                 matchInfoList = #[
648                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
649                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F3")),
650                     new MatchEthernetType(2048L),
651                     new MatchIpv4Source(ip1, prefix)
652                 ]
653                 priority = 61010
654                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
655             ],
656             new FlowEntityBuilder >> [
657                 dpnId = Uint64.valueOf(123bi)
658                 cookie = Uint64.valueOf(110100480bi)
659                 flowId = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
660                 flowName = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
661                 instructionInfoList = #[
662                     new InstructionApplyActions(#[
663                        new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
664                     ])
665                 ]
666                 matchInfoList = #[
667                     new MatchEthernetType(2048L),
668                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
669                 ]
670                 priority = 100
671                 tableId = NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE
672             ],
673             new FlowEntityBuilder >> [
674                 dpnId = Uint64.valueOf(123bi)
675                 cookie = Uint64.valueOf(1085218086715393bi)
676                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
677                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
678                 instructionInfoList = #[
679                     new InstructionApplyActions(#[
680                         new ActionDrop()
681                     ])
682                 ]
683                 matchInfoList = #[
684                    new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
685                    new NxMatchCtState(48L, 48L)
686                 ]
687                 priority = 62020
688                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
689             ]
690         ]
691     }
692
693     protected def fixedConntrackIngressFlowsPort2(String ip2, String prefix) {
694         #[
695              new FlowEntityBuilder >> [
696                 dpnId = Uint64.valueOf(123bi)
697                 cookie = Uint64.valueOf(110100480bi)
698                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip2 + "/" + prefix
699                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip2 + "/" + prefix
700                 instructionInfoList = #[
701                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
702                 ]
703                 matchInfoList = #[
704                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
705                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
706                     new MatchEthernetType(2048L),
707                     new MatchIpv4Destination(ip2, prefix)
708                 ]
709                 priority = 61010
710                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
711             ],
712             new FlowEntityBuilder >> [
713                 dpnId = Uint64.valueOf(123bi)
714                 cookie = Uint64.valueOf(110100480bi)
715                 flowId = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
716                 flowName = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
717                 instructionInfoList = #[
718                     new InstructionApplyActions(#[
719                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
720                     ])
721                 ]
722                 matchInfoList = #[
723                     new MatchEthernetType(2048L),
724                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
725                 ]
726                 priority = 100
727                 tableId = NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE
728             ],
729             new FlowEntityBuilder >> [
730                 dpnId = Uint64.valueOf(123bi)
731                 cookie = Uint64.valueOf(1085218086715393bi)
732                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
733                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
734                 instructionInfoList = #[
735                     new InstructionApplyActions(#[
736                         new ActionDrop()
737                     ])
738                 ]
739                 matchInfoList = #[
740                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
741                     new NxMatchCtState(48L, 48L)
742                 ]
743                 priority = 62020
744                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
745             ]
746         ]
747     }
748
749     protected def fixedConntrackEgressFlowsPort2(String ip2, String prefix){
750         #[
751             new FlowEntityBuilder >> [
752                 dpnId = Uint64.valueOf(123bi)
753                 cookie = Uint64.valueOf(110100480bi)
754                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip2 + "/" + prefix
755                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F4_" + ip2 + "/" + prefix
756                 instructionInfoList = #[
757                     new InstructionGotoTable(NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
758                 ]
759                 matchInfoList = #[
760                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
761                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
762                     new MatchEthernetType(2048L),
763                     new MatchIpv4Source(ip2, prefix)
764                 ]
765                 priority = 61010
766                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
767             ],
768             new FlowEntityBuilder >> [
769                 dpnId = Uint64.valueOf(123bi)
770                 cookie = Uint64.valueOf(110100480bi)
771                 flowId = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
772                 flowName = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
773                 instructionInfoList = #[
774                     new InstructionApplyActions(#[
775                         new ActionNxConntrack(2, 0, 0, 5000, 213 as short)
776                     ])
777                 ]
778                 matchInfoList = #[
779                     new MatchEthernetType(2048L),
780                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
781                 ]
782                 priority = 100
783                 tableId = NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE
784             ],
785             new FlowEntityBuilder >> [
786                 dpnId = Uint64.valueOf(123bi)
787                 cookie = Uint64.valueOf(1085218086715393bi)
788                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
789                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
790                 instructionInfoList = #[
791                     new InstructionApplyActions(#[
792                         new ActionDrop()
793                     ])
794                 ]
795                 matchInfoList = #[
796                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
797                     new NxMatchCtState(48L, 48L)
798                 ]
799                 priority = 62020
800                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
801             ]
802         ]
803     }
804
805     protected def fixedConntrackIngressFlowsPort3(String ip3, String prefix) {
806         #[
807             new FlowEntityBuilder >> [
808                 dpnId = Uint64.valueOf(123bi)
809                 cookie = Uint64.valueOf(110100480bi)
810                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_" + ip3 + "/" + prefix
811                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_" + ip3 + "/" + prefix
812                 instructionInfoList = #[
813                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
814                 ]
815                 matchInfoList = #[
816                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
817                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F5")),
818                     new MatchEthernetType(2048L),
819                     new MatchIpv4Destination(ip3, prefix)
820                 ]
821                 priority = 61010
822                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
823             ],
824             new FlowEntityBuilder >> [
825                 dpnId = Uint64.valueOf(123bi)
826                 cookie = Uint64.valueOf(110100480bi)
827                 flowId = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
828                 flowName = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
829                 instructionInfoList = #[
830                     new InstructionApplyActions(#[
831                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
832                     ])
833                 ]
834                 matchInfoList = #[
835                     new MatchEthernetType(2048L),
836                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
837                 ]
838                 priority = 100
839                 tableId = NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE
840             ],
841             new FlowEntityBuilder >> [
842                 dpnId = Uint64.valueOf(123bi)
843                 cookie = Uint64.valueOf(1085218086715393bi)
844                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
845                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
846                 instructionInfoList = #[
847                     new InstructionApplyActions(#[
848                         new ActionDrop()
849                     ])
850                 ]
851                 matchInfoList = #[
852                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
853                     new NxMatchCtState(48L, 48L)
854                 ]
855                 priority = 62020
856                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
857             ]
858         ]
859     }
860
861     protected def fixedConntrackEgressFlowsPort3(String ip3, String prefix) {
862         #[
863             new FlowEntityBuilder >> [
864                 dpnId = Uint64.valueOf(123bi)
865                 cookie = Uint64.valueOf(110100480bi)
866                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_" + ip3 + "/" + prefix
867                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F5_" + ip3 + "/" + prefix
868                 instructionInfoList = #[
869                     new InstructionGotoTable(NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
870                 ]
871                 matchInfoList = #[
872                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
873                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F5")),
874                     new MatchEthernetType(2048L),
875                     new MatchIpv4Source(ip3, prefix)
876                 ]
877                 priority = 61010
878                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
879             ],
880             new FlowEntityBuilder >> [
881                 dpnId = Uint64.valueOf(123bi)
882                 cookie = Uint64.valueOf(110100480bi)
883                 flowId = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
884                 flowName = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
885                 instructionInfoList = #[
886                     new InstructionApplyActions(#[
887                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
888                     ])
889                 ]
890                 matchInfoList = #[
891                     new MatchEthernetType(2048L),
892                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
893                 ]
894                 priority = 100
895                 tableId = NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE
896             ],
897             new FlowEntityBuilder >> [
898                 dpnId = Uint64.valueOf(123bi)
899                 cookie = Uint64.valueOf(1085218086715393bi)
900                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
901                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
902                 instructionInfoList = #[
903                     new InstructionApplyActions(#[
904                         new ActionDrop()
905                     ])
906                 ]
907                 matchInfoList = #[
908                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
909                     new NxMatchCtState(48L, 48L)
910                 ]
911                 priority = 62020
912                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
913             ]
914         ]
915     }
916
917     static def fixedConntrackIngressFlowsPort4(String ip4, String prefix) {
918         #[
919             new FlowEntityBuilder >> [
920                 dpnId = Uint64.valueOf(123bi)
921                 cookie = Uint64.valueOf(110100480bi)
922                 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_" + ip4 + "/" + prefix + "_Recirc"
923                 flowName = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_" + ip4 + "/" + prefix + "_Recirc"
924                 instructionInfoList = #[
925                     new InstructionApplyActions(#[
926                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
927                     ])
928                 ]
929                 matchInfoList = #[
930                     new MatchEthernetType(2048L),
931                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F6")),
932                     new MatchEthernetType(2048L),
933                     new MatchIpv4Destination(ip4, prefix)
934                 ]
935                 priority = 61010
936                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
937             ],
938             new FlowEntityBuilder >> [
939                 dpnId = Uint64.valueOf(123bi)
940                 cookie = Uint64.valueOf(110100480bi)
941                 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
942                 flowName = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
943                 instructionInfoList = #[
944                     new InstructionApplyActions(#[
945                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
946                     ])
947                 ]
948                 matchInfoList = #[
949                     new MatchEthernetType(2048L),
950                     new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F6")),
951                     new MatchEthernetType(2048L)
952                 ]
953                 priority = 61010
954                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
955             ],
956             new FlowEntityBuilder >> [
957                 dpnId = Uint64.valueOf(123bi)
958                 cookie = Uint64.valueOf(1085218086715393bi)
959                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
960                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
961                 instructionInfoList = #[
962                     new InstructionApplyActions(#[
963                         new ActionDrop()
964                     ])
965                 ]
966                 matchInfoList = #[
967                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
968                     new NxMatchCtState(32L, 32L)
969                 ]
970                 priority = 50
971                 tableId = NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE
972             ],
973             new FlowEntityBuilder >> [
974                 dpnId = Uint64.valueOf(123bi)
975                 cookie = Uint64.valueOf(1085218086715393bi)
976                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
977                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
978                 instructionInfoList = #[
979                     new InstructionApplyActions(#[
980                         new ActionDrop()
981                     ])
982                 ]
983                 matchInfoList = #[
984                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
985                     new NxMatchCtState(48L, 48L)
986                 ]
987                 priority = 62020
988                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
989             ]
990         ]
991     }
992
993     static def fixedConntrackEgressFlowsPort4(String ip4, String prefix) {
994         #[
995             new FlowEntityBuilder >> [
996                 dpnId = Uint64.valueOf(123bi)
997                 cookie = Uint64.valueOf(110100480bi)
998                 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_" + ip4 + "/" + prefix + "_Recirc"
999                 flowName = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_" + ip4 + "/" + prefix + "_Recirc"
1000                 instructionInfoList = #[
1001                     new InstructionApplyActions(#[
1002                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
1003                     ])
1004                 ]
1005                 matchInfoList = #[
1006                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F6")),
1007                     new MatchEthernetType(2048L),
1008                     new MatchIpv4Source(ip4, prefix)
1009                 ]
1010                 priority = 61010
1011                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1012             ],
1013             new FlowEntityBuilder >> [
1014                 dpnId = Uint64.valueOf(123bi)
1015                 cookie = Uint64.valueOf(110100480bi)
1016                 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
1017                 flowName = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
1018                 instructionInfoList = #[
1019                     new InstructionApplyActions(#[
1020                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
1021                     ])
1022                 ]
1023                 matchInfoList = #[
1024                     new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F6")),
1025                     new MatchEthernetType(2048L)
1026                 ]
1027                 priority = 61010
1028                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1029             ],
1030             new FlowEntityBuilder >> [
1031                 dpnId = Uint64.valueOf(123bi)
1032                 cookie = Uint64.valueOf(1085218086715393bi)
1033                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
1034                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
1035                 instructionInfoList = #[
1036                     new InstructionApplyActions(#[
1037                         new ActionDrop()
1038                     ])
1039                 ]
1040                 matchInfoList = #[
1041                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1042                     new NxMatchCtState(32L, 32L)
1043                 ]
1044                 priority = 50
1045                 tableId = NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE
1046             ],
1047             new FlowEntityBuilder >> [
1048                 dpnId = Uint64.valueOf(123bi)
1049                 cookie = Uint64.valueOf(1085218086715393bi)
1050                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1051                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1052                 instructionInfoList = #[
1053                     new InstructionApplyActions(#[
1054                         new ActionDrop()
1055                     ])
1056                 ]
1057                 matchInfoList = #[
1058                    new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1059                     new NxMatchCtState(48L, 48L)
1060                 ]
1061                 priority = 62020
1062                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1063             ]
1064         ]
1065     }
1066
1067     protected def etherEgressFlowsPort1() {
1068         val theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1069         #[
1070             new FlowEntityBuilder >> [
1071                 dpnId = Uint64.valueOf(123bi)
1072                 cookie = Uint64.valueOf(110100480bi)
1073                 flowId = theFlowId
1074                 flowName = theFlowId
1075                 instructionInfoList = #[
1076                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1077                 ]
1078                 matchInfoList = #[
1079                     new MatchEthernetType(2048L),
1080                     new MatchEthernetType(2048L),
1081                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1082                 ]
1083                 priority = IdHelper.getId(theFlowId)
1084                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1085             ]
1086         ]
1087     }
1088
1089     protected def etheregressFlowPort2() {
1090         val theFlowId = "ETHERnullEgress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1091         #[
1092             new FlowEntityBuilder >> [
1093                 dpnId = Uint64.valueOf(123bi)
1094                 cookie = Uint64.valueOf(110100480bi)
1095                 flowId = theFlowId
1096                 flowName = theFlowId
1097                 instructionInfoList = #[
1098                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1099                 ]
1100                 matchInfoList = #[
1101                     new MatchEthernetType(2048L),
1102                     new MatchEthernetType(2048L),
1103                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1104                 ]
1105                 priority = IdHelper.getId(theFlowId)
1106                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1107             ]
1108         ]
1109     }
1110
1111     protected def tcpIngressFlowPort1() {
1112         val theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1113         #[
1114             new FlowEntityBuilder >> [
1115                 dpnId = Uint64.valueOf(123bi)
1116                 cookie = Uint64.valueOf(110100480bi)
1117                 flowId = theFlowId
1118                 flowName = theFlowId
1119                 instructionInfoList = #[
1120                    new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1121                 ]
1122                 matchInfoList = #[
1123                     new MatchEthernetType(2048L),
1124                     new MatchEthernetType(2048L),
1125                     new NxMatchTcpDestinationPort(80, 65535),
1126                     new MatchIpProtocol(6 as short),
1127                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1128                 ]
1129                 priority = IdHelper.getId(theFlowId)
1130                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1131             ]
1132         ]
1133     }
1134
1135     protected def tcpIngressFlowPort2() {
1136         val theFlowId = "TCP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1137         #[
1138             new FlowEntityBuilder >> [
1139                 dpnId = Uint64.valueOf(123bi)
1140                 cookie = Uint64.valueOf(110100480bi)
1141                 flowId = theFlowId
1142                 flowName = theFlowId
1143                 instructionInfoList = #[
1144                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1145                 ]
1146                 matchInfoList = #[
1147                     new MatchEthernetType(2048L),
1148                     new MatchEthernetType(2048L),
1149                     new NxMatchTcpDestinationPort(80, 65535),
1150                     new MatchIpProtocol(6 as short),
1151                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1152                 ]
1153                 priority = IdHelper.getId(theFlowId)
1154                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1155             ]
1156         ]
1157     }
1158
1159     protected def tcpEgressFlowPort2() {
1160         val theFlowId = "TCP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1161         #[
1162             new FlowEntityBuilder >> [
1163                 dpnId = Uint64.valueOf(123bi)
1164                 cookie = Uint64.valueOf(110100480bi)
1165                 flowId = theFlowId
1166                 flowName = theFlowId
1167                 instructionInfoList = #[
1168                     new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE)
1169                 ]
1170                 matchInfoList = #[
1171                     new MatchEthernetType(2048L),
1172                     new MatchEthernetType(2048L),
1173                     new NxMatchTcpDestinationPort(80, 65535),
1174                     new MatchIpProtocol(6 as short),
1175                     new MatchMetadata(Uint64.valueOf(1085217976614944bi), Uint64.valueOf(1152920405111996400bi))
1176                 ]
1177                 priority = IdHelper.getId(theFlowId)
1178                 tableId = NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE
1179             ]
1180         ]
1181     }
1182
1183     protected def udpEgressFlowsPort1() {
1184         val theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1185         #[
1186              new FlowEntityBuilder >> [
1187                 dpnId = Uint64.valueOf(123bi)
1188                 cookie = Uint64.valueOf(110100480bi)
1189                 flowId = theFlowId
1190                 flowName = theFlowId
1191                 instructionInfoList = #[
1192                      new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1193                 ]
1194                 matchInfoList = #[
1195                     new MatchEthernetType(2048L),
1196                     new MatchEthernetType(2048L),
1197                     new NxMatchUdpDestinationPort(80, 65535),
1198                     new MatchIpProtocol(17 as short),
1199                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1200                 ]
1201                 priority = IdHelper.getId(theFlowId)
1202                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1203             ]
1204         ]
1205     }
1206
1207     protected def udpIngressFlowsPort2() {
1208         val theFlowId = "UDP_DESTINATION_80_65535Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1209         #[
1210             new FlowEntityBuilder >> [
1211                 dpnId = Uint64.valueOf(123bi)
1212                 cookie = Uint64.valueOf(110100480bi)
1213                 flowId = theFlowId
1214                 flowName = theFlowId
1215                 instructionInfoList = #[
1216                     new InstructionGotoTable(NwConstants.EGRESS_REMOTE_ACL_TABLE)
1217                 ]
1218                 matchInfoList = #[
1219                     new MatchEthernetType(2048L),
1220                     new MatchEthernetType(2048L),
1221                     new NxMatchUdpDestinationPort(80, 65535),
1222                     new MatchIpProtocol(17 as short),
1223                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1224                     new MatchMetadata(Uint64.valueOf(32bi), Uint64.valueOf(16777200bi))
1225                 ]
1226                 priority = IdHelper.getId(theFlowId)
1227                 tableId = NwConstants.EGRESS_ACL_RULE_BASED_FILTER_TABLE
1228             ]
1229         ]
1230     }
1231
1232     protected def udpEgressFlowsPort2() {
1233         val theFlowId = "UDP_DESTINATION_80_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1234         #[
1235             new FlowEntityBuilder >> [
1236                 dpnId = Uint64.valueOf(123bi)
1237                 cookie = Uint64.valueOf(110100480bi)
1238                 flowId = theFlowId
1239                 flowName = theFlowId
1240                 instructionInfoList = #[
1241                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1242                 ]
1243                 matchInfoList = #[
1244                     new MatchEthernetType(2048L),
1245                     new MatchEthernetType(2048L),
1246                     new NxMatchUdpDestinationPort(80, 65535),
1247                     new MatchIpProtocol(17 as short),
1248                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1249                 ]
1250                 priority = IdHelper.getId(theFlowId)
1251                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1252             ]
1253         ]
1254     }
1255
1256     protected def icmpIngressFlowsPort1() {
1257         val theFlowId = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1258         #[
1259             new FlowEntityBuilder >> [
1260                 dpnId = Uint64.valueOf(123bi)
1261                 cookie = Uint64.valueOf(110100480bi)
1262                 flowId = theFlowId
1263                 flowName = theFlowId
1264                 instructionInfoList = #[
1265                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1266                 ]
1267                 matchInfoList = #[
1268                     new MatchEthernetType(2048L),
1269                     new MatchEthernetType(2048L),
1270                     new MatchIcmpv4(2 as short, 3 as short),
1271                     new MatchIpProtocol(1 as short),
1272                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1273                 ]
1274                 priority = IdHelper.getId(theFlowId)
1275                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1276             ]
1277         ]
1278     }
1279
1280     protected def icmpIngressFlowsPort2() {
1281         val theFlowId = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1282         #[
1283             new FlowEntityBuilder >> [
1284                 dpnId = Uint64.valueOf(123bi)
1285                 cookie = Uint64.valueOf(110100480bi)
1286                 flowId = theFlowId
1287                 flowName = theFlowId
1288                 instructionInfoList = #[
1289                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1290                 ]
1291                 matchInfoList = #[
1292                     new MatchEthernetType(2048L),
1293                     new MatchEthernetType(2048L),
1294                     new MatchIcmpv4(2 as short, 3 as short),
1295                     new MatchIpProtocol(1 as short),
1296                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1297                 ]
1298                 priority = IdHelper.getId(theFlowId)
1299                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1300             ]
1301         ]
1302     }
1303
1304     protected def icmpEgressFlowsPort2() {
1305         val theFlowId = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1306         #[
1307             new FlowEntityBuilder >> [
1308                 dpnId = Uint64.valueOf(123bi)
1309                 cookie = Uint64.valueOf(110100480bi)
1310                 flowId = theFlowId
1311                 flowName = theFlowId
1312                 instructionInfoList = #[
1313                     new InstructionGotoTable(NwConstants.INGRESS_REMOTE_ACL_TABLE)
1314                 ]
1315                 matchInfoList = #[
1316                     new MatchEthernetType(2048L),
1317                     new MatchEthernetType(2048L),
1318                     new MatchIcmpv4(2 as short, 3 as short),
1319                     new MatchIpProtocol(1 as short),
1320                     new MatchMetadata(Uint64.valueOf(1085217976614944bi), Uint64.valueOf(1152920405111996400bi))
1321                 ]
1322                 priority = IdHelper.getId(theFlowId)
1323                 tableId = NwConstants.INGRESS_ACL_RULE_BASED_FILTER_TABLE
1324             ]
1325         ]
1326     }
1327
1328     protected def udpIngressPortRangeFlows() {
1329         val theFlowId = "UDP_DESTINATION_2000_65532Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1330         #[
1331             new FlowEntityBuilder >> [
1332                 dpnId = Uint64.valueOf(123bi)
1333                 cookie = Uint64.valueOf(110100480bi)
1334                 flowId = theFlowId
1335                 flowName = theFlowId
1336                 instructionInfoList = #[
1337                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1338                 ]
1339                 matchInfoList = #[
1340                     new MatchEthernetType(2048L),
1341                     new MatchEthernetType(2048L),
1342                     new NxMatchUdpDestinationPort(2000, 65532),
1343                     new MatchIpProtocol(17 as short),
1344                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1345                 ]
1346                 priority = IdHelper.getId(theFlowId)
1347                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1348             ]
1349         ]
1350     }
1351
1352     protected def tcpEgressRangeFlows() {
1353         val flowId1 = "TCP_DESTINATION_776_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1354         val flowId2 = "TCP_DESTINATION_512_65280Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1355         val flowId3 = "TCP_DESTINATION_334_65534Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1356         val flowId4 = "TCP_DESTINATION_333_65535Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1357         val flowId5 = "TCP_DESTINATION_336_65520Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1358         val flowId6 = "TCP_DESTINATION_352_65504Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1359         val flowId7 = "TCP_DESTINATION_384_65408Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1360         val flowId8 = "TCP_DESTINATION_768_65528Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1361         #[
1362             new FlowEntityBuilder >> [
1363                 dpnId = Uint64.valueOf(123bi)
1364                 cookie = Uint64.valueOf(110100480bi)
1365                 flowId = flowId1
1366                 flowName = flowId1
1367                 instructionInfoList = #[
1368                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1369                 ]
1370                 matchInfoList = #[
1371                     new MatchEthernetType(2048L),
1372                     new MatchEthernetType(2048L),
1373                     new NxMatchTcpDestinationPort(776, 65534),
1374                     new MatchIpProtocol(6 as short),
1375                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1376                 ]
1377                 priority = IdHelper.getId(flowId1)
1378                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1379             ],
1380             new FlowEntityBuilder >> [
1381                 dpnId = Uint64.valueOf(123bi)
1382                 cookie = Uint64.valueOf(110100480bi)
1383                 flowId = flowId2
1384                 flowName = flowId2
1385                 instructionInfoList = #[
1386                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1387                 ]
1388                 matchInfoList = #[
1389                     new MatchEthernetType(2048L),
1390                     new MatchEthernetType(2048L),
1391                     new NxMatchTcpDestinationPort(512, 65280),
1392                     new MatchIpProtocol(6 as short),
1393                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1394                 ]
1395                 priority = IdHelper.getId(flowId2)
1396                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1397             ],
1398             new FlowEntityBuilder >> [
1399                 dpnId = Uint64.valueOf(123bi)
1400                 cookie = Uint64.valueOf(110100480bi)
1401                 flowId = flowId3
1402                 flowName = flowId3
1403                 instructionInfoList = #[
1404                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1405                 ]
1406                 matchInfoList = #[
1407                     new MatchEthernetType(2048L),
1408                     new MatchEthernetType(2048L),
1409                     new NxMatchTcpDestinationPort(334, 65534),
1410                     new MatchIpProtocol(6 as short),
1411                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1412                 ]
1413                 priority = IdHelper.getId(flowId3)
1414                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1415             ],
1416             new FlowEntityBuilder >> [
1417                 dpnId = Uint64.valueOf(123bi)
1418                 cookie = Uint64.valueOf(110100480bi)
1419                 flowId = flowId4
1420                 flowName = flowId4
1421                 instructionInfoList = #[
1422                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1423                 ]
1424                 matchInfoList = #[
1425                     new MatchEthernetType(2048L),
1426                     new MatchEthernetType(2048L),
1427                     new NxMatchTcpDestinationPort(333, 65535),
1428                     new MatchIpProtocol(6 as short),
1429                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1430                 ]
1431                 priority = IdHelper.getId(flowId4)
1432                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1433             ],
1434             new FlowEntityBuilder >> [
1435                 dpnId = Uint64.valueOf(123bi)
1436                 cookie = Uint64.valueOf(110100480bi)
1437                 flowId = flowId5
1438                 flowName = flowId5
1439                 instructionInfoList = #[
1440                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1441                 ]
1442                 matchInfoList = #[
1443                     new MatchEthernetType(2048L),
1444                     new MatchEthernetType(2048L),
1445                     new NxMatchTcpDestinationPort(336, 65520),
1446                     new MatchIpProtocol(6 as short),
1447                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1448                 ]
1449                 priority = IdHelper.getId(flowId5)
1450                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1451             ],
1452             new FlowEntityBuilder >> [
1453                 dpnId = Uint64.valueOf(123bi)
1454                 cookie = Uint64.valueOf(110100480bi)
1455                 flowId = flowId6
1456                 flowName = flowId6
1457                 instructionInfoList = #[
1458                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1459                 ]
1460                 matchInfoList = #[
1461                     new MatchEthernetType(2048L),
1462                     new MatchEthernetType(2048L),
1463                     new NxMatchTcpDestinationPort(352, 65504),
1464                     new MatchIpProtocol(6 as short),
1465                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1466                 ]
1467                 priority = IdHelper.getId(flowId6)
1468                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1469             ],
1470             new FlowEntityBuilder >> [
1471                 dpnId = Uint64.valueOf(123bi)
1472                 cookie = Uint64.valueOf(110100480bi)
1473                 flowId = flowId7
1474                 flowName = flowId7
1475                 instructionInfoList = #[
1476                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1477                 ]
1478                 matchInfoList = #[
1479                     new MatchEthernetType(2048L),
1480                     new MatchEthernetType(2048L),
1481                     new NxMatchTcpDestinationPort(384, 65408),
1482                     new MatchIpProtocol(6 as short),
1483                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1484                 ]
1485                 priority = IdHelper.getId(flowId7)
1486                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1487             ],
1488             new FlowEntityBuilder >> [
1489                 dpnId = Uint64.valueOf(123bi)
1490                 cookie = Uint64.valueOf(110100480bi)
1491                 flowId = flowId8
1492                 flowName = flowId8
1493                 instructionInfoList = #[
1494                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1495                 ]
1496                 matchInfoList = #[
1497                     new MatchEthernetType(2048L),
1498                     new MatchEthernetType(2048L),
1499                     new NxMatchTcpDestinationPort(768, 65528),
1500                     new MatchIpProtocol(6 as short),
1501                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1502                 ]
1503                 priority = IdHelper.getId(flowId8)
1504                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1505             ]
1506         ]
1507     }
1508
1509     protected def udpIngressAllFlows() {
1510         val theFlowId = "UDP_DESTINATION_1_0Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1511         #[
1512             new FlowEntityBuilder >> [
1513                 dpnId = Uint64.valueOf(123bi)
1514                 cookie = Uint64.valueOf(110100480bi)
1515                 flowId = theFlowId
1516                 flowName = theFlowId
1517                 instructionInfoList = #[
1518                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1519                 ]
1520                 matchInfoList = #[
1521                     new MatchEthernetType(2048L),
1522                     new MatchEthernetType(2048L),
1523                     new MatchIpProtocol(17 as short),
1524                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1525                 ]
1526                 priority = IdHelper.getId(theFlowId)
1527                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1528             ]
1529         ]
1530     }
1531
1532     protected def tcpEgressAllFlows() {
1533         val theFlowId = "TCP_DESTINATION_1_0Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1534          #[
1535              new FlowEntityBuilder >> [
1536                 dpnId = Uint64.valueOf(123bi)
1537                 cookie = Uint64.valueOf(110100480bi)
1538                 flowId = theFlowId
1539                 flowName = theFlowId
1540                 instructionInfoList = #[
1541                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1542                 ]
1543                 matchInfoList = #[
1544                     new MatchEthernetType(2048L),
1545                     new MatchEthernetType(2048L),
1546                     new MatchIpProtocol(6 as short),
1547                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1548                 ]
1549                 priority = IdHelper.getId(theFlowId)
1550                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1551             ]
1552          ]
1553
1554      }
1555
1556     protected def icmpIngressFlowsPort3() {
1557         val flowId1 = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426ac7"
1558         val flowId2 = "ICMP_V4_DESTINATION_23_Ingress_123_987_85cc3048-abc3-43cc-89b3-377341426a22"
1559         #[
1560             new FlowEntityBuilder >> [
1561                 dpnId = Uint64.valueOf(123bi)
1562                 cookie = Uint64.valueOf(110100480bi)
1563                 flowId = flowId1
1564                 flowName = flowId1
1565                 instructionInfoList = #[
1566                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1567                 ]
1568                 matchInfoList = #[
1569                     new MatchEthernetType(2048L),
1570                     new MatchEthernetType(2048L),
1571                     new MatchIcmpv4(2 as short, 3 as short),
1572                     new MatchIpProtocol(1 as short),
1573                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1574                 ]
1575                 priority = IdHelper.getId(flowId1)
1576                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1577             ],
1578             new FlowEntityBuilder >> [
1579                 dpnId = Uint64.valueOf(123bi)
1580                 cookie = Uint64.valueOf(110100480bi)
1581                 flowId = flowId2
1582                 flowName = flowId2
1583                 instructionInfoList = #[
1584                     new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1585                 ]
1586                 matchInfoList = #[
1587                     new MatchEthernetType(2048L),
1588                     new MatchEthernetType(2048L),
1589                     new MatchIcmpv4(2 as short, 3 as short),
1590                     new MatchIpProtocol(1 as short),
1591                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1592                 ]
1593                 priority = IdHelper.getId(flowId2)
1594                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1595             ]
1596         ]
1597     }
1598
1599     protected def icmpEgressFlowsPort3() {
1600         val flowId1 = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426ac6"
1601         val flowId2 = "ICMP_V4_DESTINATION_23_Egress_123_987_85cc3048-abc3-43cc-89b3-377341426a21"
1602         #[
1603             new FlowEntityBuilder >> [
1604                 dpnId = Uint64.valueOf(123bi)
1605                 cookie = Uint64.valueOf(110100480bi)
1606                 flowId = flowId1
1607                 flowName = flowId1
1608                 instructionInfoList = #[
1609                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1610                 ]
1611                 matchInfoList = #[
1612                     new MatchEthernetType(2048L),
1613                     new MatchEthernetType(2048L),
1614                     new MatchIcmpv4(2 as short, 3 as short),
1615                     new MatchIpProtocol(1 as short),
1616                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1617                 ]
1618                 priority = IdHelper.getId(flowId1)
1619                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1620             ],
1621             new FlowEntityBuilder >> [
1622                 dpnId = Uint64.valueOf(123bi)
1623                 cookie = Uint64.valueOf(110100480bi)
1624                 flowId = flowId2
1625                 flowName = flowId2
1626                 instructionInfoList = #[
1627                     new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1628                 ]
1629                 matchInfoList = #[
1630                     new MatchEthernetType(2048L),
1631                     new MatchEthernetType(2048L),
1632                     new MatchIcmpv4(2 as short, 3 as short),
1633                     new MatchIpProtocol(1 as short),
1634                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1635                 ]
1636                 priority = IdHelper.getId(flowId2)
1637                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1638             ]
1639         ]
1640     }
1641
1642     override def expectedFlows(String mac, String ip1, String prefix) {
1643         // Code auto. generated by https://github.com/vorburger/xtendbeans
1644         #[
1645             new FlowEntityBuilder >> [
1646                 dpnId = Uint64.valueOf(123bi)
1647                 cookie = Uint64.valueOf(110100480bi)
1648                 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
1649                 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
1650                 instructionInfoList = #[
1651                     new InstructionApplyActions(#[
1652                         new ActionNxResubmit(220 as short)
1653                     ])
1654                 ]
1655                 matchInfoList = #[
1656                     new MatchEthernetType(2048L),
1657                     new MatchIpProtocol(17 as short),
1658                     new MatchUdpDestinationPort(68 as short),
1659                     new MatchUdpSourcePort(67 as short),
1660                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1661                 ]
1662                 priority = 63010
1663                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1664             ],
1665             new FlowEntityBuilder >> [
1666                 dpnId = Uint64.valueOf(123bi)
1667                 cookie = Uint64.valueOf(110100480bi)
1668                 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
1669                 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
1670                 instructionInfoList = #[
1671                     new InstructionApplyActions(#[
1672                         new ActionNxResubmit(220 as short)
1673                     ])
1674                 ]
1675                 matchInfoList = #[
1676                     new MatchEthernetType(34525L),
1677                     new MatchIpProtocol(17 as short),
1678                     new MatchUdpDestinationPort(546 as short),
1679                     new MatchUdpSourcePort(547 as short),
1680                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1681                 ]
1682                 priority = 63010
1683                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1684             ],
1685             new FlowEntityBuilder >> [
1686                 dpnId = Uint64.valueOf(123bi)
1687                 cookie = Uint64.valueOf(110100480bi)
1688                 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
1689                 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
1690                 instructionInfoList = #[
1691                     new InstructionApplyActions(#[
1692                         new ActionNxResubmit(220 as short)
1693                     ])
1694                 ]
1695                 matchInfoList = #[
1696                     new MatchEthernetType(34525L),
1697                     new MatchIpProtocol(58 as short),
1698                     new MatchIcmpv6(130 as short, 0 as short),
1699                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1700                 ]
1701                 priority = 63010
1702                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1703             ],
1704             new FlowEntityBuilder >> [
1705                 dpnId = Uint64.valueOf(123bi)
1706                 cookie = Uint64.valueOf(110100480bi)
1707                 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
1708                 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
1709                 instructionInfoList = #[
1710                     new InstructionApplyActions(#[
1711                         new ActionNxResubmit(220 as short)
1712                     ])
1713                 ]
1714                 matchInfoList = #[
1715                     new MatchEthernetType(34525L),
1716                     new MatchIpProtocol(58 as short),
1717                     new MatchIcmpv6(135 as short, 0 as short),
1718                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1719                 ]
1720                 priority = 63010
1721                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1722             ],
1723             new FlowEntityBuilder >> [
1724                 dpnId = Uint64.valueOf(123bi)
1725                 cookie = Uint64.valueOf(110100480bi)
1726                 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
1727                 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
1728                 instructionInfoList = #[
1729                     new InstructionApplyActions(#[
1730                         new ActionNxResubmit(220 as short)
1731                     ])
1732                 ]
1733                 matchInfoList = #[
1734                     new MatchEthernetType(34525L),
1735                     new MatchIpProtocol(58 as short),
1736                     new MatchIcmpv6(136 as short, 0 as short),
1737                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1738                 ]
1739                 priority = 63010
1740                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1741             ],
1742             new FlowEntityBuilder >> [
1743                 dpnId = Uint64.valueOf(123bi)
1744                 cookie = Uint64.valueOf(110100480bi)
1745                 flowId = "Ingress_ARP_123_987"
1746                 flowName = "Ingress_ARP_123_987"
1747                 instructionInfoList = #[
1748                     new InstructionApplyActions(#[
1749                         new ActionNxResubmit(220 as short)
1750                     ])
1751                 ]
1752                 matchInfoList = #[
1753                     new MatchEthernetType(2054L),
1754                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1755                 ]
1756                 priority = 63010
1757                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1758             ],
1759             new FlowEntityBuilder >> [
1760                 dpnId = Uint64.valueOf(123bi)
1761                 cookie = Uint64.valueOf(110100480bi)
1762                 flowId = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
1763                 flowName = "Ingress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
1764                 instructionInfoList = #[
1765                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
1766                 ]
1767                 matchInfoList = #[
1768                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1769                     new MatchEthernetDestination(new MacAddress(mac)),
1770                     new MatchEthernetType(2048L),
1771                     new MatchIpv4Destination(ip1, prefix)
1772                 ]
1773                 priority = 61010
1774                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1775             ],
1776             new FlowEntityBuilder >> [
1777                 dpnId = Uint64.valueOf(123bi)
1778                 cookie = Uint64.valueOf(1085218086715393bi)
1779                 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1780                 flowName = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1781                 instructionInfoList = #[
1782                     new InstructionApplyActions(#[
1783                         new ActionDrop()
1784                     ])
1785                 ]
1786                 matchInfoList = #[
1787                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1788                     new NxMatchCtState(48L, 48L)
1789                 ]
1790                 priority = 62020
1791                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1792             ],
1793             new FlowEntityBuilder >> [
1794                 dpnId = Uint64.valueOf(123bi)
1795                 cookie = Uint64.valueOf(110100480bi)
1796                 flowId = "Egress_DHCP_Client_v4123_987_" + mac + "_Permit_"
1797                 flowName = "Egress_DHCP_Client_v4123_987_" + mac + "_Permit_"
1798                 instructionInfoList = #[
1799                     new InstructionApplyActions(#[
1800                         new ActionNxResubmit(17 as short)
1801                     ])
1802                 ]
1803                 matchInfoList = #[
1804                     new MatchEthernetType(2048L),
1805                     new MatchIpProtocol(17 as short),
1806                     new MatchUdpDestinationPort(67 as short),
1807                     new MatchUdpSourcePort(68 as short),
1808                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1809                     new MatchEthernetSource(new MacAddress(mac))
1810                 ]
1811                 priority = 63010
1812                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1813             ],
1814             new FlowEntityBuilder >> [
1815                 dpnId = Uint64.valueOf(123bi)
1816                 cookie = Uint64.valueOf(110100480bi)
1817                 flowId = "Egress_ICMPv6_123_987_133_Permit_"
1818                 flowName = "Egress_ICMPv6_123_987_133_Permit_"
1819                 instructionInfoList = #[
1820                     new InstructionApplyActions(#[
1821                         new ActionNxResubmit(17 as short)
1822                     ])
1823                 ]
1824                 matchInfoList = #[
1825                     new MatchEthernetType(34525L),
1826                     new MatchIpProtocol(58 as short),
1827                     new MatchIcmpv6(133 as short, 0 as short),
1828                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1829                 ]
1830                 priority = 63010
1831                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1832             ],
1833             new FlowEntityBuilder >> [
1834                 dpnId = Uint64.valueOf(123bi)
1835                 cookie = Uint64.valueOf(110100480bi)
1836                 flowId = "Egress_ICMPv6_123_987_135_Permit_"
1837                 flowName = "Egress_ICMPv6_123_987_135_Permit_"
1838                 instructionInfoList = #[
1839                     new InstructionApplyActions(#[
1840                         new ActionNxResubmit(17 as short)
1841                     ])
1842                 ]
1843                 matchInfoList = #[
1844                     new MatchEthernetType(34525L),
1845                     new MatchIpProtocol(58 as short),
1846                     new MatchIcmpv6(135 as short, 0 as short),
1847                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1848                 ]
1849                 priority = 63010
1850                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1851             ],
1852             new FlowEntityBuilder >> [
1853                 dpnId = Uint64.valueOf(123bi)
1854                 cookie = Uint64.valueOf(110100480bi)
1855                 flowId = "Egress_ICMPv6_123_987_136_Permit_"
1856                 flowName = "Egress_ICMPv6_123_987_136_Permit_"
1857                 instructionInfoList = #[
1858                     new InstructionApplyActions(#[
1859                         new ActionNxResubmit(17 as short)
1860                     ])
1861                 ]
1862                 matchInfoList = #[
1863                     new MatchEthernetType(34525L),
1864                     new MatchIpProtocol(58 as short),
1865                     new MatchIcmpv6(136 as short, 0 as short),
1866                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1867                 ]
1868                 priority = 63010
1869                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1870             ],
1871             new FlowEntityBuilder >> [
1872                 dpnId = Uint64.valueOf(123bi)
1873                 cookie = Uint64.valueOf(110100480bi)
1874                 flowId = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
1875                 flowName = "Egress_Fixed_Goto_Classifier_123_987_0D:AA:D8:42:30:F3_" + ip1 + "/" + prefix
1876                 instructionInfoList = #[
1877                     new InstructionGotoTable(211 as short)
1878                 ]
1879                 matchInfoList = #[
1880                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1881                     new MatchEthernetSource(new MacAddress(mac)),
1882                     new MatchEthernetType(2048L),
1883                     new MatchIpv4Source(ip1, prefix)
1884                 ]
1885                 priority = 61010
1886                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1887             ],
1888             new FlowEntityBuilder >> [
1889                 dpnId = Uint64.valueOf(123bi)
1890                 cookie = Uint64.valueOf(1085218086715393bi)
1891                 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1892                 flowName = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1893                 instructionInfoList = #[
1894                     new InstructionApplyActions(#[
1895                         new ActionDrop()
1896                     ])
1897                 ]
1898                 matchInfoList = #[
1899                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1900                     new NxMatchCtState(48L, 48L)
1901                 ]
1902                 priority = 62020
1903                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
1904             ],
1905             new FlowEntityBuilder >> [
1906                 dpnId = Uint64.valueOf(123bi)
1907                 cookie = Uint64.valueOf(110100480bi)
1908                 flowId = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
1909                 flowName = "Ingress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
1910                 instructionInfoList = #[
1911                     new InstructionApplyActions(#[
1912                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
1913                     ])
1914                 ]
1915                 matchInfoList = #[
1916                     new MatchEthernetType(2048L),
1917                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1918                 ]
1919                 priority = 100
1920                 tableId = NwConstants.EGRESS_ACL_CONNTRACK_SENDER_TABLE
1921             ],
1922             new FlowEntityBuilder >> [
1923                 dpnId = Uint64.valueOf(123bi)
1924                 cookie = Uint64.valueOf(110100480bi)
1925                 flowId = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
1926                 flowName = "Egress_Fixed_Conntrk_123_987_MatchEthernetType[2048]_Recirc"
1927                 instructionInfoList = #[
1928                     new InstructionApplyActions(#[
1929                         new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_FOR_EXISTING_TRAFFIC_TABLE)
1930                     ])
1931                 ]
1932                 matchInfoList = #[
1933                     new MatchEthernetType(2048L),
1934                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1935                 ]
1936                 priority = 100
1937                 tableId = NwConstants.INGRESS_ACL_CONNTRACK_SENDER_TABLE
1938             ],
1939             new FlowEntityBuilder >> [
1940                 dpnId = Uint64.valueOf(123bi)
1941                 cookie = Uint64.valueOf(110100480bi)
1942                 flowId = "Egress_ARP_123_987_" + mac + ip1 + "/" + prefix
1943                 flowName = "Egress_ARP_123_987_" + mac + ip1 + "/" + prefix
1944                 instructionInfoList = #[
1945                     new InstructionApplyActions(#[
1946                         new ActionNxResubmit(17 as short)
1947                     ])
1948                 ]
1949                 matchInfoList = #[
1950                     new MatchEthernetType(2054L),
1951                     new MatchArpSha(new MacAddress(mac)),
1952                     new MatchEthernetSource(new MacAddress(mac)),
1953                     new MatchArpSpa(new Ipv4Prefix( ip1 + "/" + prefix)),
1954                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1955                 ]
1956                 priority = 63010
1957                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1958             ],
1959             new FlowEntityBuilder >> [
1960                 dpnId = Uint64.valueOf(123bi)
1961                 cookie = Uint64.valueOf(110100480bi)
1962                 flowId = "Egress_L2Broadcast_123_987_" + mac
1963                 flowName = "Egress_L2Broadcast_123_987_" + mac
1964                 instructionInfoList = #[
1965                     new InstructionApplyActions(#[
1966                         new ActionNxResubmit(17 as short)
1967                     ])
1968                 ]
1969                 matchInfoList = #[
1970                     new MatchEthernetSource(new MacAddress(mac)),
1971                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1972                 ]
1973                 priority = 61005
1974                 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1975             ],
1976             new FlowEntityBuilder >> [
1977                 cookie = Uint64.valueOf(110100480bi)
1978                 dpnId = Uint64.valueOf(123bi)
1979                 flowId = "Ingress_v4_Broadcast_123_987_10.0.0.255_Permit"
1980                 flowName = "Ingress_v4_Broadcast_123_987_10.0.0.255_Permit"
1981                 hardTimeOut = 0
1982                 idleTimeOut = 0
1983                 instructionInfoList = #[
1984                     new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
1985                 ]
1986                 matchInfoList = #[
1987                     new MatchEthernetDestination(new MacAddress("ff:ff:ff:ff:ff:ff")),
1988                     new MatchEthernetType(2048L),
1989                     new MatchIpv4Destination(new Ipv4Prefix("10.0.0.255/" + prefix)),
1990                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1991                 ]
1992                 priority = 61010
1993                 sendFlowRemFlag = false
1994                 strictFlag = false
1995                 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1996             ],
1997             new FlowEntityBuilder >> [
1998                 dpnId = Uint64.valueOf(123bi)
1999                 cookie = Uint64.valueOf(110100480bi)
2000                 flowId = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2001                 flowName = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2002                 instructionInfoList = #[
2003                     new InstructionApplyActions(#[
2004                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2005                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2006                         ),
2007                         new ActionNxCtClear(),
2008                         new ActionNxResubmit(220 as short)
2009                     ])
2010                 ]
2011                 matchInfoList = #[
2012                     new MatchEthernetType(2048L),
2013                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2014                     new MatchMetadata(Uint64.valueOf(0bi), Uint64.valueOf(2bi))
2015                     ]
2016                 priority = 100
2017                 tableId = 247 as short
2018             ],
2019             new FlowEntityBuilder >> [
2020                 dpnId = Uint64.valueOf(123bi)
2021                 cookie = Uint64.valueOf(110100480bi)
2022                 flowId = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2023                 flowName = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2024                 instructionInfoList = #[
2025                     new InstructionApplyActions(#[
2026                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2027                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2028                         ),
2029                         new ActionNxCtClear(),
2030                         new ActionNxResubmit(220 as short)
2031                     ])
2032                 ]
2033                 matchInfoList = #[
2034                     new MatchEthernetType(34525L),
2035                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2036                     new MatchMetadata(Uint64.valueOf(0bi), Uint64.valueOf(2bi))
2037                 ]
2038                 priority = 100
2039                 tableId = 247 as short
2040             ],
2041             new FlowEntityBuilder >> [
2042                 dpnId = Uint64.valueOf(123bi)
2043                 cookie = Uint64.valueOf(110100480bi)
2044                 flowId = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2045                 flowName = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2046                 instructionInfoList = #[
2047                     new InstructionApplyActions(#[
2048                     new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2049                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2050                     ),
2051                     new ActionNxCtClear(),
2052                     new ActionNxResubmit(17 as short)
2053                     ])
2054                 ]
2055                 matchInfoList = #[
2056                     new MatchEthernetType(2048L),
2057                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), Uint64.valueOf(1152920405095219202bi))
2058                 ]
2059                 priority = 100
2060                 tableId = 217 as short
2061             ],
2062             new FlowEntityBuilder >> [
2063                 dpnId = Uint64.valueOf(123bi)
2064                 cookie = Uint64.valueOf(110100480bi)
2065                 flowId = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2066                 flowName = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2067                 instructionInfoList = #[
2068                     new InstructionApplyActions(#[
2069                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2070                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2071                         ),
2072                         new ActionNxCtClear(),
2073                         new ActionNxResubmit(17 as short)
2074                     ])
2075                 ]
2076                 matchInfoList = #[
2077                     new MatchEthernetType(34525L),
2078                         new MatchMetadata(Uint64.valueOf(1085217976614912bi), Uint64.valueOf(1152920405095219202bi))
2079                 ]
2080                 priority = 100
2081                 tableId = 217 as short
2082             ],
2083             new FlowEntityBuilder >> [
2084                 dpnId = Uint64.valueOf(123bi)
2085                 cookie = Uint64.valueOf(110100480bi)
2086                 flowId = "Egress_Acl_Commit_Non_Conntrack_123_987"
2087                 flowName = "Egress_Acl_Commit_Non_Conntrack_123_987"
2088                 instructionInfoList = #[
2089                     new InstructionApplyActions(#[
2090                         new ActionNxResubmit(17 as short)
2091                     ])
2092                 ]
2093                 matchInfoList = #[
2094                 new MatchMetadata(Uint64.valueOf(1085217976614914bi), Uint64.valueOf(1152920405095219202bi))
2095                 ]
2096                 priority = 100
2097                 tableId = 217 as short
2098             ],
2099             new FlowEntityBuilder >> [
2100                 dpnId = Uint64.valueOf(123bi)
2101                 cookie = Uint64.valueOf(1085218086715393bi)
2102                 flowId = "Egress_123_987_Drop"
2103                 flowName = "Egress_123_987_Drop"
2104                 instructionInfoList = #[
2105                     new InstructionApplyActions(#[
2106                         new ActionDrop()
2107                     ])
2108                 ]
2109                 matchInfoList = #[
2110                    new MatchMetadata(Uint64.valueOf(1085217976614916bi), Uint64.valueOf(new BigInteger("0FFFFF0000000004", 16)))
2111                 ]
2112                 priority = 62020
2113                 tableId = 217 as short
2114             ],
2115             new FlowEntityBuilder >> [
2116                 dpnId = Uint64.valueOf(123bi)
2117                 cookie = Uint64.valueOf(110100480bi)
2118                 flowId = "Ingress_Acl_Commit_Non_Conntrack_123_987"
2119                 flowName = "Ingress_Acl_Commit_Non_Conntrack_123_987"
2120                 instructionInfoList = #[
2121                     new InstructionApplyActions(#[
2122                     new ActionNxResubmit(220 as short)
2123                     ])
2124                 ]
2125                 matchInfoList = #[
2126                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2127                     new MatchMetadata(Uint64.valueOf(2bi), Uint64.valueOf(2bi))
2128                 ]
2129                 priority = 100
2130                 tableId = 247 as short
2131             ],
2132             new FlowEntityBuilder >> [
2133                 dpnId = Uint64.valueOf(123bi)
2134                 cookie = Uint64.valueOf(1085218086715393bi)
2135                 flowId = "Ingress_123_987_Drop"
2136                 flowName = "Ingress_123_987_Drop"
2137                 instructionInfoList = #[
2138                     new InstructionApplyActions(#[
2139                         new ActionDrop()
2140                     ])
2141                 ]
2142                 matchInfoList = #[
2143                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2144                     new MatchMetadata(Uint64.valueOf(4bi), Uint64.valueOf(4bi))
2145                 ]
2146                 priority = 62020
2147                 tableId = 247 as short
2148             ],
2149             new FlowEntityBuilder >> [
2150                 dpnId = Uint64.valueOf(123bi)
2151                 cookie = Uint64.valueOf(1085218086715393bi)
2152                 flowId = "Ingress_Fixed_Acl_Rule_Miss_Drop_123_987"
2153                 flowName = "Ingress_Fixed_Acl_Rule_Miss_Drop_123_987"
2154                 instructionInfoList = #[
2155                     new InstructionApplyActions(#[
2156                         new ActionDrop()
2157                     ])
2158                 ]
2159                 matchInfoList = #[
2160                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2161                 ]
2162                 priority = 50
2163                 tableId = 244 as short
2164             ],
2165             new FlowEntityBuilder >> [
2166                 dpnId = Uint64.valueOf(123bi)
2167                 cookie = Uint64.valueOf(1085218086715393bi)
2168                 flowId = "Egress_Fixed_Acl_Rule_Miss_Drop_123_987"
2169                 flowName = "Egress_Fixed_Acl_Rule_Miss_Drop_123_987"
2170                 instructionInfoList = #[
2171                     new InstructionApplyActions(#[
2172                         new ActionDrop()
2173                     ])
2174                 ]
2175                 matchInfoList = #[
2176                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
2177                 ]
2178                 priority = 50
2179                 tableId = 214 as short
2180             ]
2181         ]
2182     }
2183
2184     protected def ingressCommitConntrack1() {
2185         val flowId1 = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2186         val flowId2 = "Ingress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2187         #[
2188             new FlowEntityBuilder >> [
2189                     dpnId = Uint64.valueOf(123bi)
2190                     cookie = Uint64.valueOf(110100480bi)
2191                     flowId = flowId1
2192                     flowName = flowId1
2193                     instructionInfoList = #[
2194                         new InstructionApplyActions(#[
2195                             new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2196                                 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE)
2197                                 )
2198                             ),
2199                             new ActionNxCtClear(),
2200                             new ActionNxResubmit(220 as short)
2201                         ])
2202                     ]
2203                     matchInfoList = #[
2204                         new MatchEthernetType(2048L),
2205                         new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2206                         new MatchMetadata(Uint64.valueOf(0bi), Uint64.valueOf(2bi))
2207                     ]
2208                     priority = 100
2209                     tableId = 247 as short
2210             ],
2211             new FlowEntityBuilder >> [
2212                 dpnId = Uint64.valueOf(123bi)
2213                 cookie = Uint64.valueOf(110100480bi)
2214                 flowId = flowId2
2215                 flowName = flowId2
2216                 instructionInfoList = #[
2217                     new InstructionApplyActions(#[
2218                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2219                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2220                         ),
2221                         new ActionNxCtClear(),
2222                         new ActionNxResubmit(220 as short)
2223                         ])
2224                     ]
2225                     matchInfoList = #[
2226                         new MatchEthernetType(34525L),
2227                         new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2228                         new MatchMetadata(Uint64.valueOf(0bi), Uint64.valueOf(2bi))
2229                     ]
2230                     priority = 100
2231                     tableId = 247 as short
2232             ]
2233         ]
2234     }
2235
2236     protected def egressCommitConntrack1() {
2237         val flowId1 = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[2048]"
2238         val flowId2 = "Egress_Acl_Commit_Conntrack_123_987_MatchEthernetType[34525]"
2239         #[
2240             new FlowEntityBuilder >> [
2241                 dpnId = Uint64.valueOf(123bi)
2242                 cookie = Uint64.valueOf(110100480bi)
2243                 flowId = flowId1
2244                 flowName = flowId1
2245                 instructionInfoList = #[
2246                     new InstructionApplyActions(#[
2247                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2248                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2249                         ),
2250                         new ActionNxCtClear(),
2251                         new ActionNxResubmit(17 as short)
2252                     ])
2253                 ]
2254                 matchInfoList = #[
2255                     new MatchEthernetType(2048L),
2256                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), Uint64.valueOf(1152920405095219202bi))
2257                 ]
2258                 priority = 100
2259                 tableId = 217 as short
2260             ],
2261             new FlowEntityBuilder >> [
2262                 dpnId = Uint64.valueOf(123bi)
2263                 cookie = Uint64.valueOf(110100480bi)
2264                 flowId = flowId2
2265                 flowName = flowId2
2266                 instructionInfoList = #[
2267                     new InstructionApplyActions(#[
2268                         new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
2269                             Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
2270                         ),
2271                         new ActionNxCtClear(),
2272                         new ActionNxResubmit(17 as short)
2273                     ])
2274                 ]
2275                 matchInfoList = #[
2276                     new MatchEthernetType(34525L),
2277                         new MatchMetadata(Uint64.valueOf(1085217976614912bi), Uint64.valueOf(1152920405095219202bi))
2278                 ]
2279                 priority = 100
2280                 tableId = 217 as short
2281             ]
2282         ]
2283     }
2284
2285     protected def egressCommitNonConntrack1() {
2286         val flowId1 = "Egress_Acl_Commit_Non_Conntrack_123_987"
2287         #[
2288             new FlowEntityBuilder >> [
2289                 dpnId = Uint64.valueOf(123bi)
2290                 cookie = Uint64.valueOf(110100480bi)
2291                 flowId = flowId1
2292                 flowName = flowId1
2293                 instructionInfoList = #[
2294                     new InstructionApplyActions(#[
2295                     new ActionNxResubmit(17 as short)
2296                     ])
2297                 ]
2298                 matchInfoList = #[
2299                     new MatchMetadata(Uint64.valueOf(1085217976614914bi), Uint64.valueOf(1152920405095219202bi))
2300                 ]
2301                 priority = 100
2302                 tableId = 217 as short
2303             ],
2304             new FlowEntityBuilder >> [
2305                 dpnId = Uint64.valueOf(123bi)
2306                 cookie = Uint64.valueOf(1085218086715393bi)
2307                 flowId = "Egress_123_987_Drop"
2308                 flowName = "Egress_123_987_Drop"
2309                 instructionInfoList = #[
2310                     new InstructionApplyActions(#[
2311                         new ActionDrop()
2312                     ])
2313                 ]
2314                 matchInfoList = #[
2315                     new MatchMetadata(Uint64.valueOf(1085217976614916bi), Uint64.valueOf(new BigInteger("0FFFFF0000000004", 16)))
2316                 ]
2317                 priority = 62020
2318                 tableId = 217 as short
2319             ]
2320         ]
2321     }
2322
2323     protected def ingressCommitNonConntrack1() {
2324         val flowId1 = "Ingress_Acl_Commit_Non_Conntrack_123_987"
2325         #[
2326             new FlowEntityBuilder >> [
2327                 dpnId = Uint64.valueOf(123bi)
2328                 cookie = Uint64.valueOf(110100480bi)
2329                 flowId = flowId1
2330                 flowName = flowId1
2331                 instructionInfoList = #[
2332                     new InstructionApplyActions(#[
2333                         new ActionNxResubmit(220 as short)
2334                     ])
2335                 ]
2336                  matchInfoList = #[
2337                      new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2338                          new MatchMetadata(Uint64.valueOf(2bi), Uint64.valueOf(2bi))
2339                      ]
2340                  priority = 100
2341                  tableId = 247 as short
2342             ],
2343             new FlowEntityBuilder >> [
2344                 dpnId = Uint64.valueOf(123bi)
2345                 cookie = Uint64.valueOf(1085218086715393bi)
2346                 flowId = "Ingress_123_987_Drop"
2347                 flowName = "Ingress_123_987_Drop"
2348                 instructionInfoList = #[
2349                     new InstructionApplyActions(#[
2350                         new ActionDrop()
2351                     ])
2352                 ]
2353                 matchInfoList = #[
2354                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2355                     new MatchMetadata(Uint64.valueOf(4bi), Uint64.valueOf(4bi))
2356                 ]
2357                 priority = 62020
2358                 tableId = 247 as short
2359             ]
2360         ]
2361     }
2362
2363     protected def ingressfixedAclMissDrop1() {
2364         val flowId1 = "Ingress_Fixed_Acl_Rule_Miss_Drop_123_987"
2365         #[
2366             new FlowEntityBuilder >> [
2367                 dpnId = Uint64.valueOf(123bi)
2368                 cookie = Uint64.valueOf(1085218086715393bi)
2369                 flowId = flowId1
2370                 flowName = flowId1
2371                 instructionInfoList = #[
2372                     new InstructionApplyActions(#[
2373                         new ActionDrop()
2374                     ])
2375                 ]
2376                 matchInfoList = #[
2377                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2378                 ]
2379                 priority = 50
2380                 tableId = 244 as short
2381             ]
2382         ]
2383     }
2384
2385     protected def egressfixedAclMissDrop1() {
2386         val flowId1 = "Egress_Fixed_Acl_Rule_Miss_Drop_123_987"
2387         #[
2388             new FlowEntityBuilder >> [
2389                 dpnId = Uint64.valueOf(123bi)
2390                 cookie = Uint64.valueOf(1085218086715393bi)
2391                 flowId = flowId1
2392                 flowName = flowId1
2393                 instructionInfoList = #[
2394                     new InstructionApplyActions(#[
2395                         new ActionDrop()
2396                     ])
2397                 ]
2398                 matchInfoList = #[
2399                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
2400                 ]
2401                 priority = 50
2402                 tableId = 214 as short
2403             ]
2404         ]
2405     }
2406
2407     protected def ingressDispatcherFirst() {
2408         val flowId1 = "Ingress_ACL_Dispatcher_First_123_987_2"
2409         #[
2410             new FlowEntityBuilder >> [
2411                 dpnId = Uint64.valueOf(123bi)
2412                 cookie = Uint64.valueOf(110100480bi)
2413                 flowId = flowId1
2414                 flowName = flowId1
2415                 instructionInfoList = #[
2416                     new InstructionGotoTable(245 as short),
2417                     new InstructionWriteMetadata(Uint64.valueOf(32bi), Uint64.valueOf(16777200bi))
2418                 ]
2419                 matchInfoList = #[
2420                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2421                 ]
2422                 priority = IdHelper.getId(flowId1)
2423                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2424             ]
2425         ]
2426     }
2427
2428     protected def ingressDispatcherLast() {
2429         val flowId1 = "Ingress_ACL_Dispatcher_Last_123_987_2"
2430         #[
2431             new FlowEntityBuilder >> [
2432                 dpnId = Uint64.valueOf(123bi)
2433                 cookie = Uint64.valueOf(1085218086715393bi)
2434                 flowId = flowId1
2435                 flowName = flowId1
2436                 instructionInfoList = #[
2437                     new InstructionApplyActions(#[
2438                         new ActionDrop()
2439                     ])
2440                 ]
2441                 matchInfoList = #[
2442                     new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2443                     new MatchMetadata(Uint64.valueOf(32bi), Uint64.valueOf(16777200bi))
2444                 ]
2445                 priority = IdHelper.getId(flowId1)
2446                 tableId = NwConstants.EGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2447             ]
2448         ]
2449     }
2450
2451     protected def egressDispatcherFirst() {
2452         val flowId1 = "Egress_ACL_Dispatcher_First_123_987_2"
2453         #[
2454             new FlowEntityBuilder >> [
2455                 dpnId = Uint64.valueOf(123bi)
2456                 cookie = Uint64.valueOf(110100480bi)
2457                 flowId = flowId1
2458                 flowName = flowId1
2459                 instructionInfoList = #[
2460                     new InstructionGotoTable(215 as short),
2461                     new InstructionWriteMetadata(Uint64.valueOf(32bi), Uint64.valueOf(16777200bi))
2462                 ]
2463                 matchInfoList = #[
2464                     new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
2465                 ]
2466                 priority = IdHelper.getId(flowId1)
2467                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2468             ]
2469         ]
2470     }
2471
2472     protected def egressDispatcherLast() {
2473         val flowId1 = "Egress_ACL_Dispatcher_Last_123_987_2"
2474         #[
2475             new FlowEntityBuilder >> [
2476                 dpnId = Uint64.valueOf(123bi)
2477                 cookie = Uint64.valueOf(1085218086715393bi)
2478                 flowId = flowId1
2479                 flowName = flowId1
2480                 instructionInfoList = #[
2481                     new InstructionApplyActions(#[
2482                         new ActionDrop()
2483                     ])
2484                 ]
2485                 matchInfoList = #[
2486                     new MatchMetadata(Uint64.valueOf(1085217976614944bi), Uint64.valueOf(1152920405111996400bi))
2487                 ]
2488                 priority = IdHelper.getId(flowId1)
2489                 tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2490             ]
2491         ]
2492     }
2493
2494     protected def egressDispatcherFirst1() {
2495             val flowId1 = "Egress_ACL_Dispatcher_First_123_987_4"
2496             #[
2497                 new FlowEntityBuilder >> [
2498                     dpnId = Uint64.valueOf(123bi)
2499                     cookie = Uint64.valueOf(110100480bi)
2500                     flowId = flowId1
2501                     flowName = flowId1
2502                     instructionInfoList = #[
2503                         new InstructionGotoTable(215 as short),
2504                         new InstructionWriteMetadata(Uint64.valueOf(64bi), Uint64.valueOf(16777200bi))
2505                     ]
2506                     matchInfoList = #[
2507                         new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
2508                     ]
2509                     priority = IdHelper.getId(flowId1)
2510                     tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2511                 ]
2512             ]
2513         }
2514
2515         protected def egressDispatcherLast1() {
2516             val flowId1 = "Egress_ACL_Dispatcher_Last_123_987_4"
2517             #[
2518                 new FlowEntityBuilder >> [
2519                     dpnId = Uint64.valueOf(123bi)
2520                     cookie = Uint64.valueOf(1085218086715393bi)
2521                     flowId = flowId1
2522                     flowName = flowId1
2523                     instructionInfoList = #[
2524                         new InstructionApplyActions(#[
2525                             new ActionDrop()
2526                         ])
2527                     ]
2528                     matchInfoList = #[
2529                         new MatchMetadata(Uint64.valueOf(1085217976614976bi), Uint64.valueOf(1152920405111996400bi))
2530                     ]
2531                     priority = IdHelper.getId(flowId1)
2532                     tableId = NwConstants.INGRESS_ACL_FILTER_CUM_DISPATCHER_TABLE
2533                 ]
2534             ]
2535         }
2536 }