2 * Copyright (c) 2018 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.FlowEntityBuilder
11 import org.opendaylight.genius.mdsalutil.MetaDataUtil
12 import org.opendaylight.genius.mdsalutil.NwConstants
13 import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit
14 import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions
15 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable
16 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetSource
17 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType
18 import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6
19 import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol
20 import org.opendaylight.genius.mdsalutil.matches.MatchMetadata
21 import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort
22 import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort
23 import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6
28 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
29 import org.opendaylight.genius.mdsalutil.matches.MatchIpv6Destination
30 import org.opendaylight.genius.mdsalutil.matches.MatchIpv6Source
31 import org.opendaylight.genius.mdsalutil.matches.MatchEthernetDestination
32 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination
33 import org.opendaylight.yangtools.yang.common.Uint64
35 class FlowEntryObjectsBaseIpv6 {
37 protected def fixedFlowsPort1(String ip1, String prefix) {
38 #[ fixedIngressFlowsPort1, fixedEgressFlowsPort1(ip1, prefix) ]
41 protected def fixedIngressFlowsPort1() {
43 new FlowEntityBuilder >> [
44 dpnId = Uint64.valueOf(123bi)
45 cookie = Uint64.valueOf(110100480bi)
46 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
47 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
48 instructionInfoList = #[
49 new InstructionApplyActions(#[
50 new ActionNxResubmit(220 as short)
54 new MatchEthernetType(2048L),
55 new MatchIpProtocol(17 as short),
56 new MatchUdpDestinationPort(68),
57 new MatchUdpSourcePort(67),
58 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
61 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
63 new FlowEntityBuilder >> [
64 dpnId = Uint64.valueOf(123bi)
65 cookie = Uint64.valueOf(110100480bi)
66 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
67 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
68 instructionInfoList = #[
69 new InstructionApplyActions(#[
70 new ActionNxResubmit(220 as short)
74 new MatchEthernetType(34525L),
75 new MatchIpProtocol(17 as short),
76 new MatchUdpDestinationPort(546),
77 new MatchUdpSourcePort(547),
78 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
81 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
83 new FlowEntityBuilder >> [
84 dpnId = Uint64.valueOf(123bi)
85 cookie = Uint64.valueOf(110100480bi)
86 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
87 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
88 instructionInfoList = #[
89 new InstructionApplyActions(#[
90 new ActionNxResubmit(220 as short)
94 new MatchEthernetType(34525L),
95 new MatchIpProtocol(58 as short),
96 new MatchIcmpv6(130 as short, 0 as short),
97 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
100 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
102 new FlowEntityBuilder >> [
103 dpnId = Uint64.valueOf(123bi)
104 cookie = Uint64.valueOf(110100480bi)
105 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
106 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
107 instructionInfoList = #[
108 new InstructionApplyActions(#[
109 new ActionNxResubmit(220 as short)
113 new MatchEthernetType(34525L),
114 new MatchIpProtocol(58 as short),
115 new MatchIcmpv6(135 as short, 0 as short),
116 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
119 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
121 new FlowEntityBuilder >> [
122 dpnId = Uint64.valueOf(123bi)
123 cookie = Uint64.valueOf(110100480bi)
124 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
125 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
126 instructionInfoList = #[
127 new InstructionApplyActions(#[
128 new ActionNxResubmit(220 as short)
132 new MatchEthernetType(34525L),
133 new MatchIpProtocol(58 as short),
134 new MatchIcmpv6(136 as short, 0 as short),
135 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
138 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
140 new FlowEntityBuilder >> [
141 dpnId = Uint64.valueOf(123bi)
142 cookie = Uint64.valueOf(110100480bi)
143 flowId = "Ingress_ARP_123_987"
144 flowName = "Ingress_ARP_123_987"
145 instructionInfoList = #[
146 new InstructionApplyActions(#[
147 new ActionNxResubmit(220 as short)
151 new MatchEthernetType(2054L),
152 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
155 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
161 protected def fixedEgressL2BroadcastFlowsPort1() {
163 new FlowEntityBuilder >> [
164 dpnId = Uint64.valueOf(123bi)
165 cookie = Uint64.valueOf(110100480bi)
166 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F3"
167 flowName = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F3"
168 instructionInfoList = #[
169 new InstructionApplyActions(#[
170 new ActionNxResubmit(17 as short)
174 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F3")),
175 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
178 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
183 protected def fixedIngressL3BroadcastFlows() {
185 new FlowEntityBuilder >> [
186 cookie = Uint64.valueOf(110100480bi)
187 dpnId = Uint64.valueOf(123bi)
188 flowId = "Ingress_v4_Broadcast_123_987_10.0.0.255_Permit"
189 flowName = "Ingress_v4_Broadcast_123_987_10.0.0.255_Permit"
192 instructionInfoList = #[
193 new InstructionGotoTable(NwConstants.EGRESS_ACL_CONNTRACK_CLASSIFIER_TABLE)
196 new MatchEthernetDestination(new MacAddress("ff:ff:ff:ff:ff:ff")),
197 new MatchEthernetType(2048L),
198 new MatchIpv4Destination(new Ipv4Prefix("10.0.0.255/32")),
199 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
202 sendFlowRemFlag = false
204 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
208 protected def fixedEgressFlowsPort1(String ip1, String prefix) {
210 new FlowEntityBuilder >> [
211 dpnId = Uint64.valueOf(123bi)
212 cookie = Uint64.valueOf(110100480bi)
213 flowId = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F3_Permit_"
214 flowName = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F3_Permit_"
215 instructionInfoList = #[
216 new InstructionApplyActions(#[
217 new ActionNxResubmit(17 as short)
221 new MatchEthernetType(34525L),
222 new MatchIpProtocol(17 as short),
223 new MatchUdpDestinationPort(547),
224 new MatchUdpSourcePort(546),
225 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
226 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F3"))
229 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
231 new FlowEntityBuilder >> [
232 dpnId = Uint64.valueOf(123bi)
233 cookie = Uint64.valueOf(110100480bi)
234 flowId = "Egress_ICMPv6_123_987_133_Permit_"
235 flowName = "Egress_ICMPv6_123_987_133_Permit_"
236 instructionInfoList = #[
237 new InstructionApplyActions(#[
238 new ActionNxResubmit(17 as short)
242 new MatchEthernetType(34525L),
243 new MatchIpProtocol(58 as short),
244 new MatchIcmpv6(133 as short, 0 as short),
245 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
248 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
250 new FlowEntityBuilder >> [
251 dpnId = Uint64.valueOf(123bi)
252 cookie = Uint64.valueOf(110100480bi)
253 flowId = "Egress_ICMPv6_123_987_135_Permit_"
254 flowName = "Egress_ICMPv6_123_987_135_Permit_"
255 instructionInfoList = #[
256 new InstructionApplyActions(#[
257 new ActionNxResubmit(17 as short)
261 new MatchEthernetType(34525L),
262 new MatchIpProtocol(58 as short),
263 new MatchIcmpv6(135 as short, 0 as short),
264 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
267 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
269 new FlowEntityBuilder >> [
270 dpnId = Uint64.valueOf(123bi)
271 cookie = Uint64.valueOf(110100480bi)
272 flowId = "Egress_ICMPv6_123_987_136_Permit_"
273 flowName = "Egress_ICMPv6_123_987_136_Permit_"
274 instructionInfoList = #[
275 new InstructionApplyActions(#[
276 new ActionNxResubmit(17 as short)
280 new MatchEthernetType(34525L),
281 new MatchIpProtocol(58 as short),
282 new MatchIcmpv6(136 as short, 0 as short),
283 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
286 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
292 protected def fixedIngressFlowsPort2() {
294 new FlowEntityBuilder >> [
295 dpnId = Uint64.valueOf(123bi)
296 cookie = Uint64.valueOf(110100480bi)
297 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
298 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
299 instructionInfoList = #[
300 new InstructionApplyActions(#[
301 new ActionNxResubmit(220 as short)
305 new MatchEthernetType(2048L),
306 new MatchIpProtocol(17 as short),
307 new MatchUdpDestinationPort(68),
308 new MatchUdpSourcePort(67),
309 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
312 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
314 new FlowEntityBuilder >> [
315 dpnId = Uint64.valueOf(123bi)
316 cookie = Uint64.valueOf(110100480bi)
317 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
318 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
319 instructionInfoList = #[
320 new InstructionApplyActions(#[
321 new ActionNxResubmit(220 as short)
325 new MatchEthernetType(34525L),
326 new MatchIpProtocol(17 as short),
327 new MatchUdpDestinationPort(546),
328 new MatchUdpSourcePort(547),
329 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
332 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
334 new FlowEntityBuilder >> [
335 dpnId = Uint64.valueOf(123bi)
336 cookie = Uint64.valueOf(110100480bi)
337 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
338 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
339 instructionInfoList = #[
340 new InstructionApplyActions(#[
341 new ActionNxResubmit(220 as short)
345 new MatchEthernetType(34525L),
346 new MatchIpProtocol(58 as short),
347 new MatchIcmpv6(130 as short, 0 as short),
348 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
351 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
353 new FlowEntityBuilder >> [
354 dpnId = Uint64.valueOf(123bi)
355 cookie = Uint64.valueOf(110100480bi)
356 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
357 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
358 instructionInfoList = #[
359 new InstructionApplyActions(#[
360 new ActionNxResubmit(220 as short)
364 new MatchEthernetType(34525L),
365 new MatchIpProtocol(58 as short),
366 new MatchIcmpv6(135 as short, 0 as short),
367 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
370 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
372 new FlowEntityBuilder >> [
373 dpnId = Uint64.valueOf(123bi)
374 cookie = Uint64.valueOf(110100480bi)
375 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
376 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
377 instructionInfoList = #[
378 new InstructionApplyActions(#[
379 new ActionNxResubmit(220 as short)
383 new MatchEthernetType(34525L),
384 new MatchIpProtocol(58 as short),
385 new MatchIcmpv6(136 as short, 0 as short),
386 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
389 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
391 new FlowEntityBuilder >> [
392 dpnId = Uint64.valueOf(123bi)
393 cookie = Uint64.valueOf(110100480bi)
394 flowId = "Ingress_ARP_123_987"
395 flowName = "Ingress_ARP_123_987"
396 instructionInfoList = #[
397 new InstructionApplyActions(#[
398 new ActionNxResubmit(220 as short)
402 new MatchEthernetType(2054L),
403 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
406 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
411 protected def fixedEgressL2BroadcastFlowsPort2 () {
413 new FlowEntityBuilder >> [
414 dpnId = Uint64.valueOf(123bi)
415 cookie = Uint64.valueOf(110100480bi)
416 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F4"
417 flowName = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F4"
418 instructionInfoList = #[
419 new InstructionApplyActions(#[
420 new ActionNxResubmit(17 as short)
424 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4")),
425 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
428 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
433 protected def fixedEgressFlowsPort2 (String ip2, String prefix) {
435 new FlowEntityBuilder >> [
436 dpnId = Uint64.valueOf(123bi)
437 cookie = Uint64.valueOf(110100480bi)
438 flowId = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F4_Permit_"
439 flowName = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F4_Permit_"
440 instructionInfoList = #[
441 new InstructionApplyActions(#[
442 new ActionNxResubmit(17 as short)
446 new MatchEthernetType(34525L),
447 new MatchIpProtocol(17 as short),
448 new MatchUdpDestinationPort(547 as short),
449 new MatchUdpSourcePort(546 as short),
450 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
451 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F4"))
454 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
456 new FlowEntityBuilder >> [
457 dpnId = Uint64.valueOf(123bi)
458 cookie = Uint64.valueOf(110100480bi)
459 flowId = "Egress_ICMPv6_123_987_133_Permit_"
460 flowName = "Egress_ICMPv6_123_987_133_Permit_"
461 instructionInfoList = #[
462 new InstructionApplyActions(#[
463 new ActionNxResubmit(17 as short)
467 new MatchEthernetType(34525L),
468 new MatchIpProtocol(58 as short),
469 new MatchIcmpv6(133 as short, 0 as short),
470 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
473 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
475 new FlowEntityBuilder >> [
476 dpnId = Uint64.valueOf(123bi)
477 cookie = Uint64.valueOf(110100480bi)
478 flowId = "Egress_ICMPv6_123_987_135_Permit_"
479 flowName = "Egress_ICMPv6_123_987_135_Permit_"
480 instructionInfoList = #[
481 new InstructionApplyActions(#[
482 new ActionNxResubmit(17 as short)
486 new MatchEthernetType(34525L),
487 new MatchIpProtocol(58 as short),
488 new MatchIcmpv6(135 as short, 0 as short),
489 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
492 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
494 new FlowEntityBuilder >> [
495 dpnId = Uint64.valueOf(123bi)
496 cookie = Uint64.valueOf(110100480bi)
497 flowId = "Egress_ICMPv6_123_987_136_Permit_"
498 flowName = "Egress_ICMPv6_123_987_136_Permit_"
499 instructionInfoList = #[
500 new InstructionApplyActions(#[
501 new ActionNxResubmit(17 as short)
505 new MatchEthernetType(34525L),
506 new MatchIpProtocol(58 as short),
507 new MatchIcmpv6(136 as short, 0 as short),
508 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
511 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
516 protected def fixedIngressFlowsPort3() {
518 new FlowEntityBuilder >> [
519 dpnId = Uint64.valueOf(123bi)
520 cookie = Uint64.valueOf(110100480bi)
521 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
522 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
523 instructionInfoList = #[
524 new InstructionApplyActions(#[
525 new ActionNxResubmit(220 as short)
529 new MatchEthernetType(2048L),
530 new MatchIpProtocol(17 as short),
531 new MatchUdpDestinationPort(68),
532 new MatchUdpSourcePort(67),
533 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
536 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
538 new FlowEntityBuilder >> [
539 dpnId = Uint64.valueOf(123bi)
540 cookie = Uint64.valueOf(110100480bi)
541 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
542 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
543 instructionInfoList = #[
544 new InstructionApplyActions(#[
545 new ActionNxResubmit(220 as short)
549 new MatchEthernetType(34525L),
550 new MatchIpProtocol(17 as short),
551 new MatchUdpDestinationPort(546),
552 new MatchUdpSourcePort(547),
553 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
556 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
558 new FlowEntityBuilder >> [
559 dpnId = Uint64.valueOf(123bi)
560 cookie = Uint64.valueOf(110100480bi)
561 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
562 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
563 instructionInfoList = #[
564 new InstructionApplyActions(#[
565 new ActionNxResubmit(220 as short)
569 new MatchEthernetType(34525L),
570 new MatchIpProtocol(58 as short),
571 new MatchIcmpv6(130 as short, 0 as short),
572 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
575 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
577 new FlowEntityBuilder >> [
578 dpnId = Uint64.valueOf(123bi)
579 cookie = Uint64.valueOf(110100480bi)
580 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
581 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
582 instructionInfoList = #[
583 new InstructionApplyActions(#[
584 new ActionNxResubmit(220 as short)
588 new MatchEthernetType(34525L),
589 new MatchIpProtocol(58 as short),
590 new MatchIcmpv6(135 as short, 0 as short),
591 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
594 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
596 new FlowEntityBuilder >> [
597 dpnId = Uint64.valueOf(123bi)
598 cookie = Uint64.valueOf(110100480bi)
599 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
600 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
601 instructionInfoList = #[
602 new InstructionApplyActions(#[
603 new ActionNxResubmit(220 as short)
607 new MatchEthernetType(34525L),
608 new MatchIpProtocol(58 as short),
609 new MatchIcmpv6(136 as short, 0 as short),
610 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
613 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
615 new FlowEntityBuilder >> [
616 dpnId = Uint64.valueOf(123bi)
617 cookie = Uint64.valueOf(110100480bi)
618 flowId = "Ingress_ARP_123_987"
619 flowName = "Ingress_ARP_123_987"
620 instructionInfoList = #[
621 new InstructionApplyActions(#[
622 new ActionNxResubmit(220 as short)
626 new MatchEthernetType(2054L),
627 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
630 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
635 protected def fixedEgressL2BroadcastFlowsPort3 () {
637 new FlowEntityBuilder >> [
638 dpnId = Uint64.valueOf(123bi)
639 cookie = Uint64.valueOf(110100480bi)
640 flowId = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F5"
641 flowName = "Egress_L2Broadcast_123_987_0D:AA:D8:42:30:F5"
642 instructionInfoList = #[
643 new InstructionApplyActions(#[
644 new ActionNxResubmit(17 as short)
648 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F5")),
649 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
652 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
657 protected def fixedEgressFlowsPort3 (String ip3, String prefix) {
659 new FlowEntityBuilder >> [
660 dpnId = Uint64.valueOf(123bi)
661 cookie = Uint64.valueOf(110100480bi)
662 flowId = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F5_Permit_"
663 flowName = "Egress_DHCP_Client_v6_123_987_0D:AA:D8:42:30:F5_Permit_"
664 instructionInfoList = #[
665 new InstructionApplyActions(#[
666 new ActionNxResubmit(17 as short)
670 new MatchEthernetType(34525L),
671 new MatchIpProtocol(17 as short),
672 new MatchUdpDestinationPort(547),
673 new MatchUdpSourcePort(546),
674 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
675 new MatchEthernetSource(new MacAddress("0D:AA:D8:42:30:F5"))
678 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
680 new FlowEntityBuilder >> [
681 dpnId = Uint64.valueOf(123bi)
682 cookie = Uint64.valueOf(110100480bi)
683 flowId = "Egress_ICMPv6_123_987_133_Permit_"
684 flowName = "Egress_ICMPv6_123_987_133_Permit_"
685 instructionInfoList = #[
686 new InstructionApplyActions(#[
687 new ActionNxResubmit(17 as short)
691 new MatchEthernetType(34525L),
692 new MatchIpProtocol(58 as short),
693 new MatchIcmpv6(133 as short, 0 as short),
694 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
697 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
699 new FlowEntityBuilder >> [
700 dpnId = Uint64.valueOf(123bi)
701 cookie = Uint64.valueOf(110100480bi)
702 flowId = "Egress_ICMPv6_123_987_135_Permit_"
703 flowName = "Egress_ICMPv6_123_987_135_Permit_"
704 instructionInfoList = #[
705 new InstructionApplyActions(#[
706 new ActionNxResubmit(17 as short)
710 new MatchEthernetType(34525L),
711 new MatchIpProtocol(58 as short),
712 new MatchIcmpv6(135 as short, 0 as short),
713 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
716 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
718 new FlowEntityBuilder >> [
719 dpnId = Uint64.valueOf(123bi)
720 cookie = Uint64.valueOf(110100480bi)
721 flowId = "Egress_ICMPv6_123_987_136_Permit_"
722 flowName = "Egress_ICMPv6_123_987_136_Permit_"
723 instructionInfoList = #[
724 new InstructionApplyActions(#[
725 new ActionNxResubmit(17 as short)
729 new MatchEthernetType(34525L),
730 new MatchIpProtocol(58 as short),
731 new MatchIcmpv6(136 as short, 0 as short),
732 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
735 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
740 static def fixedIngressFlowsPort4() {
742 new FlowEntityBuilder >> [
743 dpnId = Uint64.valueOf(123bi)
744 cookie = Uint64.valueOf(110100480bi)
745 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
746 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
747 instructionInfoList = #[
748 new InstructionApplyActions(#[
749 new ActionNxResubmit(220 as short)
753 new MatchEthernetType(2048L),
754 new MatchIpProtocol(17 as short),
755 new MatchUdpDestinationPort(68),
756 new MatchUdpSourcePort(67),
757 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
760 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
762 new FlowEntityBuilder >> [
763 dpnId = Uint64.valueOf(123bi)
764 cookie = Uint64.valueOf(110100480bi)
765 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
766 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
767 instructionInfoList = #[
768 new InstructionApplyActions(#[
769 new ActionNxResubmit(220 as short)
773 new MatchEthernetType(34525L),
774 new MatchIpProtocol(17 as short),
775 new MatchUdpDestinationPort(546),
776 new MatchUdpSourcePort(547),
777 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
780 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
782 new FlowEntityBuilder >> [
783 dpnId = Uint64.valueOf(123bi)
784 cookie = Uint64.valueOf(110100480bi)
785 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
786 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
787 instructionInfoList = #[
788 new InstructionApplyActions(#[
789 new ActionNxResubmit(220 as short)
793 new MatchEthernetType(34525L),
794 new MatchIpProtocol(58 as short),
795 new MatchIcmpv6(130 as short, 0 as short),
796 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
799 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
801 new FlowEntityBuilder >> [
802 dpnId = Uint64.valueOf(123bi)
803 cookie = Uint64.valueOf(110100480bi)
804 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
805 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
806 instructionInfoList = #[
807 new InstructionApplyActions(#[
808 new ActionNxResubmit(220 as short)
812 new MatchEthernetType(34525L),
813 new MatchIpProtocol(58 as short),
814 new MatchIcmpv6(135 as short, 0 as short),
815 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
818 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
820 new FlowEntityBuilder >> [
821 dpnId = Uint64.valueOf(123bi)
822 cookie = Uint64.valueOf(110100480bi)
823 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
824 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
825 instructionInfoList = #[
826 new InstructionApplyActions(#[
827 new ActionNxResubmit(220 as short)
831 new MatchEthernetType(34525L),
832 new MatchIpProtocol(58 as short),
833 new MatchIcmpv6(136 as short, 0 as short),
834 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
837 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
839 new FlowEntityBuilder >> [
840 dpnId = Uint64.valueOf(123bi)
841 cookie = Uint64.valueOf(110100480bi)
842 flowId = "Ingress_ARP_123_987"
843 flowName = "Ingress_ARP_123_987"
844 instructionInfoList = #[
845 new InstructionApplyActions(#[
846 new ActionNxResubmit(220 as short)
850 new MatchEthernetType(2054L),
851 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
854 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
859 static def fixedEgressFlowsPort4 () {
861 new FlowEntityBuilder >> [
862 dpnId = Uint64.valueOf(123bi)
863 cookie = Uint64.valueOf(110100480bi)
864 flowId = "Egress_DHCP_Client_v6_123_987__Permit_"
865 flowName = "Egress_DHCP_Client_v6_123_987__Permit_"
866 instructionInfoList = #[
867 new InstructionApplyActions(#[
868 new ActionNxResubmit(17 as short)
872 new MatchEthernetType(34525L),
873 new MatchIpProtocol(17 as short),
874 new MatchUdpDestinationPort(547),
875 new MatchUdpSourcePort(546),
876 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
879 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
881 new FlowEntityBuilder >> [
882 dpnId = Uint64.valueOf(123bi)
883 cookie = Uint64.valueOf(110100480bi)
884 flowId = "Egress_DHCP_Client_v6_123_987__Permit_"
885 flowName = "Egress_DHCP_Client_v6_123_987__Permit_"
886 instructionInfoList = #[
887 new InstructionApplyActions(#[
888 new ActionNxResubmit(17 as short)
892 new MatchEthernetType(34525L),
893 new MatchIpProtocol(17 as short),
894 new MatchUdpDestinationPort(547),
895 new MatchUdpSourcePort(546),
896 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
899 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
901 new FlowEntityBuilder >> [
902 dpnId = Uint64.valueOf(123bi)
903 cookie = Uint64.valueOf(110100480bi)
904 flowId = "Egress_ICMPv6_123_987_133_Permit_"
905 flowName = "Egress_ICMPv6_123_987_133_Permit_"
906 instructionInfoList = #[
907 new InstructionApplyActions(#[
908 new ActionNxResubmit(17 as short)
912 new MatchEthernetType(34525L),
913 new MatchIpProtocol(58 as short),
914 new MatchIcmpv6(133 as short, 0 as short),
915 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
918 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
920 new FlowEntityBuilder >> [
921 dpnId = Uint64.valueOf(123bi)
922 cookie = Uint64.valueOf(110100480bi)
923 flowId = "Egress_ICMPv6_123_987_135_Permit_"
924 flowName = "Egress_ICMPv6_123_987_135_Permit_"
925 instructionInfoList = #[
926 new InstructionApplyActions(#[
927 new ActionNxResubmit(17 as short)
931 new MatchEthernetType(34525L),
932 new MatchIpProtocol(58 as short),
933 new MatchIcmpv6(135 as short, 0 as short),
934 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
937 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
939 new FlowEntityBuilder >> [
940 dpnId = Uint64.valueOf(123bi)
941 cookie = Uint64.valueOf(110100480bi)
942 flowId = "Egress_ICMPv6_123_987_136_Permit_"
943 flowName = "Egress_ICMPv6_123_987_136_Permit_"
944 instructionInfoList = #[
945 new InstructionApplyActions(#[
946 new ActionNxResubmit(17 as short)
950 new MatchEthernetType(34525L),
951 new MatchIpProtocol(58 as short),
952 new MatchIcmpv6(136 as short, 0 as short),
953 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
956 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
961 protected def remoteFlows(String ip1, String ip2, String prefix) {
962 remoteIngressFlowsPort1(ip1, prefix)
963 + remoteEgressFlowsPort1(ip1, prefix)
964 + remoteIngressFlowsPort2(ip2, prefix)
965 + remoteEgressFlowsPort2(ip2, prefix)
968 protected def remoteIngressFlowsPort1(String ip1, String prefix) {
970 remoteIngressFlowsPort(ip1, prefix)
974 protected def remoteIngressFlowsPort2(String ip2, String prefix) {
976 remoteIngressFlowsPort(ip2, prefix)
981 protected def remoteEgressFlowsPort1(String ip1, String prefix) {
983 remoteEgressFlowsPort(ip1, prefix)
987 protected def remoteEgressFlowsPort2(String ip2, String prefix) {
989 remoteEgressFlowsPort(ip2, prefix)
993 protected def remoteIngressFlowsPort(String ip, String prefix) {
994 new FlowEntityBuilder >> [
995 dpnId = Uint64.valueOf(123bi)
996 cookie = Uint64.valueOf(110100480bi)
997 flowId = "Acl_Filter_Egress_" + ip + "/" + prefix + "_2"
998 flowName = "Acl_Filter_Egress_" + ip + "/" + prefix + "_2"
999 instructionInfoList = #[
1000 new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1003 new MatchMetadata(Uint64.valueOf(32bi),Uint64.valueOf(16777200bi)),
1004 new MatchEthernetType(34525L),
1005 new MatchIpv6Destination(ip + "/"+ prefix)
1008 tableId = NwConstants.INGRESS_REMOTE_ACL_TABLE
1012 protected def remoteIngressFlowsPortIpv4(String ip, String prefix) {
1013 new FlowEntityBuilder >> [
1014 dpnId = Uint64.valueOf(123bi)
1015 cookie = Uint64.valueOf(110100480bi)
1016 flowId = "Acl_Filter_Egress_" + ip + "/" + prefix + "_2"
1017 flowName = "Acl_Filter_Egress_" + ip + "/" + prefix + "_2"
1018 instructionInfoList = #[
1019 new InstructionGotoTable(NwConstants.INGRESS_ACL_COMMITTER_TABLE)
1022 new MatchMetadata(Uint64.valueOf(32bi),Uint64.valueOf(16777200bi)),
1023 new MatchEthernetType(2048L),
1024 new MatchIpv4Destination(ip, prefix)
1027 tableId = NwConstants.INGRESS_REMOTE_ACL_TABLE
1031 protected def remoteEgressFlowsPort(String ip, String prefix) {
1032 new FlowEntityBuilder >> [
1033 dpnId = Uint64.valueOf(123bi)
1034 cookie = Uint64.valueOf(110100480bi)
1035 flowId = "Acl_Filter_Ingress_" + ip + "/" + prefix + "_2"
1036 flowName = "Acl_Filter_Ingress_" + ip + "/" + prefix + "_2"
1037 instructionInfoList = #[
1038 new InstructionGotoTable(NwConstants.EGRESS_ACL_COMMITTER_TABLE)
1041 new MatchMetadata(Uint64.valueOf(32bi),Uint64.valueOf(16777200bi)),
1042 new MatchEthernetType(34525L),
1043 new MatchIpv6Source(ip + "/"+ prefix)
1046 tableId = NwConstants.EGRESS_REMOTE_ACL_TABLE
1050 protected def remoteIngressFlowsPort3(String ip2, String prefix) {
1052 new FlowEntityBuilder >> [
1053 dpnId = Uint64.valueOf(123bi)
1054 cookie = Uint64.valueOf(110100480bi)
1055 flowId = "Acl_Filter_Ingress_" + ip2 + "/" + prefix + "_4"
1056 flowName = "Acl_Filter_Ingress_" + ip2 + "/" + prefix + "_4"
1057 instructionInfoList = #[
1058 new InstructionGotoTable(247 as short)
1061 new MatchMetadata(Uint64.valueOf(64bi), Uint64.valueOf(16777200bi)),
1062 new MatchEthernetType(34525L),
1063 new MatchIpv6Source(ip2 + "/"+ prefix)
1066 tableId = 246 as short
1071 protected def remoteEgressFlowsPort3(String ip2, String prefix) {
1073 new FlowEntityBuilder >> [
1074 dpnId = Uint64.valueOf(123bi)
1075 cookie = Uint64.valueOf(110100480bi)
1076 flowId = "Acl_Filter_Egress_" + ip2 + "/" + prefix + "_4"
1077 flowName = "Acl_Filter_Egress_" + ip2 + "/" + prefix + "_4"
1078 instructionInfoList = #[
1079 new InstructionGotoTable(217 as short)
1082 new MatchMetadata(Uint64.valueOf(64bi), Uint64.valueOf(16777200bi)),
1083 new MatchEthernetType(34525L),
1084 new MatchIpv6Destination(ip2 + "/"+ prefix)
1087 tableId = 216 as short
1092 protected def expectedFlows(String mac, String ip1, String prefix) {
1093 // Code auto. generated by https://github.com/vorburger/xtendbeans
1095 new FlowEntityBuilder >> [
1096 dpnId = Uint64.valueOf(123bi)
1097 cookie = Uint64.valueOf(110100480bi)
1098 flowId = "Ingress_DHCP_Server_v4123_987_Permit_"
1099 flowName = "Ingress_DHCP_Server_v4123_987_Permit_"
1100 instructionInfoList = #[
1101 new InstructionApplyActions(#[
1102 new ActionNxResubmit(220 as short)
1106 new MatchEthernetType(2048L),
1107 new MatchIpProtocol(17 as short),
1108 new MatchUdpDestinationPort(68),
1109 new MatchUdpSourcePort(67),
1110 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1113 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1115 new FlowEntityBuilder >> [
1116 dpnId = Uint64.valueOf(123bi)
1117 cookie = Uint64.valueOf(110100480bi)
1118 flowId = "Ingress_DHCP_Server_v6_123_987_Permit_"
1119 flowName = "Ingress_DHCP_Server_v6_123_987_Permit_"
1120 instructionInfoList = #[
1121 new InstructionApplyActions(#[
1122 new ActionNxResubmit(220 as short)
1126 new MatchEthernetType(34525L),
1127 new MatchIpProtocol(17 as short),
1128 new MatchUdpDestinationPort(546),
1129 new MatchUdpSourcePort(547),
1130 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1133 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1135 new FlowEntityBuilder >> [
1136 dpnId = Uint64.valueOf(123bi)
1137 cookie = Uint64.valueOf(110100480bi)
1138 flowId = "Ingress_ICMPv6_123_987_130_Permit_"
1139 flowName = "Ingress_ICMPv6_123_987_130_Permit_"
1140 instructionInfoList = #[
1141 new InstructionApplyActions(#[
1142 new ActionNxResubmit(220 as short)
1146 new MatchEthernetType(34525L),
1147 new MatchIpProtocol(58 as short),
1148 new MatchIcmpv6(130 as short, 0 as short),
1149 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1152 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1154 new FlowEntityBuilder >> [
1155 dpnId = Uint64.valueOf(123bi)
1156 cookie = Uint64.valueOf(110100480bi)
1157 flowId = "Ingress_ICMPv6_123_987_135_Permit_"
1158 flowName = "Ingress_ICMPv6_123_987_135_Permit_"
1159 instructionInfoList = #[
1160 new InstructionApplyActions(#[
1161 new ActionNxResubmit(220 as short)
1165 new MatchEthernetType(34525L),
1166 new MatchIpProtocol(58 as short),
1167 new MatchIcmpv6(135 as short, 0 as short),
1168 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1171 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1173 new FlowEntityBuilder >> [
1174 dpnId = Uint64.valueOf(123bi)
1175 cookie = Uint64.valueOf(110100480bi)
1176 flowId = "Ingress_ICMPv6_123_987_136_Permit_"
1177 flowName = "Ingress_ICMPv6_123_987_136_Permit_"
1178 instructionInfoList = #[
1179 new InstructionApplyActions(#[
1180 new ActionNxResubmit(220 as short)
1184 new MatchEthernetType(34525L),
1185 new MatchIpProtocol(58 as short),
1186 new MatchIcmpv6(136 as short, 0 as short),
1187 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1190 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1192 new FlowEntityBuilder >> [
1193 dpnId = Uint64.valueOf(123bi)
1194 cookie = Uint64.valueOf(110100480bi)
1195 flowId = "Ingress_ARP_123_987"
1196 flowName = "Ingress_ARP_123_987"
1197 instructionInfoList = #[
1198 new InstructionApplyActions(#[
1199 new ActionNxResubmit(220 as short)
1203 new MatchEthernetType(2054L),
1204 new NxMatchRegister(NxmNxReg6, 252672L, 268435200L)
1207 tableId = NwConstants.EGRESS_ACL_ANTI_SPOOFING_TABLE
1209 new FlowEntityBuilder >> [
1210 dpnId = Uint64.valueOf(123bi)
1211 cookie = Uint64.valueOf(110100480bi)
1212 flowId = "Egress_DHCP_Client_v6_123_987_" + mac + "_Permit_"
1213 flowName = "Egress_DHCP_Client_v6_123_987_" + mac + "_Permit_"
1214 instructionInfoList = #[
1215 new InstructionApplyActions(#[
1216 new ActionNxResubmit(17 as short)
1220 new MatchEthernetType(34525L),
1221 new MatchIpProtocol(17 as short),
1222 new MatchUdpDestinationPort(547),
1223 new MatchUdpSourcePort(546),
1224 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1225 new MatchEthernetSource(new MacAddress(mac))
1228 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1230 new FlowEntityBuilder >> [
1231 dpnId = Uint64.valueOf(123bi)
1232 cookie = Uint64.valueOf(110100480bi)
1233 flowId = "Egress_DHCP_Client_v6_123_987_" + mac + "_Permit_"
1234 flowName = "Egress_DHCP_Client_v6_123_987_" + mac + "_Permit_"
1235 instructionInfoList = #[
1236 new InstructionApplyActions(#[
1237 new ActionNxResubmit(17 as short)
1241 new MatchEthernetType(34525L),
1242 new MatchIpProtocol(17 as short),
1243 new MatchUdpDestinationPort(547),
1244 new MatchUdpSourcePort(546),
1245 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG),
1246 new MatchEthernetSource(new MacAddress(mac))
1249 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1251 new FlowEntityBuilder >> [
1252 dpnId = Uint64.valueOf(123bi)
1253 cookie = Uint64.valueOf(110100480bi)
1254 flowId = "Egress_ICMPv6_123_987_133_Permit_"
1255 flowName = "Egress_ICMPv6_123_987_133_Permit_"
1256 instructionInfoList = #[
1257 new InstructionApplyActions(#[
1258 new ActionNxResubmit(17 as short)
1262 new MatchEthernetType(34525L),
1263 new MatchIpProtocol(58 as short),
1264 new MatchIcmpv6(133 as short, 0 as short),
1265 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1268 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1270 new FlowEntityBuilder >> [
1271 dpnId = Uint64.valueOf(123bi)
1272 cookie = Uint64.valueOf(110100480bi)
1273 flowId = "Egress_ICMPv6_123_987_135_Permit_"
1274 flowName = "Egress_ICMPv6_123_987_135_Permit_"
1275 instructionInfoList = #[
1276 new InstructionApplyActions(#[
1277 new ActionNxResubmit(17 as short)
1281 new MatchEthernetType(34525L),
1282 new MatchIpProtocol(58 as short),
1283 new MatchIcmpv6(135 as short, 0 as short),
1284 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1287 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE
1289 new FlowEntityBuilder >> [
1290 dpnId = Uint64.valueOf(123bi)
1291 cookie = Uint64.valueOf(110100480bi)
1292 flowId = "Egress_ICMPv6_123_987_136_Permit_"
1293 flowName = "Egress_ICMPv6_123_987_136_Permit_"
1294 instructionInfoList = #[
1295 new InstructionApplyActions(#[
1296 new ActionNxResubmit(17 as short)
1300 new MatchEthernetType(34525L),
1301 new MatchIpProtocol(58 as short),
1302 new MatchIcmpv6(136 as short, 0 as short),
1303 new MatchMetadata(Uint64.valueOf(1085217976614912bi), MetaDataUtil.METADATA_MASK_LPORT_TAG)
1306 tableId = NwConstants.INGRESS_ACL_ANTI_SPOOFING_TABLE