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