2 * Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
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
8 package org.opendaylight.netvirt.aclservice.tests
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.ActionNxResubmit
15 import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions
16 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable
17 import org.opendaylight.genius.mdsalutil.matches.MatchArpSha
18 import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa
19 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination
20 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource
21 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType
22 import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv4
23 import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6
24 import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol
25 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination
26 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source
27 import org.opendaylight.genius.mdsalutil.matches.MatchMetadata
28 import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort
29 import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort
30 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchCtState
31 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister
32 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchTcpDestinationPort
33 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchUdpDestinationPort
34 import org.opendaylight.genius.mdsalutil.FlowEntityBuilder
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6
39 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
40 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable
41 import org.opendaylight.netvirt.aclservice.utils.AclConstants
42 import java.util.ArrayList
43 import org.opendaylight.genius.mdsalutil.actions.ActionNxConntrack.NxCtAction
44 import java.util.Collections
46 class FlowEntryObjectsStateful extends FlowEntryObjectsBase {
48 protected def etherFlows() {
49 fixedIngressFlowsPort1
50 + fixedConntrackIngressFlowsPort1
51 + fixedEgressL2BroadcastFlowsPort1
52 + fixedIngressL3BroadcastFlows
53 + fixedEgressFlowsPort1
54 + fixedConntrackEgressFlowsPort1
55 + etherEgressFlowsPort1
56 + fixedIngressFlowsPort2
57 + fixedConntrackIngressFlowsPort2
58 + etherIngressFlowsPort2
59 + etherIngressFlowsPort2
60 + fixedEgressL2BroadcastFlowsPort2
61 + fixedIngressL3BroadcastFlows
62 + fixedEgressFlowsPort2
63 + fixedConntrackEgressFlowsPort2
64 + etheregressFlowPort2
69 protected def tcpFlows() {
70 fixedIngressFlowsPort1
71 + fixedConntrackIngressFlowsPort1
73 + fixedEgressL2BroadcastFlowsPort1
74 + fixedIngressL3BroadcastFlows
75 + fixedEgressFlowsPort1
76 + fixedConntrackEgressFlowsPort1
77 + fixedIngressFlowsPort2
78 + fixedConntrackIngressFlowsPort2
80 + fixedEgressL2BroadcastFlowsPort2
81 + fixedIngressL3BroadcastFlows
82 + fixedEgressFlowsPort2
83 + fixedConntrackEgressFlowsPort2
90 protected def udpFlows() {
91 fixedIngressFlowsPort1
92 + fixedConntrackIngressFlowsPort1
93 + fixedEgressL2BroadcastFlowsPort1
94 + fixedIngressL3BroadcastFlows
95 + fixedEgressFlowsPort1
96 + fixedConntrackEgressFlowsPort1
98 + fixedIngressFlowsPort2
99 + fixedConntrackIngressFlowsPort2
100 + udpIngressFlowsPort2
101 + udpIngressFlowsPort2
102 + fixedEgressL2BroadcastFlowsPort2
103 + fixedIngressL3BroadcastFlows
104 + fixedEgressFlowsPort2
105 + fixedConntrackEgressFlowsPort2
106 + udpEgressFlowsPort2
111 protected def icmpFlows() {
112 fixedIngressFlowsPort1
113 + fixedConntrackIngressFlowsPort1
114 + icmpIngressFlowsPort1
115 + fixedEgressL2BroadcastFlowsPort1
116 + fixedIngressL3BroadcastFlows
117 + fixedEgressFlowsPort1
118 + fixedConntrackEgressFlowsPort1
119 + fixedIngressFlowsPort2
120 + fixedConntrackIngressFlowsPort2
121 + icmpIngressFlowsPort2
122 + fixedEgressL2BroadcastFlowsPort2
123 + fixedIngressL3BroadcastFlows
124 + fixedEgressFlowsPort2
125 + fixedConntrackEgressFlowsPort2
126 + icmpEgressFlowsPort2
127 + icmpEgressFlowsPort2
132 protected def dstRangeFlows() {
133 fixedIngressFlowsPort1
134 +fixedConntrackIngressFlowsPort1
135 + udpIngressPortRangeFlows
136 + fixedEgressL2BroadcastFlowsPort1
137 + fixedIngressL3BroadcastFlows
138 + fixedEgressFlowsPort1
139 + fixedConntrackEgressFlowsPort1
140 + tcpEgressRangeFlows
143 protected def dstAllFlows() {
144 fixedIngressFlowsPort1
145 + fixedConntrackIngressFlowsPort1
147 + fixedEgressL2BroadcastFlowsPort1
148 + fixedIngressL3BroadcastFlows
149 + fixedEgressFlowsPort1
150 + fixedConntrackEgressFlowsPort1
154 protected def icmpFlowsForTwoAclsHavingSameRules() {
155 fixedIngressFlowsPort3
156 + fixedConntrackIngressFlowsPort3
157 + icmpIngressFlowsPort3
158 + fixedEgressFlowsPort3
159 + fixedConntrackEgressFlowsPort3
160 + icmpEgressFlowsPort3
163 protected def aapWithIpv4AllFlows() {
165 + aapIpv4AllFlowsPort2
168 protected def aapFlows() {
170 + aapRemoteFlowsPort1
171 + aapRemoteFlowsPort1
175 protected def multipleAcl() {
176 fixedIngressFlowsPort1
177 + fixedConntrackIngressFlowsPort1
178 + fixedEgressL2BroadcastFlowsPort1
179 + fixedIngressL3BroadcastFlows
180 + fixedEgressFlowsPort1
181 + fixedConntrackEgressFlowsPort1
182 + etherEgressFlowsPort1
183 + etherEgressFlowsPort1
184 + etherEgressFlowsPort1
185 + etherEgressFlowsPort1AfterDelete
186 + etherEgressFlowsPort1AfterDelete
187 + fixedIngressFlowsPort2
188 + fixedConntrackIngressFlowsPort2
189 + etherIngressFlowsPort2
190 + etherIngressFlowsPort2
191 + etherIngressFlowsPort2AfterDelete
192 + etherIngressFlowsPort2AfterDelete
193 + fixedEgressL2BroadcastFlowsPort2
194 + fixedIngressL3BroadcastFlows
195 + fixedEgressFlowsPort2
196 + fixedConntrackEgressFlowsPort2
197 + etheregressFlowPort2
199 + remoteIngressFlowsPort1
200 + remoteIngressFlowsPort1
201 + remoteEgressFlowsPort1
202 + remoteEgressFlowsPort1
203 + fixedEgressArpFlowsPort1()
204 + fixedEgressArpFlowsPort2()
205 + tcpEgressFlowPort2WithRemoteIpSg
206 + tcpIngressFlowPort1WithMultipleSG
207 + tcpIngressFlowPort1WithMultipleSG
208 + etherIngressFlowsPort1WithRemoteIpSg("10.0.0.1", "ETHERnull_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F3_10.0.0.1/32Ingress98785cc3048-abc3-43cc-89b3-377341426ac7")
209 + etherIngressFlowsPort1WithRemoteIpSg("10.0.0.2", "ETHERnull_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F4_10.0.0.2/32Ingress98785cc3048-abc3-43cc-89b3-377341426ac7")
210 + etherIngressFlowsPort1WithRemoteIpSgAfterDelete("10.0.0.2", "ETHERnull_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F4_10.0.0.2/32Ingress987_IPv4_FlowAfterRuleDeleted")
211 + etherIngressFlowsPort2WithRemoteIpSg()
215 protected def etherIngressFlowsPort1WithRemoteIpSg(String ip, String theFlowId) {
217 new FlowEntityBuilder >> [
222 instructionInfoList = #[
223 new InstructionApplyActions(#[
224 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
225 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
227 new ActionNxResubmit(220 as short)
231 new MatchEthernetType(2048L),
232 new MatchIpv4Source(ip, "32"),
233 new MatchEthernetType(2048L),
234 new MatchEthernetType(2048L),
235 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
236 new NxMatchCtState(32L, 32L)
238 priority = IdHelper.getId(theFlowId)
239 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
244 protected def etherIngressFlowsPort1WithRemoteIpSgAfterDelete(String ip, String theFlowId) {
246 new FlowEntityBuilder >> [
252 instructionInfoList = #[
253 new InstructionApplyActions(#[
254 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
255 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_NEW_STATE))
258 new InstructionGotoTable(NwConstants.EGRESS_ACL_FILTER_TABLE as short)
261 new MatchEthernetType(2048L),
262 new MatchIpv4Source(ip, "32"),
263 new MatchEthernetType(2048L),
264 new MatchEthernetType(2048L),
265 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
266 new NxMatchCtState(AclConstants.TRACKED_RPL_CT_STATE, AclConstants.TRACKED_RPL_CT_STATE_MASK)
268 priority = IdHelper.getId(theFlowId)
269 tableId = NwConstants.EGRESS_ACL_STATEFUL_APPLY_CHANGE_EXIST_TRAFFIC_TABLE as short
274 protected def etherIngressFlowsPort2WithRemoteIpSg() {
275 val theFlowId = "ETHERnull_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F4_10.0.0.2/32"
276 +"Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
278 new FlowEntityBuilder >> [
283 instructionInfoList = #[
284 new InstructionApplyActions(#[
285 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
286 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
288 new ActionNxResubmit(220 as short)
292 new MatchEthernetType(2048L),
293 new MatchIpv4Source("10.0.0.2", "32"),
294 new MatchEthernetType(2048L),
295 new MatchEthernetType(2048L),
296 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
297 new NxMatchCtState(32L, 32L)
299 priority = IdHelper.getId(theFlowId)
300 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
305 protected def tcpEgressFlowPort2WithRemoteIpSg() {
306 val theFlowId1 ="TCP_DESTINATION_80_65535_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F3_10.0.0.1/32"
307 +"Egress98785cc3048-abc3-43cc-89b3-377341426a21"
308 val theFlowId2 = "TCP_DESTINATION_80_65535_ipv4_remoteACL_interface_aap_0D:AA:D8:42:30:F4_10.0.0.2/32"
309 +"Egress98785cc3048-abc3-43cc-89b3-377341426a21"
311 new FlowEntityBuilder >> [
316 instructionInfoList = #[
317 new InstructionApplyActions(#[
318 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
319 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
321 new ActionNxResubmit(17 as short)
325 new MatchEthernetType(2048L),
326 new MatchIpv4Destination("10.0.0.1", "32"),
327 new MatchEthernetType(2048L),
328 new MatchEthernetType(2048L),
329 new NxMatchTcpDestinationPort(80, 65535),
330 new MatchIpProtocol(6 as short),
331 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
332 new NxMatchCtState(32L, 32L)
334 priority = IdHelper.getId(theFlowId1)
335 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
337 new FlowEntityBuilder >> [
342 instructionInfoList = #[
343 new InstructionApplyActions(#[
344 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
345 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
347 new ActionNxResubmit(17 as short)
351 new MatchEthernetType(2048L),
352 new MatchIpv4Destination("10.0.0.2", "32"),
353 new MatchEthernetType(2048L),
354 new MatchEthernetType(2048L),
355 new NxMatchTcpDestinationPort(80, 65535),
356 new MatchIpProtocol(6 as short),
357 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
358 new NxMatchCtState(32L, 32L)
360 priority = IdHelper.getId(theFlowId2)
361 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
366 protected def tcpIngressFlowPort1WithMultipleSG() {
367 val theFlowId = "TCP_DESTINATION_80_65535Ingress98785cc3048-abc3-43cc-89b3-377341426a22"
369 new FlowEntityBuilder >> [
374 instructionInfoList = #[
375 new InstructionApplyActions(#[
376 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
377 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
379 new ActionNxResubmit(220 as short)
383 new MatchEthernetType(2048L),
384 new MatchEthernetType(2048L),
385 new NxMatchTcpDestinationPort(80, 65535),
386 new MatchIpProtocol(6 as short),
387 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
388 new NxMatchCtState(32L, 32L)
390 priority = IdHelper.getId(theFlowId)
391 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
396 protected def aapIpv4AllFlowsPort2() {
398 new FlowEntityBuilder >> [
401 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_0.0.0.0/0_Recirc"
403 instructionInfoList = #[
404 new InstructionApplyActions(#[
405 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE)
409 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
410 new MatchEthernetType(2048L)
413 tableId = NwConstants.INGRESS_ACL_TABLE
415 new FlowEntityBuilder >> [
418 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_0.0.0.0/0_Recirc"
420 instructionInfoList = #[
421 new InstructionApplyActions(#[
422 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE)
426 new MatchEthernetType(2048L),
427 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
428 new MatchEthernetType(2048L)
431 tableId = NwConstants.EGRESS_ACL_TABLE
433 new FlowEntityBuilder >> [
436 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F410.0.0.2/32"
438 instructionInfoList = #[
439 new InstructionApplyActions(#[
440 new ActionNxResubmit(17 as short)
444 new MatchEthernetType(2054L),
445 new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F4")),
446 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
447 new MatchArpSpa(new Ipv4Prefix("10.0.0.2/32")),
448 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
451 tableId = NwConstants.INGRESS_ACL_TABLE
453 new FlowEntityBuilder >> [
456 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:A4"
458 instructionInfoList = #[
459 new InstructionApplyActions(#[
460 new ActionNxResubmit(17 as short)
464 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
465 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
468 tableId = NwConstants.INGRESS_ACL_TABLE as short
473 protected def aapRemoteFlowsPort1() {
475 remoteIngressFlowsPort("10.0.0.100"),
476 remoteIngressFlowsPort("10.0.0.101"),
478 remoteEgressFlowsPort("10.0.0.100"),
479 remoteEgressFlowsPort("10.0.0.101")
483 protected def aapFlowsPort2() {
485 new FlowEntityBuilder >> [
488 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_10.0.0.100/32_Recirc"
490 instructionInfoList = #[
491 new InstructionApplyActions(#[
492 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE)
496 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
497 new MatchEthernetType(2048L),
498 new MatchIpv4Source("10.0.0.100", "32")
501 tableId = NwConstants.INGRESS_ACL_TABLE
503 new FlowEntityBuilder >> [
506 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_10.0.0.100/32_Recirc"
508 instructionInfoList = #[
509 new InstructionApplyActions(#[
510 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE)
514 new MatchEthernetType(2048L),
515 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
516 new MatchEthernetType(2048L),
517 new MatchIpv4Destination("10.0.0.100", "32")
520 tableId = NwConstants.EGRESS_ACL_TABLE
522 new FlowEntityBuilder >> [
525 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:A4_10.0.0.101/32_Recirc"
527 instructionInfoList = #[
528 new InstructionApplyActions(#[
529 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE)
533 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
534 new MatchEthernetType(2048L),
535 new MatchIpv4Source("10.0.0.101", "32")
538 tableId = NwConstants.INGRESS_ACL_TABLE
540 new FlowEntityBuilder >> [
543 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:A4_10.0.0.101/32_Recirc"
545 instructionInfoList = #[
546 new InstructionApplyActions(#[
547 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE)
551 new MatchEthernetType(2048L),
552 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:A4")),
553 new MatchEthernetType(2048L),
554 new MatchIpv4Destination("10.0.0.101", "32")
557 tableId = NwConstants.EGRESS_ACL_TABLE
559 new FlowEntityBuilder >> [
562 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F410.0.0.100/32"
564 instructionInfoList = #[
565 new InstructionApplyActions(#[
566 new ActionNxResubmit(17 as short)
570 new MatchEthernetType(2054L),
571 new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F4")),
572 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
573 new MatchArpSpa(new Ipv4Prefix("10.0.0.100/32")),
574 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
577 tableId = NwConstants.INGRESS_ACL_TABLE
579 new FlowEntityBuilder >> [
582 flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:A410.0.0.101/32"
584 instructionInfoList = #[
585 new InstructionApplyActions(#[
586 new ActionNxResubmit(17 as short)
590 new MatchEthernetType(2054L),
591 new MatchArpSha(new MacAddress("0D:AA:D8:42:30:A4")),
592 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
593 new MatchArpSpa(new Ipv4Prefix("10.0.0.101/32")),
594 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
597 tableId = NwConstants.INGRESS_ACL_TABLE
599 new FlowEntityBuilder >> [
602 flowId = "Egress_DHCP_Client_v4123_987_0D:AA:D8:42:30:A4_Permit_"
604 instructionInfoList = #[
605 new InstructionApplyActions(#[
606 new ActionNxResubmit(17 as short)
610 new MatchEthernetType(2048L),
611 new MatchIpProtocol(17 as short),
612 new MatchUdpDestinationPort(67 as short),
613 new MatchUdpSourcePort(68 as short),
614 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
615 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4"))
618 tableId = NwConstants.INGRESS_ACL_TABLE as short
620 new FlowEntityBuilder >> [
623 flowId = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:A4_Permit_"
625 instructionInfoList = #[
626 new InstructionApplyActions(#[
627 new ActionNxResubmit(17 as short)
631 new MatchEthernetType(34525L),
632 new MatchIpProtocol(17 as short),
633 new MatchUdpDestinationPort(547 as short),
634 new MatchUdpSourcePort(546 as short),
635 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
636 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4"))
639 tableId = NwConstants.INGRESS_ACL_TABLE as short
641 new FlowEntityBuilder >> [
644 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:A4"
646 instructionInfoList = #[
647 new InstructionApplyActions(#[
648 new ActionNxResubmit(17 as short)
652 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:A4")),
653 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
656 tableId = NwConstants.INGRESS_ACL_TABLE as short
661 protected def fixedConntrackIngressFlowsPort1() {
663 new FlowEntityBuilder >> [
666 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F3_10.0.0.1/32_Recirc"
668 instructionInfoList = #[
669 new InstructionApplyActions(#[
670 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
674 new MatchEthernetType(2048L),
675 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F3")),
676 new MatchEthernetType(2048L),
677 new MatchIpv4Destination("10.0.0.1", "32")
680 tableId = NwConstants.EGRESS_ACL_TABLE as short
682 new FlowEntityBuilder >> [
685 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
687 instructionInfoList = #[
688 new InstructionApplyActions(#[
693 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
694 new NxMatchCtState(32L, 32L)
697 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
699 new FlowEntityBuilder >> [
702 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
704 instructionInfoList = #[
705 new InstructionApplyActions(#[
710 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
711 new NxMatchCtState(48L, 48L)
714 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
719 protected def etherIngressFlowsPort2() {
720 val theFlowId = "ETHERnull_remoteACL_id_85cc3048-abc3-43cc-89b3-377341426ac5Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
722 new FlowEntityBuilder >> [
727 instructionInfoList = #[
728 new InstructionApplyActions(#[
729 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
730 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
732 new ActionNxResubmit(220 as short)
736 new MatchMetadata(4bi, MetaDataUtil.METADATA_MASK_REMOTE_ACL_ID),
737 new MatchEthernetType(2048L),
738 new MatchEthernetType(2048L),
739 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
740 new NxMatchCtState(32L, 32L)
742 priority = IdHelper.getId(theFlowId)
743 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
748 protected def etherIngressFlowsPort2AfterDelete() {
749 val theFlowId = "ETHERnull_remoteACL_id_85cc3048-abc3-43cc-89b3-377341426ac5Ingress987_IPv4_FlowAfterRuleDeleted"
751 new FlowEntityBuilder >> [
757 instructionInfoList = #[
758 new InstructionApplyActions(#[
759 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
760 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_NEW_STATE))
763 new InstructionGotoTable(NwConstants.EGRESS_ACL_FILTER_TABLE as short)
766 new MatchMetadata(4bi, MetaDataUtil.METADATA_MASK_REMOTE_ACL_ID),
767 new MatchEthernetType(2048L),
768 new MatchEthernetType(2048L),
769 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
770 new NxMatchCtState(AclConstants.TRACKED_RPL_CT_STATE, AclConstants.TRACKED_RPL_CT_STATE_MASK)
772 priority = IdHelper.getId(theFlowId)
773 tableId = NwConstants.EGRESS_ACL_STATEFUL_APPLY_CHANGE_EXIST_TRAFFIC_TABLE as short
778 protected def fixedConntrackEgressFlowsPort1() {
780 new FlowEntityBuilder >> [
783 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F3_10.0.0.1/32_Recirc"
785 instructionInfoList = #[
786 new InstructionApplyActions(#[
787 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
791 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F3")),
792 new MatchEthernetType(2048L),
793 new MatchIpv4Source("10.0.0.1", "32")
796 tableId = NwConstants.INGRESS_ACL_TABLE as short
798 new FlowEntityBuilder >> [
801 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
803 instructionInfoList = #[
804 new InstructionApplyActions(#[
809 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
810 new NxMatchCtState(32L, 32L)
813 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
815 new FlowEntityBuilder >> [
818 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
820 instructionInfoList = #[
821 new InstructionApplyActions(#[
826 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
827 new NxMatchCtState(48L, 48L)
830 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
835 protected def fixedConntrackIngressFlowsPort2() {
837 new FlowEntityBuilder >> [
840 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_10.0.0.2/32_Recirc"
842 instructionInfoList = #[
843 new InstructionApplyActions(#[
844 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
848 new MatchEthernetType(2048L),
849 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F4")),
850 new MatchEthernetType(2048L),
851 new MatchIpv4Destination("10.0.0.2", "32")
854 tableId = NwConstants.EGRESS_ACL_TABLE as short
856 new FlowEntityBuilder >> [
859 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
861 instructionInfoList = #[
862 new InstructionApplyActions(#[
867 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
868 new NxMatchCtState(32L, 32L)
871 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
873 new FlowEntityBuilder >> [
876 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
878 instructionInfoList = #[
879 new InstructionApplyActions(#[
884 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
885 new NxMatchCtState(48L, 48L)
888 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
893 protected def fixedConntrackEgressFlowsPort2() {
895 new FlowEntityBuilder >> [
898 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F4_10.0.0.2/32_Recirc"
900 instructionInfoList = #[
901 new InstructionApplyActions(#[
902 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
906 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
907 new MatchEthernetType(2048L),
908 new MatchIpv4Source("10.0.0.2", "32")
911 tableId = NwConstants.INGRESS_ACL_TABLE as short
913 new FlowEntityBuilder >> [
916 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
918 instructionInfoList = #[
919 new InstructionApplyActions(#[
924 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
925 new NxMatchCtState(32L, 32L)
928 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
930 new FlowEntityBuilder >> [
933 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
935 instructionInfoList = #[
936 new InstructionApplyActions(#[
941 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
942 new NxMatchCtState(48L, 48L)
945 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
950 protected def fixedConntrackIngressFlowsPort3() {
952 new FlowEntityBuilder >> [
955 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F5_10.0.0.3/32_Recirc"
957 instructionInfoList = #[
958 new InstructionApplyActions(#[
959 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
963 new MatchEthernetType(2048L),
964 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F5")),
965 new MatchEthernetType(2048L),
966 new MatchIpv4Destination("10.0.0.3", "32")
969 tableId = NwConstants.EGRESS_ACL_TABLE as short
971 new FlowEntityBuilder >> [
974 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
976 instructionInfoList = #[
977 new InstructionApplyActions(#[
982 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
983 new NxMatchCtState(32L, 32L)
986 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
988 new FlowEntityBuilder >> [
991 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
993 instructionInfoList = #[
994 new InstructionApplyActions(#[
999 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1000 new NxMatchCtState(48L, 48L)
1003 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1008 protected def fixedConntrackEgressFlowsPort3() {
1010 new FlowEntityBuilder >> [
1012 cookie = 110100480bi
1013 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F5_10.0.0.3/32_Recirc"
1015 instructionInfoList = #[
1016 new InstructionApplyActions(#[
1017 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
1021 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F5")),
1022 new MatchEthernetType(2048L),
1023 new MatchIpv4Source("10.0.0.3", "32")
1026 tableId = NwConstants.INGRESS_ACL_TABLE as short
1028 new FlowEntityBuilder >> [
1030 cookie = 110100481bi
1031 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
1033 instructionInfoList = #[
1034 new InstructionApplyActions(#[
1039 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1040 new NxMatchCtState(32L, 32L)
1043 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1045 new FlowEntityBuilder >> [
1047 cookie = 110100481bi
1048 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1050 instructionInfoList = #[
1051 new InstructionApplyActions(#[
1056 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1057 new NxMatchCtState(48L, 48L)
1060 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1065 static def fixedConntrackIngressFlowsPort4() {
1067 new FlowEntityBuilder >> [
1069 cookie = 110100480bi
1070 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_10.0.0.4/32_Recirc"
1072 instructionInfoList = #[
1073 new InstructionApplyActions(#[
1074 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
1078 new MatchEthernetType(2048L),
1079 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F6")),
1080 new MatchEthernetType(2048L),
1081 new MatchIpv4Destination("10.0.0.4", "32")
1084 tableId = NwConstants.EGRESS_ACL_TABLE as short
1086 new FlowEntityBuilder >> [
1088 cookie = 110100480bi
1089 flowId = "Ingress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
1091 instructionInfoList = #[
1092 new InstructionApplyActions(#[
1093 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
1097 new MatchEthernetType(2048L),
1098 new MatchEthernetDestination(new MacAddress("0D:AA:D8:42:30:F6")),
1099 new MatchEthernetType(2048L)
1102 tableId = NwConstants.EGRESS_ACL_TABLE as short
1104 new FlowEntityBuilder >> [
1106 cookie = 110100481bi
1107 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
1109 instructionInfoList = #[
1110 new InstructionApplyActions(#[
1115 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1116 new NxMatchCtState(32L, 32L)
1119 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1121 new FlowEntityBuilder >> [
1123 cookie = 110100481bi
1124 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1126 instructionInfoList = #[
1127 new InstructionApplyActions(#[
1132 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1133 new NxMatchCtState(48L, 48L)
1136 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1141 static def fixedConntrackEgressFlowsPort4() {
1143 new FlowEntityBuilder >> [
1145 cookie = 110100480bi
1146 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_10.0.0.4/32_Recirc"
1148 instructionInfoList = #[
1149 new InstructionApplyActions(#[
1150 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
1154 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F6")),
1155 new MatchEthernetType(2048L),
1156 new MatchIpv4Source("10.0.0.4", "32")
1159 tableId = NwConstants.INGRESS_ACL_TABLE as short
1161 new FlowEntityBuilder >> [
1163 cookie = 110100480bi
1164 flowId = "Egress_Fixed_Conntrk_123_0D:AA:D8:42:30:F6_0.0.0.0/0_Recirc"
1166 instructionInfoList = #[
1167 new InstructionApplyActions(#[
1168 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
1172 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F6")),
1173 new MatchEthernetType(2048L)
1176 tableId = NwConstants.INGRESS_ACL_TABLE as short
1178 new FlowEntityBuilder >> [
1180 cookie = 110100481bi
1181 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
1183 instructionInfoList = #[
1184 new InstructionApplyActions(#[
1189 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1190 new NxMatchCtState(32L, 32L)
1193 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1195 new FlowEntityBuilder >> [
1197 cookie = 110100481bi
1198 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
1200 instructionInfoList = #[
1201 new InstructionApplyActions(#[
1206 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1207 new NxMatchCtState(48L, 48L)
1210 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1215 protected def etherEgressFlowsPort1() {
1216 val theFlowId = "ETHERnullEgress98785cc3048-abc3-43cc-89b3-377341426ac6"
1218 new FlowEntityBuilder >> [
1220 cookie = 110100480bi
1223 instructionInfoList = #[
1224 new InstructionApplyActions(#[
1225 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1226 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1228 new ActionNxResubmit(17 as short)
1232 new MatchEthernetType(2048L),
1233 new MatchEthernetType(2048L),
1234 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1235 new NxMatchCtState(32L, 32L)
1237 priority = IdHelper.getId(theFlowId)
1238 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1243 protected def etherEgressFlowsPort1AfterDelete() {
1244 val theFlowId = "ETHERnullEgress987_IPv4_FlowAfterRuleDeleted"
1246 new FlowEntityBuilder >> [
1248 cookie = 110100480bi
1252 instructionInfoList = #[
1253 new InstructionApplyActions(#[
1254 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1255 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_NEW_STATE))
1258 new InstructionGotoTable(NwConstants.INGRESS_ACL_FILTER_TABLE as short)
1261 new MatchEthernetType(2048L),
1262 new MatchEthernetType(2048L),
1263 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1264 new NxMatchCtState(AclConstants.TRACKED_RPL_CT_STATE, AclConstants.TRACKED_RPL_CT_STATE_MASK)
1266 priority = IdHelper.getId(theFlowId)
1267 tableId = NwConstants.INGRESS_ACL_STATEFUL_APPLY_CHANGE_EXIST_TRAFFIC_TABLE as short
1272 protected def etheregressFlowPort2() {
1273 val theFlowId = "ETHERnullEgress98785cc3048-abc3-43cc-89b3-377341426ac6"
1275 new FlowEntityBuilder >> [
1277 cookie = 110100480bi
1280 instructionInfoList = #[
1281 new InstructionApplyActions(#[
1282 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1283 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1285 new ActionNxResubmit(17 as short)
1289 new MatchEthernetType(2048L),
1290 new MatchEthernetType(2048L),
1291 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1292 new NxMatchCtState(32L, 32L)
1294 priority = IdHelper.getId(theFlowId)
1295 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1300 protected def tcpIngressFlowPort1() {
1301 val theFlowId = "TCP_DESTINATION_80_65535Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1303 new FlowEntityBuilder >> [
1305 cookie = 110100480bi
1308 instructionInfoList = #[
1309 new InstructionApplyActions(#[
1310 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1311 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1313 new ActionNxResubmit(220 as short)
1317 new MatchEthernetType(2048L),
1318 new MatchEthernetType(2048L),
1319 new NxMatchTcpDestinationPort(80, 65535),
1320 new MatchIpProtocol(6 as short),
1321 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1322 new NxMatchCtState(32L, 32L)
1324 priority = IdHelper.getId(theFlowId)
1325 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1330 protected def tcpIngressFlowPort2() {
1331 val theFlowId = "TCP_DESTINATION_80_65535Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1333 new FlowEntityBuilder >> [
1335 cookie = 110100480bi
1338 instructionInfoList = #[
1339 new InstructionApplyActions(#[
1340 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1341 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1343 new ActionNxResubmit(220 as short)
1347 new MatchEthernetType(2048L),
1348 new MatchEthernetType(2048L),
1349 new NxMatchTcpDestinationPort(80, 65535),
1350 new MatchIpProtocol(6 as short),
1351 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1352 new NxMatchCtState(32L, 32L)
1354 priority = IdHelper.getId(theFlowId)
1355 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1360 protected def tcpEgressFlowPort2() {
1361 val theFlowId = "TCP_DESTINATION_80_65535_remoteACL_id_85cc3048-abc3-43cc-89b3-377341426ac5Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1363 new FlowEntityBuilder >> [
1365 cookie = 110100480bi
1368 instructionInfoList = #[
1369 new InstructionApplyActions(#[
1370 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1371 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1373 new ActionNxResubmit(17 as short)
1377 new MatchMetadata(4bi, MetaDataUtil.METADATA_MASK_REMOTE_ACL_ID),
1378 new MatchEthernetType(2048L),
1379 new MatchEthernetType(2048L),
1380 new NxMatchTcpDestinationPort(80, 65535),
1381 new MatchIpProtocol(6 as short),
1382 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1383 new NxMatchCtState(32L, 32L)
1385 priority = IdHelper.getId(theFlowId)
1386 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1391 protected def udpEgressFlowsPort1() {
1392 val theFlowId = "UDP_DESTINATION_80_65535Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1394 new FlowEntityBuilder >> [
1396 cookie = 110100480bi
1399 instructionInfoList = #[
1400 new InstructionApplyActions(#[
1401 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1402 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1404 new ActionNxResubmit(17 as short)
1408 new MatchEthernetType(2048L),
1409 new MatchEthernetType(2048L),
1410 new NxMatchUdpDestinationPort(80, 65535),
1411 new MatchIpProtocol(17 as short),
1412 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1413 new NxMatchCtState(32L, 32L)
1415 priority = IdHelper.getId(theFlowId)
1416 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1421 protected def udpIngressFlowsPort2() {
1422 val theFlowId = "UDP_DESTINATION_80_65535_remoteACL_id_85cc3048-abc3-43cc-89b3-377341426ac5Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1424 new FlowEntityBuilder >> [
1426 cookie = 110100480bi
1429 instructionInfoList = #[
1430 new InstructionApplyActions(#[
1431 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1432 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1434 new ActionNxResubmit(220 as short)
1438 new MatchMetadata(4bi, MetaDataUtil.METADATA_MASK_REMOTE_ACL_ID),
1439 new MatchEthernetType(2048L),
1440 new MatchEthernetType(2048L),
1441 new NxMatchUdpDestinationPort(80, 65535),
1442 new MatchIpProtocol(17 as short),
1443 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1444 new NxMatchCtState(32L, 32L)
1446 priority = IdHelper.getId(theFlowId)
1447 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1452 protected def udpEgressFlowsPort2() {
1453 val theFlowId = "UDP_DESTINATION_80_65535Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1455 new FlowEntityBuilder >> [
1457 cookie = 110100480bi
1460 instructionInfoList = #[
1461 new InstructionApplyActions(#[
1462 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1463 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1465 new ActionNxResubmit(17 as short)
1469 new MatchEthernetType(2048L),
1470 new MatchEthernetType(2048L),
1471 new NxMatchUdpDestinationPort(80, 65535),
1472 new MatchIpProtocol(17 as short),
1473 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1474 new NxMatchCtState(32L, 32L)
1476 priority = IdHelper.getId(theFlowId)
1477 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1482 protected def icmpIngressFlowsPort1() {
1483 val theFlowId = "ICMP_V4_DESTINATION_23_Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1485 new FlowEntityBuilder >> [
1487 cookie = 110100480bi
1490 instructionInfoList = #[
1491 new InstructionApplyActions(#[
1492 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1493 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1495 new ActionNxResubmit(220 as short)
1499 new MatchEthernetType(2048L),
1500 new MatchEthernetType(2048L),
1501 new MatchIcmpv4(2 as short, 3 as short),
1502 new MatchIpProtocol(1 as short),
1503 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1504 new NxMatchCtState(32L, 32L)
1506 priority = IdHelper.getId(theFlowId)
1507 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1512 protected def icmpIngressFlowsPort2() {
1513 val theFlowId = "ICMP_V4_DESTINATION_23_Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1515 new FlowEntityBuilder >> [
1517 cookie = 110100480bi
1520 instructionInfoList = #[
1521 new InstructionApplyActions(#[
1522 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1523 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1525 new ActionNxResubmit(220 as short)
1529 new MatchEthernetType(2048L),
1530 new MatchEthernetType(2048L),
1531 new MatchIcmpv4(2 as short, 3 as short),
1532 new MatchIpProtocol(1 as short),
1533 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1534 new NxMatchCtState(32L, 32L)
1536 priority = IdHelper.getId(theFlowId)
1537 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1542 protected def icmpEgressFlowsPort2() {
1543 val theFlowId = "ICMP_V4_DESTINATION_23__remoteACL_id_85cc3048-abc3-43cc-89b3-377341426ac5Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1545 new FlowEntityBuilder >> [
1547 cookie = 110100480bi
1550 instructionInfoList = #[
1551 new InstructionApplyActions(#[
1552 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1553 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1555 new ActionNxResubmit(17 as short)
1559 new MatchMetadata(4bi, MetaDataUtil.METADATA_MASK_REMOTE_ACL_ID),
1560 new MatchEthernetType(2048L),
1561 new MatchEthernetType(2048L),
1562 new MatchIcmpv4(2 as short, 3 as short),
1563 new MatchIpProtocol(1 as short),
1564 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1565 new NxMatchCtState(32L, 32L)
1567 priority = IdHelper.getId(theFlowId)
1568 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1573 protected def udpIngressPortRangeFlows() {
1574 val theFlowId = "UDP_DESTINATION_2000_65532Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1576 new FlowEntityBuilder >> [
1578 cookie = 110100480bi
1581 instructionInfoList = #[
1582 new InstructionApplyActions(#[
1583 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1584 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1586 new ActionNxResubmit(220 as short)
1590 new MatchEthernetType(2048L),
1591 new MatchEthernetType(2048L),
1592 new NxMatchUdpDestinationPort(2000, 65532),
1593 new MatchIpProtocol(17 as short),
1594 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1595 new NxMatchCtState(32L, 32L)
1597 priority = IdHelper.getId(theFlowId)
1598 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1603 protected def tcpEgressRangeFlows() {
1604 val flowId1 = "TCP_DESTINATION_776_65534Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1605 val flowId2 = "TCP_DESTINATION_512_65280Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1606 val flowId3 = "TCP_DESTINATION_334_65534Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1607 val flowId4 = "TCP_DESTINATION_333_65535Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1608 val flowId5 = "TCP_DESTINATION_336_65520Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1609 val flowId6 = "TCP_DESTINATION_352_65504Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1610 val flowId7 = "TCP_DESTINATION_384_65408Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1611 val flowId8 = "TCP_DESTINATION_768_65528Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1613 new FlowEntityBuilder >> [
1615 cookie = 110100480bi
1618 instructionInfoList = #[
1619 new InstructionApplyActions(#[
1620 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1621 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1623 new ActionNxResubmit(17 as short)
1627 new MatchEthernetType(2048L),
1628 new MatchEthernetType(2048L),
1629 new NxMatchTcpDestinationPort(776, 65534),
1630 new MatchIpProtocol(6 as short),
1631 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1632 new NxMatchCtState(32L, 32L)
1634 priority = IdHelper.getId(flowId1)
1635 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1637 new FlowEntityBuilder >> [
1639 cookie = 110100480bi
1642 instructionInfoList = #[
1643 new InstructionApplyActions(#[
1644 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1645 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1647 new ActionNxResubmit(17 as short)
1651 new MatchEthernetType(2048L),
1652 new MatchEthernetType(2048L),
1653 new NxMatchTcpDestinationPort(512, 65280),
1654 new MatchIpProtocol(6 as short),
1655 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1656 new NxMatchCtState(32L, 32L)
1658 priority = IdHelper.getId(flowId2)
1659 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1661 new FlowEntityBuilder >> [
1663 cookie = 110100480bi
1666 instructionInfoList = #[
1667 new InstructionApplyActions(#[
1668 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1669 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1671 new ActionNxResubmit(17 as short)
1675 new MatchEthernetType(2048L),
1676 new MatchEthernetType(2048L),
1677 new NxMatchTcpDestinationPort(334, 65534),
1678 new MatchIpProtocol(6 as short),
1679 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1680 new NxMatchCtState(32L, 32L)
1682 priority = IdHelper.getId(flowId3)
1683 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1685 new FlowEntityBuilder >> [
1687 cookie = 110100480bi
1690 instructionInfoList = #[
1691 new InstructionApplyActions(#[
1692 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1693 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1695 new ActionNxResubmit(17 as short)
1699 new MatchEthernetType(2048L),
1700 new MatchEthernetType(2048L),
1701 new NxMatchTcpDestinationPort(333, 65535),
1702 new MatchIpProtocol(6 as short),
1703 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1704 new NxMatchCtState(32L, 32L)
1706 priority = IdHelper.getId(flowId4)
1707 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1709 new FlowEntityBuilder >> [
1711 cookie = 110100480bi
1714 instructionInfoList = #[
1715 new InstructionApplyActions(#[
1716 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1717 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1719 new ActionNxResubmit(17 as short)
1723 new MatchEthernetType(2048L),
1724 new MatchEthernetType(2048L),
1725 new NxMatchTcpDestinationPort(336, 65520),
1726 new MatchIpProtocol(6 as short),
1727 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1728 new NxMatchCtState(32L, 32L)
1730 priority = IdHelper.getId(flowId5)
1731 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1733 new FlowEntityBuilder >> [
1735 cookie = 110100480bi
1738 instructionInfoList = #[
1739 new InstructionApplyActions(#[
1740 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1741 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1743 new ActionNxResubmit(17 as short)
1747 new MatchEthernetType(2048L),
1748 new MatchEthernetType(2048L),
1749 new NxMatchTcpDestinationPort(352, 65504),
1750 new MatchIpProtocol(6 as short),
1751 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1752 new NxMatchCtState(32L, 32L)
1754 priority = IdHelper.getId(flowId6)
1755 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1757 new FlowEntityBuilder >> [
1759 cookie = 110100480bi
1762 instructionInfoList = #[
1763 new InstructionApplyActions(#[
1764 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1765 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1767 new ActionNxResubmit(17 as short)
1771 new MatchEthernetType(2048L),
1772 new MatchEthernetType(2048L),
1773 new NxMatchTcpDestinationPort(384, 65408),
1774 new MatchIpProtocol(6 as short),
1775 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1776 new NxMatchCtState(32L, 32L)
1778 priority = IdHelper.getId(flowId7)
1779 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1781 new FlowEntityBuilder >> [
1783 cookie = 110100480bi
1786 instructionInfoList = #[
1787 new InstructionApplyActions(#[
1788 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1789 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1791 new ActionNxResubmit(17 as short)
1795 new MatchEthernetType(2048L),
1796 new MatchEthernetType(2048L),
1797 new NxMatchTcpDestinationPort(768, 65528),
1798 new MatchIpProtocol(6 as short),
1799 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1800 new NxMatchCtState(32L, 32L)
1802 priority = IdHelper.getId(flowId8)
1803 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1808 protected def udpIngressAllFlows() {
1809 val theFlowId = "UDP_DESTINATION_1_0Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1811 new FlowEntityBuilder >> [
1813 cookie = 110100480bi
1816 instructionInfoList = #[
1817 new InstructionApplyActions(#[
1818 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1819 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1821 new ActionNxResubmit(220 as short)
1825 new MatchEthernetType(2048L),
1826 new MatchEthernetType(2048L),
1827 new MatchIpProtocol(17 as short),
1828 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1829 new NxMatchCtState(32L, 32L)
1831 priority = IdHelper.getId(theFlowId)
1832 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1837 protected def tcpEgressAllFlows() {
1838 val theFlowId = "TCP_DESTINATION_1_0Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1840 new FlowEntityBuilder >> [
1842 cookie = 110100480bi
1845 instructionInfoList = #[
1846 new InstructionApplyActions(#[
1847 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1848 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1850 new ActionNxResubmit(17 as short)
1854 new MatchEthernetType(2048L),
1855 new MatchEthernetType(2048L),
1856 new MatchIpProtocol(6 as short),
1857 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1858 new NxMatchCtState(32L, 32L)
1860 priority = IdHelper.getId(theFlowId)
1861 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1867 protected def icmpIngressFlowsPort3() {
1868 val flowId1 = "ICMP_V4_DESTINATION_23_Ingress98785cc3048-abc3-43cc-89b3-377341426ac7"
1869 val flowId2 = "ICMP_V4_DESTINATION_23_Ingress98785cc3048-abc3-43cc-89b3-377341426a22"
1871 new FlowEntityBuilder >> [
1873 cookie = 110100480bi
1876 instructionInfoList = #[
1877 new InstructionApplyActions(#[
1878 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1879 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1881 new ActionNxResubmit(220 as short)
1885 new MatchEthernetType(2048L),
1886 new MatchEthernetType(2048L),
1887 new MatchIcmpv4(2 as short, 3 as short),
1888 new MatchIpProtocol(1 as short),
1889 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1890 new NxMatchCtState(32L, 32L)
1892 priority = IdHelper.getId(flowId1)
1893 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1895 new FlowEntityBuilder >> [
1897 cookie = 110100480bi
1900 instructionInfoList = #[
1901 new InstructionApplyActions(#[
1902 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1903 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1905 new ActionNxResubmit(220 as short)
1909 new MatchEthernetType(2048L),
1910 new MatchEthernetType(2048L),
1911 new MatchIcmpv4(2 as short, 3 as short),
1912 new MatchIpProtocol(1 as short),
1913 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
1914 new NxMatchCtState(32L, 32L)
1916 priority = IdHelper.getId(flowId2)
1917 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
1922 protected def icmpEgressFlowsPort3() {
1923 val flowId1 = "ICMP_V4_DESTINATION_23_Egress98785cc3048-abc3-43cc-89b3-377341426ac6"
1924 val flowId2 = "ICMP_V4_DESTINATION_23_Egress98785cc3048-abc3-43cc-89b3-377341426a21"
1926 new FlowEntityBuilder >> [
1928 cookie = 110100480bi
1931 instructionInfoList = #[
1932 new InstructionApplyActions(#[
1933 new ActionNxConntrack(2, 1, 0, 5000, 255 as short),
1934 new ActionNxResubmit(17 as short)
1938 new MatchEthernetType(2048L),
1939 new MatchEthernetType(2048L),
1940 new MatchIcmpv4(2 as short, 3 as short),
1941 new MatchIpProtocol(1 as short),
1942 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1943 new NxMatchCtState(32L, 32L)
1945 priority = IdHelper.getId(flowId1)
1946 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1948 new FlowEntityBuilder >> [
1950 cookie = 110100480bi
1953 instructionInfoList = #[
1954 new InstructionApplyActions(#[
1955 new ActionNxConntrack(2, 1, 0, 5000, 255 as short,
1956 Collections.singletonList(new ActionNxConntrack.NxCtMark(AclConstants.CT_MARK_EST_STATE))
1958 new ActionNxResubmit(17 as short)
1962 new MatchEthernetType(2048L),
1963 new MatchEthernetType(2048L),
1964 new MatchIcmpv4(2 as short, 3 as short),
1965 new MatchIpProtocol(1 as short),
1966 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
1967 new NxMatchCtState(32L, 32L)
1969 priority = IdHelper.getId(flowId2)
1970 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
1975 override def expectedFlows(String mac) {
1976 // Code auto. generated by https://github.com/vorburger/xtendbeans
1978 new FlowEntityBuilder >> [
1980 cookie = 110100480bi
1981 flowId = "Ingress_DHCP_Server_v4123_987__Permit_"
1983 instructionInfoList = #[
1984 new InstructionApplyActions(#[
1985 new ActionNxResubmit(220 as short)
1989 new MatchEthernetType(2048L),
1990 new MatchIpProtocol(17 as short),
1991 new MatchUdpDestinationPort(68 as short),
1992 new MatchUdpSourcePort(67 as short),
1993 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1996 tableId = NwConstants.EGRESS_ACL_TABLE as short
1998 new FlowEntityBuilder >> [
2000 cookie = 110100480bi
2001 flowId = "Ingress_DHCP_Server_v6_123_987___Permit_"
2003 instructionInfoList = #[
2004 new InstructionApplyActions(#[
2005 new ActionNxResubmit(220 as short)
2009 new MatchEthernetType(34525L),
2010 new MatchIpProtocol(17 as short),
2011 new MatchUdpDestinationPort(546 as short),
2012 new MatchUdpSourcePort(547 as short),
2013 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2016 tableId = NwConstants.EGRESS_ACL_TABLE as short
2018 new FlowEntityBuilder >> [
2020 cookie = 110100480bi
2021 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
2023 instructionInfoList = #[
2024 new InstructionApplyActions(#[
2025 new ActionNxResubmit(220 as short)
2029 new MatchEthernetType(34525L),
2030 new MatchIpProtocol(58 as short),
2031 new MatchIcmpv6(130 as short, 0 as short),
2032 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2035 tableId = NwConstants.EGRESS_ACL_TABLE as short
2037 new FlowEntityBuilder >> [
2039 cookie = 110100480bi
2040 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
2042 instructionInfoList = #[
2043 new InstructionApplyActions(#[
2044 new ActionNxResubmit(220 as short)
2048 new MatchEthernetType(34525L),
2049 new MatchIpProtocol(58 as short),
2050 new MatchIcmpv6(135 as short, 0 as short),
2051 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2054 tableId = NwConstants.EGRESS_ACL_TABLE as short
2056 new FlowEntityBuilder >> [
2058 cookie = 110100480bi
2059 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
2061 instructionInfoList = #[
2062 new InstructionApplyActions(#[
2063 new ActionNxResubmit(220 as short)
2067 new MatchEthernetType(34525L),
2068 new MatchIpProtocol(58 as short),
2069 new MatchIcmpv6(136 as short, 0 as short),
2070 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2073 tableId = NwConstants.EGRESS_ACL_TABLE as short
2075 new FlowEntityBuilder >> [
2077 cookie = 110100480bi
2078 flowId = "Ingress_ARP_123_987"
2080 instructionInfoList = #[
2081 new InstructionApplyActions(#[
2082 new ActionNxResubmit(220 as short)
2086 new MatchEthernetType(2054L),
2087 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2090 tableId = NwConstants.EGRESS_ACL_TABLE as short
2092 new FlowEntityBuilder >> [
2094 cookie = 110100481bi
2095 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_New"
2097 instructionInfoList = #[
2098 new InstructionApplyActions(#[
2103 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
2104 new NxMatchCtState(32L, 32L)
2107 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
2109 new FlowEntityBuilder >> [
2111 cookie = 110100481bi
2112 flowId = "Ingress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
2114 instructionInfoList = #[
2115 new InstructionApplyActions(#[
2120 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
2121 new NxMatchCtState(48L, 48L)
2124 tableId = NwConstants.INGRESS_ACL_FILTER_TABLE as short
2126 new FlowEntityBuilder >> [
2128 cookie = 110100480bi
2129 flowId = "Egress_DHCP_Client_v4123_987_" + mac + "_Permit_"
2131 instructionInfoList = #[
2132 new InstructionApplyActions(#[
2133 new ActionNxResubmit(17 as short)
2137 new MatchEthernetType(2048L),
2138 new MatchIpProtocol(17 as short),
2139 new MatchUdpDestinationPort(67 as short),
2140 new MatchUdpSourcePort(68 as short),
2141 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
2142 new MatchEthernetSource(new MacAddress(mac))
2145 tableId = NwConstants.INGRESS_ACL_TABLE as short
2147 new FlowEntityBuilder >> [
2149 cookie = 110100480bi
2150 flowId = "Egress_DHCP_Client_v6_123_987_" + mac + "_Permit_"
2152 instructionInfoList = #[
2153 new InstructionApplyActions(#[
2154 new ActionNxResubmit(17 as short)
2158 new MatchEthernetType(34525L),
2159 new MatchIpProtocol(17 as short),
2160 new MatchUdpDestinationPort(547 as short),
2161 new MatchUdpSourcePort(546 as short),
2162 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG),
2163 new MatchEthernetSource(new MacAddress(mac))
2166 tableId = NwConstants.INGRESS_ACL_TABLE as short
2168 new FlowEntityBuilder >> [
2170 cookie = 110100480bi
2171 flowId = "Egress_DHCP_Server_v4123_987__Drop_"
2173 instructionInfoList = #[
2176 new MatchEthernetType(2048L),
2177 new MatchIpProtocol(17 as short),
2178 new MatchUdpDestinationPort(68 as short),
2179 new MatchUdpSourcePort(67 as short),
2180 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2183 tableId = NwConstants.INGRESS_ACL_TABLE as short
2185 new FlowEntityBuilder >> [
2187 cookie = 110100480bi
2188 flowId = "Egress_DHCP_Server_v6_123_987__Drop_"
2190 instructionInfoList = #[
2193 new MatchEthernetType(34525L),
2194 new MatchIpProtocol(17 as short),
2195 new MatchUdpDestinationPort(546 as short),
2196 new MatchUdpSourcePort(547 as short),
2197 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2200 tableId = NwConstants.INGRESS_ACL_TABLE as short
2202 new FlowEntityBuilder >> [
2204 cookie = 110100480bi
2205 flowId = "Egress_ICMPv6_123_987_134_Drop_"
2207 instructionInfoList = #[
2210 new MatchEthernetType(34525L),
2211 new MatchIpProtocol(58 as short),
2212 new MatchIcmpv6(134 as short, 0 as short),
2213 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2216 tableId = NwConstants.INGRESS_ACL_TABLE as short
2218 new FlowEntityBuilder >> [
2220 cookie = 110100480bi
2221 flowId = "Egress_ICMPv6_123_987_133_Permit_"
2223 instructionInfoList = #[
2224 new InstructionApplyActions(#[
2225 new ActionNxResubmit(17 as short)
2229 new MatchEthernetType(34525L),
2230 new MatchIpProtocol(58 as short),
2231 new MatchIcmpv6(133 as short, 0 as short),
2232 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2235 tableId = NwConstants.INGRESS_ACL_TABLE as short
2237 new FlowEntityBuilder >> [
2239 cookie = 110100480bi
2240 flowId = "Egress_ICMPv6_123_987_135_Permit_"
2242 instructionInfoList = #[
2243 new InstructionApplyActions(#[
2244 new ActionNxResubmit(17 as short)
2248 new MatchEthernetType(34525L),
2249 new MatchIpProtocol(58 as short),
2250 new MatchIcmpv6(135 as short, 0 as short),
2251 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2254 tableId = NwConstants.INGRESS_ACL_TABLE as short
2256 new FlowEntityBuilder >> [
2258 cookie = 110100480bi
2259 flowId = "Egress_ICMPv6_123_987_136_Permit_"
2261 instructionInfoList = #[
2262 new InstructionApplyActions(#[
2263 new ActionNxResubmit(17 as short)
2267 new MatchEthernetType(34525L),
2268 new MatchIpProtocol(58 as short),
2269 new MatchIcmpv6(136 as short, 0 as short),
2270 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2273 tableId = NwConstants.INGRESS_ACL_TABLE as short
2275 new FlowEntityBuilder >> [
2277 cookie = 110100481bi
2278 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_New"
2280 instructionInfoList = #[
2281 new InstructionApplyActions(#[
2286 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2287 new NxMatchCtState(32L, 32L)
2290 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
2292 new FlowEntityBuilder >> [
2294 cookie = 110100481bi
2295 flowId = "Egress_Fixed_Conntrk_Drop123_987_Tracked_Invalid"
2297 instructionInfoList = #[
2298 new InstructionApplyActions(#[
2303 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L),
2304 new NxMatchCtState(48L, 48L)
2307 tableId = NwConstants.EGRESS_ACL_FILTER_TABLE as short
2309 new FlowEntityBuilder >> [
2311 cookie = 110100480bi
2312 flowId = "Ingress_Fixed_Conntrk_123_" + mac + "_10.0.0.1/32_Recirc"
2314 instructionInfoList = #[
2315 new InstructionApplyActions(#[
2316 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
2320 new MatchEthernetType(2048L),
2321 new MatchEthernetDestination(new MacAddress(mac)),
2322 new MatchEthernetType(2048L),
2323 new MatchIpv4Destination("10.0.0.1", "32")
2326 tableId = NwConstants.EGRESS_ACL_TABLE as short
2328 new FlowEntityBuilder >> [
2330 cookie = 110100480bi
2331 flowId = "Egress_Fixed_Conntrk_123_" + mac + "_10.0.0.1/32_Recirc"
2333 instructionInfoList = #[
2334 new InstructionApplyActions(#[
2335 new ActionNxConntrack(2, 0, 0, 5000, NwConstants.INGRESS_ACL_REMOTE_ACL_TABLE as short)
2339 new MatchEthernetSource(new MacAddress(mac)),
2340 new MatchEthernetType(2048L),
2341 new MatchIpv4Source("10.0.0.1", "32")
2344 tableId = NwConstants.INGRESS_ACL_TABLE as short
2346 new FlowEntityBuilder >> [
2348 cookie = 110100480bi
2349 flowId = "Egress_ARP_123_987_" + mac + "10.0.0.1/32"
2351 instructionInfoList = #[
2352 new InstructionApplyActions(#[
2353 new ActionNxResubmit(17 as short)
2357 new MatchEthernetType(2054L),
2358 new MatchArpSha(new MacAddress(mac)),
2359 new MatchEthernetSource(new MacAddress(mac)),
2360 new MatchArpSpa(new Ipv4Prefix("10.0.0.1/32")),
2361 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2364 tableId = NwConstants.INGRESS_ACL_TABLE as short
2366 new FlowEntityBuilder >> [
2368 cookie = 110100480bi
2369 flowId = "Egress_L2Broadcast_123_987_" + mac
2371 instructionInfoList = #[
2372 new InstructionApplyActions(#[
2373 new ActionNxResubmit(17 as short)
2377 new MatchEthernetSource(new MacAddress(mac)),
2378 new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG)
2381 tableId = NwConstants.INGRESS_ACL_TABLE as short
2383 new FlowEntityBuilder >> [
2384 cookie = 110100480bi
2386 flowId = "Ingress_v4_Broadcast_123_987_10.0.0.255_Permit"
2390 instructionInfoList = #[
2391 new InstructionGotoTable(NwConstants.EGRESS_ACL_REMOTE_ACL_TABLE as short)
2394 new MatchEthernetDestination(new MacAddress("ff:ff:ff:ff:ff:ff")),
2395 new MatchEthernetType(2048L),
2396 new MatchIpv4Destination(new Ipv4Prefix("10.0.0.255/32")),
2397 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
2400 sendFlowRemFlag = false
2402 tableId = NwConstants.EGRESS_ACL_TABLE as short