/* * Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.netvirt.aclservice.tests import org.opendaylight.genius.mdsalutil.FlowEntityBuilder import org.opendaylight.genius.mdsalutil.MetaDataUtil import org.opendaylight.genius.mdsalutil.actions.ActionNxResubmit import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable import org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata import org.opendaylight.genius.mdsalutil.matches.MatchArpSha import org.opendaylight.genius.mdsalutil.matches.MatchEthernetType import org.opendaylight.genius.mdsalutil.matches.MatchIcmpv6 import org.opendaylight.genius.mdsalutil.matches.MatchIpProtocol import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source import org.opendaylight.genius.mdsalutil.matches.MatchMetadata import org.opendaylight.genius.mdsalutil.matches.MatchUdpDestinationPort import org.opendaylight.genius.mdsalutil.matches.MatchUdpSourcePort import org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan class FlowEntryObjectsBase { protected def fixedFlowsPort1() { #[ fixedIngressFlowsPort1, fixedEgressFlowsPort1 ] } protected def fixedIngressFlowsPort1() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v6_123_987___Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_130_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(130 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ARP_123_987" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ] ] } protected def fixedEgressFlowsPort1() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(67), new MatchUdpSourcePort(68), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v6_123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(547), new MatchUdpSourcePort(546), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v4123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v6_123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_134_Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(134 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63020 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_133_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(133 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] + fixedEgressArpFlowsPort1 } protected def fixedEgressArpFlowsPort1() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F3" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F3")), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] } protected def fixedIngressFlowsPort2() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v6_123_987___Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_130_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(130 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ARP_123_987" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ] ] } protected def fixedEgressFlowsPort2 () { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(67 as short), new MatchUdpSourcePort(68 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v6_123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(547 as short), new MatchUdpSourcePort(546 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v4123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68 as short), new MatchUdpSourcePort(67 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v6_123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546 as short), new MatchUdpSourcePort(547 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_134_Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(134 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63020 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_133_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(133 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] + fixedEgressArpFlowsPort2 } protected def fixedEgressArpFlowsPort2() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F4" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F4")), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] } protected def fixedIngressFlowsPort3() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v6_123_987___Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_130_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(130 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ARP_123_987" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ] ] } protected def fixedEgressFlowsPort3 () { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(67), new MatchUdpSourcePort(68), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v6_123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(547), new MatchUdpSourcePort(546), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v4123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v6_123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_134_Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(134 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63020 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_133_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(133 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F5" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F5")), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] } static def fixedIngressFlowsPort4() { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v6_123_987___Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_130_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(130 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ARP_123_987" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ] ] } static def fixedEgressFlowsPort4 () { #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(67), new MatchUdpSourcePort(68), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v6_123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(547), new MatchUdpSourcePort(546), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v4123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v6_123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_134_Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(134 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63020 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_133_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(133 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F6" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F6")), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_0D:AA:D8:42:30:F6" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress("0D:AA:D8:42:30:F6")), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ] ] } protected def remoteFlows() { remoteIngressFlowsPort1 + remoteEgressFlowsPort1 + remoteIngressFlowsPort2 + remoteEgressFlowsPort2 } protected def remoteIngressFlowsPort1() { #[ remoteIngressFlowsPort("10.0.0.1") ] } protected def remoteIngressFlowsPort2() { #[ remoteIngressFlowsPort("10.0.0.2") ] } protected def remoteEgressFlowsPort1() { #[ remoteEgressFlowsPort("10.0.0.1") ] } protected def remoteEgressFlowsPort2() { #[ remoteEgressFlowsPort("10.0.0.2") ] } protected def remoteIngressFlowsPort(String ip) { new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Acl_Filter_Egress_" + ip + "/32_5000" flowName = "ACL" instructionInfoList = #[ new InstructionWriteMetadata(4bi, 16777214bi), new InstructionGotoTable(213 as short) ] matchInfoList = #[ new MatchMetadata(83886080000bi, 1099494850560bi), new MatchEthernetType(2048L), new MatchIpv4Destination(ip, "32") ] priority = 50 tableId = 212 as short ] } protected def remoteEgressFlowsPort(String ip) { new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Acl_Filter_Ingress_" + ip + "/32_5000" flowName = "ACL" instructionInfoList = #[ new InstructionWriteMetadata(4bi, 16777214bi), new InstructionGotoTable(243 as short) ] matchInfoList = #[ new MatchMetadata(83886080000bi, 1099494850560bi), new MatchEthernetType(2048L), new MatchIpv4Source(ip, "32") ] priority = 50 tableId = 242 as short ] } protected def expectedFlows(String mac) { // Code auto. generated by https://github.com/vorburger/xtendbeans #[ new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_DHCP_Server_v6_123_987___Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_130_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(130 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Ingress_ARP_123_987" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(220 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new NxMatchRegister(NxmNxReg6, 252672L, 268435200L) ] priority = 63010 tableId = 241 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v4123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(67), new MatchUdpSourcePort(68), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Client_v6_123_987__Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(547), new MatchUdpSourcePort(546), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v4123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(2048L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(68), new MatchUdpSourcePort(67), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_DHCP_Server_v6_123_987__Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(17 as short), new MatchUdpDestinationPort(546), new MatchUdpSourcePort(547), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_134_Drop_" flowName = "ACL" instructionInfoList = #[ ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(134 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63020 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_133_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(133 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_135_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(135 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ICMPv6_123_987_136_Permit_" flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit(17 as short) ]) ] matchInfoList = #[ new MatchEthernetType(34525L), new MatchIpProtocol(58 as short), new MatchIcmpv6(136 as short, 0 as short), new MatchMetadata(1085217976614912bi, MetaDataUtil.METADATA_MASK_LPORT_TAG) ] priority = 63010 tableId = 211 as short ], new FlowEntityBuilder >> [ dpnId = 123bi cookie = 110100480bi flowId = "Egress_ARP_123_987_" + mac flowName = "ACL" instructionInfoList = #[ new InstructionApplyActions(#[ new ActionNxResubmit ]) ] matchInfoList = #[ new MatchEthernetType(2054L), new MatchArpSha(new MacAddress(mac)), new MatchMetadata(1085217976614912bi, 1152920405095219200bi) ] priority = 63010 tableId = 211 as short ] ] } }