[SDFAB-102] Backport changes required for policies to fabric.p4 (Redirect)
Change-Id: I357c908d31abad9c3f8d74723d937ea948e54808
diff --git a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
index 520b557..e73d624 100644
--- a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
+++ b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
@@ -48,6 +48,8 @@
PiMatchFieldId.of("ipv6_dst");
public static final PiMatchFieldId HDR_L4_DPORT =
PiMatchFieldId.of("l4_dport");
+ public static final PiMatchFieldId HDR_PORT_TYPE =
+ PiMatchFieldId.of("port_type");
public static final PiMatchFieldId HDR_PPPOE_CODE =
PiMatchFieldId.of("pppoe_code");
public static final PiMatchFieldId HDR_IPV6_SRC =
@@ -122,8 +124,6 @@
PiTableId.of("FabricIngress.filtering.fwd_classifier");
public static final PiTableId FABRIC_INGRESS_NEXT_XCONNECT =
PiTableId.of("FabricIngress.next.xconnect");
- public static final PiTableId FABRIC_INGRESS_NEXT_NEXT_VLAN =
- PiTableId.of("FabricIngress.next.next_vlan");
public static final PiTableId FABRIC_INGRESS_NEXT_SIMPLE =
PiTableId.of("FabricIngress.next.simple");
public static final PiTableId FABRIC_INGRESS_NEXT_MULTICAST =
@@ -138,10 +138,12 @@
PiTableId.of("FabricIngress.forwarding.routing_v4");
public static final PiTableId FABRIC_INGRESS_ACL_ACL =
PiTableId.of("FabricIngress.acl.acl");
+ public static final PiTableId FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS =
+ PiTableId.of("FabricIngress.pre_next.next_mpls");
public static final PiTableId FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN =
PiTableId.of("FabricIngress.filtering.ingress_port_vlan");
- public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_CP =
- PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_cp");
+ public static final PiTableId FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN =
+ PiTableId.of("FabricIngress.pre_next.next_vlan");
public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_TERM_V4 =
PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_term_v4");
public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_TERM_V6 =
@@ -156,6 +158,8 @@
PiTableId.of("FabricEgress.egress_next.egress_vlan");
public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SINK =
PiTableId.of("FabricIngress.process_set_source_sink.tb_set_sink");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_CP =
+ PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_cp");
public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_REPORT_TB_GENERATE_REPORT =
PiTableId.of("FabricEgress.process_int_main.process_int_report.tb_generate_report");
public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SOURCE =
@@ -188,6 +192,8 @@
// Direct Counter IDs
public static final PiCounterId FABRIC_INGRESS_NEXT_MULTICAST_COUNTER =
PiCounterId.of("FabricIngress.next.multicast_counter");
+ public static final PiCounterId FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS_COUNTER =
+ PiCounterId.of("FabricIngress.pre_next.next_mpls_counter");
public static final PiCounterId FABRIC_INGRESS_NEXT_SIMPLE_COUNTER =
PiCounterId.of("FabricIngress.next.simple_counter");
public static final PiCounterId FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER_COUNTER =
@@ -208,17 +214,21 @@
PiCounterId.of("FabricIngress.acl.acl_counter");
public static final PiCounterId FABRIC_INGRESS_NEXT_XCONNECT_COUNTER =
PiCounterId.of("FabricIngress.next.xconnect_counter");
- public static final PiCounterId FABRIC_INGRESS_NEXT_NEXT_VLAN_COUNTER =
- PiCounterId.of("FabricIngress.next.next_vlan_counter");
public static final PiCounterId FABRIC_INGRESS_FORWARDING_ROUTING_V6_COUNTER =
PiCounterId.of("FabricIngress.forwarding.routing_v6_counter");
public static final PiCounterId FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN_COUNTER =
PiCounterId.of("FabricIngress.filtering.ingress_port_vlan_counter");
public static final PiCounterId FABRIC_INGRESS_FORWARDING_MPLS_COUNTER =
PiCounterId.of("FabricIngress.forwarding.mpls_counter");
+ public static final PiCounterId FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN_COUNTER =
+ PiCounterId.of("FabricIngress.pre_next.next_vlan_counter");
// Action IDs
public static final PiActionId FABRIC_INGRESS_NEXT_SET_NEXT_ID_XCONNECT =
PiActionId.of("FabricIngress.next.set_next_id_xconnect");
+ public static final PiActionId FABRIC_INGRESS_PRE_NEXT_SET_VLAN =
+ PiActionId.of("FabricIngress.pre_next.set_vlan");
+ public static final PiActionId FABRIC_INGRESS_SPGW_LOAD_TUNNEL_FAR =
+ PiActionId.of("FabricIngress.spgw.load_tunnel_far");
public static final PiActionId FABRIC_INGRESS_FORWARDING_NOP_ROUTING_V4 =
PiActionId.of("FabricIngress.forwarding.nop_routing_v4");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_QOS_BESTEFF =
@@ -231,8 +241,6 @@
PiActionId.of("FabricIngress.forwarding.set_next_id_bridging");
public static final PiActionId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_SOURCE_INT_SOURCE_DSCP =
PiActionId.of("FabricEgress.process_int_main.process_int_source.int_source_dscp");
- public static final PiActionId FABRIC_INGRESS_NEXT_SET_DOUBLE_VLAN =
- PiActionId.of("FabricIngress.next.set_double_vlan");
public static final PiActionId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_TRANSIT_INIT_METADATA =
PiActionId.of("FabricEgress.process_int_main.process_int_transit.init_metadata");
public static final PiActionId FABRIC_INGRESS_SPGW_LOAD_DBUF_FAR =
@@ -247,10 +255,8 @@
PiActionId.of("FabricIngress.bng_ingress.downstream.drop");
public static final PiActionId FABRIC_INGRESS_SPGW_LOAD_NORMAL_FAR =
PiActionId.of("FabricIngress.spgw.load_normal_far");
- public static final PiActionId FABRIC_INGRESS_NEXT_SET_VLAN =
- PiActionId.of("FabricIngress.next.set_vlan");
- public static final PiActionId FABRIC_INGRESS_ACL_NOP_ACL =
- PiActionId.of("FabricIngress.acl.nop_acl");
+ public static final PiActionId FABRIC_INGRESS_PRE_NEXT_SET_DOUBLE_VLAN =
+ PiActionId.of("FabricIngress.pre_next.set_double_vlan");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_SET_LINE =
PiActionId.of("FabricIngress.bng_ingress.set_line");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_DISABLED =
@@ -281,8 +287,6 @@
PiActionId.of("FabricIngress.forwarding.pop_mpls_and_next");
public static final PiActionId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_ENCAP_V6 =
PiActionId.of("FabricEgress.bng_egress.downstream.encap_v6");
- public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_SIMPLE =
- PiActionId.of("FabricIngress.next.mpls_routing_simple");
public static final PiActionId FABRIC_INGRESS_ACL_PUNT_TO_CPU =
PiActionId.of("FabricIngress.acl.punt_to_cpu");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_QOS_PRIO =
@@ -295,8 +299,8 @@
PiActionId.of("FabricEgress.egress_next.pop_vlan");
public static final PiActionId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_INT_SET_SINK =
PiActionId.of("FabricIngress.process_set_source_sink.int_set_sink");
- public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_HASHED =
- PiActionId.of("FabricIngress.next.mpls_routing_hashed");
+ public static final PiActionId FABRIC_INGRESS_ACL_NOP_ACL =
+ PiActionId.of("FabricIngress.acl.nop_acl");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_ENABLED_V6 =
PiActionId.of("FabricIngress.bng_ingress.upstream.term_enabled_v6");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_ENABLED_V4 =
@@ -308,8 +312,8 @@
PiActionId.of("FabricIngress.next.output_simple");
public static final PiActionId FABRIC_INGRESS_FILTERING_DENY =
PiActionId.of("FabricIngress.filtering.deny");
- public static final PiActionId FABRIC_INGRESS_SPGW_LOAD_TUNNEL_FAR =
- PiActionId.of("FabricIngress.spgw.load_tunnel_far");
+ public static final PiActionId FABRIC_INGRESS_PRE_NEXT_SET_MPLS_LABEL =
+ PiActionId.of("FabricIngress.pre_next.set_mpls_label");
public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_SET_SESSION =
PiActionId.of("FabricIngress.bng_ingress.downstream.set_session");
public static final PiActionId FABRIC_INGRESS_NEXT_SET_MCAST_GROUP_ID =
@@ -335,6 +339,8 @@
public static final PiActionParamId SMAC = PiActionParamId.of("smac");
public static final PiActionParamId CLONE_ID =
PiActionParamId.of("clone_id");
+ public static final PiActionParamId PORT_TYPE =
+ PiActionParamId.of("port_type");
public static final PiActionParamId FAR_ID = PiActionParamId.of("far_id");
public static final PiActionParamId VLAN_ID = PiActionParamId.of("vlan_id");
public static final PiActionParamId TUNNEL_SRC_ADDR =
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/Constants.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/Constants.java
new file mode 100644
index 0000000..f55a825
--- /dev/null
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/Constants.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2021-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.pipelines.fabric.impl.behaviour;
+
+/**
+ * Constant values.
+ */
+public final class Constants {
+
+ // Used with is_infra_port metadata
+ public static final byte[] ONE = new byte[]{1};
+ public static final byte[] ZERO = new byte[]{0};
+
+ public static final long PORT_TYPE_MASK = 0x3;
+ public static final byte PORT_TYPE_EDGE = 0x1;
+ public static final byte PORT_TYPE_INFRA = 0x2;
+ public static final byte PORT_TYPE_INTERNAL = 0x3;
+
+ // Forwarding types from P4 program (not exposed in P4Info).
+ public static final byte FWD_MPLS = 1;
+ public static final byte FWD_IPV4_ROUTING = 2;
+ public static final byte FWD_IPV6_ROUTING = 4;
+
+ public static final short ETH_TYPE_EXACT_MASK = (short) 0xFFFF;
+
+ public static final int DEFAULT_VLAN = 4094;
+ public static final int DEFAULT_PW_TRANSPORT_VLAN = 4090;
+
+ // hide default constructor
+ private Constants() {
+ }
+}
\ No newline at end of file
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java
index fbb709a..93605e2 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java
@@ -81,9 +81,9 @@
public boolean supportDoubleVlanTerm() {
if (pipeconf.pipelineModel()
- .table(FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN).isPresent()) {
- return pipeconf.pipelineModel().table(FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN)
- .get().action(FabricConstants.FABRIC_INGRESS_NEXT_SET_DOUBLE_VLAN)
+ .table(FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN).isPresent()) {
+ return pipeconf.pipelineModel().table(FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN)
+ .get().action(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_DOUBLE_VLAN)
.isPresent();
}
return false;
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java
index 4ed412d..1a7b2ba 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java
@@ -68,18 +68,17 @@
public static final byte[] ZERO = new byte[]{0};
// Group tables by control block.
- private static final Set<PiTableId> FILTERING_CTRL_TBLS = ImmutableSet.of(
- FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN,
- FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER);
private static final Set<PiTableId> FORWARDING_CTRL_TBLS = ImmutableSet.of(
FabricConstants.FABRIC_INGRESS_FORWARDING_MPLS,
FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V4,
FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V6,
FabricConstants.FABRIC_INGRESS_FORWARDING_BRIDGING);
+ private static final Set<PiTableId> PRE_NEXT_CTRL_TBLS = ImmutableSet.of(
+ FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS,
+ FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN);
private static final Set<PiTableId> ACL_CTRL_TBLS = ImmutableSet.of(
FabricConstants.FABRIC_INGRESS_ACL_ACL);
private static final Set<PiTableId> NEXT_CTRL_TBLS = ImmutableSet.of(
- FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN,
FabricConstants.FABRIC_INGRESS_NEXT_SIMPLE,
FabricConstants.FABRIC_INGRESS_NEXT_HASHED,
FabricConstants.FABRIC_INGRESS_NEXT_XCONNECT);
@@ -166,10 +165,10 @@
@Override
public PiAction mapTreatment(TrafficTreatment treatment, PiTableId piTableId)
throws PiInterpreterException {
- if (FILTERING_CTRL_TBLS.contains(piTableId)) {
- return treatmentInterpreter.mapFilteringTreatment(treatment, piTableId);
- } else if (FORWARDING_CTRL_TBLS.contains(piTableId)) {
+ if (FORWARDING_CTRL_TBLS.contains(piTableId)) {
return treatmentInterpreter.mapForwardingTreatment(treatment, piTableId);
+ } else if (PRE_NEXT_CTRL_TBLS.contains(piTableId)) {
+ return treatmentInterpreter.mapPreNextTreatment(treatment, piTableId);
} else if (ACL_CTRL_TBLS.contains(piTableId)) {
return treatmentInterpreter.mapAclTreatment(treatment, piTableId);
} else if (NEXT_CTRL_TBLS.contains(piTableId)) {
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
index fe2d490..bdf3eaf 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
@@ -41,13 +41,14 @@
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.ETH_DST;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.ETH_SRC;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_LABEL;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_PUSH;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_PUSH;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.instruction;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instruction;
+import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2InstructionOrFail;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instructions;
+import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.treatmentException;
/**
* Treatment translation logic.
@@ -57,8 +58,6 @@
private final FabricCapabilities capabilities;
private static final ImmutableMap<PiTableId, PiActionId> NOP_ACTIONS =
ImmutableMap.<PiTableId, PiActionId>builder()
- .put(FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN,
- FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
.put(FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V4,
FabricConstants.FABRIC_INGRESS_FORWARDING_NOP_ROUTING_V4)
.put(FabricConstants.FABRIC_INGRESS_ACL_ACL,
@@ -72,34 +71,10 @@
this.capabilities = capabilities;
}
- static PiAction mapFilteringTreatment(TrafficTreatment treatment, PiTableId tableId)
- throws PiInterpreterException {
-
- if (!tableId.equals(FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN)) {
- // Mapping for other tables of the filtering block must be handled
- // in the pipeliner.
- tableException(tableId);
- }
-
- // VLAN_POP action is equivalent to the permit action (VLANs pop is done anyway)
- if (isFilteringNoAction(treatment) || isFilteringPopAction(treatment)) {
- // Permit action if table is ingress_port_vlan;
- return nop(tableId);
- }
-
- final ModVlanIdInstruction setVlanInst = (ModVlanIdInstruction) l2InstructionOrFail(
- treatment, VLAN_ID, tableId);
- return PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
- .withParameter(new PiActionParam(
- FabricConstants.VLAN_ID, setVlanInst.vlanId().toShort()))
- .build();
- }
-
static PiAction mapForwardingTreatment(TrafficTreatment treatment, PiTableId tableId)
throws PiInterpreterException {
- if (isForwardingNoAction(treatment)) {
+ if (isNoAction(treatment)) {
return nop(tableId);
}
treatmentException(
@@ -108,35 +83,58 @@
return null;
}
- PiAction mapNextTreatment(TrafficTreatment treatment, PiTableId tableId)
+ PiAction mapPreNextTreatment(TrafficTreatment treatment, PiTableId tableId)
throws PiInterpreterException {
- if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN) {
+ if (tableId == FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS) {
+ return mapNextMplsTreatment(treatment, tableId);
+ } else if (tableId == FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN) {
return mapNextVlanTreatment(treatment, tableId);
- } else if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_HASHED) {
- return mapNextHashedOrSimpleTreatment(treatment, tableId, false);
- } else if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_SIMPLE) {
- return mapNextHashedOrSimpleTreatment(treatment, tableId, true);
- } else if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_XCONNECT) {
- return mapNextXconnect(treatment, tableId);
}
throw new PiInterpreterException(format(
"Treatment mapping not supported for table '%s'", tableId));
}
+ PiAction mapNextTreatment(TrafficTreatment treatment, PiTableId tableId)
+ throws PiInterpreterException {
+ if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_HASHED) {
+ return mapNextHashedOrSimpleTreatment(treatment, tableId, false);
+ } else if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_SIMPLE) {
+ return mapNextHashedOrSimpleTreatment(treatment, tableId, true);
+ } else if (tableId == FabricConstants.FABRIC_INGRESS_NEXT_XCONNECT) {
+ return mapNextXconnect(treatment, tableId);
+ }
+ throw new PiInterpreterException(format(
+ "Treatment mapping not supported for table '%s'", tableId));
+ }
+
+ private static PiAction mapNextMplsTreatment(TrafficTreatment treatment, PiTableId tableId)
+ throws PiInterpreterException {
+ final ModMplsLabelInstruction mplsLabel = (ModMplsLabelInstruction) l2Instruction(
+ treatment, MPLS_LABEL);
+ if (mplsLabel != null) {
+ return PiAction.builder()
+ .withParameter(new PiActionParam(FabricConstants.LABEL, mplsLabel.label().toInt()))
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_MPLS_LABEL)
+ .build();
+ }
+ throw new PiInterpreterException("There is no MPLS instruction");
+ }
+
private PiAction mapNextVlanTreatment(TrafficTreatment treatment, PiTableId tableId)
throws PiInterpreterException {
final List<ModVlanIdInstruction> modVlanIdInst = l2InstructionsOrFail(treatment, VLAN_ID, tableId)
.stream().map(i -> (ModVlanIdInstruction) i).collect(Collectors.toList());
if (modVlanIdInst.size() == 1) {
- return PiAction.builder().withId(FabricConstants.FABRIC_INGRESS_NEXT_SET_VLAN)
+ return PiAction.builder().withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_VLAN)
.withParameter(new PiActionParam(
FabricConstants.VLAN_ID,
modVlanIdInst.get(0).vlanId().toShort()))
.build();
}
+ // next_vlan has been moved to pre_next
if (modVlanIdInst.size() == 2 && capabilities.supportDoubleVlanTerm()) {
return PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_NEXT_SET_DOUBLE_VLAN)
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_DOUBLE_VLAN)
.withParameter(new PiActionParam(
FabricConstants.INNER_VLAN_ID,
modVlanIdInst.get(0).vlanId().toShort()))
@@ -151,20 +149,15 @@
private static PiAction mapNextHashedOrSimpleTreatment(
TrafficTreatment treatment, PiTableId tableId, boolean simple)
throws PiInterpreterException {
- // Provide mapping for output_hashed, routing_hashed, and
- // mpls_routing_hashed. multicast_hashed can only be invoked with
- // PiAction, hence no mapping. outPort required for all actions. Presence
- // of other instructions will determine which action to map to.
+ // Provide mapping for output_hashed and routing_hashed; multicast_hashed
+ // can only be invoked with PiAction, hence no mapping. outPort required for
+ // all actions. Presence of other instructions will determine which action to map to.
final PortNumber outPort = ((OutputInstruction) instructionOrFail(
treatment, OUTPUT, tableId)).port();
final ModEtherInstruction ethDst = (ModEtherInstruction) l2Instruction(
treatment, ETH_DST);
final ModEtherInstruction ethSrc = (ModEtherInstruction) l2Instruction(
treatment, ETH_SRC);
- final Instruction mplsPush = l2Instruction(
- treatment, MPLS_PUSH);
- final ModMplsLabelInstruction mplsLabel = (ModMplsLabelInstruction) l2Instruction(
- treatment, MPLS_LABEL);
final PiAction.Builder actionBuilder = PiAction.builder()
.withParameter(new PiActionParam(FabricConstants.PORT_NUM, outPort.toLong()));
@@ -174,20 +167,11 @@
FabricConstants.SMAC, ethSrc.mac().toBytes()));
actionBuilder.withParameter(new PiActionParam(
FabricConstants.DMAC, ethDst.mac().toBytes()));
- if (mplsLabel != null) {
- // mpls_routing_hashed
- return actionBuilder
- .withParameter(new PiActionParam(FabricConstants.LABEL, mplsLabel.label().toInt()))
- .withId(simple ? FabricConstants.FABRIC_INGRESS_NEXT_MPLS_ROUTING_SIMPLE
- : FabricConstants.FABRIC_INGRESS_NEXT_MPLS_ROUTING_HASHED)
- .build();
- } else {
- // routing_hashed
- return actionBuilder
- .withId(simple ? FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_SIMPLE
- : FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_HASHED)
- .build();
- }
+ // routing_hashed
+ return actionBuilder
+ .withId(simple ? FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_SIMPLE
+ : FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_HASHED)
+ .build();
} else {
// output_hashed
return actionBuilder
@@ -214,7 +198,7 @@
if (isDrop(treatment)) {
return drop(tableId);
}
- if (isForwardingNoAction(treatment)) {
+ if (isNoAction(treatment)) {
return nop(tableId);
}
treatmentException(
@@ -256,15 +240,8 @@
return PiAction.builder().withId(FabricConstants.FABRIC_INGRESS_ACL_DROP).build();
}
- // NOTE: we use clearDeferred to signal when there are no more ports associated to a given vlan
- private static boolean isFilteringNoAction(TrafficTreatment treatment) {
- return treatment.equals(DefaultTrafficTreatment.emptyTreatment()) ||
- (treatment.allInstructions().isEmpty()) ||
- (treatment.allInstructions().size() == 1 && treatment.writeMetadata() != null);
- }
-
// NOTE: clearDeferred is used by the routing application to implement ACL drop and route black-holing
- private static boolean isForwardingNoAction(TrafficTreatment treatment) {
+ private static boolean isNoAction(TrafficTreatment treatment) {
return treatment.equals(DefaultTrafficTreatment.emptyTreatment()) ||
(treatment.allInstructions().isEmpty() && !treatment.clearedDeferred()) ||
(treatment.allInstructions().size() == 1 && treatment.writeMetadata() != null);
@@ -274,21 +251,6 @@
return treatment.allInstructions().isEmpty() && treatment.clearedDeferred();
}
- private static boolean isFilteringPopAction(TrafficTreatment treatment) {
- return l2Instruction(treatment, VLAN_POP) != null;
- }
-
- private static Instruction l2InstructionOrFail(
- TrafficTreatment treatment,
- L2ModificationInstruction.L2SubType subType, PiTableId tableId)
- throws PiInterpreterException {
- final Instruction inst = l2Instruction(treatment, subType);
- if (inst == null) {
- treatmentException(tableId, treatment, format("missing %s instruction", subType));
- }
- return inst;
- }
-
private static List<L2ModificationInstruction> l2InstructionsOrFail(
TrafficTreatment treatment,
L2ModificationInstruction.L2SubType subType, PiTableId tableId)
@@ -309,16 +271,4 @@
}
return inst;
}
-
- private static void tableException(PiTableId tableId)
- throws PiInterpreterException {
- throw new PiInterpreterException(format("Table '%s' not supported", tableId));
- }
-
- private static void treatmentException(
- PiTableId tableId, TrafficTreatment treatment, String explanation)
- throws PiInterpreterException {
- throw new PiInterpreterException(format(
- "Invalid treatment for table '%s', %s: %s", tableId, explanation, treatment));
- }
}
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java
index 655f88d..4496f19 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java
@@ -25,6 +25,8 @@
import org.onosproject.net.flow.instructions.L2ModificationInstruction;
import org.onosproject.net.flowobjective.DefaultNextTreatment;
import org.onosproject.net.flowobjective.NextTreatment;
+import org.onosproject.net.pi.model.PiPipelineInterpreter;
+import org.onosproject.net.pi.model.PiTableId;
import java.util.Collection;
import java.util.List;
@@ -62,11 +64,10 @@
format("%s criterion cannot be null", type));
}
- public static Instructions.OutputInstruction instruction(TrafficTreatment treatment, Instruction.Type type) {
+ public static Instruction instruction(TrafficTreatment treatment, Instruction.Type type) {
return treatment.allInstructions()
.stream()
.filter(inst -> inst.type() == type)
- .map(inst -> (Instructions.OutputInstruction) inst)
.findFirst().orElse(null);
}
@@ -79,6 +80,17 @@
.findFirst().orElse(null);
}
+ public static Instruction l2InstructionOrFail(
+ TrafficTreatment treatment,
+ L2ModificationInstruction.L2SubType subType, PiTableId tableId)
+ throws PiPipelineInterpreter.PiInterpreterException {
+ final Instruction inst = l2Instruction(treatment, subType);
+ if (inst == null) {
+ treatmentException(tableId, treatment, format("missing %s instruction", subType));
+ }
+ return inst;
+ }
+
public static List<L2ModificationInstruction> l2Instructions(
TrafficTreatment treatment, L2ModificationInstruction.L2SubType subType) {
return treatment.allInstructions().stream()
@@ -89,7 +101,7 @@
}
public static Instructions.OutputInstruction outputInstruction(TrafficTreatment treatment) {
- return instruction(treatment, Instruction.Type.OUTPUT);
+ return (Instructions.OutputInstruction) instruction(treatment, Instruction.Type.OUTPUT);
}
public static PortNumber outputPort(TrafficTreatment treatment) {
@@ -104,4 +116,11 @@
}
return null;
}
+
+ public static void treatmentException(
+ PiTableId tableId, TrafficTreatment treatment, String explanation)
+ throws PiPipelineInterpreter.PiInterpreterException {
+ throw new PiPipelineInterpreter.PiInterpreterException(format(
+ "Invalid treatment for table '%s', %s: %s", tableId, explanation, treatment));
+ }
}
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java
index 744cd9d..3105e66 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java
@@ -80,7 +80,8 @@
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricInterpreter.ONE;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricInterpreter.ZERO;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort;
-import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.FilteringObjectiveTranslator.FWD_IPV4_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_IPV4_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INTERNAL;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -368,6 +369,7 @@
.withId(vlanValid ? FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT
: FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
.withParameter(new PiActionParam(FabricConstants.VLAN_ID, vlanId))
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, PORT_TYPE_INTERNAL))
.build())
.build();
return DefaultFlowRule.builder()
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
index 39d100e..bfdcc2b 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
@@ -33,10 +33,12 @@
import org.onosproject.net.flow.criteria.PortCriterion;
import org.onosproject.net.flow.criteria.VlanIdCriterion;
import org.onosproject.net.flow.instructions.Instructions;
-import org.onosproject.net.flow.instructions.L2ModificationInstruction;
+import org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType;
+import org.onosproject.net.flow.instructions.L2ModificationInstruction.ModVlanIdInstruction;
import org.onosproject.net.flowobjective.FilteringObjective;
import org.onosproject.net.flowobjective.Objective;
import org.onosproject.net.flowobjective.ObjectiveError;
+import org.onosproject.net.pi.model.PiTableId;
import org.onosproject.net.pi.runtime.PiAction;
import org.onosproject.net.pi.runtime.PiActionParam;
import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities;
@@ -49,7 +51,23 @@
import static java.lang.String.format;
import static org.onosproject.net.flow.criteria.Criterion.Type.INNER_VLAN_VID;
import static org.onosproject.net.flow.criteria.Criterion.Type.VLAN_VID;
+import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID;
+import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP;
+import static org.onosproject.net.pi.model.PiPipelineInterpreter.PiInterpreterException;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.DEFAULT_VLAN;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.DEFAULT_PW_TRANSPORT_VLAN;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ETH_TYPE_EXACT_MASK;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_MPLS;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_IPV4_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_IPV6_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ONE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_EDGE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INFRA;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ZERO;
+import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2InstructionOrFail;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterion;
+import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instruction;
+
/**
* ObjectiveTranslator implementation for FilteringObjective.
@@ -57,16 +75,6 @@
class FilteringObjectiveTranslator
extends AbstractObjectiveTranslator<FilteringObjective> {
- // Forwarding types from fabric.p4.
- static final byte FWD_MPLS = 1;
- static final byte FWD_IPV4_ROUTING = 2;
- static final byte FWD_IPV6_ROUTING = 3;
-
- private static final byte[] ONE = new byte[]{1};
- private static final byte[] ZERO = new byte[]{0};
-
- private static final short ETH_TYPE_EXACT_MASK = (short) 0xFFFF;
-
private static final PiAction DENY = PiAction.builder()
.withId(FabricConstants.FABRIC_INGRESS_FILTERING_DENY)
.build();
@@ -168,7 +176,7 @@
private boolean isDoubleTagged(FilteringObjective obj) {
return obj.meta() != null &&
- FabricUtils.l2Instruction(obj.meta(), L2ModificationInstruction.L2SubType.VLAN_POP) != null &&
+ FabricUtils.l2Instruction(obj.meta(), L2SubType.VLAN_POP) != null &&
FabricUtils.criterion(obj.conditions(), VLAN_VID) != null &&
FabricUtils.criterion(obj.conditions(), INNER_VLAN_VID) != null;
}
@@ -206,18 +214,66 @@
selector.add(innerVlanCriterion);
}
- final TrafficTreatment treatment;
+ final TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
if (obj.type().equals(FilteringObjective.Type.DENY)) {
- treatment = DefaultTrafficTreatment.builder()
- .piTableAction(DENY)
- .build();
+ treatmentBuilder.piTableAction(DENY);
} else {
- treatment = obj.meta() == null
- ? DefaultTrafficTreatment.emptyTreatment() : obj.meta();
+ byte portType = PORT_TYPE_EDGE;
+ if (!innerVlanValid && outerVlanValid &&
+ outerVlanCriterion.vlanId().toShort() == DEFAULT_PW_TRANSPORT_VLAN) {
+ portType = PORT_TYPE_INFRA;
+ } else if (obj.meta() != null) {
+ ModVlanIdInstruction modVlanIdInstruction = (ModVlanIdInstruction) l2Instruction(obj.meta(), VLAN_ID);
+ if (modVlanIdInstruction != null && modVlanIdInstruction.vlanId().toShort() == DEFAULT_VLAN) {
+ portType = PORT_TYPE_INFRA;
+ }
+ }
+ try {
+ treatmentBuilder.piTableAction(mapFilteringTreatment(obj.meta(),
+ FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN, portType));
+ } catch (PiInterpreterException ex) {
+ throw new FabricPipelinerException(format("Unable to map treatment for table '%s': %s",
+ FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN,
+ ex.getMessage()), ObjectiveError.UNSUPPORTED);
+ }
}
resultBuilder.addFlowRule(flowRule(
obj, FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN,
- selector.build(), treatment));
+ selector.build(), treatmentBuilder.build()));
+ }
+
+ private PiAction mapFilteringTreatment(TrafficTreatment treatment, PiTableId tableId, byte portType)
+ throws PiInterpreterException {
+ if (treatment == null) {
+ treatment = DefaultTrafficTreatment.emptyTreatment();
+ }
+ // VLAN_POP action is equivalent to the permit action (VLANs pop is done anyway)
+ if (isFilteringNoAction(treatment) || isFilteringPopAction(treatment)) {
+ // Permit action if table is ingress_port_vlan;
+ return PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, portType))
+ .build();
+ }
+
+ final ModVlanIdInstruction setVlanInst = (ModVlanIdInstruction) l2InstructionOrFail(
+ treatment, VLAN_ID, tableId);
+ return PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
+ .withParameter(new PiActionParam(FabricConstants.VLAN_ID, setVlanInst.vlanId().toShort()))
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, portType))
+ .build();
+ }
+
+ // NOTE: we use clearDeferred to signal when there are no more ports associated to a given vlan
+ private static boolean isFilteringNoAction(TrafficTreatment treatment) {
+ return treatment.equals(DefaultTrafficTreatment.emptyTreatment()) ||
+ (treatment.allInstructions().isEmpty()) ||
+ (treatment.allInstructions().size() == 1 && treatment.writeMetadata() != null);
+ }
+
+ private boolean isFilteringPopAction(TrafficTreatment treatment) {
+ return l2Instruction(treatment, VLAN_POP) != null;
}
private void fwdClassifierRules(
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java
index 0ab5beb..d527228 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java
@@ -32,7 +32,9 @@
import org.onosproject.net.flow.criteria.Criterion;
import org.onosproject.net.flow.criteria.EthCriterion;
import org.onosproject.net.flow.criteria.IPCriterion;
+import org.onosproject.net.flow.criteria.MetadataCriterion;
import org.onosproject.net.flow.criteria.MplsCriterion;
+import org.onosproject.net.flow.criteria.PiCriterion;
import org.onosproject.net.flow.criteria.VlanIdCriterion;
import org.onosproject.net.flowobjective.ForwardingObjective;
import org.onosproject.net.flowobjective.Objective;
@@ -59,6 +61,9 @@
import static org.onosproject.net.group.DefaultGroupBucket.createCloneGroupBucket;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterionNotNull;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_MASK;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_EDGE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INFRA;
/**
@@ -103,6 +108,8 @@
FabricConstants.FABRIC_INGRESS_FORWARDING_SET_NEXT_ID_ROUTING_V6)
.put(FabricConstants.FABRIC_INGRESS_FORWARDING_MPLS,
FabricConstants.FABRIC_INGRESS_FORWARDING_POP_MPLS_AND_NEXT)
+ .put(FabricConstants.FABRIC_INGRESS_ACL_ACL,
+ FabricConstants.FABRIC_INGRESS_ACL_SET_NEXT_ID_ACL)
.build();
ForwardingObjectiveTranslator(DeviceId deviceId, FabricCapabilities capabilities) {
@@ -290,8 +297,22 @@
return;
}
}
+ TrafficSelector.Builder selectorBuilder = DefaultTrafficSelector.builder(obj.selector());
+ // Meta are used to signal the port type which can be edge or infra
+ if (obj.meta() != null && obj.meta().getCriterion(Criterion.Type.METADATA) != null) {
+ long portType = ((MetadataCriterion) obj.meta().getCriterion(Criterion.Type.METADATA)).metadata();
+ if (portType == PORT_TYPE_EDGE || portType == PORT_TYPE_INFRA) {
+ selectorBuilder.matchPi(PiCriterion.builder()
+ .matchTernary(FabricConstants.HDR_PORT_TYPE, portType, PORT_TYPE_MASK)
+ .build());
+ } else {
+ throw new FabricPipelinerException(format("Port type '%s' is not allowed for table '%s'",
+ portType, FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN),
+ ObjectiveError.UNSUPPORTED);
+ }
+ }
resultBuilder.addFlowRule(flowRule(
- obj, FabricConstants.FABRIC_INGRESS_ACL_ACL, obj.selector()));
+ obj, FabricConstants.FABRIC_INGRESS_ACL_ACL, selectorBuilder.build()));
}
private DefaultGroupDescription createCloneGroup(
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
index 8ecffb2..47b7ef6 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
@@ -17,6 +17,7 @@
package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner;
import com.google.common.collect.Lists;
+import org.onlab.packet.MplsLabel;
import org.onlab.packet.VlanId;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
@@ -28,6 +29,7 @@
import org.onosproject.net.flow.criteria.PiCriterion;
import org.onosproject.net.flow.criteria.VlanIdCriterion;
import org.onosproject.net.flow.instructions.Instruction;
+import org.onosproject.net.flow.instructions.L2ModificationInstruction.ModMplsLabelInstruction;
import org.onosproject.net.flow.instructions.L2ModificationInstruction.ModVlanIdInstruction;
import org.onosproject.net.flowobjective.DefaultNextTreatment;
import org.onosproject.net.flowobjective.NextObjective;
@@ -57,6 +59,7 @@
import java.util.stream.Collectors;
import static java.lang.String.format;
+import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_LABEL;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID;
import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP;
import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterion;
@@ -103,13 +106,55 @@
}
if (!isGroupModifyOp(obj)) {
- // Generate next VLAN rules.
+ // Generate next MPLS and VLAN rules.
+ nextMpls(obj, resultBuilder);
nextVlan(obj, resultBuilder);
}
return resultBuilder.build();
}
+ private void nextMpls(NextObjective obj,
+ ObjectiveTranslation.Builder resultBuilder)
+ throws FabricPipelinerException {
+ // Next objective can contain only one mpls push and one mpls label
+ // instruction. Pipeliner does not support other configurations.
+
+ final List<List<ModMplsLabelInstruction>> mplsInstructions = defaultNextTreatments(
+ obj.nextTreatments(), false).stream()
+ .map(defaultNextTreatment -> l2Instructions(defaultNextTreatment.treatment(), MPLS_LABEL)
+ .stream().map(v -> (ModMplsLabelInstruction) v)
+ .collect(Collectors.toList()))
+ .filter(l -> !l.isEmpty())
+ .collect(Collectors.toList());
+
+ if (mplsInstructions.isEmpty()) {
+ // No need to apply next mpls table
+ return;
+ }
+
+ // We expect one mpls label for each treatment and the label has to be the same
+ final Set<MplsLabel> mplsLabels = mplsInstructions.stream()
+ .flatMap(Collection::stream)
+ .map(ModMplsLabelInstruction::label)
+ .collect(Collectors.toSet());
+ if (obj.nextTreatments().size() != mplsInstructions.size() ||
+ mplsLabels.size() != 1) {
+ throw new FabricPipelinerException(
+ "Inconsistent MPLS_LABEL instructions, cannot process " +
+ "next_mpls rule. It is required that all " +
+ "treatments have the same MPLS_LABEL instructions.");
+ }
+ final TrafficSelector selector = nextIdSelector(obj.id());
+ final TrafficTreatment treatment = DefaultTrafficTreatment.builder()
+ .setMpls(mplsLabels.iterator().next())
+ .build();
+
+ resultBuilder.addFlowRule(flowRule(
+ obj, FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS,
+ selector, treatment));
+ }
+
private void nextVlan(NextObjective obj,
ObjectiveTranslation.Builder resultBuilder)
throws FabricPipelinerException {
@@ -169,7 +214,7 @@
final TrafficTreatment treatment = treatmentBuilder.build();
resultBuilder.addFlowRule(flowRule(
- obj, FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN,
+ obj, FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN,
selector, treatment));
}
@@ -258,7 +303,7 @@
if (obj.meta() != null && obj.meta().getCriterion(Criterion.Type.VLAN_VID) != null) {
egressVlan(outPort, obj, popVlanInst, resultBuilder);
} else {
- log.warn("NextObjective {} is trying to program {} without {} information",
+ log.debug("NextObjective {} is trying to program {} without {} information",
obj, FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN,
obj.meta() == null ? "metadata" : "vlanId");
}
diff --git a/pipelines/fabric/impl/src/main/resources/fabric.p4 b/pipelines/fabric/impl/src/main/resources/fabric.p4
index ad3857d..0b336b5 100644
--- a/pipelines/fabric/impl/src/main/resources/fabric.p4
+++ b/pipelines/fabric/impl/src/main/resources/fabric.p4
@@ -20,6 +20,7 @@
#include "include/size.p4"
#include "include/control/filtering.p4"
#include "include/control/forwarding.p4"
+#include "include/control/pre_next.p4"
#include "include/control/acl.p4"
#include "include/control/next.p4"
#include "include/control/packetio.p4"
@@ -50,6 +51,7 @@
PacketIoIngress() pkt_io_ingress;
Filtering() filtering;
Forwarding() forwarding;
+ PreNext() pre_next;
Acl() acl;
Next() next;
#ifdef WITH_PORT_COUNTER
@@ -69,6 +71,9 @@
if (fabric_metadata.skip_forwarding == _FALSE) {
forwarding.apply(hdr, fabric_metadata, standard_metadata);
}
+ if (fabric_metadata.skip_next == _FALSE) {
+ pre_next.apply(hdr, fabric_metadata);
+ }
acl.apply(hdr, fabric_metadata, standard_metadata);
if (fabric_metadata.skip_next == _FALSE) {
next.apply(hdr, fabric_metadata, standard_metadata);
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/acl.p4 b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
index 34ef4d1..ae86e3b 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
@@ -77,6 +77,7 @@
hdr.icmp.icmp_code : ternary @name("icmp_code"); // 8
l4_sport : ternary @name("l4_sport"); // 16
l4_dport : ternary @name("l4_dport"); // 16
+ fabric_metadata.port_type : ternary @name("port_type"); // 2
}
actions = {
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4 b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
index a8fae49..a96b522 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
@@ -35,17 +35,19 @@
// Do ACL table in case we want to punt to cpu.
fabric_metadata.skip_forwarding = _TRUE;
fabric_metadata.skip_next = _TRUE;
+ fabric_metadata.port_type = PORT_TYPE_UNKNOWN;
ingress_port_vlan_counter.count();
}
- action permit() {
+ action permit(port_type_t port_type) {
// Allow packet as is.
+ fabric_metadata.port_type = port_type;
ingress_port_vlan_counter.count();
}
- action permit_with_internal_vlan(vlan_id_t vlan_id) {
+ action permit_with_internal_vlan(vlan_id_t vlan_id, port_type_t port_type) {
fabric_metadata.vlan_id = vlan_id;
- permit();
+ permit(port_type);
}
// FIXME: remove the use of ternary match on inner VLAN.
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/next.p4 b/pipelines/fabric/impl/src/main/resources/include/control/next.p4
index 11437b1..fca2e61 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/next.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/next.p4
@@ -42,63 +42,12 @@
}
@hidden
- action set_mpls_label(mpls_label_t label) {
- fabric_metadata.mpls_label = label;
- }
-
- @hidden
action routing(port_num_t port_num, mac_addr_t smac, mac_addr_t dmac) {
rewrite_smac(smac);
rewrite_dmac(dmac);
output(port_num);
}
- @hidden
- action mpls_routing(port_num_t port_num, mac_addr_t smac, mac_addr_t dmac,
- mpls_label_t label) {
- set_mpls_label(label);
- routing(port_num, smac, dmac);
- }
-
- /*
- * Next VLAN table.
- * Modify VLAN ID based on next ID.
- */
- direct_counter(CounterType.packets_and_bytes) next_vlan_counter;
-
- action set_vlan(vlan_id_t vlan_id) {
- fabric_metadata.vlan_id = vlan_id;
- next_vlan_counter.count();
- }
-
-#ifdef WITH_DOUBLE_VLAN_TERMINATION
- action set_double_vlan(vlan_id_t outer_vlan_id, vlan_id_t inner_vlan_id) {
- set_vlan(outer_vlan_id);
- fabric_metadata.push_double_vlan = _TRUE;
- fabric_metadata.inner_vlan_id = inner_vlan_id;
-#ifdef WITH_BNG
- fabric_metadata.bng.s_tag = outer_vlan_id;
- fabric_metadata.bng.c_tag = inner_vlan_id;
-#endif // WITH_BNG
- }
-#endif // WITH_DOUBLE_VLAN_TERMINATION
-
- table next_vlan {
- key = {
- fabric_metadata.next_id: exact @name("next_id");
- }
- actions = {
- set_vlan;
-#ifdef WITH_DOUBLE_VLAN_TERMINATION
- set_double_vlan;
-#endif // WITH_DOUBLE_VLAN_TERMINATION
- @defaultonly nop;
- }
- const default_action = nop();
- counters = next_vlan_counter;
- size = NEXT_VLAN_TABLE_SIZE;
- }
-
#ifdef WITH_XCONNECT
/*
* Cross-connect table.
@@ -149,12 +98,6 @@
simple_counter.count();
}
- action mpls_routing_simple(port_num_t port_num, mac_addr_t smac, mac_addr_t dmac,
- mpls_label_t label) {
- mpls_routing(port_num, smac, dmac, label);
- simple_counter.count();
- }
-
table simple {
key = {
fabric_metadata.next_id: exact @name("next_id");
@@ -162,7 +105,6 @@
actions = {
output_simple;
routing_simple;
- mpls_routing_simple;
@defaultonly nop;
}
const default_action = nop();
@@ -193,12 +135,6 @@
hashed_counter.count();
}
- action mpls_routing_hashed(port_num_t port_num, mac_addr_t smac, mac_addr_t dmac,
- mpls_label_t label) {
- mpls_routing(port_num, smac, dmac, label);
- hashed_counter.count();
- }
-
table hashed {
key = {
fabric_metadata.next_id: exact @name("next_id");
@@ -211,7 +147,6 @@
actions = {
output_hashed;
routing_hashed;
- mpls_routing_hashed;
@defaultonly nop;
}
implementation = hashed_selector;
@@ -258,7 +193,6 @@
hashed.apply();
#endif // WITH_HASHED_NEXT
multicast.apply();
- next_vlan.apply();
}
}
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/pre_next.p4 b/pipelines/fabric/impl/src/main/resources/include/control/pre_next.p4
new file mode 100644
index 0000000..9d4c5b6
--- /dev/null
+++ b/pipelines/fabric/impl/src/main/resources/include/control/pre_next.p4
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2021-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <core.p4>
+#include <v1model.p4>
+
+#include "../header.p4"
+
+control PreNext(inout parsed_headers_t hdr,
+ inout fabric_metadata_t fabric_metadata) {
+ /*
+ * Next MPLS table.
+ * Set the MPLS label based on the next ID.
+ */
+
+ direct_counter(CounterType.packets_and_bytes) next_mpls_counter;
+
+ action set_mpls_label(mpls_label_t label) {
+ fabric_metadata.mpls_label = label;
+ next_mpls_counter.count();
+ }
+
+ table next_mpls {
+ key = {
+ fabric_metadata.next_id: exact @name("next_id");
+ }
+ actions = {
+ set_mpls_label;
+ @defaultonly nop;
+ }
+ const default_action = nop();
+ counters = next_mpls_counter;
+ size = NEXT_MPLS_TABLE_SIZE;
+ }
+
+ /*
+ * Next VLAN table.
+ * Modify VLAN ID based on next ID.
+ */
+
+ direct_counter(CounterType.packets_and_bytes) next_vlan_counter;
+
+ action set_vlan(vlan_id_t vlan_id) {
+ fabric_metadata.vlan_id = vlan_id;
+ next_vlan_counter.count();
+ }
+
+#ifdef WITH_DOUBLE_VLAN_TERMINATION
+ action set_double_vlan(vlan_id_t outer_vlan_id, vlan_id_t inner_vlan_id) {
+ set_vlan(outer_vlan_id);
+ fabric_metadata.push_double_vlan = _TRUE;
+ fabric_metadata.inner_vlan_id = inner_vlan_id;
+#ifdef WITH_BNG
+ fabric_metadata.bng.s_tag = outer_vlan_id;
+ fabric_metadata.bng.c_tag = inner_vlan_id;
+#endif // WITH_BNG
+ }
+#endif // WITH_DOUBLE_VLAN_TERMINATION
+
+ table next_vlan {
+ key = {
+ fabric_metadata.next_id: exact @name("next_id");
+ }
+ actions = {
+ set_vlan;
+#ifdef WITH_DOUBLE_VLAN_TERMINATION
+ set_double_vlan;
+#endif // WITH_DOUBLE_VLAN_TERMINATION
+ @defaultonly nop;
+ }
+ const default_action = nop();
+ counters = next_vlan_counter;
+ size = NEXT_VLAN_TABLE_SIZE;
+ }
+
+ apply {
+ next_mpls.apply();
+ next_vlan.apply();
+ }
+}
diff --git a/pipelines/fabric/impl/src/main/resources/include/define.p4 b/pipelines/fabric/impl/src/main/resources/include/define.p4
index 4a30837..36a5ec7 100644
--- a/pipelines/fabric/impl/src/main/resources/include/define.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/define.p4
@@ -112,6 +112,18 @@
const spgw_interface_t SPGW_IFACE_CORE = 8w2;
const spgw_interface_t SPGW_IFACE_FROM_DBUF = 8w3;
+// PORT types. Set by the control plane using the actions
+// of the filtering.ingress_port_vlan table.
+typedef bit<2> port_type_t;
+// Default value. Set by deny action.
+const port_type_t PORT_TYPE_UNKNOWN = 0x0;
+// Host-facing port on a leaf switch.
+const port_type_t PORT_TYPE_EDGE = 0x1;
+// Switch-facing port on a leaf or spine switch.
+const port_type_t PORT_TYPE_INFRA = 0x2;
+// ASIC-internal port such as the recirculation one (used for INT or UE-to-UE).
+const port_type_t PORT_TYPE_INTERNAL = 0x3;
+
const bit<16> ETHERTYPE_QINQ = 0x88A8;
const bit<16> ETHERTYPE_QINQ_NON_STD = 0x9100;
const bit<16> ETHERTYPE_VLAN = 0x8100;
diff --git a/pipelines/fabric/impl/src/main/resources/include/header.p4 b/pipelines/fabric/impl/src/main/resources/include/header.p4
index 6b47a60..b76ea01 100644
--- a/pipelines/fabric/impl/src/main/resources/include/header.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/header.p4
@@ -210,6 +210,7 @@
#ifdef WITH_INT
int_metadata_t int_meta;
#endif // WITH_INT
+ port_type_t port_type;
}
struct parsed_headers_t {
diff --git a/pipelines/fabric/impl/src/main/resources/include/size.p4 b/pipelines/fabric/impl/src/main/resources/include/size.p4
index 2883094..caa8c14 100644
--- a/pipelines/fabric/impl/src/main/resources/include/size.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/size.p4
@@ -17,6 +17,7 @@
#define ROUTING_V6_TABLE_SIZE 1024
#define ACL_TABLE_SIZE 1024
#define XCONNECT_NEXT_TABLE_SIZE 1024
+#define NEXT_MPLS_TABLE_SIZE 1024
#define NEXT_VLAN_TABLE_SIZE 1024
#define SIMPLE_NEXT_TABLE_SIZE 1024
#define HASHED_NEXT_TABLE_SIZE 1024
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
index 7ca7062..3d2d9bb 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
@@ -47,7 +47,8 @@
["userMetadata._bng_ds_meter_result24", 32, false],
["userMetadata._bng_s_tag25", 12, false],
["userMetadata._bng_c_tag26", 12, false],
- ["_padding_0", 1, false]
+ ["userMetadata._port_type27", 2, false],
+ ["_padding_0", 7, false]
]
},
{
@@ -1978,7 +1979,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -2008,9 +2009,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 8,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 9,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 10,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -2020,44 +2045,32 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 9,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.hashed_counter",
- "id" : 10,
+ "id" : 11,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 11,
+ "id" : 12,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 12,
+ "id" : 13,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -2069,7 +2082,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 13,
+ "id" : 14,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -2081,7 +2094,7 @@
},
{
"name" : "FabricEgress.bng_egress.downstream.c_line_tx",
- "id" : 14,
+ "id" : 15,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 267,
@@ -2093,12 +2106,12 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 15,
+ "id" : 16,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
@@ -2280,9 +2293,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
+ "name" : "nop",
"id" : 8,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
+ "id" : 9,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -2345,7 +2364,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.term_disabled",
- "id" : 9,
+ "id" : 10,
"runtime_data" : [],
"primitives" : [
{
@@ -2386,7 +2405,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
- "id" : 10,
+ "id" : 11,
"runtime_data" : [],
"primitives" : [
{
@@ -2403,7 +2422,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -2446,7 +2465,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.set_session",
- "id" : 11,
+ "id" : 12,
"runtime_data" : [
{
"name" : "pppoe_session_id",
@@ -2515,7 +2534,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.drop",
- "id" : 12,
+ "id" : 13,
"runtime_data" : [],
"primitives" : [
{
@@ -2575,19 +2594,19 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.qos_prio",
- "id" : 13,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
"id" : 14,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.bng_ingress.set_line",
+ "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
"id" : 15,
+ "runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.bng_ingress.set_line",
+ "id" : 16,
"runtime_data" : [
{
"name" : "line_id",
@@ -2618,7 +2637,7 @@
},
{
"name" : "FabricIngress.filtering.deny",
- "id" : 16,
+ "id" : 17,
"runtime_data" : [],
"primitives" : [
{
@@ -2678,22 +2697,70 @@
"column" : 34,
"source_fragment" : "= true; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type27"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 17,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 18,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type27"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 18,
+ "id" : 19,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -2711,16 +2778,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 32,
"source_fragment" : "= vlan_id; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type27"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 19,
+ "id" : 20,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2742,7 +2828,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 33,
"source_fragment" : "= fwd_type; ..."
}
@@ -2751,7 +2837,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 20,
+ "id" : 21,
"runtime_data" : [
{
"name" : "next_id",
@@ -2782,7 +2868,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 21,
+ "id" : 22,
"runtime_data" : [
{
"name" : "next_id",
@@ -2832,7 +2918,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 22,
+ "id" : 23,
"runtime_data" : [
{
"name" : "next_id",
@@ -2863,13 +2949,196 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 23,
+ "id" : 24,
"runtime_data" : [],
"primitives" : []
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 25,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._mpls_label8"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 35,
+ "source_fragment" : "= label; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 26,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_double_vlan",
+ "id" : 27,
+ "runtime_data" : [
+ {
+ "name" : "outer_vlan_id",
+ "bitwidth" : 12
+ },
+ {
+ "name" : "inner_vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._push_double_vlan4"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 64,
+ "column" : 41,
+ "source_fragment" : "= true; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._inner_vlan_id5"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 65,
+ "column" : 38,
+ "source_fragment" : "= inner_vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._bng_s_tag25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 67,
+ "column" : 34,
+ "source_fragment" : "= outer_vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._bng_c_tag26"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 68,
+ "column" : 34,
+ "source_fragment" : "= inner_vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 24,
+ "id" : 28,
"runtime_data" : [
{
"name" : "next_id",
@@ -2900,7 +3169,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 25,
+ "id" : 29,
"runtime_data" : [],
"primitives" : [
{
@@ -2955,7 +3224,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 26,
+ "id" : 30,
"runtime_data" : [
{
"name" : "clone_id",
@@ -2986,7 +3255,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 27,
+ "id" : 31,
"runtime_data" : [],
"primitives" : [
{
@@ -3037,165 +3306,13 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 28,
+ "id" : 32,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 29,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_double_vlan",
- "id" : 30,
- "runtime_data" : [
- {
- "name" : "outer_vlan_id",
- "bitwidth" : 12
- },
- {
- "name" : "inner_vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._push_double_vlan4"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 77,
- "column" : 41,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._inner_vlan_id5"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 78,
- "column" : 38,
- "source_fragment" : "= inner_vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._bng_s_tag25"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 80,
- "column" : 34,
- "source_fragment" : "= outer_vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._bng_c_tag26"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 81,
- "column" : 34,
- "source_fragment" : "= inner_vlan_id; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_hashed",
- "id" : 31,
+ "id" : 33,
"runtime_data" : [
{
"name" : "port_num",
@@ -3226,7 +3343,7 @@
},
{
"name" : "FabricIngress.next.routing_hashed",
- "id" : 32,
+ "id" : 34,
"runtime_data" : [
{
"name" : "port_num",
@@ -3302,108 +3419,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 33,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label8"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "src_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 34,
+ "id" : 35,
"runtime_data" : [
{
"name" : "group_id",
@@ -3425,7 +3442,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -3454,7 +3471,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 37,
"source_fragment" : "= true; ..."
}
@@ -3463,7 +3480,7 @@
},
{
"name" : "packetio25",
- "id" : 35,
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -3542,8 +3559,8 @@
]
},
{
- "name" : "filtering111",
- "id" : 36,
+ "name" : "filtering113",
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -3560,7 +3577,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
}
@@ -3579,7 +3596,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.pri; ..."
}
@@ -3598,7 +3615,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.cfi; ..."
}
@@ -3606,8 +3623,8 @@
]
},
{
- "name" : "filtering117",
- "id" : 37,
+ "name" : "filtering119",
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -3624,7 +3641,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 117,
+ "line" : 119,
"column" : 42,
"source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
}
@@ -3643,7 +3660,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 118,
+ "line" : 120,
"column" : 43,
"source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
}
@@ -3662,7 +3679,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 119,
+ "line" : 121,
"column" : 43,
"source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
}
@@ -3670,8 +3687,8 @@
]
},
{
- "name" : "filtering127",
- "id" : 38,
+ "name" : "filtering129",
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -3688,7 +3705,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
}
@@ -3696,8 +3713,8 @@
]
},
{
- "name" : "acl101",
- "id" : 39,
+ "name" : "acl102",
+ "id" : 40,
"runtime_data" : [],
"primitives" : [
{
@@ -3714,7 +3731,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -3733,7 +3750,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -3741,8 +3758,8 @@
]
},
{
- "name" : "acl104",
- "id" : 40,
+ "name" : "acl105",
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -3759,7 +3776,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -3778,7 +3795,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -3786,8 +3803,8 @@
]
},
{
- "name" : "acl97",
- "id" : 41,
+ "name" : "acl98",
+ "id" : 42,
"runtime_data" : [],
"primitives" : [
{
@@ -3804,7 +3821,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -3823,7 +3840,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -3842,7 +3859,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -3850,8 +3867,8 @@
]
},
{
- "name" : "acl112",
- "id" : 42,
+ "name" : "acl113",
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -3868,7 +3885,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -3887,7 +3904,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -3895,8 +3912,8 @@
]
},
{
- "name" : "acl115",
- "id" : 43,
+ "name" : "acl116",
+ "id" : 44,
"runtime_data" : [],
"primitives" : [
{
@@ -3913,7 +3930,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -3932,7 +3949,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -3940,8 +3957,8 @@
]
},
{
- "name" : "acl108",
- "id" : 44,
+ "name" : "acl109",
+ "id" : 45,
"runtime_data" : [],
"primitives" : [
{
@@ -3958,7 +3975,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -3977,7 +3994,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -3996,7 +4013,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -4005,7 +4022,7 @@
},
{
"name" : "acl27",
- "id" : 45,
+ "id" : 46,
"runtime_data" : [],
"primitives" : [
{
@@ -4107,7 +4124,7 @@
},
{
"name" : "port_counter31",
- "id" : 46,
+ "id" : 47,
"runtime_data" : [],
"primitives" : [
{
@@ -4165,7 +4182,7 @@
},
{
"name" : "port_counter34",
- "id" : 47,
+ "id" : 48,
"runtime_data" : [],
"primitives" : [
{
@@ -4223,7 +4240,7 @@
},
{
"name" : "bng126",
- "id" : 48,
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -4259,7 +4276,7 @@
},
{
"name" : "bng342",
- "id" : 49,
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -4308,7 +4325,7 @@
},
{
"name" : "bng131",
- "id" : 50,
+ "id" : 51,
"runtime_data" : [],
"primitives" : [
{
@@ -4334,7 +4351,7 @@
},
{
"name" : "bng238",
- "id" : 51,
+ "id" : 52,
"runtime_data" : [],
"primitives" : [
{
@@ -4364,7 +4381,7 @@
},
{
"name" : "bng241",
- "id" : 52,
+ "id" : 53,
"runtime_data" : [],
"primitives" : [
{
@@ -4394,7 +4411,7 @@
},
{
"name" : "FabricEgress.bng_egress.downstream.encap_v4",
- "id" : 53,
+ "id" : 54,
"runtime_data" : [],
"primitives" : [
{
@@ -4411,7 +4428,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 124,
+ "line" : 136,
"column" : 33,
"source_fragment" : "0x8864; ..."
}
@@ -4582,7 +4599,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 126,
+ "line" : 138,
"column" : 35,
"source_fragment" : "0x0021; ..."
}
@@ -4591,7 +4608,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 54,
+ "id" : 55,
"runtime_data" : [],
"primitives" : [
{
@@ -4604,7 +4621,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -4623,7 +4640,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
}
@@ -4632,7 +4649,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 55,
+ "id" : 56,
"runtime_data" : [],
"primitives" : [
{
@@ -4645,7 +4662,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -4664,7 +4681,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
}
@@ -4683,7 +4700,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -4702,7 +4719,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -4721,7 +4738,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
}
@@ -4740,7 +4757,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -4749,7 +4766,7 @@
},
{
"name" : "FabricEgress.egress_next.push_outer_vlan",
- "id" : 56,
+ "id" : 57,
"runtime_data" : [],
"primitives" : [
{
@@ -4762,7 +4779,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -4781,7 +4798,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -4800,7 +4817,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -4819,7 +4836,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -4838,7 +4855,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -4847,7 +4864,7 @@
},
{
"name" : "FabricEgress.egress_next.push_inner_vlan",
- "id" : 57,
+ "id" : 58,
"runtime_data" : [],
"primitives" : [
{
@@ -4860,7 +4877,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 300,
+ "line" : 234,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.setValid()"
}
@@ -4879,7 +4896,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 301,
+ "line" : 235,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..."
}
@@ -4898,7 +4915,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 302,
+ "line" : 236,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..."
}
@@ -4917,7 +4934,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 303,
+ "line" : 237,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..."
}
@@ -4936,7 +4953,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -4955,7 +4972,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -4964,7 +4981,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 58,
+ "id" : 59,
"runtime_data" : [],
"primitives" : [
{
@@ -4977,7 +4994,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -4996,7 +5013,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -5015,7 +5032,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -5034,7 +5051,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -5053,7 +5070,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -5062,7 +5079,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 59,
+ "id" : 60,
"runtime_data" : [],
"primitives" : [
{
@@ -5075,7 +5092,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -5084,7 +5101,7 @@
},
{
"name" : "FabricEgress.egress_next.drop",
- "id" : 60,
+ "id" : 61,
"runtime_data" : [],
"primitives" : [
{
@@ -5097,7 +5114,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -5106,7 +5123,7 @@
},
{
"name" : "packetio41",
- "id" : 61,
+ "id" : 62,
"runtime_data" : [],
"primitives" : [
{
@@ -5123,7 +5140,7 @@
},
{
"name" : "packetio44",
- "id" : 62,
+ "id" : 63,
"runtime_data" : [],
"primitives" : [
{
@@ -5173,8 +5190,8 @@
]
},
{
- "name" : "next349",
- "id" : 63,
+ "name" : "next283",
+ "id" : 64,
"runtime_data" : [],
"primitives" : [
{
@@ -5187,7 +5204,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -5195,8 +5212,8 @@
]
},
{
- "name" : "next365",
- "id" : 64,
+ "name" : "next299",
+ "id" : 65,
"runtime_data" : [],
"primitives" : [
{
@@ -5209,7 +5226,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 365,
+ "line" : 299,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
}
@@ -5217,8 +5234,8 @@
]
},
{
- "name" : "next376",
- "id" : 65,
+ "name" : "next310",
+ "id" : 66,
"runtime_data" : [],
"primitives" : [
{
@@ -5231,7 +5248,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -5239,8 +5256,8 @@
]
},
{
- "name" : "next375",
- "id" : 66,
+ "name" : "next309",
+ "id" : 67,
"runtime_data" : [],
"primitives" : [
{
@@ -5280,7 +5297,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -5288,8 +5305,8 @@
]
},
{
- "name" : "next380",
- "id" : 67,
+ "name" : "next314",
+ "id" : 68,
"runtime_data" : [],
"primitives" : [
{
@@ -5302,7 +5319,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -5310,8 +5327,8 @@
]
},
{
- "name" : "next379",
- "id" : 68,
+ "name" : "next313",
+ "id" : 69,
"runtime_data" : [],
"primitives" : [
{
@@ -5351,7 +5368,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -5365,7 +5382,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -5387,25 +5404,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35],
+ "action_ids" : [36],
"actions" : ["packetio25"],
"base_default_next" : "node_4",
"next_tables" : {
"packetio25" : "node_4"
},
"default_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -5416,25 +5433,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36],
- "actions" : ["filtering111"],
+ "action_ids" : [37],
+ "actions" : ["filtering113"],
"base_default_next" : "node_6",
"next_tables" : {
- "filtering111" : "node_6"
+ "filtering113" : "node_6"
},
"default_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering117",
+ "name" : "tbl_filtering119",
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 117,
+ "line" : 119,
"column" : 42,
"source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
},
@@ -5445,25 +5462,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37],
- "actions" : ["filtering117"],
+ "action_ids" : [38],
+ "actions" : ["filtering119"],
"base_default_next" : "node_8",
"next_tables" : {
- "filtering117" : "node_8"
+ "filtering119" : "node_8"
},
"default_entry" : {
- "action_id" : 37,
+ "action_id" : 38,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 3,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -5474,14 +5491,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38],
- "actions" : ["filtering127"],
+ "action_ids" : [39],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5492,7 +5509,7 @@
"id" : 4,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -5528,7 +5545,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [16, 17, 18],
+ "action_ids" : [17, 18, 19],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -5537,7 +5554,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 16,
+ "action_id" : 17,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5548,7 +5565,7 @@
"id" : 5,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -5584,14 +5601,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [19],
+ "action_ids" : [20],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_12",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_12"
},
"default_entry" : {
- "action_id" : 19,
+ "action_id" : 20,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -5626,12 +5643,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [20, 2],
+ "action_ids" : [21, 2],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_19",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_19",
+ "nop" : "node_19"
},
"default_entry" : {
"action_id" : 2,
@@ -5663,12 +5680,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [21, 3],
+ "action_ids" : [22, 3],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_19",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_19",
+ "nop" : "node_19"
},
"default_entry" : {
"action_id" : 3,
@@ -5700,13 +5717,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [22, 23, 4],
+ "action_ids" : [23, 24, 4],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_19",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_19",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_19",
+ "nop" : "node_19"
},
"default_entry" : {
"action_id" : 4,
@@ -5716,9 +5733,84 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 9,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id13"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [25, 5],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 5,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 10,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id13"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [26, 27, 6],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "FabricIngress.pre_next.set_double_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "FabricIngress.pre_next.set_double_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 6,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 11,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -5731,25 +5823,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45],
+ "action_ids" : [46],
"actions" : ["acl27"],
- "base_default_next" : "node_20",
+ "base_default_next" : "node_23",
"next_tables" : {
- "acl27" : "node_20"
+ "acl27" : "node_23"
},
"default_entry" : {
- "action_id" : 45,
+ "action_id" : 46,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl97",
- "id" : 10,
+ "name" : "tbl_acl98",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -5760,25 +5852,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [41],
- "actions" : ["acl97"],
- "base_default_next" : "node_22",
+ "action_ids" : [42],
+ "actions" : ["acl98"],
+ "base_default_next" : "node_25",
"next_tables" : {
- "acl97" : "node_22"
+ "acl98" : "node_25"
},
"default_entry" : {
- "action_id" : 41,
+ "action_id" : 42,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl101",
- "id" : 11,
+ "name" : "tbl_acl102",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -5789,25 +5881,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39],
- "actions" : ["acl101"],
+ "action_ids" : [40],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 39,
+ "action_id" : 40,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl104",
- "id" : 12,
+ "name" : "tbl_acl105",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -5818,25 +5910,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [40],
- "actions" : ["acl104"],
+ "action_ids" : [41],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 40,
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl108",
- "id" : 13,
+ "name" : "tbl_acl109",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -5847,25 +5939,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [44],
- "actions" : ["acl108"],
- "base_default_next" : "node_28",
+ "action_ids" : [45],
+ "actions" : ["acl109"],
+ "base_default_next" : "node_31",
"next_tables" : {
- "acl108" : "node_28"
+ "acl109" : "node_31"
},
"default_entry" : {
- "action_id" : 44,
+ "action_id" : 45,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl112",
- "id" : 14,
+ "name" : "tbl_acl113",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -5876,25 +5968,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [42],
- "actions" : ["acl112"],
+ "action_ids" : [43],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 42,
+ "action_id" : 43,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl115",
- "id" : 15,
+ "name" : "tbl_acl116",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -5905,14 +5997,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [43],
- "actions" : ["acl115"],
+ "action_ids" : [44],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 44,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5920,7 +6012,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 16,
+ "id" : 18,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -5999,6 +6091,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata._port_type27"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -6007,18 +6105,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [24, 25, 26, 27, 28],
+ "action_ids" : [28, 29, 30, 31, 32],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_33",
+ "base_default_next" : "node_36",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_33",
- "FabricIngress.acl.punt_to_cpu" : "node_33",
- "FabricIngress.acl.set_clone_session_id" : "node_33",
- "FabricIngress.acl.drop" : "node_33",
- "FabricIngress.acl.nop_acl" : "node_33"
+ "FabricIngress.acl.set_next_id_acl" : "node_36",
+ "FabricIngress.acl.punt_to_cpu" : "node_36",
+ "FabricIngress.acl.set_clone_session_id" : "node_36",
+ "FabricIngress.acl.drop" : "node_36",
+ "FabricIngress.acl.nop_acl" : "node_36"
},
"default_entry" : {
- "action_id" : 28,
+ "action_id" : 32,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6026,10 +6124,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 17,
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -6048,22 +6146,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31, 32, 33, 6],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [33, 34, 7],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 18,
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -6081,53 +6178,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34, 7],
+ "action_ids" : [35, 8],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_39",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_39",
+ "nop" : "node_39"
},
"default_entry" : {
- "action_id" : 7,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 19,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata._next_id13"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [29, 30, 5],
- "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
- "base_default_next" : "node_37",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_37",
- "FabricIngress.next.set_double_vlan" : "node_37",
- "nop" : "node_37"
- },
- "default_entry" : {
- "action_id" : 5,
+ "action_id" : 8,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6135,7 +6194,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 20,
+ "id" : 21,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -6149,14 +6208,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [46],
+ "action_ids" : [47],
"actions" : ["port_counter31"],
- "base_default_next" : "node_39",
+ "base_default_next" : "node_41",
"next_tables" : {
- "port_counter31" : "node_39"
+ "port_counter31" : "node_41"
},
"default_entry" : {
- "action_id" : 46,
+ "action_id" : 47,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6164,7 +6223,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 21,
+ "id" : 22,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -6178,14 +6237,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [47],
+ "action_ids" : [48],
"actions" : ["port_counter34"],
"base_default_next" : "FabricIngress.bng_ingress.t_line_map",
"next_tables" : {
"port_counter34" : "FabricIngress.bng_ingress.t_line_map"
},
"default_entry" : {
- "action_id" : 47,
+ "action_id" : 48,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6193,7 +6252,7 @@
},
{
"name" : "FabricIngress.bng_ingress.t_line_map",
- "id" : 22,
+ "id" : 23,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 323,
@@ -6220,14 +6279,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15],
+ "action_ids" : [16],
"actions" : ["FabricIngress.bng_ingress.set_line"],
- "base_default_next" : "node_42",
+ "base_default_next" : "node_44",
"next_tables" : {
- "FabricIngress.bng_ingress.set_line" : "node_42"
+ "FabricIngress.bng_ingress.set_line" : "node_44"
},
"default_entry" : {
- "action_id" : 15,
+ "action_id" : 16,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -6235,7 +6294,7 @@
},
{
"name" : "tbl_bng342",
- "id" : 23,
+ "id" : 24,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 342,
@@ -6249,14 +6308,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [49],
+ "action_ids" : [50],
"actions" : ["bng342"],
"base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
"next_tables" : {
"bng342" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
},
"default_entry" : {
- "action_id" : 49,
+ "action_id" : 50,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6264,7 +6323,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
- "id" : 24,
+ "id" : 25,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 51,
@@ -6291,12 +6350,12 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [8, 0],
+ "action_ids" : [9, 0],
"actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
"base_default_next" : null,
"next_tables" : {
"__HIT__" : "tbl_bng126",
- "__MISS__" : "node_46"
+ "__MISS__" : "node_48"
},
"default_entry" : {
"action_id" : 0,
@@ -6307,7 +6366,7 @@
},
{
"name" : "tbl_bng126",
- "id" : 25,
+ "id" : 26,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 126,
@@ -6321,14 +6380,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [48],
+ "action_ids" : [49],
"actions" : ["bng126"],
- "base_default_next" : "node_46",
+ "base_default_next" : "node_48",
"next_tables" : {
- "bng126" : "node_46"
+ "bng126" : "node_48"
},
"default_entry" : {
- "action_id" : 48,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6336,7 +6395,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
- "id" : 26,
+ "id" : 27,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 87,
@@ -6369,7 +6428,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [10, 9],
+ "action_ids" : [11, 10],
"actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
"base_default_next" : null,
"next_tables" : {
@@ -6377,7 +6436,7 @@
"FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
},
"default_entry" : {
- "action_id" : 9,
+ "action_id" : 10,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6385,7 +6444,7 @@
},
{
"name" : "tbl_bng131",
- "id" : 27,
+ "id" : 28,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 131,
@@ -6399,14 +6458,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [50],
+ "action_ids" : [51],
"actions" : ["bng131"],
"base_default_next" : null,
"next_tables" : {
"bng131" : null
},
"default_entry" : {
- "action_id" : 50,
+ "action_id" : 51,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6414,7 +6473,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
- "id" : 28,
+ "id" : 29,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 169,
@@ -6435,12 +6494,12 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [1, 11, 12],
+ "action_ids" : [1, 12, 13],
"actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
"base_default_next" : null,
"next_tables" : {
"__MISS__" : null,
- "__HIT__" : "node_51"
+ "__HIT__" : "node_53"
},
"default_entry" : {
"action_id" : 1,
@@ -6451,7 +6510,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
- "id" : 29,
+ "id" : 30,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 194,
@@ -6490,7 +6549,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [13, 14],
+ "action_ids" : [14, 15],
"actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
"base_default_next" : null,
"next_tables" : {
@@ -6498,7 +6557,7 @@
"FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_bng241"
},
"default_entry" : {
- "action_id" : 14,
+ "action_id" : 15,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6506,7 +6565,7 @@
},
{
"name" : "tbl_bng238",
- "id" : 30,
+ "id" : 31,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 238,
@@ -6520,14 +6579,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [51],
+ "action_ids" : [52],
"actions" : ["bng238"],
"base_default_next" : null,
"next_tables" : {
"bng238" : null
},
"default_entry" : {
- "action_id" : 51,
+ "action_id" : 52,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6535,7 +6594,7 @@
},
{
"name" : "tbl_bng241",
- "id" : 31,
+ "id" : 32,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 241,
@@ -6549,14 +6608,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [52],
+ "action_ids" : [53],
"actions" : ["bng241"],
"base_default_next" : null,
"next_tables" : {
"bng241" : null
},
"default_entry" : {
- "action_id" : 52,
+ "action_id" : 53,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6569,7 +6628,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -6630,7 +6689,7 @@
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -6645,7 +6704,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_6"
},
{
@@ -6653,7 +6712,7 @@
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 116,
+ "line" : 118,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.isValid()"
},
@@ -6668,7 +6727,7 @@
}
}
},
- "true_next" : "tbl_filtering117",
+ "true_next" : "tbl_filtering119",
"false_next" : "node_8"
},
{
@@ -6676,7 +6735,7 @@
"id" : 3,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -6698,7 +6757,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -6706,7 +6765,7 @@
"id" : 4,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -6729,7 +6788,7 @@
}
},
"true_next" : "node_13",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_19"
},
{
"name" : "node_13",
@@ -6807,14 +6866,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v4",
+ "false_next" : "node_19"
+ },
+ {
+ "name" : "node_19",
+ "id" : 8,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._skip_next11"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_20",
- "id" : 8,
+ "name" : "node_23",
+ "id" : 9,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -6846,15 +6935,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_26"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_29"
},
{
- "name" : "node_22",
- "id" : 9,
+ "name" : "node_25",
+ "id" : 10,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -6869,15 +6958,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_24"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_27"
},
{
- "name" : "node_24",
- "id" : 10,
+ "name" : "node_27",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -6892,15 +6981,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_26",
- "id" : 11,
+ "name" : "node_29",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -6915,15 +7004,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_28",
- "id" : 12,
+ "name" : "node_31",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -6938,15 +7027,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_30"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_33"
},
{
- "name" : "node_30",
- "id" : 13,
+ "name" : "node_33",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -6961,15 +7050,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_33",
- "id" : 14,
+ "name" : "node_36",
+ "id" : 15,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -6995,8 +7084,8 @@
"false_next" : "FabricIngress.bng_ingress.t_line_map"
},
{
- "name" : "node_37",
- "id" : 15,
+ "name" : "node_39",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -7018,11 +7107,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_39"
+ "false_next" : "node_41"
},
{
- "name" : "node_39",
- "id" : 16,
+ "name" : "node_41",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -7047,8 +7136,8 @@
"false_next" : "FabricIngress.bng_ingress.t_line_map"
},
{
- "name" : "node_42",
- "id" : 17,
+ "name" : "node_44",
+ "id" : 18,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 341,
@@ -7070,8 +7159,8 @@
"false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
},
{
- "name" : "node_46",
- "id" : 18,
+ "name" : "node_48",
+ "id" : 19,
"expression" : {
"type" : "expression",
"value" : {
@@ -7091,11 +7180,11 @@
}
},
"false_next" : null,
- "true_next" : "node_47"
+ "true_next" : "node_49"
},
{
- "name" : "node_47",
- "id" : 19,
+ "name" : "node_49",
+ "id" : 20,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 128,
@@ -7117,8 +7206,8 @@
"true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4"
},
{
- "name" : "node_51",
- "id" : 20,
+ "name" : "node_53",
+ "id" : 21,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 235,
@@ -7146,15 +7235,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_57",
+ "init_table" : "node_59",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 32,
+ "id" : 33,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -7168,14 +7257,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [61],
+ "action_ids" : [62],
"actions" : ["packetio41"],
- "base_default_next" : "node_59",
+ "base_default_next" : "node_61",
"next_tables" : {
- "packetio41" : "node_59"
+ "packetio41" : "node_61"
},
"default_entry" : {
- "action_id" : 61,
+ "action_id" : 62,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7183,7 +7272,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 33,
+ "id" : 34,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -7197,25 +7286,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [62],
+ "action_ids" : [63],
"actions" : ["packetio44"],
- "base_default_next" : "node_61",
+ "base_default_next" : "node_63",
"next_tables" : {
- "packetio44" : "node_61"
+ "packetio44" : "node_63"
},
"default_entry" : {
- "action_id" : 62,
+ "action_id" : 63,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next349",
- "id" : 34,
+ "name" : "tbl_next283",
+ "id" : 35,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -7226,14 +7315,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [63],
- "actions" : ["next349"],
- "base_default_next" : "node_63",
+ "action_ids" : [64],
+ "actions" : ["next283"],
+ "base_default_next" : "node_65",
"next_tables" : {
- "next349" : "node_63"
+ "next283" : "node_65"
},
"default_entry" : {
- "action_id" : 63,
+ "action_id" : 64,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7241,10 +7330,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 35,
+ "id" : 36,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -7255,14 +7344,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [54],
+ "action_ids" : [55],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
- "base_default_next" : "node_67",
+ "base_default_next" : "node_69",
"next_tables" : {
- "FabricEgress.egress_next.pop_mpls_if_present" : "node_67"
+ "FabricEgress.egress_next.pop_mpls_if_present" : "node_69"
},
"default_entry" : {
- "action_id" : 54,
+ "action_id" : 55,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7270,10 +7359,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 36,
+ "id" : 37,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -7284,14 +7373,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [55],
+ "action_ids" : [56],
"actions" : ["FabricEgress.egress_next.set_mpls"],
- "base_default_next" : "node_67",
+ "base_default_next" : "node_69",
"next_tables" : {
- "FabricEgress.egress_next.set_mpls" : "node_67"
+ "FabricEgress.egress_next.set_mpls" : "node_69"
},
"default_entry" : {
- "action_id" : 55,
+ "action_id" : 56,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7299,10 +7388,10 @@
},
{
"name" : "tbl_egress_next_push_outer_vlan",
- "id" : 37,
+ "id" : 38,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 361,
+ "line" : 295,
"column" : 12,
"source_fragment" : "push_outer_vlan()"
},
@@ -7313,14 +7402,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [56],
+ "action_ids" : [57],
"actions" : ["FabricEgress.egress_next.push_outer_vlan"],
"base_default_next" : "tbl_egress_next_push_inner_vlan",
"next_tables" : {
"FabricEgress.egress_next.push_outer_vlan" : "tbl_egress_next_push_inner_vlan"
},
"default_entry" : {
- "action_id" : 56,
+ "action_id" : 57,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7328,10 +7417,10 @@
},
{
"name" : "tbl_egress_next_push_inner_vlan",
- "id" : 38,
+ "id" : 39,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 362,
+ "line" : 296,
"column" : 12,
"source_fragment" : "push_inner_vlan()"
},
@@ -7342,25 +7431,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [57],
+ "action_ids" : [58],
"actions" : ["FabricEgress.egress_next.push_inner_vlan"],
- "base_default_next" : "node_72",
+ "base_default_next" : "node_74",
"next_tables" : {
- "FabricEgress.egress_next.push_inner_vlan" : "node_72"
+ "FabricEgress.egress_next.push_inner_vlan" : "node_74"
},
"default_entry" : {
- "action_id" : 57,
+ "action_id" : 58,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next365",
- "id" : 39,
+ "name" : "tbl_next299",
+ "id" : 40,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 365,
+ "line" : 299,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
},
@@ -7371,14 +7460,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [64],
- "actions" : ["next365"],
+ "action_ids" : [65],
+ "actions" : ["next299"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
- "next365" : "FabricEgress.egress_next.egress_vlan"
+ "next299" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 64,
+ "action_id" : 65,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7386,10 +7475,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 40,
+ "id" : 41,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -7413,27 +7502,27 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [58, 59, 60],
+ "action_ids" : [59, 60, 61],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_72",
+ "base_default_next" : "node_74",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_72",
- "FabricEgress.egress_next.pop_vlan" : "node_72",
- "FabricEgress.egress_next.drop" : "node_72"
+ "FabricEgress.egress_next.push_vlan" : "node_74",
+ "FabricEgress.egress_next.pop_vlan" : "node_74",
+ "FabricEgress.egress_next.drop" : "node_74"
},
"default_entry" : {
- "action_id" : 60,
+ "action_id" : 61,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next375",
- "id" : 41,
+ "name" : "tbl_next309",
+ "id" : 42,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -7444,25 +7533,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [66],
- "actions" : ["next375"],
- "base_default_next" : "node_74",
+ "action_ids" : [67],
+ "actions" : ["next309"],
+ "base_default_next" : "node_76",
"next_tables" : {
- "next375" : "node_74"
+ "next309" : "node_76"
},
"default_entry" : {
- "action_id" : 66,
+ "action_id" : 67,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next376",
- "id" : 42,
+ "name" : "tbl_next310",
+ "id" : 43,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -7473,25 +7562,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [65],
- "actions" : ["next376"],
- "base_default_next" : "node_80",
+ "action_ids" : [66],
+ "actions" : ["next310"],
+ "base_default_next" : "node_82",
"next_tables" : {
- "next376" : "node_80"
+ "next310" : "node_82"
},
"default_entry" : {
- "action_id" : 65,
+ "action_id" : 66,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next379",
- "id" : 43,
+ "name" : "tbl_next313",
+ "id" : 44,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -7502,25 +7591,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [68],
- "actions" : ["next379"],
- "base_default_next" : "node_78",
+ "action_ids" : [69],
+ "actions" : ["next313"],
+ "base_default_next" : "node_80",
"next_tables" : {
- "next379" : "node_78"
+ "next313" : "node_80"
},
"default_entry" : {
- "action_id" : 68,
+ "action_id" : 69,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next380",
- "id" : 44,
+ "name" : "tbl_next314",
+ "id" : 45,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -7531,14 +7620,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [67],
- "actions" : ["next380"],
- "base_default_next" : "node_80",
+ "action_ids" : [68],
+ "actions" : ["next314"],
+ "base_default_next" : "node_82",
"next_tables" : {
- "next380" : "node_80"
+ "next314" : "node_82"
},
"default_entry" : {
- "action_id" : 67,
+ "action_id" : 68,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7546,7 +7635,7 @@
},
{
"name" : "tbl_bng_egress_downstream_encap_v4",
- "id" : 45,
+ "id" : 46,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 297,
@@ -7560,14 +7649,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [53],
+ "action_ids" : [54],
"actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
"base_default_next" : null,
"next_tables" : {
"FabricEgress.bng_egress.downstream.encap_v4" : null
},
"default_entry" : {
- "action_id" : 53,
+ "action_id" : 54,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7577,11 +7666,11 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_57",
- "id" : 21,
+ "name" : "node_59",
+ "id" : 22,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 103,
+ "line" : 108,
"column" : 33,
"source_fragment" : "fabric_metadata"
},
@@ -7597,11 +7686,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_59"
+ "false_next" : "node_61"
},
{
- "name" : "node_59",
- "id" : 22,
+ "name" : "node_61",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -7623,14 +7712,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_61"
+ "false_next" : "node_63"
},
{
- "name" : "node_61",
- "id" : 23,
+ "name" : "node_63",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -7665,15 +7754,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_63"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_65"
},
{
- "name" : "node_63",
- "id" : 24,
+ "name" : "node_65",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -7691,15 +7780,15 @@
}
}
},
- "true_next" : "node_64",
+ "true_next" : "node_66",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_64",
- "id" : 25,
+ "name" : "node_66",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -7715,14 +7804,14 @@
}
},
"true_next" : "tbl_egress_next_pop_mpls_if_present",
- "false_next" : "node_67"
+ "false_next" : "node_69"
},
{
- "name" : "node_67",
- "id" : 26,
+ "name" : "node_69",
+ "id" : 27,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 104,
+ "line" : 109,
"column" : 31,
"source_fragment" : "fabric_metadata"
},
@@ -7738,14 +7827,14 @@
}
},
"true_next" : "tbl_egress_next_push_outer_vlan",
- "false_next" : "tbl_next365"
+ "false_next" : "tbl_next299"
},
{
- "name" : "node_72",
- "id" : 27,
+ "name" : "node_74",
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -7760,15 +7849,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_76"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_78"
},
{
- "name" : "node_74",
- "id" : 28,
+ "name" : "node_76",
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -7786,15 +7875,15 @@
}
}
},
- "true_next" : "tbl_next376",
- "false_next" : "node_80"
+ "true_next" : "tbl_next310",
+ "false_next" : "node_82"
},
{
- "name" : "node_76",
- "id" : 29,
+ "name" : "node_78",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -7829,15 +7918,15 @@
}
}
},
- "true_next" : "tbl_next379",
- "false_next" : "node_80"
+ "true_next" : "tbl_next313",
+ "false_next" : "node_82"
},
{
- "name" : "node_78",
- "id" : 30,
+ "name" : "node_80",
+ "id" : 31,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -7855,12 +7944,12 @@
}
}
},
- "true_next" : "tbl_next380",
- "false_next" : "node_80"
+ "true_next" : "tbl_next314",
+ "false_next" : "node_82"
},
{
- "name" : "node_80",
- "id" : 31,
+ "name" : "node_82",
+ "id" : 32,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 358,
@@ -7882,11 +7971,11 @@
}
},
"false_next" : null,
- "true_next" : "node_81"
+ "true_next" : "node_83"
},
{
- "name" : "node_81",
- "id" : 32,
+ "name" : "node_83",
+ "id" : 33,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 296,
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
index 6124129..29aa49f 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
@@ -315,6 +315,57 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 26738842
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -391,6 +442,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -412,33 +469,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 17655305
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 47960972
name: "FabricIngress.next.hashed"
alias: "hashed"
@@ -456,9 +486,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -611,6 +638,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -623,6 +655,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -681,6 +718,47 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
+ id: 26738842
+ name: "FabricIngress.pre_next.set_double_vlan"
+ alias: "set_double_vlan"
+ }
+ params {
+ id: 1
+ name: "outer_vlan_id"
+ bitwidth: 12
+ }
+ params {
+ id: 2
+ name: "inner_vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -726,35 +804,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
- id: 17655305
- name: "FabricIngress.next.set_double_vlan"
- alias: "set_double_vlan"
- }
- params {
- id: 1
- name: "outer_vlan_id"
- bitwidth: 12
- }
- params {
- id: 2
- name: "inner_vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 27301117
name: "FabricIngress.next.output_hashed"
alias: "output_hashed"
@@ -789,33 +838,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -988,6 +1010,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -999,17 +1043,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 322798228
name: "FabricIngress.next.hashed_counter"
alias: "hashed_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index 0d7722d..ecd8abc 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -74,7 +74,7 @@
["userMetadata._int_meta_new_bytes47", 16, false],
["userMetadata._int_meta_ig_tstamp48", 32, false],
["userMetadata._int_meta_eg_tstamp49", 32, false],
- ["_padding_0", 2, false]
+ ["userMetadata._port_type50", 2, false]
]
},
{
@@ -2674,7 +2674,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -2716,9 +2716,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 11,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 12,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 13,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -2728,68 +2752,56 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 12,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 13,
+ "id" : 14,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 107,
+ "line" : 56,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
},
{
"name" : "FabricIngress.next.simple_counter",
- "id" : 14,
+ "id" : 15,
"is_direct" : true,
"binding" : "FabricIngress.next.simple",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 140,
+ "line" : 89,
"column" : 50,
"source_fragment" : "simple_counter"
}
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 15,
+ "id" : 16,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 16,
+ "id" : 17,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 17,
+ "id" : 18,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -2801,7 +2813,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 18,
+ "id" : 19,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -2813,7 +2825,7 @@
},
{
"name" : "FabricIngress.spgw.pdr_counter",
- "id" : 19,
+ "id" : 20,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 108,
@@ -2825,7 +2837,7 @@
},
{
"name" : "FabricEgress.bng_egress.downstream.c_line_tx",
- "id" : 20,
+ "id" : 21,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 267,
@@ -2837,7 +2849,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
- "id" : 21,
+ "id" : 22,
"is_direct" : true,
"binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
"source_info" : {
@@ -2849,19 +2861,19 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 22,
+ "id" : 23,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
},
{
"name" : "FabricEgress.spgw.pdr_counter",
- "id" : 23,
+ "id" : 24,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 295,
@@ -3139,7 +3151,7 @@
"primitives" : []
},
{
- "name" : "NoAction",
+ "name" : "nop",
"id" : 13,
"runtime_data" : [],
"primitives" : []
@@ -3151,9 +3163,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "name" : "NoAction",
"id" : 15,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "id" : 16,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -3188,7 +3206,7 @@
},
{
"name" : "FabricIngress.process_set_source_sink.int_set_sink",
- "id" : 16,
+ "id" : 17,
"runtime_data" : [],
"primitives" : [
{
@@ -3224,7 +3242,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
- "id" : 17,
+ "id" : 18,
"runtime_data" : [],
"primitives" : [
{
@@ -3288,47 +3306,6 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.term_disabled",
- "id" : 18,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._bng_type36"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../header.p4",
- "line" : 163,
- "column" : 36,
- "source_fragment" : "2w0x0; ..."
- }
- },
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/bng.p4",
- "line" : 77,
- "column" : 8,
- "source_fragment" : "mark_to_drop(smeta)"
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
"id" : 19,
"runtime_data" : [],
"primitives" : [
@@ -3369,7 +3346,7 @@
]
},
{
- "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
+ "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
"id" : 20,
"runtime_data" : [],
"primitives" : [
@@ -3378,6 +3355,47 @@
"parameters" : [
{
"type" : "field",
+ "value" : ["scalars", "userMetadata._bng_type36"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../header.p4",
+ "line" : 163,
+ "column" : 36,
+ "source_fragment" : "2w0x0; ..."
+ }
+ },
+ {
+ "op" : "mark_to_drop",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "standard_metadata"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/bng.p4",
+ "line" : 77,
+ "column" : 8,
+ "source_fragment" : "mark_to_drop(smeta)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
+ "id" : 21,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
"value" : ["eth_type", "value"]
},
{
@@ -3387,7 +3405,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3430,7 +3448,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.term_enabled_v6",
- "id" : 21,
+ "id" : 22,
"runtime_data" : [],
"primitives" : [
{
@@ -3447,7 +3465,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 121,
+ "line" : 133,
"column" : 31,
"source_fragment" : "0x86dd; ..."
}
@@ -3490,7 +3508,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.set_session",
- "id" : 22,
+ "id" : 23,
"runtime_data" : [
{
"name" : "pppoe_session_id",
@@ -3559,7 +3577,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.drop",
- "id" : 23,
+ "id" : 24,
"runtime_data" : [],
"primitives" : [
{
@@ -3619,18 +3637,12 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.qos_prio",
- "id" : 24,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
"id" : 25,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
+ "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
"id" : 26,
"runtime_data" : [],
"primitives" : []
@@ -3642,8 +3654,14 @@
"primitives" : []
},
{
- "name" : "FabricIngress.bng_ingress.set_line",
+ "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
"id" : 28,
+ "runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.bng_ingress.set_line",
+ "id" : 29,
"runtime_data" : [
{
"name" : "line_id",
@@ -3674,7 +3692,7 @@
},
{
"name" : "FabricIngress.filtering.deny",
- "id" : 29,
+ "id" : 30,
"runtime_data" : [],
"primitives" : [
{
@@ -3734,22 +3752,70 @@
"column" : 34,
"source_fragment" : "= true; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type50"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 30,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 31,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type50"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 31,
+ "id" : 32,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -3767,16 +3833,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 32,
"source_fragment" : "= vlan_id; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type50"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 32,
+ "id" : 33,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -3798,7 +3883,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 33,
"source_fragment" : "= fwd_type; ..."
}
@@ -3807,7 +3892,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 33,
+ "id" : 34,
"runtime_data" : [
{
"name" : "next_id",
@@ -3838,7 +3923,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 34,
+ "id" : 35,
"runtime_data" : [
{
"name" : "next_id",
@@ -3888,7 +3973,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 35,
+ "id" : 36,
"runtime_data" : [
{
"name" : "next_id",
@@ -3919,13 +4004,13 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 36,
+ "id" : 37,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v6",
- "id" : 37,
+ "id" : 38,
"runtime_data" : [
{
"name" : "next_id",
@@ -3955,8 +4040,191 @@
]
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 39,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._mpls_label8"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 35,
+ "source_fragment" : "= label; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 40,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_double_vlan",
+ "id" : 41,
+ "runtime_data" : [
+ {
+ "name" : "outer_vlan_id",
+ "bitwidth" : 12
+ },
+ {
+ "name" : "inner_vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._push_double_vlan4"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 64,
+ "column" : 41,
+ "source_fragment" : "= true; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._inner_vlan_id5"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 65,
+ "column" : 38,
+ "source_fragment" : "= inner_vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._bng_s_tag40"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 67,
+ "column" : 34,
+ "source_fragment" : "= outer_vlan_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._bng_c_tag41"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 68,
+ "column" : 34,
+ "source_fragment" : "= inner_vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 38,
+ "id" : 42,
"runtime_data" : [
{
"name" : "next_id",
@@ -3987,7 +4255,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 39,
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -4042,7 +4310,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 40,
+ "id" : 44,
"runtime_data" : [
{
"name" : "clone_id",
@@ -4073,7 +4341,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 41,
+ "id" : 45,
"runtime_data" : [],
"primitives" : [
{
@@ -4124,226 +4392,12 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 42,
+ "id" : 46,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 43,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_double_vlan",
- "id" : 44,
- "runtime_data" : [
- {
- "name" : "outer_vlan_id",
- "bitwidth" : 12
- },
- {
- "name" : "inner_vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._push_double_vlan4"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 77,
- "column" : 41,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._inner_vlan_id5"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 78,
- "column" : 38,
- "source_fragment" : "= inner_vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._bng_s_tag40"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 80,
- "column" : 34,
- "source_fragment" : "= outer_vlan_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._bng_c_tag41"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 81,
- "column" : 34,
- "source_fragment" : "= inner_vlan_id; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_xconnect",
- "id" : 45,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 46,
- "runtime_data" : [
- {
- "name" : "next_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._next_id13"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 115,
- "column" : 32,
- "source_fragment" : "= next_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.output_simple",
"id" : 47,
"runtime_data" : [
{
@@ -4374,20 +4428,12 @@
]
},
{
- "name" : "FabricIngress.next.routing_simple",
+ "name" : "FabricIngress.next.set_next_id_xconnect",
"id" : 48,
"runtime_data" : [
{
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
+ "name" : "next_id",
+ "bitwidth" : 32
}
],
"primitives" : [
@@ -4396,39 +4442,32 @@
"parameters" : [
{
"type" : "field",
- "value" : ["ethernet", "src_addr"]
+ "value" : ["scalars", "userMetadata._next_id13"]
},
{
"type" : "runtime_data",
- "value" : 1
+ "value" : 0
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ "line" : 64,
+ "column" : 32,
+ "source_fragment" : "= next_id; ..."
}
- },
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.next.output_simple",
+ "id" : 49,
+ "runtime_data" : [
{
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
+ "name" : "port_num",
+ "bitwidth" : 9
+ }
+ ],
+ "primitives" : [
{
"op" : "assign",
"parameters" : [
@@ -4451,8 +4490,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_simple",
- "id" : 49,
+ "name" : "FabricIngress.next.routing_simple",
+ "id" : 50,
"runtime_data" : [
{
"name" : "port_num",
@@ -4465,10 +4504,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -4477,25 +4512,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label8"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -4552,7 +4568,7 @@
},
{
"name" : "FabricIngress.next.output_hashed",
- "id" : 50,
+ "id" : 51,
"runtime_data" : [
{
"name" : "port_num",
@@ -4583,83 +4599,6 @@
},
{
"name" : "FabricIngress.next.routing_hashed",
- "id" : 51,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "src_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.mpls_routing_hashed",
"id" : 52,
"runtime_data" : [
{
@@ -4673,10 +4612,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -4685,25 +4620,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label8"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -4782,7 +4698,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -4811,7 +4727,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 37,
"source_fragment" : "= true; ..."
}
@@ -4837,7 +4753,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5056,7 +4972,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5260,7 +5176,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5479,7 +5395,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5664,7 +5580,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5883,7 +5799,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -6087,7 +6003,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -6306,7 +6222,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -7938,7 +7854,7 @@
]
},
{
- "name" : "filtering111",
+ "name" : "filtering113",
"id" : 74,
"runtime_data" : [],
"primitives" : [
@@ -7956,7 +7872,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
}
@@ -7975,7 +7891,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.pri; ..."
}
@@ -7994,7 +7910,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.cfi; ..."
}
@@ -8002,7 +7918,7 @@
]
},
{
- "name" : "filtering117",
+ "name" : "filtering119",
"id" : 75,
"runtime_data" : [],
"primitives" : [
@@ -8020,7 +7936,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 117,
+ "line" : 119,
"column" : 42,
"source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
}
@@ -8039,7 +7955,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 118,
+ "line" : 120,
"column" : 43,
"source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
}
@@ -8058,7 +7974,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 119,
+ "line" : 121,
"column" : 43,
"source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
}
@@ -8066,7 +7982,7 @@
]
},
{
- "name" : "filtering127",
+ "name" : "filtering129",
"id" : 76,
"runtime_data" : [],
"primitives" : [
@@ -8084,7 +8000,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
}
@@ -8092,7 +8008,7 @@
]
},
{
- "name" : "acl101",
+ "name" : "acl102",
"id" : 77,
"runtime_data" : [],
"primitives" : [
@@ -8110,7 +8026,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -8129,7 +8045,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -8137,7 +8053,7 @@
]
},
{
- "name" : "acl104",
+ "name" : "acl105",
"id" : 78,
"runtime_data" : [],
"primitives" : [
@@ -8155,7 +8071,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -8174,7 +8090,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -8182,7 +8098,7 @@
]
},
{
- "name" : "acl97",
+ "name" : "acl98",
"id" : 79,
"runtime_data" : [],
"primitives" : [
@@ -8200,7 +8116,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -8219,7 +8135,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -8238,7 +8154,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -8246,7 +8162,7 @@
]
},
{
- "name" : "acl112",
+ "name" : "acl113",
"id" : 80,
"runtime_data" : [],
"primitives" : [
@@ -8264,7 +8180,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -8283,7 +8199,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -8291,7 +8207,7 @@
]
},
{
- "name" : "acl115",
+ "name" : "acl116",
"id" : 81,
"runtime_data" : [],
"primitives" : [
@@ -8309,7 +8225,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -8328,7 +8244,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -8336,7 +8252,7 @@
]
},
{
- "name" : "acl108",
+ "name" : "acl109",
"id" : 82,
"runtime_data" : [],
"primitives" : [
@@ -8354,7 +8270,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -8373,7 +8289,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -8392,7 +8308,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -9008,7 +8924,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 124,
+ "line" : 136,
"column" : 33,
"source_fragment" : "0x8864; ..."
}
@@ -9179,7 +9095,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 126,
+ "line" : 138,
"column" : 35,
"source_fragment" : "0x0021; ..."
}
@@ -9205,7 +9121,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 124,
+ "line" : 136,
"column" : 33,
"source_fragment" : "0x8864; ..."
}
@@ -9376,7 +9292,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 127,
+ "line" : 139,
"column" : 35,
"source_fragment" : "0x0057; ..."
}
@@ -9453,7 +9369,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 157,
+ "line" : 169,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -9871,7 +9787,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 153,
+ "line" : 165,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -15916,7 +15832,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -16144,7 +16060,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 132,
+ "line" : 144,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -16330,7 +16246,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 163,
+ "line" : 175,
"column" : 31,
"source_fragment" : "0; ..."
}
@@ -16425,7 +16341,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 167,
+ "line" : 179,
"column" : 21,
"source_fragment" : "1; ..."
}
@@ -16861,7 +16777,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -16880,7 +16796,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
}
@@ -16902,7 +16818,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -16921,7 +16837,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
}
@@ -16940,7 +16856,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -16959,7 +16875,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -16978,7 +16894,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
}
@@ -16997,7 +16913,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -17019,7 +16935,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -17038,7 +16954,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -17057,7 +16973,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -17076,7 +16992,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -17095,7 +17011,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -17117,7 +17033,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 300,
+ "line" : 234,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.setValid()"
}
@@ -17136,7 +17052,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 301,
+ "line" : 235,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..."
}
@@ -17155,7 +17071,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 302,
+ "line" : 236,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..."
}
@@ -17174,7 +17090,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 303,
+ "line" : 237,
"column" : 8,
"source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..."
}
@@ -17193,7 +17109,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -17212,7 +17128,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -17234,7 +17150,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -17253,7 +17169,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -17272,7 +17188,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -17291,7 +17207,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -17310,7 +17226,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -17332,7 +17248,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -17354,7 +17270,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -17414,7 +17330,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 135,
+ "line" : 147,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -17570,7 +17486,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 148,
+ "line" : 160,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -17589,7 +17505,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 132,
+ "line" : 144,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -18022,7 +17938,7 @@
]
},
{
- "name" : "next349",
+ "name" : "next283",
"id" : 150,
"runtime_data" : [],
"primitives" : [
@@ -18036,7 +17952,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -18044,7 +17960,7 @@
]
},
{
- "name" : "next365",
+ "name" : "next299",
"id" : 151,
"runtime_data" : [],
"primitives" : [
@@ -18058,7 +17974,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 365,
+ "line" : 299,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
}
@@ -18066,7 +17982,7 @@
]
},
{
- "name" : "next376",
+ "name" : "next310",
"id" : 152,
"runtime_data" : [],
"primitives" : [
@@ -18080,7 +17996,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -18088,7 +18004,7 @@
]
},
{
- "name" : "next375",
+ "name" : "next309",
"id" : 153,
"runtime_data" : [],
"primitives" : [
@@ -18129,7 +18045,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -18137,7 +18053,7 @@
]
},
{
- "name" : "next380",
+ "name" : "next314",
"id" : 154,
"runtime_data" : [],
"primitives" : [
@@ -18151,7 +18067,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -18159,7 +18075,7 @@
]
},
{
- "name" : "next379",
+ "name" : "next313",
"id" : 155,
"runtime_data" : [],
"primitives" : [
@@ -18200,7 +18116,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -18208,7 +18124,7 @@
]
},
{
- "name" : "next385",
+ "name" : "next319",
"id" : 156,
"runtime_data" : [],
"primitives" : [
@@ -18222,7 +18138,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 385,
+ "line" : 319,
"column" : 45,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -18230,7 +18146,7 @@
]
},
{
- "name" : "next384",
+ "name" : "next318",
"id" : 157,
"runtime_data" : [],
"primitives" : [
@@ -18271,7 +18187,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 384,
+ "line" : 318,
"column" : 16,
"source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
}
@@ -18573,7 +18489,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -18814,7 +18730,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [65, 67, 14],
+ "action_ids" : [65, 67, 15],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -18823,7 +18739,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 14,
+ "action_id" : 15,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -18852,7 +18768,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [64, 66, 13],
+ "action_ids" : [64, 66, 14],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -18861,7 +18777,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 13,
+ "action_id" : 14,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -19098,11 +19014,11 @@
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 9,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -19114,10 +19030,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [74],
- "actions" : ["filtering111"],
+ "actions" : ["filtering113"],
"base_default_next" : "node_18",
"next_tables" : {
- "filtering111" : "node_18"
+ "filtering113" : "node_18"
},
"default_entry" : {
"action_id" : 74,
@@ -19127,11 +19043,11 @@
}
},
{
- "name" : "tbl_filtering117",
+ "name" : "tbl_filtering119",
"id" : 10,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 117,
+ "line" : 119,
"column" : 42,
"source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
},
@@ -19143,10 +19059,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [75],
- "actions" : ["filtering117"],
+ "actions" : ["filtering119"],
"base_default_next" : "node_20",
"next_tables" : {
- "filtering117" : "node_20"
+ "filtering119" : "node_20"
},
"default_entry" : {
"action_id" : 75,
@@ -19156,11 +19072,11 @@
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 11,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -19172,10 +19088,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [76],
- "actions" : ["filtering127"],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
"action_id" : 76,
@@ -19189,7 +19105,7 @@
"id" : 12,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -19225,7 +19141,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [29, 30, 31],
+ "action_ids" : [30, 31, 32],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -19234,7 +19150,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 29,
+ "action_id" : 30,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -19245,7 +19161,7 @@
"id" : 13,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -19281,14 +19197,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [32],
+ "action_ids" : [33],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_24",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_24"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -19323,12 +19239,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33, 4],
+ "action_ids" : [34, 4],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_33",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_33",
+ "nop" : "node_33"
},
"default_entry" : {
"action_id" : 4,
@@ -19360,12 +19276,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34, 5],
+ "action_ids" : [35, 5],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_33",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_33",
+ "nop" : "node_33"
},
"default_entry" : {
"action_id" : 5,
@@ -19397,13 +19313,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35, 36, 6],
+ "action_ids" : [36, 37, 6],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_33",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_33",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_33",
+ "nop" : "node_33"
},
"default_entry" : {
"action_id" : 6,
@@ -19435,12 +19351,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37, 7],
+ "action_ids" : [38, 7],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v6", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_33",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v6" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v6" : "node_33",
+ "nop" : "node_33"
},
"default_entry" : {
"action_id" : 7,
@@ -19450,9 +19366,84 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 18,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id13"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [39, 8],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 8,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 19,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id13"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [40, 41, 9],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "FabricIngress.pre_next.set_double_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "FabricIngress.pre_next.set_double_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 9,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 20,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -19467,9 +19458,9 @@
"direct_meters" : null,
"action_ids" : [83],
"actions" : ["acl27"],
- "base_default_next" : "node_34",
+ "base_default_next" : "node_37",
"next_tables" : {
- "acl27" : "node_34"
+ "acl27" : "node_37"
},
"default_entry" : {
"action_id" : 83,
@@ -19479,11 +19470,11 @@
}
},
{
- "name" : "tbl_acl97",
- "id" : 19,
+ "name" : "tbl_acl98",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -19495,10 +19486,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [79],
- "actions" : ["acl97"],
- "base_default_next" : "node_36",
+ "actions" : ["acl98"],
+ "base_default_next" : "node_39",
"next_tables" : {
- "acl97" : "node_36"
+ "acl98" : "node_39"
},
"default_entry" : {
"action_id" : 79,
@@ -19508,11 +19499,11 @@
}
},
{
- "name" : "tbl_acl101",
- "id" : 20,
+ "name" : "tbl_acl102",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -19524,10 +19515,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [77],
- "actions" : ["acl101"],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
"action_id" : 77,
@@ -19537,11 +19528,11 @@
}
},
{
- "name" : "tbl_acl104",
- "id" : 21,
+ "name" : "tbl_acl105",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -19553,10 +19544,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [78],
- "actions" : ["acl104"],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
"action_id" : 78,
@@ -19566,11 +19557,11 @@
}
},
{
- "name" : "tbl_acl108",
- "id" : 22,
+ "name" : "tbl_acl109",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -19582,10 +19573,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [82],
- "actions" : ["acl108"],
- "base_default_next" : "node_42",
+ "actions" : ["acl109"],
+ "base_default_next" : "node_45",
"next_tables" : {
- "acl108" : "node_42"
+ "acl109" : "node_45"
},
"default_entry" : {
"action_id" : 82,
@@ -19595,11 +19586,11 @@
}
},
{
- "name" : "tbl_acl112",
- "id" : 23,
+ "name" : "tbl_acl113",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -19611,10 +19602,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [80],
- "actions" : ["acl112"],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
"action_id" : 80,
@@ -19624,11 +19615,11 @@
}
},
{
- "name" : "tbl_acl115",
- "id" : 24,
+ "name" : "tbl_acl116",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -19640,10 +19631,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [81],
- "actions" : ["acl115"],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
"action_id" : 81,
@@ -19654,7 +19645,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 25,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -19733,6 +19724,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata._port_type50"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -19741,18 +19738,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38, 39, 40, 41, 42],
+ "action_ids" : [42, 43, 44, 45, 46],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_47",
+ "base_default_next" : "node_50",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_47",
- "FabricIngress.acl.punt_to_cpu" : "node_47",
- "FabricIngress.acl.set_clone_session_id" : "node_47",
- "FabricIngress.acl.drop" : "node_47",
- "FabricIngress.acl.nop_acl" : "node_47"
+ "FabricIngress.acl.set_next_id_acl" : "node_50",
+ "FabricIngress.acl.punt_to_cpu" : "node_50",
+ "FabricIngress.acl.set_clone_session_id" : "node_50",
+ "FabricIngress.acl.drop" : "node_50",
+ "FabricIngress.acl.nop_acl" : "node_50"
},
"default_entry" : {
- "action_id" : 42,
+ "action_id" : 46,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -19760,10 +19757,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 26,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 119,
+ "line" : 68,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -19787,7 +19784,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45, 46, 9],
+ "action_ids" : [47, 48, 10],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.simple",
"next_tables" : {
@@ -19796,7 +19793,7 @@
"nop" : "FabricIngress.next.simple"
},
"default_entry" : {
- "action_id" : 9,
+ "action_id" : 10,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -19804,10 +19801,10 @@
},
{
"name" : "FabricIngress.next.simple",
- "id" : 27,
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 158,
+ "line" : 101,
"column" : 10,
"source_fragment" : "simple"
},
@@ -19825,17 +19822,16 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [47, 48, 49, 10],
- "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "FabricIngress.next.mpls_routing_simple", "nop"],
+ "action_ids" : [49, 50, 11],
+ "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
"FabricIngress.next.output_simple" : "FabricIngress.next.hashed",
"FabricIngress.next.routing_simple" : "FabricIngress.next.hashed",
- "FabricIngress.next.mpls_routing_simple" : "FabricIngress.next.hashed",
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 10,
+ "action_id" : 11,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -19843,10 +19839,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 28,
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -19865,22 +19861,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [50, 51, 52, 11],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [51, 52, 12],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 29,
+ "id" : 31,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -19898,53 +19893,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [53, 12],
+ "action_ids" : [53, 13],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_55",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_55",
+ "nop" : "node_55"
},
"default_entry" : {
- "action_id" : 12,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 30,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata._next_id13"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [43, 44, 8],
- "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
- "base_default_next" : "node_53",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_53",
- "FabricIngress.next.set_double_vlan" : "node_53",
- "nop" : "node_53"
- },
- "default_entry" : {
- "action_id" : 8,
+ "action_id" : 13,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -19952,7 +19909,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 31,
+ "id" : 32,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -19968,9 +19925,9 @@
"direct_meters" : null,
"action_ids" : [84],
"actions" : ["port_counter31"],
- "base_default_next" : "node_55",
+ "base_default_next" : "node_57",
"next_tables" : {
- "port_counter31" : "node_55"
+ "port_counter31" : "node_57"
},
"default_entry" : {
"action_id" : 84,
@@ -19981,7 +19938,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 32,
+ "id" : 33,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -20010,7 +19967,7 @@
},
{
"name" : "FabricIngress.process_set_source_sink.tb_set_source",
- "id" : 33,
+ "id" : 34,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 46,
@@ -20031,7 +19988,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15, 0],
+ "action_ids" : [16, 0],
"actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"],
"base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink",
"next_tables" : {
@@ -20047,7 +20004,7 @@
},
{
"name" : "FabricIngress.process_set_source_sink.tb_set_sink",
- "id" : 34,
+ "id" : 35,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 67,
@@ -20068,12 +20025,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [16, 1],
+ "action_ids" : [17, 1],
"actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "nop"],
- "base_default_next" : "node_59",
+ "base_default_next" : "node_61",
"next_tables" : {
- "FabricIngress.process_set_source_sink.int_set_sink" : "node_59",
- "nop" : "node_59"
+ "FabricIngress.process_set_source_sink.int_set_sink" : "node_61",
+ "nop" : "node_61"
},
"default_entry" : {
"action_id" : 1,
@@ -20084,7 +20041,7 @@
},
{
"name" : "tbl_int_main89",
- "id" : 35,
+ "id" : 36,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 89,
@@ -20113,7 +20070,7 @@
},
{
"name" : "FabricIngress.bng_ingress.t_line_map",
- "id" : 36,
+ "id" : 37,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 323,
@@ -20140,14 +20097,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [28],
+ "action_ids" : [29],
"actions" : ["FabricIngress.bng_ingress.set_line"],
- "base_default_next" : "node_62",
+ "base_default_next" : "node_64",
"next_tables" : {
- "FabricIngress.bng_ingress.set_line" : "node_62"
+ "FabricIngress.bng_ingress.set_line" : "node_64"
},
"default_entry" : {
- "action_id" : 28,
+ "action_id" : 29,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -20155,7 +20112,7 @@
},
{
"name" : "tbl_bng342",
- "id" : 37,
+ "id" : 38,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 342,
@@ -20184,7 +20141,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
- "id" : 38,
+ "id" : 39,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 51,
@@ -20211,12 +20168,12 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [17, 2],
+ "action_ids" : [18, 2],
"actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
"base_default_next" : null,
"next_tables" : {
"__HIT__" : "tbl_bng126",
- "__MISS__" : "node_66"
+ "__MISS__" : "node_68"
},
"default_entry" : {
"action_id" : 2,
@@ -20227,7 +20184,7 @@
},
{
"name" : "tbl_bng126",
- "id" : 39,
+ "id" : 40,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 126,
@@ -20243,9 +20200,9 @@
"direct_meters" : null,
"action_ids" : [87],
"actions" : ["bng126"],
- "base_default_next" : "node_66",
+ "base_default_next" : "node_68",
"next_tables" : {
- "bng126" : "node_66"
+ "bng126" : "node_68"
},
"default_entry" : {
"action_id" : 87,
@@ -20256,7 +20213,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
- "id" : 40,
+ "id" : 41,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 87,
@@ -20289,7 +20246,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [20, 18],
+ "action_ids" : [21, 19],
"actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
"base_default_next" : null,
"next_tables" : {
@@ -20297,7 +20254,7 @@
"FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
},
"default_entry" : {
- "action_id" : 18,
+ "action_id" : 19,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -20305,7 +20262,7 @@
},
{
"name" : "tbl_bng131",
- "id" : 41,
+ "id" : 42,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 131,
@@ -20334,7 +20291,7 @@
},
{
"name" : "tbl_bng112",
- "id" : 42,
+ "id" : 43,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 112,
@@ -20363,7 +20320,7 @@
},
{
"name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
- "id" : 43,
+ "id" : 44,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 109,
@@ -20396,7 +20353,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [21, 19],
+ "action_ids" : [22, 20],
"actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v6", "FabricIngress.bng_ingress.upstream.term_disabled"],
"base_default_next" : null,
"next_tables" : {
@@ -20404,7 +20361,7 @@
"FabricIngress.bng_ingress.upstream.term_enabled_v6" : null
},
"default_entry" : {
- "action_id" : 19,
+ "action_id" : 20,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -20412,7 +20369,7 @@
},
{
"name" : "tbl_bng139",
- "id" : 44,
+ "id" : 45,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 139,
@@ -20441,7 +20398,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
- "id" : 45,
+ "id" : 46,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 169,
@@ -20462,12 +20419,12 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [3, 22, 23],
+ "action_ids" : [3, 23, 24],
"actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
"base_default_next" : null,
"next_tables" : {
"__MISS__" : null,
- "__HIT__" : "node_75"
+ "__HIT__" : "node_77"
},
"default_entry" : {
"action_id" : 3,
@@ -20478,7 +20435,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
- "id" : 46,
+ "id" : 47,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 194,
@@ -20517,7 +20474,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [24, 26],
+ "action_ids" : [25, 27],
"actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
"base_default_next" : null,
"next_tables" : {
@@ -20525,7 +20482,7 @@
"FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_bng241"
},
"default_entry" : {
- "action_id" : 26,
+ "action_id" : 27,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -20533,7 +20490,7 @@
},
{
"name" : "tbl_bng238",
- "id" : 47,
+ "id" : 48,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 238,
@@ -20562,7 +20519,7 @@
},
{
"name" : "tbl_bng241",
- "id" : 48,
+ "id" : 49,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 241,
@@ -20591,7 +20548,7 @@
},
{
"name" : "FabricIngress.bng_ingress.downstream.t_qos_v6",
- "id" : 49,
+ "id" : 50,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 210,
@@ -20624,7 +20581,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [25, 27],
+ "action_ids" : [26, 28],
"actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
"base_default_next" : null,
"next_tables" : {
@@ -20632,7 +20589,7 @@
"FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_bng253"
},
"default_entry" : {
- "action_id" : 27,
+ "action_id" : 28,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -20640,7 +20597,7 @@
},
{
"name" : "tbl_bng250",
- "id" : 50,
+ "id" : 51,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 250,
@@ -20669,7 +20626,7 @@
},
{
"name" : "tbl_bng253",
- "id" : 51,
+ "id" : 52,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 253,
@@ -20703,7 +20660,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -20839,7 +20796,7 @@
"id" : 4,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 66,
+ "line" : 68,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -20862,7 +20819,7 @@
"id" : 5,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -20877,7 +20834,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_18"
},
{
@@ -20885,7 +20842,7 @@
"id" : 6,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 116,
+ "line" : 118,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.isValid()"
},
@@ -20900,7 +20857,7 @@
}
}
},
- "true_next" : "tbl_filtering117",
+ "true_next" : "tbl_filtering119",
"false_next" : "node_20"
},
{
@@ -20908,7 +20865,7 @@
"id" : 7,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -20930,7 +20887,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -20938,7 +20895,7 @@
"id" : 8,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -20961,7 +20918,7 @@
}
},
"true_next" : "node_25",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_33"
},
{
"name" : "node_25",
@@ -21065,14 +21022,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v6",
+ "false_next" : "node_33"
+ },
+ {
+ "name" : "node_33",
+ "id" : 13,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._skip_next11"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_34",
- "id" : 13,
+ "name" : "node_37",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -21104,15 +21091,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_40"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_43"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_39",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -21127,15 +21114,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_38"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_41"
},
{
- "name" : "node_38",
- "id" : 15,
+ "name" : "node_41",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -21150,15 +21137,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_40",
- "id" : 16,
+ "name" : "node_43",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -21173,15 +21160,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_42",
- "id" : 17,
+ "name" : "node_45",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -21196,15 +21183,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_44"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_47"
},
{
- "name" : "node_44",
- "id" : 18,
+ "name" : "node_47",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -21219,15 +21206,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_47",
- "id" : 19,
+ "name" : "node_50",
+ "id" : 20,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -21253,8 +21240,8 @@
"false_next" : "FabricIngress.bng_ingress.t_line_map"
},
{
- "name" : "node_53",
- "id" : 20,
+ "name" : "node_55",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -21276,11 +21263,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_55"
+ "false_next" : "node_57"
},
{
- "name" : "node_55",
- "id" : 21,
+ "name" : "node_57",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -21305,11 +21292,11 @@
"false_next" : "FabricIngress.process_set_source_sink.tb_set_source"
},
{
- "name" : "node_59",
- "id" : 22,
+ "name" : "node_61",
+ "id" : 23,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 81,
+ "line" : 86,
"column" : 47,
"source_fragment" : "fabric_metadata"
},
@@ -21328,8 +21315,8 @@
"false_next" : "FabricIngress.bng_ingress.t_line_map"
},
{
- "name" : "node_62",
- "id" : 23,
+ "name" : "node_64",
+ "id" : 24,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 341,
@@ -21351,8 +21338,8 @@
"false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
},
{
- "name" : "node_66",
- "id" : 24,
+ "name" : "node_68",
+ "id" : 25,
"expression" : {
"type" : "expression",
"value" : {
@@ -21372,11 +21359,11 @@
}
},
"false_next" : null,
- "true_next" : "node_67"
+ "true_next" : "node_69"
},
{
- "name" : "node_67",
- "id" : 25,
+ "name" : "node_69",
+ "id" : 26,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 128,
@@ -21395,11 +21382,11 @@
}
},
"true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
- "false_next" : "node_70"
+ "false_next" : "node_72"
},
{
- "name" : "node_70",
- "id" : 26,
+ "name" : "node_72",
+ "id" : 27,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 136,
@@ -21421,8 +21408,8 @@
"true_next" : "tbl_bng112"
},
{
- "name" : "node_75",
- "id" : 27,
+ "name" : "node_77",
+ "id" : 28,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 235,
@@ -21441,11 +21428,11 @@
}
},
"true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
- "false_next" : "node_79"
+ "false_next" : "node_81"
},
{
- "name" : "node_79",
- "id" : 28,
+ "name" : "node_81",
+ "id" : 29,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 247,
@@ -21473,15 +21460,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_85",
+ "init_table" : "node_87",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 52,
+ "id" : 53,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -21497,9 +21484,9 @@
"direct_meters" : null,
"action_ids" : [148],
"actions" : ["packetio41"],
- "base_default_next" : "node_87",
+ "base_default_next" : "node_89",
"next_tables" : {
- "packetio41" : "node_87"
+ "packetio41" : "node_89"
},
"default_entry" : {
"action_id" : 148,
@@ -21510,7 +21497,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 53,
+ "id" : 54,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -21526,9 +21513,9 @@
"direct_meters" : null,
"action_ids" : [149],
"actions" : ["packetio44"],
- "base_default_next" : "node_89",
+ "base_default_next" : "node_91",
"next_tables" : {
- "packetio44" : "node_89"
+ "packetio44" : "node_91"
},
"default_entry" : {
"action_id" : 149,
@@ -21538,11 +21525,11 @@
}
},
{
- "name" : "tbl_next349",
- "id" : 54,
+ "name" : "tbl_next283",
+ "id" : 55,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -21554,10 +21541,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [150],
- "actions" : ["next349"],
- "base_default_next" : "node_91",
+ "actions" : ["next283"],
+ "base_default_next" : "node_93",
"next_tables" : {
- "next349" : "node_91"
+ "next283" : "node_93"
},
"default_entry" : {
"action_id" : 150,
@@ -21568,10 +21555,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 55,
+ "id" : 56,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -21584,9 +21571,9 @@
"direct_meters" : null,
"action_ids" : [140],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
- "base_default_next" : "node_95",
+ "base_default_next" : "node_97",
"next_tables" : {
- "FabricEgress.egress_next.pop_mpls_if_present" : "node_95"
+ "FabricEgress.egress_next.pop_mpls_if_present" : "node_97"
},
"default_entry" : {
"action_id" : 140,
@@ -21597,10 +21584,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 56,
+ "id" : 57,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -21613,9 +21600,9 @@
"direct_meters" : null,
"action_ids" : [141],
"actions" : ["FabricEgress.egress_next.set_mpls"],
- "base_default_next" : "node_95",
+ "base_default_next" : "node_97",
"next_tables" : {
- "FabricEgress.egress_next.set_mpls" : "node_95"
+ "FabricEgress.egress_next.set_mpls" : "node_97"
},
"default_entry" : {
"action_id" : 141,
@@ -21626,10 +21613,10 @@
},
{
"name" : "tbl_egress_next_push_outer_vlan",
- "id" : 57,
+ "id" : 58,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 361,
+ "line" : 295,
"column" : 12,
"source_fragment" : "push_outer_vlan()"
},
@@ -21655,10 +21642,10 @@
},
{
"name" : "tbl_egress_next_push_inner_vlan",
- "id" : 58,
+ "id" : 59,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 362,
+ "line" : 296,
"column" : 12,
"source_fragment" : "push_inner_vlan()"
},
@@ -21671,9 +21658,9 @@
"direct_meters" : null,
"action_ids" : [143],
"actions" : ["FabricEgress.egress_next.push_inner_vlan"],
- "base_default_next" : "node_100",
+ "base_default_next" : "node_102",
"next_tables" : {
- "FabricEgress.egress_next.push_inner_vlan" : "node_100"
+ "FabricEgress.egress_next.push_inner_vlan" : "node_102"
},
"default_entry" : {
"action_id" : 143,
@@ -21683,11 +21670,11 @@
}
},
{
- "name" : "tbl_next365",
- "id" : 59,
+ "name" : "tbl_next299",
+ "id" : 60,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 365,
+ "line" : 299,
"column" : 12,
"source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
},
@@ -21699,10 +21686,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [151],
- "actions" : ["next365"],
+ "actions" : ["next299"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
- "next365" : "FabricEgress.egress_next.egress_vlan"
+ "next299" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
"action_id" : 151,
@@ -21713,10 +21700,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 60,
+ "id" : 61,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -21742,11 +21729,11 @@
"direct_meters" : null,
"action_ids" : [144, 145, 146],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_100",
+ "base_default_next" : "node_102",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_100",
- "FabricEgress.egress_next.pop_vlan" : "node_100",
- "FabricEgress.egress_next.drop" : "node_100"
+ "FabricEgress.egress_next.push_vlan" : "node_102",
+ "FabricEgress.egress_next.pop_vlan" : "node_102",
+ "FabricEgress.egress_next.drop" : "node_102"
},
"default_entry" : {
"action_id" : 146,
@@ -21756,11 +21743,11 @@
}
},
{
- "name" : "tbl_next375",
- "id" : 61,
+ "name" : "tbl_next309",
+ "id" : 62,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -21772,10 +21759,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [153],
- "actions" : ["next375"],
- "base_default_next" : "node_102",
+ "actions" : ["next309"],
+ "base_default_next" : "node_104",
"next_tables" : {
- "next375" : "node_102"
+ "next309" : "node_104"
},
"default_entry" : {
"action_id" : 153,
@@ -21785,11 +21772,11 @@
}
},
{
- "name" : "tbl_next376",
- "id" : 62,
+ "name" : "tbl_next310",
+ "id" : 63,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -21801,10 +21788,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [152],
- "actions" : ["next376"],
- "base_default_next" : "node_112",
+ "actions" : ["next310"],
+ "base_default_next" : "node_114",
"next_tables" : {
- "next376" : "node_112"
+ "next310" : "node_114"
},
"default_entry" : {
"action_id" : 152,
@@ -21814,11 +21801,11 @@
}
},
{
- "name" : "tbl_next379",
- "id" : 63,
+ "name" : "tbl_next313",
+ "id" : 64,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -21830,10 +21817,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [155],
- "actions" : ["next379"],
- "base_default_next" : "node_106",
+ "actions" : ["next313"],
+ "base_default_next" : "node_108",
"next_tables" : {
- "next379" : "node_106"
+ "next313" : "node_108"
},
"default_entry" : {
"action_id" : 155,
@@ -21843,11 +21830,11 @@
}
},
{
- "name" : "tbl_next380",
- "id" : 64,
+ "name" : "tbl_next314",
+ "id" : 65,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -21859,10 +21846,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [154],
- "actions" : ["next380"],
- "base_default_next" : "node_112",
+ "actions" : ["next314"],
+ "base_default_next" : "node_114",
"next_tables" : {
- "next380" : "node_112"
+ "next314" : "node_114"
},
"default_entry" : {
"action_id" : 154,
@@ -21872,11 +21859,11 @@
}
},
{
- "name" : "tbl_next384",
- "id" : 65,
+ "name" : "tbl_next318",
+ "id" : 66,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 384,
+ "line" : 318,
"column" : 35,
"source_fragment" : "="
},
@@ -21888,10 +21875,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [157],
- "actions" : ["next384"],
- "base_default_next" : "node_110",
+ "actions" : ["next318"],
+ "base_default_next" : "node_112",
"next_tables" : {
- "next384" : "node_110"
+ "next318" : "node_112"
},
"default_entry" : {
"action_id" : 157,
@@ -21901,11 +21888,11 @@
}
},
{
- "name" : "tbl_next385",
- "id" : 66,
+ "name" : "tbl_next319",
+ "id" : 67,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 385,
+ "line" : 319,
"column" : 45,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -21917,10 +21904,10 @@
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [156],
- "actions" : ["next385"],
- "base_default_next" : "node_112",
+ "actions" : ["next319"],
+ "base_default_next" : "node_114",
"next_tables" : {
- "next385" : "node_112"
+ "next319" : "node_114"
},
"default_entry" : {
"action_id" : 156,
@@ -21931,7 +21918,7 @@
},
{
"name" : "tbl_spgw_gtpu_encap",
- "id" : 67,
+ "id" : 68,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 339,
@@ -21947,9 +21934,9 @@
"direct_meters" : null,
"action_ids" : [147],
"actions" : ["FabricEgress.spgw.gtpu_encap"],
- "base_default_next" : "node_115",
+ "base_default_next" : "node_117",
"next_tables" : {
- "FabricEgress.spgw.gtpu_encap" : "node_115"
+ "FabricEgress.spgw.gtpu_encap" : "node_117"
},
"default_entry" : {
"action_id" : 147,
@@ -21960,7 +21947,7 @@
},
{
"name" : "tbl_spgw342",
- "id" : 68,
+ "id" : 69,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 342,
@@ -21976,9 +21963,9 @@
"direct_meters" : null,
"action_ids" : [158],
"actions" : ["spgw342"],
- "base_default_next" : "node_117",
+ "base_default_next" : "node_119",
"next_tables" : {
- "spgw342" : "node_117"
+ "spgw342" : "node_119"
},
"default_entry" : {
"action_id" : 158,
@@ -21989,7 +21976,7 @@
},
{
"name" : "tbl_bng_egress_downstream_encap_v4",
- "id" : 69,
+ "id" : 70,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 297,
@@ -22005,9 +21992,9 @@
"direct_meters" : null,
"action_ids" : [101],
"actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
- "base_default_next" : "node_122",
+ "base_default_next" : "node_124",
"next_tables" : {
- "FabricEgress.bng_egress.downstream.encap_v4" : "node_122"
+ "FabricEgress.bng_egress.downstream.encap_v4" : "node_124"
},
"default_entry" : {
"action_id" : 101,
@@ -22018,7 +22005,7 @@
},
{
"name" : "tbl_bng_egress_downstream_encap_v6",
- "id" : 70,
+ "id" : 71,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 302,
@@ -22034,9 +22021,9 @@
"direct_meters" : null,
"action_ids" : [102],
"actions" : ["FabricEgress.bng_egress.downstream.encap_v6"],
- "base_default_next" : "node_122",
+ "base_default_next" : "node_124",
"next_tables" : {
- "FabricEgress.bng_egress.downstream.encap_v6" : "node_122"
+ "FabricEgress.bng_egress.downstream.encap_v6" : "node_124"
},
"default_entry" : {
"action_id" : 102,
@@ -22047,7 +22034,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "id" : 71,
+ "id" : 72,
"source_info" : {
"filename" : "include/int/int_source.p4",
"line" : 66,
@@ -22088,10 +22075,10 @@
"direct_meters" : null,
"action_ids" : [103, 96],
"actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
- "base_default_next" : "node_125",
+ "base_default_next" : "node_127",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_125",
- "nop" : "node_125"
+ "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_127",
+ "nop" : "node_127"
},
"default_entry" : {
"action_id" : 96,
@@ -22102,7 +22089,7 @@
},
{
"name" : "tbl_act",
- "id" : 72,
+ "id" : 73,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -22125,7 +22112,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
- "id" : 73,
+ "id" : 74,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 315,
@@ -22148,10 +22135,10 @@
"direct_meters" : null,
"action_ids" : [104, 97],
"actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
- "base_default_next" : "node_128",
+ "base_default_next" : "node_130",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_128",
- "nop" : "node_128"
+ "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_130",
+ "nop" : "node_130"
},
"default_entry" : {
"action_id" : 97,
@@ -22162,7 +22149,7 @@
},
{
"name" : "tbl_int_transit420",
- "id" : 74,
+ "id" : 75,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 420,
@@ -22178,9 +22165,9 @@
"direct_meters" : null,
"action_ids" : [160],
"actions" : ["int_transit420"],
- "base_default_next" : "node_130",
+ "base_default_next" : "node_132",
"next_tables" : {
- "int_transit420" : "node_130"
+ "int_transit420" : "node_132"
},
"default_entry" : {
"action_id" : 160,
@@ -22191,7 +22178,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
- "id" : 75,
+ "id" : 76,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 331,
@@ -22549,7 +22536,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
- "id" : 76,
+ "id" : 77,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 375,
@@ -22907,7 +22894,7 @@
},
{
"name" : "tbl_int_transit425",
- "id" : 77,
+ "id" : 78,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 425,
@@ -22923,9 +22910,9 @@
"direct_meters" : null,
"action_ids" : [162],
"actions" : ["int_transit425"],
- "base_default_next" : "node_134",
+ "base_default_next" : "node_136",
"next_tables" : {
- "int_transit425" : "node_134"
+ "int_transit425" : "node_136"
},
"default_entry" : {
"action_id" : 162,
@@ -22936,7 +22923,7 @@
},
{
"name" : "tbl_int_transit428",
- "id" : 78,
+ "id" : 79,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 428,
@@ -22952,9 +22939,9 @@
"direct_meters" : null,
"action_ids" : [161],
"actions" : ["int_transit428"],
- "base_default_next" : "node_136",
+ "base_default_next" : "node_138",
"next_tables" : {
- "int_transit428" : "node_136"
+ "int_transit428" : "node_138"
},
"default_entry" : {
"action_id" : 161,
@@ -22965,7 +22952,7 @@
},
{
"name" : "tbl_int_transit431",
- "id" : 79,
+ "id" : 80,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 431,
@@ -22981,9 +22968,9 @@
"direct_meters" : null,
"action_ids" : [163],
"actions" : ["int_transit431"],
- "base_default_next" : "node_138",
+ "base_default_next" : "node_140",
"next_tables" : {
- "int_transit431" : "node_138"
+ "int_transit431" : "node_140"
},
"default_entry" : {
"action_id" : 163,
@@ -22994,7 +22981,7 @@
},
{
"name" : "tbl_int_transit434",
- "id" : 80,
+ "id" : 81,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 434,
@@ -23010,9 +22997,9 @@
"direct_meters" : null,
"action_ids" : [164],
"actions" : ["int_transit434"],
- "base_default_next" : "node_140",
+ "base_default_next" : "node_142",
"next_tables" : {
- "int_transit434" : "node_140"
+ "int_transit434" : "node_142"
},
"default_entry" : {
"action_id" : 164,
@@ -23023,7 +23010,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
- "id" : 81,
+ "id" : 82,
"source_info" : {
"filename" : "include/int/int_report.p4",
"line" : 87,
@@ -23039,10 +23026,10 @@
"direct_meters" : null,
"action_ids" : [137, 98],
"actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "nop"],
- "base_default_next" : "node_142",
+ "base_default_next" : "node_144",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_142",
- "nop" : "node_142"
+ "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_144",
+ "nop" : "node_144"
},
"default_entry" : {
"action_id" : 98,
@@ -23053,7 +23040,7 @@
},
{
"name" : "tbl_process_int_main_process_int_sink_restore_header",
- "id" : 82,
+ "id" : 83,
"source_info" : {
"filename" : "include/int/int_sink.p4",
"line" : 53,
@@ -23082,7 +23069,7 @@
},
{
"name" : "tbl_process_int_main_process_int_sink_int_sink",
- "id" : 83,
+ "id" : 84,
"source_info" : {
"filename" : "include/int/int_sink.p4",
"line" : 54,
@@ -23113,11 +23100,11 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_85",
- "id" : 29,
+ "name" : "node_87",
+ "id" : 30,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 103,
+ "line" : 108,
"column" : 33,
"source_fragment" : "fabric_metadata"
},
@@ -23133,11 +23120,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_87"
+ "false_next" : "node_89"
},
{
- "name" : "node_87",
- "id" : 30,
+ "name" : "node_89",
+ "id" : 31,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -23159,14 +23146,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_89"
+ "false_next" : "node_91"
},
{
- "name" : "node_89",
- "id" : 31,
+ "name" : "node_91",
+ "id" : 32,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -23201,15 +23188,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_91"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_93"
},
{
- "name" : "node_91",
- "id" : 32,
+ "name" : "node_93",
+ "id" : 33,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -23227,15 +23214,15 @@
}
}
},
- "true_next" : "node_92",
+ "true_next" : "node_94",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_92",
- "id" : 33,
+ "name" : "node_94",
+ "id" : 34,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -23251,14 +23238,14 @@
}
},
"true_next" : "tbl_egress_next_pop_mpls_if_present",
- "false_next" : "node_95"
+ "false_next" : "node_97"
},
{
- "name" : "node_95",
- "id" : 34,
+ "name" : "node_97",
+ "id" : 35,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 104,
+ "line" : 109,
"column" : 31,
"source_fragment" : "fabric_metadata"
},
@@ -23274,14 +23261,14 @@
}
},
"true_next" : "tbl_egress_next_push_outer_vlan",
- "false_next" : "tbl_next365"
+ "false_next" : "tbl_next299"
},
{
- "name" : "node_100",
- "id" : 35,
+ "name" : "node_102",
+ "id" : 36,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -23296,15 +23283,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_104"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_106"
},
{
- "name" : "node_102",
- "id" : 36,
+ "name" : "node_104",
+ "id" : 37,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -23322,15 +23309,15 @@
}
}
},
- "true_next" : "tbl_next376",
- "false_next" : "node_112"
+ "true_next" : "tbl_next310",
+ "false_next" : "node_114"
},
{
- "name" : "node_104",
- "id" : 37,
+ "name" : "node_106",
+ "id" : 38,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -23365,15 +23352,15 @@
}
}
},
- "true_next" : "tbl_next379",
- "false_next" : "node_108"
+ "true_next" : "tbl_next313",
+ "false_next" : "node_110"
},
{
- "name" : "node_106",
- "id" : 38,
+ "name" : "node_108",
+ "id" : 39,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -23391,15 +23378,15 @@
}
}
},
- "true_next" : "tbl_next380",
- "false_next" : "node_112"
+ "true_next" : "tbl_next314",
+ "false_next" : "node_114"
},
{
- "name" : "node_108",
- "id" : 39,
+ "name" : "node_110",
+ "id" : 40,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 383,
+ "line" : 317,
"column" : 21,
"source_fragment" : "hdr.ipv6.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -23434,15 +23421,15 @@
}
}
},
- "true_next" : "tbl_next384",
- "false_next" : "node_112"
+ "true_next" : "tbl_next318",
+ "false_next" : "node_114"
},
{
- "name" : "node_110",
- "id" : 40,
+ "name" : "node_112",
+ "id" : 41,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 385,
+ "line" : 319,
"column" : 20,
"source_fragment" : "hdr.ipv6.hop_limit == 0"
},
@@ -23460,12 +23447,12 @@
}
}
},
- "true_next" : "tbl_next385",
- "false_next" : "node_112"
+ "true_next" : "tbl_next319",
+ "false_next" : "node_114"
},
{
- "name" : "node_112",
- "id" : 41,
+ "name" : "node_114",
+ "id" : 42,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 337,
@@ -23490,15 +23477,15 @@
}
}
},
- "true_next" : "node_113",
- "false_next" : "node_117"
+ "true_next" : "node_115",
+ "false_next" : "node_119"
},
{
- "name" : "node_113",
- "id" : 42,
+ "name" : "node_115",
+ "id" : 43,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 106,
+ "line" : 111,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -23514,11 +23501,11 @@
}
},
"true_next" : "tbl_spgw_gtpu_encap",
- "false_next" : "node_115"
+ "false_next" : "node_117"
},
{
- "name" : "node_115",
- "id" : 43,
+ "name" : "node_117",
+ "id" : 44,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 341,
@@ -23544,11 +23531,11 @@
}
},
"true_next" : "tbl_spgw342",
- "false_next" : "node_117"
+ "false_next" : "node_119"
},
{
- "name" : "node_117",
- "id" : 44,
+ "name" : "node_119",
+ "id" : 45,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 358,
@@ -23569,12 +23556,12 @@
}
}
},
- "true_next" : "node_118",
- "false_next" : "node_122"
+ "true_next" : "node_120",
+ "false_next" : "node_124"
},
{
- "name" : "node_118",
- "id" : 45,
+ "name" : "node_120",
+ "id" : 46,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 296,
@@ -23593,11 +23580,11 @@
}
},
"true_next" : "tbl_bng_egress_downstream_encap_v4",
- "false_next" : "node_120"
+ "false_next" : "node_122"
},
{
- "name" : "node_120",
- "id" : 46,
+ "name" : "node_122",
+ "id" : 47,
"source_info" : {
"filename" : "include/bng.p4",
"line" : 301,
@@ -23616,11 +23603,11 @@
}
},
"true_next" : "tbl_bng_egress_downstream_encap_v6",
- "false_next" : "node_122"
+ "false_next" : "node_124"
},
{
- "name" : "node_122",
- "id" : 47,
+ "name" : "node_124",
+ "id" : 48,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 102,
@@ -23696,14 +23683,14 @@
}
},
"false_next" : null,
- "true_next" : "node_123"
+ "true_next" : "node_125"
},
{
- "name" : "node_123",
- "id" : 48,
+ "name" : "node_125",
+ "id" : 49,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 112,
+ "line" : 117,
"column" : 36,
"source_fragment" : "fabric_metadata"
},
@@ -23719,11 +23706,11 @@
}
},
"true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "false_next" : "node_125"
+ "false_next" : "node_127"
},
{
- "name" : "node_125",
- "id" : 49,
+ "name" : "node_127",
+ "id" : 50,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 110,
@@ -23745,8 +23732,8 @@
"true_next" : "tbl_act"
},
{
- "name" : "node_128",
- "id" : 50,
+ "name" : "node_130",
+ "id" : 51,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 419,
@@ -23772,11 +23759,11 @@
}
},
"true_next" : "tbl_int_transit420",
- "false_next" : "node_130"
+ "false_next" : "node_132"
},
{
- "name" : "node_130",
- "id" : 51,
+ "name" : "node_132",
+ "id" : 52,
"expression" : {
"type" : "expression",
"value" : {
@@ -23796,11 +23783,11 @@
}
},
"true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
- "false_next" : "node_140"
+ "false_next" : "node_142"
},
{
- "name" : "node_134",
- "id" : 52,
+ "name" : "node_136",
+ "id" : 53,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 427,
@@ -23819,11 +23806,11 @@
}
},
"true_next" : "tbl_int_transit428",
- "false_next" : "node_136"
+ "false_next" : "node_138"
},
{
- "name" : "node_136",
- "id" : 53,
+ "name" : "node_138",
+ "id" : 54,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 430,
@@ -23842,11 +23829,11 @@
}
},
"true_next" : "tbl_int_transit431",
- "false_next" : "node_138"
+ "false_next" : "node_140"
},
{
- "name" : "node_138",
- "id" : 54,
+ "name" : "node_140",
+ "id" : 55,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 433,
@@ -23865,11 +23852,11 @@
}
},
"true_next" : "tbl_int_transit434",
- "false_next" : "node_140"
+ "false_next" : "node_142"
},
{
- "name" : "node_140",
- "id" : 55,
+ "name" : "node_142",
+ "id" : 56,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 115,
@@ -23891,14 +23878,14 @@
}
},
"true_next" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
- "false_next" : "node_142"
+ "false_next" : "node_144"
},
{
- "name" : "node_142",
- "id" : 56,
+ "name" : "node_144",
+ "id" : 57,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 112,
+ "line" : 117,
"column" : 36,
"source_fragment" : "fabric_metadata"
},
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
index 8003c09..ce00771 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
@@ -455,6 +455,57 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 26738842
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -531,6 +582,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -552,33 +609,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 17655305
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 48735793
name: "FabricIngress.next.xconnect"
alias: "xconnect"
@@ -629,9 +659,6 @@
id: 31887425
}
action_refs {
- id: 26875580
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -659,9 +686,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -1033,6 +1057,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -1045,6 +1074,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -1115,6 +1149,47 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
+ id: 26738842
+ name: "FabricIngress.pre_next.set_double_vlan"
+ alias: "set_double_vlan"
+ }
+ params {
+ id: 1
+ name: "outer_vlan_id"
+ bitwidth: 12
+ }
+ params {
+ id: 2
+ name: "inner_vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -1160,35 +1235,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
- id: 17655305
- name: "FabricIngress.next.set_double_vlan"
- alias: "set_double_vlan"
- }
- params {
- id: 1
- name: "outer_vlan_id"
- bitwidth: 12
- }
- params {
- id: 2
- name: "inner_vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 24640974
name: "FabricIngress.next.output_xconnect"
alias: "output_xconnect"
@@ -1247,33 +1293,6 @@
}
actions {
preamble {
- id: 26875580
- name: "FabricIngress.next.mpls_routing_simple"
- alias: "mpls_routing_simple"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 27301117
name: "FabricIngress.next.output_hashed"
alias: "output_hashed"
@@ -1308,33 +1327,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -1799,6 +1791,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -1810,17 +1824,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 321989420
name: "FabricIngress.next.xconnect_counter"
alias: "xconnect_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
index e7bf0cf..c2a9589 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
@@ -46,7 +46,8 @@
["userMetadata._int_meta_new_bytes22", 16, false],
["userMetadata._int_meta_ig_tstamp23", 32, false],
["userMetadata._int_meta_eg_tstamp24", 32, false],
- ["_padding_0", 3, false]
+ ["userMetadata._port_type25", 2, false],
+ ["_padding_0", 1, false]
]
},
{
@@ -2122,7 +2123,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -2152,9 +2153,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 5,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 6,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 7,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -2164,56 +2189,44 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 6,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 7,
+ "id" : 8,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 107,
+ "line" : 56,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 8,
+ "id" : 9,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 9,
+ "id" : 10,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 10,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -2225,7 +2238,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 11,
+ "id" : 12,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -2237,7 +2250,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
- "id" : 12,
+ "id" : 13,
"is_direct" : true,
"binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
"source_info" : {
@@ -2249,12 +2262,12 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 13,
+ "id" : 14,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
@@ -2436,9 +2449,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "name" : "nop",
"id" : 8,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "id" : 9,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -2473,7 +2492,7 @@
},
{
"name" : "FabricIngress.filtering.deny",
- "id" : 9,
+ "id" : 10,
"runtime_data" : [],
"primitives" : [
{
@@ -2533,22 +2552,70 @@
"column" : 34,
"source_fragment" : "= true; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type25"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 10,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 11,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 11,
+ "id" : 12,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -2566,16 +2633,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 32,
"source_fragment" : "= vlan_id; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 12,
+ "id" : 13,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2597,7 +2683,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 33,
"source_fragment" : "= fwd_type; ..."
}
@@ -2606,7 +2692,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 13,
+ "id" : 14,
"runtime_data" : [
{
"name" : "next_id",
@@ -2637,7 +2723,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 14,
+ "id" : 15,
"runtime_data" : [
{
"name" : "next_id",
@@ -2687,7 +2773,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 15,
+ "id" : 16,
"runtime_data" : [
{
"name" : "next_id",
@@ -2718,13 +2804,75 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 16,
+ "id" : 17,
"runtime_data" : [],
"primitives" : []
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 18,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._mpls_label4"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 35,
+ "source_fragment" : "= label; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 19,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 17,
+ "id" : 20,
"runtime_data" : [
{
"name" : "next_id",
@@ -2755,7 +2903,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 18,
+ "id" : 21,
"runtime_data" : [],
"primitives" : [
{
@@ -2810,7 +2958,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 19,
+ "id" : 22,
"runtime_data" : [
{
"name" : "clone_id",
@@ -2841,7 +2989,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 20,
+ "id" : 23,
"runtime_data" : [],
"primitives" : [
{
@@ -2892,105 +3040,12 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 21,
+ "id" : 24,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 22,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_xconnect",
- "id" : 23,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 24,
- "runtime_data" : [
- {
- "name" : "next_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._next_id9"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 115,
- "column" : 32,
- "source_fragment" : "= next_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.output_hashed",
"id" : 25,
"runtime_data" : [
{
@@ -3021,20 +3076,12 @@
]
},
{
- "name" : "FabricIngress.next.routing_hashed",
+ "name" : "FabricIngress.next.set_next_id_xconnect",
"id" : 26,
"runtime_data" : [
{
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
+ "name" : "next_id",
+ "bitwidth" : 32
}
],
"primitives" : [
@@ -3043,39 +3090,32 @@
"parameters" : [
{
"type" : "field",
- "value" : ["ethernet", "src_addr"]
+ "value" : ["scalars", "userMetadata._next_id9"]
},
{
"type" : "runtime_data",
- "value" : 1
+ "value" : 0
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ "line" : 64,
+ "column" : 32,
+ "source_fragment" : "= next_id; ..."
}
- },
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.next.output_hashed",
+ "id" : 27,
+ "runtime_data" : [
{
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
+ "name" : "port_num",
+ "bitwidth" : 9
+ }
+ ],
+ "primitives" : [
{
"op" : "assign",
"parameters" : [
@@ -3098,8 +3138,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 27,
+ "name" : "FabricIngress.next.routing_hashed",
+ "id" : 28,
"runtime_data" : [
{
"name" : "port_num",
@@ -3112,10 +3152,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -3124,25 +3160,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label4"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -3199,7 +3216,7 @@
},
{
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 28,
+ "id" : 29,
"runtime_data" : [
{
"name" : "group_id",
@@ -3221,7 +3238,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -3250,7 +3267,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 37,
"source_fragment" : "= true; ..."
}
@@ -3259,7 +3276,7 @@
},
{
"name" : "packetio25",
- "id" : 29,
+ "id" : 30,
"runtime_data" : [],
"primitives" : [
{
@@ -3338,8 +3355,8 @@
]
},
{
- "name" : "filtering111",
- "id" : 30,
+ "name" : "filtering113",
+ "id" : 31,
"runtime_data" : [],
"primitives" : [
{
@@ -3356,7 +3373,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
}
@@ -3375,7 +3392,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.pri; ..."
}
@@ -3394,7 +3411,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.cfi; ..."
}
@@ -3402,8 +3419,8 @@
]
},
{
- "name" : "filtering127",
- "id" : 31,
+ "name" : "filtering129",
+ "id" : 32,
"runtime_data" : [],
"primitives" : [
{
@@ -3420,7 +3437,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
}
@@ -3428,8 +3445,8 @@
]
},
{
- "name" : "acl101",
- "id" : 32,
+ "name" : "acl102",
+ "id" : 33,
"runtime_data" : [],
"primitives" : [
{
@@ -3446,7 +3463,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -3465,7 +3482,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -3473,8 +3490,8 @@
]
},
{
- "name" : "acl104",
- "id" : 33,
+ "name" : "acl105",
+ "id" : 34,
"runtime_data" : [],
"primitives" : [
{
@@ -3491,7 +3508,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -3510,7 +3527,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -3518,8 +3535,8 @@
]
},
{
- "name" : "acl97",
- "id" : 34,
+ "name" : "acl98",
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -3536,7 +3553,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -3555,7 +3572,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -3574,7 +3591,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -3582,8 +3599,8 @@
]
},
{
- "name" : "acl112",
- "id" : 35,
+ "name" : "acl113",
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -3600,7 +3617,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -3619,7 +3636,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -3627,8 +3644,8 @@
]
},
{
- "name" : "acl115",
- "id" : 36,
+ "name" : "acl116",
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -3645,7 +3662,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -3664,7 +3681,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -3672,8 +3689,8 @@
]
},
{
- "name" : "acl108",
- "id" : 37,
+ "name" : "acl109",
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -3690,7 +3707,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -3709,7 +3726,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -3728,7 +3745,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -3737,7 +3754,7 @@
},
{
"name" : "acl27",
- "id" : 38,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -3839,7 +3856,7 @@
},
{
"name" : "port_counter31",
- "id" : 39,
+ "id" : 40,
"runtime_data" : [],
"primitives" : [
{
@@ -3897,7 +3914,7 @@
},
{
"name" : "port_counter34",
- "id" : 40,
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -3955,18 +3972,12 @@
},
{
"name" : "nop",
- "id" : 41,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "nop",
"id" : 42,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "NoAction",
+ "name" : "nop",
"id" : 43,
"runtime_data" : [],
"primitives" : []
@@ -3978,8 +3989,14 @@
"primitives" : []
},
{
- "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
+ "name" : "NoAction",
"id" : 45,
+ "runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
+ "id" : 46,
"runtime_data" : [
{
"name" : "max_hop",
@@ -4047,7 +4064,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 157,
+ "line" : 169,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -4465,7 +4482,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 153,
+ "line" : 165,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -4474,7 +4491,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
- "id" : 46,
+ "id" : 47,
"runtime_data" : [
{
"name" : "switch_id",
@@ -4534,13 +4551,13 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
- "id" : 47,
+ "id" : 48,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
- "id" : 48,
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -4697,7 +4714,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
- "id" : 49,
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -4822,7 +4839,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
- "id" : 50,
+ "id" : 51,
"runtime_data" : [],
"primitives" : [
{
@@ -5013,7 +5030,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
- "id" : 51,
+ "id" : 52,
"runtime_data" : [],
"primitives" : [
{
@@ -5183,7 +5200,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
- "id" : 52,
+ "id" : 53,
"runtime_data" : [],
"primitives" : [
{
@@ -5419,7 +5436,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
- "id" : 53,
+ "id" : 54,
"runtime_data" : [],
"primitives" : [
{
@@ -5623,7 +5640,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
- "id" : 54,
+ "id" : 55,
"runtime_data" : [],
"primitives" : [
{
@@ -5893,7 +5910,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
- "id" : 55,
+ "id" : 56,
"runtime_data" : [],
"primitives" : [
{
@@ -6018,7 +6035,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
- "id" : 56,
+ "id" : 57,
"runtime_data" : [],
"primitives" : [
{
@@ -6209,7 +6226,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
- "id" : 57,
+ "id" : 58,
"runtime_data" : [],
"primitives" : [
{
@@ -6368,7 +6385,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
- "id" : 58,
+ "id" : 59,
"runtime_data" : [],
"primitives" : [
{
@@ -6593,7 +6610,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
- "id" : 59,
+ "id" : 60,
"runtime_data" : [],
"primitives" : [
{
@@ -6797,7 +6814,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
- "id" : 60,
+ "id" : 61,
"runtime_data" : [],
"primitives" : [
{
@@ -7067,7 +7084,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
- "id" : 61,
+ "id" : 62,
"runtime_data" : [],
"primitives" : [
{
@@ -7305,7 +7322,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
- "id" : 62,
+ "id" : 63,
"runtime_data" : [],
"primitives" : [
{
@@ -7609,13 +7626,13 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
- "id" : 63,
+ "id" : 64,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
- "id" : 64,
+ "id" : 65,
"runtime_data" : [],
"primitives" : [
{
@@ -7740,7 +7757,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
- "id" : 65,
+ "id" : 66,
"runtime_data" : [],
"primitives" : [
{
@@ -7884,7 +7901,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
- "id" : 66,
+ "id" : 67,
"runtime_data" : [],
"primitives" : [
{
@@ -8062,7 +8079,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
- "id" : 67,
+ "id" : 68,
"runtime_data" : [],
"primitives" : [
{
@@ -8210,7 +8227,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
- "id" : 68,
+ "id" : 69,
"runtime_data" : [],
"primitives" : [
{
@@ -8392,7 +8409,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
- "id" : 69,
+ "id" : 70,
"runtime_data" : [],
"primitives" : [
{
@@ -8593,7 +8610,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
- "id" : 70,
+ "id" : 71,
"runtime_data" : [],
"primitives" : [
{
@@ -8828,7 +8845,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
- "id" : 71,
+ "id" : 72,
"runtime_data" : [],
"primitives" : [
{
@@ -8953,7 +8970,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
- "id" : 72,
+ "id" : 73,
"runtime_data" : [],
"primitives" : [
{
@@ -9112,7 +9129,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
- "id" : 73,
+ "id" : 74,
"runtime_data" : [],
"primitives" : [
{
@@ -9290,7 +9307,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
- "id" : 74,
+ "id" : 75,
"runtime_data" : [],
"primitives" : [
{
@@ -9502,7 +9519,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
- "id" : 75,
+ "id" : 76,
"runtime_data" : [],
"primitives" : [
{
@@ -9684,7 +9701,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
- "id" : 76,
+ "id" : 77,
"runtime_data" : [],
"primitives" : [
{
@@ -9900,7 +9917,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
- "id" : 77,
+ "id" : 78,
"runtime_data" : [],
"primitives" : [
{
@@ -10135,7 +10152,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
- "id" : 78,
+ "id" : 79,
"runtime_data" : [],
"primitives" : [
{
@@ -10404,7 +10421,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 79,
+ "id" : 80,
"runtime_data" : [],
"primitives" : [
{
@@ -10417,7 +10434,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -10436,7 +10453,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
}
@@ -10445,7 +10462,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 80,
+ "id" : 81,
"runtime_data" : [],
"primitives" : [
{
@@ -10458,7 +10475,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -10477,7 +10494,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
}
@@ -10496,7 +10513,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -10515,7 +10532,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -10534,7 +10551,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
}
@@ -10553,7 +10570,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -10562,7 +10579,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 81,
+ "id" : 82,
"runtime_data" : [],
"primitives" : [
{
@@ -10575,7 +10592,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -10594,7 +10611,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -10613,7 +10630,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -10632,7 +10649,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -10651,7 +10668,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -10660,7 +10677,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 82,
+ "id" : 83,
"runtime_data" : [],
"primitives" : [
{
@@ -10673,7 +10690,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -10682,7 +10699,7 @@
},
{
"name" : "FabricEgress.egress_next.drop",
- "id" : 83,
+ "id" : 84,
"runtime_data" : [],
"primitives" : [
{
@@ -10695,7 +10712,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -10704,7 +10721,7 @@
},
{
"name" : "packetio41",
- "id" : 84,
+ "id" : 85,
"runtime_data" : [],
"primitives" : [
{
@@ -10721,7 +10738,7 @@
},
{
"name" : "packetio44",
- "id" : 85,
+ "id" : 86,
"runtime_data" : [],
"primitives" : [
{
@@ -10771,29 +10788,7 @@
]
},
{
- "name" : "next349",
- "id" : 86,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 349,
- "column" : 12,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- }
- }
- ]
- },
- {
- "name" : "next376",
+ "name" : "next283",
"id" : 87,
"runtime_data" : [],
"primitives" : [
@@ -10807,7 +10802,29 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 283,
+ "column" : 12,
+ "source_fragment" : "mark_to_drop(standard_metadata)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "next310",
+ "id" : 88,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "mark_to_drop",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "standard_metadata"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -10815,8 +10832,8 @@
]
},
{
- "name" : "next375",
- "id" : 88,
+ "name" : "next309",
+ "id" : 89,
"runtime_data" : [],
"primitives" : [
{
@@ -10856,7 +10873,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -10864,8 +10881,8 @@
]
},
{
- "name" : "next380",
- "id" : 89,
+ "name" : "next314",
+ "id" : 90,
"runtime_data" : [],
"primitives" : [
{
@@ -10878,7 +10895,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -10886,8 +10903,8 @@
]
},
{
- "name" : "next379",
- "id" : 90,
+ "name" : "next313",
+ "id" : 91,
"runtime_data" : [],
"primitives" : [
{
@@ -10927,7 +10944,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -10936,7 +10953,7 @@
},
{
"name" : "act",
- "id" : 91,
+ "id" : 92,
"runtime_data" : [],
"primitives" : [
{
@@ -10966,7 +10983,7 @@
},
{
"name" : "int_transit420",
- "id" : 92,
+ "id" : 93,
"runtime_data" : [],
"primitives" : [
{
@@ -11002,7 +11019,7 @@
},
{
"name" : "int_transit428",
- "id" : 93,
+ "id" : 94,
"runtime_data" : [],
"primitives" : [
{
@@ -11051,7 +11068,7 @@
},
{
"name" : "int_transit425",
- "id" : 94,
+ "id" : 95,
"runtime_data" : [],
"primitives" : [
{
@@ -11100,7 +11117,7 @@
},
{
"name" : "int_transit431",
- "id" : 95,
+ "id" : 96,
"runtime_data" : [],
"primitives" : [
{
@@ -11149,7 +11166,7 @@
},
{
"name" : "int_transit434",
- "id" : 96,
+ "id" : 97,
"runtime_data" : [],
"primitives" : [
{
@@ -11203,7 +11220,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -11225,25 +11242,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [29],
+ "action_ids" : [30],
"actions" : ["packetio25"],
"base_default_next" : "node_4",
"next_tables" : {
"packetio25" : "node_4"
},
"default_entry" : {
- "action_id" : 29,
+ "action_id" : 30,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -11254,25 +11271,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [30],
- "actions" : ["filtering111"],
+ "action_ids" : [31],
+ "actions" : ["filtering113"],
"base_default_next" : "node_6",
"next_tables" : {
- "filtering111" : "node_6"
+ "filtering113" : "node_6"
},
"default_entry" : {
- "action_id" : 30,
+ "action_id" : 31,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -11283,14 +11300,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31],
- "actions" : ["filtering127"],
+ "action_ids" : [32],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 31,
+ "action_id" : 32,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11301,7 +11318,7 @@
"id" : 3,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -11331,7 +11348,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [9, 10, 11],
+ "action_ids" : [10, 11, 12],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -11340,7 +11357,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 9,
+ "action_id" : 10,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11351,7 +11368,7 @@
"id" : 4,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -11387,14 +11404,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [12],
+ "action_ids" : [13],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_10",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_10"
},
"default_entry" : {
- "action_id" : 12,
+ "action_id" : 13,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -11429,12 +11446,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [13, 1],
+ "action_ids" : [14, 1],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 1,
@@ -11466,12 +11483,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [14, 2],
+ "action_ids" : [15, 2],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 2,
@@ -11503,13 +11520,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15, 16, 3],
+ "action_ids" : [16, 17, 3],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_17",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 3,
@@ -11519,9 +11536,83 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 8,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [18, 4],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 4,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 9,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [19, 5],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 5,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 10,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -11534,25 +11625,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38],
+ "action_ids" : [39],
"actions" : ["acl27"],
- "base_default_next" : "node_18",
+ "base_default_next" : "node_21",
"next_tables" : {
- "acl27" : "node_18"
+ "acl27" : "node_21"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl97",
- "id" : 9,
+ "name" : "tbl_acl98",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -11563,25 +11654,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34],
- "actions" : ["acl97"],
- "base_default_next" : "node_20",
+ "action_ids" : [35],
+ "actions" : ["acl98"],
+ "base_default_next" : "node_23",
"next_tables" : {
- "acl97" : "node_20"
+ "acl98" : "node_23"
},
"default_entry" : {
- "action_id" : 34,
+ "action_id" : 35,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl101",
- "id" : 10,
+ "name" : "tbl_acl102",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -11592,25 +11683,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [32],
- "actions" : ["acl101"],
+ "action_ids" : [33],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl104",
- "id" : 11,
+ "name" : "tbl_acl105",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -11621,25 +11712,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33],
- "actions" : ["acl104"],
+ "action_ids" : [34],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 33,
+ "action_id" : 34,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl108",
- "id" : 12,
+ "name" : "tbl_acl109",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -11650,25 +11741,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37],
- "actions" : ["acl108"],
- "base_default_next" : "node_26",
+ "action_ids" : [38],
+ "actions" : ["acl109"],
+ "base_default_next" : "node_29",
"next_tables" : {
- "acl108" : "node_26"
+ "acl109" : "node_29"
},
"default_entry" : {
- "action_id" : 37,
+ "action_id" : 38,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl112",
- "id" : 13,
+ "name" : "tbl_acl113",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -11679,25 +11770,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35],
- "actions" : ["acl112"],
+ "action_ids" : [36],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl115",
- "id" : 14,
+ "name" : "tbl_acl116",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -11708,14 +11799,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36],
- "actions" : ["acl115"],
+ "action_ids" : [37],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11723,7 +11814,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 15,
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -11802,6 +11893,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata._port_type25"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -11810,18 +11907,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [17, 18, 19, 20, 21],
+ "action_ids" : [20, 21, 22, 23, 24],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_31",
+ "base_default_next" : "node_34",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_31",
- "FabricIngress.acl.punt_to_cpu" : "node_31",
- "FabricIngress.acl.set_clone_session_id" : "node_31",
- "FabricIngress.acl.drop" : "node_31",
- "FabricIngress.acl.nop_acl" : "node_31"
+ "FabricIngress.acl.set_next_id_acl" : "node_34",
+ "FabricIngress.acl.punt_to_cpu" : "node_34",
+ "FabricIngress.acl.set_clone_session_id" : "node_34",
+ "FabricIngress.acl.drop" : "node_34",
+ "FabricIngress.acl.nop_acl" : "node_34"
},
"default_entry" : {
- "action_id" : 21,
+ "action_id" : 24,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11829,10 +11926,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 16,
+ "id" : 18,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 119,
+ "line" : 68,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -11856,7 +11953,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [23, 24, 5],
+ "action_ids" : [25, 26, 6],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
@@ -11865,7 +11962,7 @@
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 5,
+ "action_id" : 6,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11873,10 +11970,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 17,
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -11895,22 +11992,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [25, 26, 27, 6],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [27, 28, 7],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 18,
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -11928,52 +12024,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [28, 7],
+ "action_ids" : [29, 8],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_38",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_38",
+ "nop" : "node_38"
},
"default_entry" : {
- "action_id" : 7,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 19,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata._next_id9"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [22, 4],
- "actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_36",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_36",
- "nop" : "node_36"
- },
- "default_entry" : {
- "action_id" : 4,
+ "action_id" : 8,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -11981,7 +12040,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 20,
+ "id" : 21,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -11995,14 +12054,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39],
+ "action_ids" : [40],
"actions" : ["port_counter31"],
- "base_default_next" : "node_38",
+ "base_default_next" : "node_40",
"next_tables" : {
- "port_counter31" : "node_38"
+ "port_counter31" : "node_40"
},
"default_entry" : {
- "action_id" : 39,
+ "action_id" : 40,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12010,7 +12069,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 21,
+ "id" : 22,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -12024,14 +12083,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [40],
+ "action_ids" : [41],
"actions" : ["port_counter34"],
"base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
"next_tables" : {
"port_counter34" : "FabricIngress.process_set_source_sink.tb_set_source"
},
"default_entry" : {
- "action_id" : 40,
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12039,7 +12098,7 @@
},
{
"name" : "FabricIngress.process_set_source_sink.tb_set_source",
- "id" : 22,
+ "id" : 23,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 46,
@@ -12060,7 +12119,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [8, 0],
+ "action_ids" : [9, 0],
"actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"],
"base_default_next" : null,
"next_tables" : {
@@ -12081,7 +12140,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -12142,7 +12201,7 @@
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -12157,7 +12216,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_6"
},
{
@@ -12165,7 +12224,7 @@
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -12187,7 +12246,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -12195,7 +12254,7 @@
"id" : 3,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -12218,7 +12277,7 @@
}
},
"true_next" : "node_11",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_17"
},
{
"name" : "node_11",
@@ -12296,14 +12355,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v4",
+ "false_next" : "node_17"
+ },
+ {
+ "name" : "node_17",
+ "id" : 7,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._skip_next7"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_18",
- "id" : 7,
+ "name" : "node_21",
+ "id" : 8,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -12335,15 +12424,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_24"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_27"
},
{
- "name" : "node_20",
- "id" : 8,
+ "name" : "node_23",
+ "id" : 9,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -12358,15 +12447,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_22"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_25"
},
{
- "name" : "node_22",
- "id" : 9,
+ "name" : "node_25",
+ "id" : 10,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -12381,15 +12470,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_24",
- "id" : 10,
+ "name" : "node_27",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -12404,15 +12493,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_26",
- "id" : 11,
+ "name" : "node_29",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -12427,15 +12516,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_28"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_31"
},
{
- "name" : "node_28",
- "id" : 12,
+ "name" : "node_31",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -12450,15 +12539,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_31",
- "id" : 13,
+ "name" : "node_34",
+ "id" : 14,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -12484,8 +12573,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_38",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -12507,11 +12596,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_38"
+ "false_next" : "node_40"
},
{
- "name" : "node_38",
- "id" : 15,
+ "name" : "node_40",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -12542,15 +12631,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_43",
+ "init_table" : "node_45",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 23,
+ "id" : 24,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -12564,14 +12653,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [84],
+ "action_ids" : [85],
"actions" : ["packetio41"],
- "base_default_next" : "node_45",
+ "base_default_next" : "node_47",
"next_tables" : {
- "packetio41" : "node_45"
+ "packetio41" : "node_47"
},
"default_entry" : {
- "action_id" : 84,
+ "action_id" : 85,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12579,7 +12668,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 24,
+ "id" : 25,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -12593,25 +12682,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [85],
+ "action_ids" : [86],
"actions" : ["packetio44"],
- "base_default_next" : "node_47",
+ "base_default_next" : "node_49",
"next_tables" : {
- "packetio44" : "node_47"
+ "packetio44" : "node_49"
},
"default_entry" : {
- "action_id" : 85,
+ "action_id" : 86,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next349",
- "id" : 25,
+ "name" : "tbl_next283",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -12622,14 +12711,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [86],
- "actions" : ["next349"],
- "base_default_next" : "node_49",
+ "action_ids" : [87],
+ "actions" : ["next283"],
+ "base_default_next" : "node_51",
"next_tables" : {
- "next349" : "node_49"
+ "next283" : "node_51"
},
"default_entry" : {
- "action_id" : 86,
+ "action_id" : 87,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12637,10 +12726,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 26,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -12651,14 +12740,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [79],
+ "action_ids" : [80],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 79,
+ "action_id" : 80,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12666,10 +12755,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 27,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -12680,14 +12769,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [80],
+ "action_ids" : [81],
"actions" : ["FabricEgress.egress_next.set_mpls"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 80,
+ "action_id" : 81,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12695,10 +12784,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 28,
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -12722,27 +12811,27 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [81, 82, 83],
+ "action_ids" : [82, 83, 84],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_54",
+ "base_default_next" : "node_56",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_54",
- "FabricEgress.egress_next.pop_vlan" : "node_54",
- "FabricEgress.egress_next.drop" : "node_54"
+ "FabricEgress.egress_next.push_vlan" : "node_56",
+ "FabricEgress.egress_next.pop_vlan" : "node_56",
+ "FabricEgress.egress_next.drop" : "node_56"
},
"default_entry" : {
- "action_id" : 83,
+ "action_id" : 84,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next375",
- "id" : 29,
+ "name" : "tbl_next309",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -12753,25 +12842,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [88],
- "actions" : ["next375"],
- "base_default_next" : "node_56",
+ "action_ids" : [89],
+ "actions" : ["next309"],
+ "base_default_next" : "node_58",
"next_tables" : {
- "next375" : "node_56"
+ "next309" : "node_58"
},
"default_entry" : {
- "action_id" : 88,
+ "action_id" : 89,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next376",
- "id" : 30,
+ "name" : "tbl_next310",
+ "id" : 31,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -12782,25 +12871,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [87],
- "actions" : ["next376"],
- "base_default_next" : "node_62",
+ "action_ids" : [88],
+ "actions" : ["next310"],
+ "base_default_next" : "node_64",
"next_tables" : {
- "next376" : "node_62"
+ "next310" : "node_64"
},
"default_entry" : {
- "action_id" : 87,
+ "action_id" : 88,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next379",
- "id" : 31,
+ "name" : "tbl_next313",
+ "id" : 32,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -12811,25 +12900,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [90],
- "actions" : ["next379"],
- "base_default_next" : "node_60",
+ "action_ids" : [91],
+ "actions" : ["next313"],
+ "base_default_next" : "node_62",
"next_tables" : {
- "next379" : "node_60"
+ "next313" : "node_62"
},
"default_entry" : {
- "action_id" : 90,
+ "action_id" : 91,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next380",
- "id" : 32,
+ "name" : "tbl_next314",
+ "id" : 33,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -12840,14 +12929,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [89],
- "actions" : ["next380"],
- "base_default_next" : "node_62",
+ "action_ids" : [90],
+ "actions" : ["next314"],
+ "base_default_next" : "node_64",
"next_tables" : {
- "next380" : "node_62"
+ "next314" : "node_64"
},
"default_entry" : {
- "action_id" : 89,
+ "action_id" : 90,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12855,7 +12944,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "id" : 33,
+ "id" : 34,
"source_info" : {
"filename" : "include/int/int_source.p4",
"line" : 66,
@@ -12894,15 +12983,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45, 41],
+ "action_ids" : [46, 42],
"actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
- "base_default_next" : "node_65",
+ "base_default_next" : "node_67",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_65",
- "nop" : "node_65"
+ "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_67",
+ "nop" : "node_67"
},
"default_entry" : {
- "action_id" : 41,
+ "action_id" : 42,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12910,7 +12999,7 @@
},
{
"name" : "tbl_act",
- "id" : 34,
+ "id" : 35,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -12918,14 +13007,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [91],
+ "action_ids" : [92],
"actions" : ["act"],
"base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
"next_tables" : {
"act" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
},
"default_entry" : {
- "action_id" : 91,
+ "action_id" : 92,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12933,7 +13022,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
- "id" : 35,
+ "id" : 36,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 315,
@@ -12954,15 +13043,15 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [46, 42],
+ "action_ids" : [47, 43],
"actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
- "base_default_next" : "node_68",
+ "base_default_next" : "node_70",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_68",
- "nop" : "node_68"
+ "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_70",
+ "nop" : "node_70"
},
"default_entry" : {
- "action_id" : 42,
+ "action_id" : 43,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12970,7 +13059,7 @@
},
{
"name" : "tbl_int_transit420",
- "id" : 36,
+ "id" : 37,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 420,
@@ -12984,14 +13073,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [92],
+ "action_ids" : [93],
"actions" : ["int_transit420"],
- "base_default_next" : "node_70",
+ "base_default_next" : "node_72",
"next_tables" : {
- "int_transit420" : "node_70"
+ "int_transit420" : "node_72"
},
"default_entry" : {
- "action_id" : 92,
+ "action_id" : 93,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -12999,7 +13088,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
- "id" : 37,
+ "id" : 38,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 331,
@@ -13020,7 +13109,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 43],
+ "action_ids" : [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 44],
"actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"],
"base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
"next_tables" : {
@@ -13043,7 +13132,7 @@
"NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 44,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -13063,7 +13152,7 @@
}
],
"action_entry" : {
- "action_id" : 47,
+ "action_id" : 48,
"action_data" : []
},
"priority" : 1
@@ -13082,7 +13171,7 @@
}
],
"action_entry" : {
- "action_id" : 48,
+ "action_id" : 49,
"action_data" : []
},
"priority" : 2
@@ -13101,7 +13190,7 @@
}
],
"action_entry" : {
- "action_id" : 49,
+ "action_id" : 50,
"action_data" : []
},
"priority" : 3
@@ -13120,7 +13209,7 @@
}
],
"action_entry" : {
- "action_id" : 50,
+ "action_id" : 51,
"action_data" : []
},
"priority" : 4
@@ -13139,7 +13228,7 @@
}
],
"action_entry" : {
- "action_id" : 51,
+ "action_id" : 52,
"action_data" : []
},
"priority" : 5
@@ -13158,7 +13247,7 @@
}
],
"action_entry" : {
- "action_id" : 52,
+ "action_id" : 53,
"action_data" : []
},
"priority" : 6
@@ -13177,7 +13266,7 @@
}
],
"action_entry" : {
- "action_id" : 53,
+ "action_id" : 54,
"action_data" : []
},
"priority" : 7
@@ -13196,7 +13285,7 @@
}
],
"action_entry" : {
- "action_id" : 54,
+ "action_id" : 55,
"action_data" : []
},
"priority" : 8
@@ -13215,7 +13304,7 @@
}
],
"action_entry" : {
- "action_id" : 55,
+ "action_id" : 56,
"action_data" : []
},
"priority" : 9
@@ -13234,7 +13323,7 @@
}
],
"action_entry" : {
- "action_id" : 56,
+ "action_id" : 57,
"action_data" : []
},
"priority" : 10
@@ -13253,7 +13342,7 @@
}
],
"action_entry" : {
- "action_id" : 57,
+ "action_id" : 58,
"action_data" : []
},
"priority" : 11
@@ -13272,7 +13361,7 @@
}
],
"action_entry" : {
- "action_id" : 58,
+ "action_id" : 59,
"action_data" : []
},
"priority" : 12
@@ -13291,7 +13380,7 @@
}
],
"action_entry" : {
- "action_id" : 59,
+ "action_id" : 60,
"action_data" : []
},
"priority" : 13
@@ -13310,7 +13399,7 @@
}
],
"action_entry" : {
- "action_id" : 60,
+ "action_id" : 61,
"action_data" : []
},
"priority" : 14
@@ -13329,7 +13418,7 @@
}
],
"action_entry" : {
- "action_id" : 61,
+ "action_id" : 62,
"action_data" : []
},
"priority" : 15
@@ -13348,7 +13437,7 @@
}
],
"action_entry" : {
- "action_id" : 62,
+ "action_id" : 63,
"action_data" : []
},
"priority" : 16
@@ -13357,7 +13446,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
- "id" : 38,
+ "id" : 39,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 375,
@@ -13378,7 +13467,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 44],
+ "action_ids" : [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 45],
"actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
"base_default_next" : "tbl_int_transit425",
"next_tables" : {
@@ -13401,7 +13490,7 @@
"NoAction" : "tbl_int_transit425"
},
"default_entry" : {
- "action_id" : 44,
+ "action_id" : 45,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -13421,7 +13510,7 @@
}
],
"action_entry" : {
- "action_id" : 63,
+ "action_id" : 64,
"action_data" : []
},
"priority" : 1
@@ -13440,7 +13529,7 @@
}
],
"action_entry" : {
- "action_id" : 64,
+ "action_id" : 65,
"action_data" : []
},
"priority" : 2
@@ -13459,7 +13548,7 @@
}
],
"action_entry" : {
- "action_id" : 65,
+ "action_id" : 66,
"action_data" : []
},
"priority" : 3
@@ -13478,7 +13567,7 @@
}
],
"action_entry" : {
- "action_id" : 66,
+ "action_id" : 67,
"action_data" : []
},
"priority" : 4
@@ -13497,7 +13586,7 @@
}
],
"action_entry" : {
- "action_id" : 67,
+ "action_id" : 68,
"action_data" : []
},
"priority" : 5
@@ -13516,7 +13605,7 @@
}
],
"action_entry" : {
- "action_id" : 68,
+ "action_id" : 69,
"action_data" : []
},
"priority" : 6
@@ -13535,7 +13624,7 @@
}
],
"action_entry" : {
- "action_id" : 69,
+ "action_id" : 70,
"action_data" : []
},
"priority" : 7
@@ -13554,7 +13643,7 @@
}
],
"action_entry" : {
- "action_id" : 70,
+ "action_id" : 71,
"action_data" : []
},
"priority" : 8
@@ -13573,7 +13662,7 @@
}
],
"action_entry" : {
- "action_id" : 71,
+ "action_id" : 72,
"action_data" : []
},
"priority" : 9
@@ -13592,7 +13681,7 @@
}
],
"action_entry" : {
- "action_id" : 72,
+ "action_id" : 73,
"action_data" : []
},
"priority" : 10
@@ -13611,7 +13700,7 @@
}
],
"action_entry" : {
- "action_id" : 73,
+ "action_id" : 74,
"action_data" : []
},
"priority" : 11
@@ -13630,7 +13719,7 @@
}
],
"action_entry" : {
- "action_id" : 74,
+ "action_id" : 75,
"action_data" : []
},
"priority" : 12
@@ -13649,7 +13738,7 @@
}
],
"action_entry" : {
- "action_id" : 75,
+ "action_id" : 76,
"action_data" : []
},
"priority" : 13
@@ -13668,7 +13757,7 @@
}
],
"action_entry" : {
- "action_id" : 76,
+ "action_id" : 77,
"action_data" : []
},
"priority" : 14
@@ -13687,7 +13776,7 @@
}
],
"action_entry" : {
- "action_id" : 77,
+ "action_id" : 78,
"action_data" : []
},
"priority" : 15
@@ -13706,7 +13795,7 @@
}
],
"action_entry" : {
- "action_id" : 78,
+ "action_id" : 79,
"action_data" : []
},
"priority" : 16
@@ -13715,7 +13804,7 @@
},
{
"name" : "tbl_int_transit425",
- "id" : 39,
+ "id" : 40,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 425,
@@ -13729,14 +13818,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [94],
+ "action_ids" : [95],
"actions" : ["int_transit425"],
- "base_default_next" : "node_74",
+ "base_default_next" : "node_76",
"next_tables" : {
- "int_transit425" : "node_74"
+ "int_transit425" : "node_76"
},
"default_entry" : {
- "action_id" : 94,
+ "action_id" : 95,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -13744,7 +13833,7 @@
},
{
"name" : "tbl_int_transit428",
- "id" : 40,
+ "id" : 41,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 428,
@@ -13758,14 +13847,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [93],
+ "action_ids" : [94],
"actions" : ["int_transit428"],
- "base_default_next" : "node_76",
+ "base_default_next" : "node_78",
"next_tables" : {
- "int_transit428" : "node_76"
+ "int_transit428" : "node_78"
},
"default_entry" : {
- "action_id" : 93,
+ "action_id" : 94,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -13773,7 +13862,7 @@
},
{
"name" : "tbl_int_transit431",
- "id" : 41,
+ "id" : 42,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 431,
@@ -13787,14 +13876,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [95],
+ "action_ids" : [96],
"actions" : ["int_transit431"],
- "base_default_next" : "node_78",
+ "base_default_next" : "node_80",
"next_tables" : {
- "int_transit431" : "node_78"
+ "int_transit431" : "node_80"
},
"default_entry" : {
- "action_id" : 95,
+ "action_id" : 96,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -13802,7 +13891,7 @@
},
{
"name" : "tbl_int_transit434",
- "id" : 42,
+ "id" : 43,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 434,
@@ -13816,14 +13905,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [96],
+ "action_ids" : [97],
"actions" : ["int_transit434"],
"base_default_next" : null,
"next_tables" : {
"int_transit434" : null
},
"default_entry" : {
- "action_id" : 96,
+ "action_id" : 97,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -13833,11 +13922,11 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_43",
- "id" : 16,
+ "name" : "node_45",
+ "id" : 17,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 103,
+ "line" : 108,
"column" : 33,
"source_fragment" : "fabric_metadata"
},
@@ -13853,11 +13942,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_45"
+ "false_next" : "node_47"
},
{
- "name" : "node_45",
- "id" : 17,
+ "name" : "node_47",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -13879,14 +13968,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_47"
+ "false_next" : "node_49"
},
{
- "name" : "node_47",
- "id" : 18,
+ "name" : "node_49",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -13921,15 +14010,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_49"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_51"
},
{
- "name" : "node_49",
- "id" : 19,
+ "name" : "node_51",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -13947,15 +14036,15 @@
}
}
},
- "true_next" : "node_50",
+ "true_next" : "node_52",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_50",
- "id" : 20,
+ "name" : "node_52",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -13974,11 +14063,11 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_54",
- "id" : 21,
+ "name" : "node_56",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -13993,15 +14082,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_58"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_60"
},
{
- "name" : "node_56",
- "id" : 22,
+ "name" : "node_58",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -14019,15 +14108,15 @@
}
}
},
- "true_next" : "tbl_next376",
- "false_next" : "node_62"
+ "true_next" : "tbl_next310",
+ "false_next" : "node_64"
},
{
- "name" : "node_58",
- "id" : 23,
+ "name" : "node_60",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -14062,15 +14151,15 @@
}
}
},
- "true_next" : "tbl_next379",
- "false_next" : "node_62"
+ "true_next" : "tbl_next313",
+ "false_next" : "node_64"
},
{
- "name" : "node_60",
- "id" : 24,
+ "name" : "node_62",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -14088,12 +14177,12 @@
}
}
},
- "true_next" : "tbl_next380",
- "false_next" : "node_62"
+ "true_next" : "tbl_next314",
+ "false_next" : "node_64"
},
{
- "name" : "node_62",
- "id" : 25,
+ "name" : "node_64",
+ "id" : 26,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 102,
@@ -14169,14 +14258,14 @@
}
},
"false_next" : null,
- "true_next" : "node_63"
+ "true_next" : "node_65"
},
{
- "name" : "node_63",
- "id" : 26,
+ "name" : "node_65",
+ "id" : 27,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 112,
+ "line" : 117,
"column" : 36,
"source_fragment" : "fabric_metadata"
},
@@ -14192,11 +14281,11 @@
}
},
"true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "false_next" : "node_65"
+ "false_next" : "node_67"
},
{
- "name" : "node_65",
- "id" : 27,
+ "name" : "node_67",
+ "id" : 28,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 110,
@@ -14218,8 +14307,8 @@
"true_next" : "tbl_act"
},
{
- "name" : "node_68",
- "id" : 28,
+ "name" : "node_70",
+ "id" : 29,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 419,
@@ -14245,11 +14334,11 @@
}
},
"true_next" : "tbl_int_transit420",
- "false_next" : "node_70"
+ "false_next" : "node_72"
},
{
- "name" : "node_70",
- "id" : 29,
+ "name" : "node_72",
+ "id" : 30,
"expression" : {
"type" : "expression",
"value" : {
@@ -14272,8 +14361,8 @@
"true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
},
{
- "name" : "node_74",
- "id" : 30,
+ "name" : "node_76",
+ "id" : 31,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 427,
@@ -14292,11 +14381,11 @@
}
},
"true_next" : "tbl_int_transit428",
- "false_next" : "node_76"
+ "false_next" : "node_78"
},
{
- "name" : "node_76",
- "id" : 31,
+ "name" : "node_78",
+ "id" : 32,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 430,
@@ -14315,11 +14404,11 @@
}
},
"true_next" : "tbl_int_transit431",
- "false_next" : "node_78"
+ "false_next" : "node_80"
},
{
- "name" : "node_78",
- "id" : 32,
+ "name" : "node_80",
+ "id" : 33,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 433,
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
index f13b234..99558a2 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
@@ -180,6 +180,54 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -256,6 +304,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -277,30 +331,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 48735793
name: "FabricIngress.next.xconnect"
alias: "xconnect"
@@ -351,9 +381,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -512,6 +539,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -524,6 +556,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -582,6 +619,30 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -627,18 +688,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 24640974
name: "FabricIngress.next.output_xconnect"
alias: "output_xconnect"
@@ -697,33 +746,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -892,6 +914,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -903,17 +947,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 321989420
name: "FabricIngress.next.xconnect_counter"
alias: "xconnect_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
index c420605..d7e5f68 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
@@ -61,7 +61,8 @@
["userMetadata._int_meta_new_bytes37", 16, false],
["userMetadata._int_meta_ig_tstamp38", 32, false],
["userMetadata._int_meta_eg_tstamp39", 32, false],
- ["_padding_0", 6, false]
+ ["userMetadata._port_type40", 2, false],
+ ["_padding_0", 4, false]
]
},
{
@@ -2184,7 +2185,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -2214,9 +2215,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 5,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 6,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 7,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -2226,56 +2251,44 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 6,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 7,
+ "id" : 8,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 107,
+ "line" : 56,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 8,
+ "id" : 9,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 9,
+ "id" : 10,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 10,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -2287,7 +2300,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 11,
+ "id" : 12,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -2299,7 +2312,7 @@
},
{
"name" : "FabricIngress.spgw.pdr_counter",
- "id" : 12,
+ "id" : 13,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 108,
@@ -2311,7 +2324,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
- "id" : 13,
+ "id" : 14,
"is_direct" : true,
"binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
"source_info" : {
@@ -2323,19 +2336,19 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 14,
+ "id" : 15,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
},
{
"name" : "FabricEgress.spgw.pdr_counter",
- "id" : 15,
+ "id" : 16,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 295,
@@ -2583,7 +2596,7 @@
"primitives" : []
},
{
- "name" : "NoAction",
+ "name" : "nop",
"id" : 8,
"runtime_data" : [],
"primitives" : []
@@ -2595,9 +2608,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "name" : "NoAction",
"id" : 10,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.process_set_source_sink.int_set_source",
+ "id" : 11,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -2632,7 +2651,7 @@
},
{
"name" : "FabricIngress.filtering.deny",
- "id" : 11,
+ "id" : 12,
"runtime_data" : [],
"primitives" : [
{
@@ -2692,22 +2711,70 @@
"column" : 34,
"source_fragment" : "= true; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type40"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 12,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 13,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type40"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 13,
+ "id" : 14,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -2725,16 +2792,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 32,
"source_fragment" : "= vlan_id; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type40"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 14,
+ "id" : 15,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2756,7 +2842,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 33,
"source_fragment" : "= fwd_type; ..."
}
@@ -2765,7 +2851,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 15,
+ "id" : 16,
"runtime_data" : [
{
"name" : "next_id",
@@ -2796,7 +2882,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 16,
+ "id" : 17,
"runtime_data" : [
{
"name" : "next_id",
@@ -2846,7 +2932,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 17,
+ "id" : 18,
"runtime_data" : [
{
"name" : "next_id",
@@ -2877,13 +2963,75 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 18,
+ "id" : 19,
"runtime_data" : [],
"primitives" : []
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 20,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._mpls_label4"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 35,
+ "source_fragment" : "= label; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 21,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 19,
+ "id" : 22,
"runtime_data" : [
{
"name" : "next_id",
@@ -2914,7 +3062,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 20,
+ "id" : 23,
"runtime_data" : [],
"primitives" : [
{
@@ -2969,7 +3117,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 21,
+ "id" : 24,
"runtime_data" : [
{
"name" : "clone_id",
@@ -3000,7 +3148,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 22,
+ "id" : 25,
"runtime_data" : [],
"primitives" : [
{
@@ -3051,105 +3199,12 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 23,
+ "id" : 26,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 24,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_xconnect",
- "id" : 25,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 26,
- "runtime_data" : [
- {
- "name" : "next_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._next_id9"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 115,
- "column" : 32,
- "source_fragment" : "= next_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.output_hashed",
"id" : 27,
"runtime_data" : [
{
@@ -3180,20 +3235,12 @@
]
},
{
- "name" : "FabricIngress.next.routing_hashed",
+ "name" : "FabricIngress.next.set_next_id_xconnect",
"id" : 28,
"runtime_data" : [
{
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
+ "name" : "next_id",
+ "bitwidth" : 32
}
],
"primitives" : [
@@ -3202,39 +3249,32 @@
"parameters" : [
{
"type" : "field",
- "value" : ["ethernet", "src_addr"]
+ "value" : ["scalars", "userMetadata._next_id9"]
},
{
"type" : "runtime_data",
- "value" : 1
+ "value" : 0
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ "line" : 64,
+ "column" : 32,
+ "source_fragment" : "= next_id; ..."
}
- },
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.next.output_hashed",
+ "id" : 29,
+ "runtime_data" : [
{
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
+ "name" : "port_num",
+ "bitwidth" : 9
+ }
+ ],
+ "primitives" : [
{
"op" : "assign",
"parameters" : [
@@ -3257,8 +3297,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 29,
+ "name" : "FabricIngress.next.routing_hashed",
+ "id" : 30,
"runtime_data" : [
{
"name" : "port_num",
@@ -3271,10 +3311,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -3283,25 +3319,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label4"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -3358,7 +3375,7 @@
},
{
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 30,
+ "id" : 31,
"runtime_data" : [
{
"name" : "group_id",
@@ -3380,7 +3397,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -3409,7 +3426,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 37,
"source_fragment" : "= true; ..."
}
@@ -3418,7 +3435,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp",
- "id" : 31,
+ "id" : 32,
"runtime_data" : [],
"primitives" : [
{
@@ -3435,7 +3452,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3637,7 +3654,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp",
- "id" : 32,
+ "id" : 33,
"runtime_data" : [],
"primitives" : [
{
@@ -3654,7 +3671,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3841,7 +3858,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp",
- "id" : 33,
+ "id" : 34,
"runtime_data" : [],
"primitives" : [
{
@@ -3858,7 +3875,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4060,7 +4077,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown",
- "id" : 34,
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -4077,7 +4094,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4245,7 +4262,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_tcp",
- "id" : 35,
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -4262,7 +4279,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4464,7 +4481,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_udp",
- "id" : 36,
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -4481,7 +4498,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4668,7 +4685,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_icmp",
- "id" : 37,
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -4685,7 +4702,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4887,7 +4904,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_unknown",
- "id" : 38,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -4904,7 +4921,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -5072,7 +5089,7 @@
},
{
"name" : "FabricIngress.spgw.load_iface",
- "id" : 39,
+ "id" : 40,
"runtime_data" : [
{
"name" : "src_iface",
@@ -5132,7 +5149,7 @@
},
{
"name" : "FabricIngress.spgw.iface_miss",
- "id" : 40,
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -5187,103 +5204,6 @@
},
{
"name" : "FabricIngress.spgw.load_pdr",
- "id" : 41,
- "runtime_data" : [
- {
- "name" : "ctr_id",
- "bitwidth" : 32
- },
- {
- "name" : "far_id",
- "bitwidth" : 32
- },
- {
- "name" : "needs_gtpu_decap",
- "bitwidth" : 1
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_ctr_id24"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 150,
- "column" : 30,
- "source_fragment" : "= ctr_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_far_id25"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 151,
- "column" : 30,
- "source_fragment" : "= far_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_needs_gtpu_decap30"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 2
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 152,
- "column" : 40,
- "source_fragment" : "= (bool)needs_gtpu_decap; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw.load_pdr",
"id" : 42,
"runtime_data" : [
{
@@ -5380,7 +5300,7 @@
]
},
{
- "name" : "FabricIngress.spgw.load_pdr_qos",
+ "name" : "FabricIngress.spgw.load_pdr",
"id" : 43,
"runtime_data" : [
{
@@ -5394,10 +5314,6 @@
{
"name" : "needs_gtpu_decap",
"bitwidth" : 1
- },
- {
- "name" : "qid",
- "bitwidth" : 5
}
],
"primitives" : [
@@ -5582,10 +5498,111 @@
]
},
{
- "name" : "FabricIngress.spgw.load_normal_far",
+ "name" : "FabricIngress.spgw.load_pdr_qos",
"id" : 45,
"runtime_data" : [
{
+ "name" : "ctr_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "far_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "needs_gtpu_decap",
+ "bitwidth" : 1
+ },
+ {
+ "name" : "qid",
+ "bitwidth" : 5
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_ctr_id24"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 150,
+ "column" : 30,
+ "source_fragment" : "= ctr_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_far_id25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 151,
+ "column" : 30,
+ "source_fragment" : "= far_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_needs_gtpu_decap30"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 2
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 152,
+ "column" : 40,
+ "source_fragment" : "= (bool)needs_gtpu_decap; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw.load_normal_far",
+ "id" : 46,
+ "runtime_data" : [
+ {
"name" : "drop",
"bitwidth" : 1
},
@@ -5716,7 +5733,7 @@
},
{
"name" : "FabricIngress.spgw.load_tunnel_far",
- "id" : 46,
+ "id" : 47,
"runtime_data" : [
{
"name" : "drop",
@@ -6046,7 +6063,7 @@
},
{
"name" : "FabricIngress.spgw.load_dbuf_far",
- "id" : 47,
+ "id" : 48,
"runtime_data" : [
{
"name" : "drop",
@@ -6405,7 +6422,7 @@
},
{
"name" : "packetio25",
- "id" : 48,
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -6485,7 +6502,7 @@
},
{
"name" : "spgw265",
- "id" : 49,
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -6511,7 +6528,7 @@
},
{
"name" : "spgw282",
- "id" : 50,
+ "id" : 51,
"runtime_data" : [],
"primitives" : [
{
@@ -6536,8 +6553,8 @@
]
},
{
- "name" : "filtering111",
- "id" : 51,
+ "name" : "filtering113",
+ "id" : 52,
"runtime_data" : [],
"primitives" : [
{
@@ -6554,7 +6571,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
}
@@ -6573,7 +6590,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.pri; ..."
}
@@ -6592,7 +6609,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.cfi; ..."
}
@@ -6600,8 +6617,8 @@
]
},
{
- "name" : "filtering127",
- "id" : 52,
+ "name" : "filtering129",
+ "id" : 53,
"runtime_data" : [],
"primitives" : [
{
@@ -6618,7 +6635,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
}
@@ -6626,8 +6643,8 @@
]
},
{
- "name" : "acl101",
- "id" : 53,
+ "name" : "acl102",
+ "id" : 54,
"runtime_data" : [],
"primitives" : [
{
@@ -6644,7 +6661,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -6663,7 +6680,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -6671,8 +6688,8 @@
]
},
{
- "name" : "acl104",
- "id" : 54,
+ "name" : "acl105",
+ "id" : 55,
"runtime_data" : [],
"primitives" : [
{
@@ -6689,7 +6706,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -6708,7 +6725,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -6716,8 +6733,8 @@
]
},
{
- "name" : "acl97",
- "id" : 55,
+ "name" : "acl98",
+ "id" : 56,
"runtime_data" : [],
"primitives" : [
{
@@ -6734,7 +6751,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -6753,7 +6770,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -6772,7 +6789,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -6780,8 +6797,8 @@
]
},
{
- "name" : "acl112",
- "id" : 56,
+ "name" : "acl113",
+ "id" : 57,
"runtime_data" : [],
"primitives" : [
{
@@ -6798,7 +6815,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -6817,7 +6834,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -6825,8 +6842,8 @@
]
},
{
- "name" : "acl115",
- "id" : 57,
+ "name" : "acl116",
+ "id" : 58,
"runtime_data" : [],
"primitives" : [
{
@@ -6843,7 +6860,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -6862,7 +6879,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -6870,8 +6887,8 @@
]
},
{
- "name" : "acl108",
- "id" : 58,
+ "name" : "acl109",
+ "id" : 59,
"runtime_data" : [],
"primitives" : [
{
@@ -6888,7 +6905,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -6907,7 +6924,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -6926,7 +6943,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -6935,7 +6952,7 @@
},
{
"name" : "acl27",
- "id" : 59,
+ "id" : 60,
"runtime_data" : [],
"primitives" : [
{
@@ -7037,7 +7054,7 @@
},
{
"name" : "port_counter31",
- "id" : 60,
+ "id" : 61,
"runtime_data" : [],
"primitives" : [
{
@@ -7095,7 +7112,7 @@
},
{
"name" : "port_counter34",
- "id" : 61,
+ "id" : 62,
"runtime_data" : [],
"primitives" : [
{
@@ -7153,18 +7170,12 @@
},
{
"name" : "nop",
- "id" : 62,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "nop",
"id" : 63,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "NoAction",
+ "name" : "nop",
"id" : 64,
"runtime_data" : [],
"primitives" : []
@@ -7176,8 +7187,14 @@
"primitives" : []
},
{
- "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
+ "name" : "NoAction",
"id" : 66,
+ "runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
+ "id" : 67,
"runtime_data" : [
{
"name" : "max_hop",
@@ -7245,7 +7262,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 157,
+ "line" : 169,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -7663,7 +7680,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 153,
+ "line" : 165,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -7672,7 +7689,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
- "id" : 67,
+ "id" : 68,
"runtime_data" : [
{
"name" : "switch_id",
@@ -7732,13 +7749,13 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
- "id" : 68,
+ "id" : 69,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
- "id" : 69,
+ "id" : 70,
"runtime_data" : [],
"primitives" : [
{
@@ -7895,7 +7912,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
- "id" : 70,
+ "id" : 71,
"runtime_data" : [],
"primitives" : [
{
@@ -8020,7 +8037,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
- "id" : 71,
+ "id" : 72,
"runtime_data" : [],
"primitives" : [
{
@@ -8211,7 +8228,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
- "id" : 72,
+ "id" : 73,
"runtime_data" : [],
"primitives" : [
{
@@ -8381,7 +8398,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
- "id" : 73,
+ "id" : 74,
"runtime_data" : [],
"primitives" : [
{
@@ -8617,7 +8634,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
- "id" : 74,
+ "id" : 75,
"runtime_data" : [],
"primitives" : [
{
@@ -8821,7 +8838,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
- "id" : 75,
+ "id" : 76,
"runtime_data" : [],
"primitives" : [
{
@@ -9091,7 +9108,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
- "id" : 76,
+ "id" : 77,
"runtime_data" : [],
"primitives" : [
{
@@ -9216,7 +9233,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
- "id" : 77,
+ "id" : 78,
"runtime_data" : [],
"primitives" : [
{
@@ -9407,7 +9424,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
- "id" : 78,
+ "id" : 79,
"runtime_data" : [],
"primitives" : [
{
@@ -9566,7 +9583,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
- "id" : 79,
+ "id" : 80,
"runtime_data" : [],
"primitives" : [
{
@@ -9791,7 +9808,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
- "id" : 80,
+ "id" : 81,
"runtime_data" : [],
"primitives" : [
{
@@ -9995,7 +10012,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
- "id" : 81,
+ "id" : 82,
"runtime_data" : [],
"primitives" : [
{
@@ -10265,7 +10282,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
- "id" : 82,
+ "id" : 83,
"runtime_data" : [],
"primitives" : [
{
@@ -10503,7 +10520,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
- "id" : 83,
+ "id" : 84,
"runtime_data" : [],
"primitives" : [
{
@@ -10807,13 +10824,13 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
- "id" : 84,
+ "id" : 85,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
- "id" : 85,
+ "id" : 86,
"runtime_data" : [],
"primitives" : [
{
@@ -10938,7 +10955,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
- "id" : 86,
+ "id" : 87,
"runtime_data" : [],
"primitives" : [
{
@@ -11082,7 +11099,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
- "id" : 87,
+ "id" : 88,
"runtime_data" : [],
"primitives" : [
{
@@ -11260,7 +11277,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
- "id" : 88,
+ "id" : 89,
"runtime_data" : [],
"primitives" : [
{
@@ -11408,7 +11425,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
- "id" : 89,
+ "id" : 90,
"runtime_data" : [],
"primitives" : [
{
@@ -11590,7 +11607,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
- "id" : 90,
+ "id" : 91,
"runtime_data" : [],
"primitives" : [
{
@@ -11791,7 +11808,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
- "id" : 91,
+ "id" : 92,
"runtime_data" : [],
"primitives" : [
{
@@ -12026,7 +12043,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
- "id" : 92,
+ "id" : 93,
"runtime_data" : [],
"primitives" : [
{
@@ -12151,7 +12168,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
- "id" : 93,
+ "id" : 94,
"runtime_data" : [],
"primitives" : [
{
@@ -12310,7 +12327,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
- "id" : 94,
+ "id" : 95,
"runtime_data" : [],
"primitives" : [
{
@@ -12488,7 +12505,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
- "id" : 95,
+ "id" : 96,
"runtime_data" : [],
"primitives" : [
{
@@ -12700,7 +12717,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
- "id" : 96,
+ "id" : 97,
"runtime_data" : [],
"primitives" : [
{
@@ -12882,7 +12899,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
- "id" : 97,
+ "id" : 98,
"runtime_data" : [],
"primitives" : [
{
@@ -13098,7 +13115,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
- "id" : 98,
+ "id" : 99,
"runtime_data" : [],
"primitives" : [
{
@@ -13333,7 +13350,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
- "id" : 99,
+ "id" : 100,
"runtime_data" : [],
"primitives" : [
{
@@ -13602,7 +13619,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 100,
+ "id" : 101,
"runtime_data" : [],
"primitives" : [
{
@@ -13615,7 +13632,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -13634,7 +13651,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
}
@@ -13643,7 +13660,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 101,
+ "id" : 102,
"runtime_data" : [],
"primitives" : [
{
@@ -13656,7 +13673,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -13675,7 +13692,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
}
@@ -13694,7 +13711,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -13713,7 +13730,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -13732,7 +13749,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
}
@@ -13751,7 +13768,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -13760,7 +13777,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 102,
+ "id" : 103,
"runtime_data" : [],
"primitives" : [
{
@@ -13773,7 +13790,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -13792,7 +13809,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -13811,7 +13828,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -13830,7 +13847,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -13849,7 +13866,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -13858,7 +13875,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 103,
+ "id" : 104,
"runtime_data" : [],
"primitives" : [
{
@@ -13871,7 +13888,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -13880,7 +13897,7 @@
},
{
"name" : "FabricEgress.egress_next.drop",
- "id" : 104,
+ "id" : 105,
"runtime_data" : [],
"primitives" : [
{
@@ -13893,7 +13910,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -13902,7 +13919,7 @@
},
{
"name" : "FabricEgress.spgw.gtpu_encap",
- "id" : 105,
+ "id" : 106,
"runtime_data" : [],
"primitives" : [
{
@@ -13953,7 +13970,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 135,
+ "line" : 147,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -14109,7 +14126,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 148,
+ "line" : 160,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -14128,7 +14145,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 132,
+ "line" : 144,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -14494,7 +14511,7 @@
},
{
"name" : "packetio41",
- "id" : 106,
+ "id" : 107,
"runtime_data" : [],
"primitives" : [
{
@@ -14511,7 +14528,7 @@
},
{
"name" : "packetio44",
- "id" : 107,
+ "id" : 108,
"runtime_data" : [],
"primitives" : [
{
@@ -14561,29 +14578,7 @@
]
},
{
- "name" : "next349",
- "id" : 108,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 349,
- "column" : 12,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- }
- }
- ]
- },
- {
- "name" : "next376",
+ "name" : "next283",
"id" : 109,
"runtime_data" : [],
"primitives" : [
@@ -14597,7 +14592,29 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 283,
+ "column" : 12,
+ "source_fragment" : "mark_to_drop(standard_metadata)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "next310",
+ "id" : 110,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "mark_to_drop",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "standard_metadata"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -14605,8 +14622,8 @@
]
},
{
- "name" : "next375",
- "id" : 110,
+ "name" : "next309",
+ "id" : 111,
"runtime_data" : [],
"primitives" : [
{
@@ -14646,7 +14663,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -14654,8 +14671,8 @@
]
},
{
- "name" : "next380",
- "id" : 111,
+ "name" : "next314",
+ "id" : 112,
"runtime_data" : [],
"primitives" : [
{
@@ -14668,7 +14685,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -14676,8 +14693,8 @@
]
},
{
- "name" : "next379",
- "id" : 112,
+ "name" : "next313",
+ "id" : 113,
"runtime_data" : [],
"primitives" : [
{
@@ -14717,7 +14734,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -14726,7 +14743,7 @@
},
{
"name" : "spgw342",
- "id" : 113,
+ "id" : 114,
"runtime_data" : [],
"primitives" : [
{
@@ -14752,7 +14769,7 @@
},
{
"name" : "act",
- "id" : 114,
+ "id" : 115,
"runtime_data" : [],
"primitives" : [
{
@@ -14782,7 +14799,7 @@
},
{
"name" : "int_transit420",
- "id" : 115,
+ "id" : 116,
"runtime_data" : [],
"primitives" : [
{
@@ -14818,7 +14835,7 @@
},
{
"name" : "int_transit428",
- "id" : 116,
+ "id" : 117,
"runtime_data" : [],
"primitives" : [
{
@@ -14867,7 +14884,7 @@
},
{
"name" : "int_transit425",
- "id" : 117,
+ "id" : 118,
"runtime_data" : [],
"primitives" : [
{
@@ -14916,7 +14933,7 @@
},
{
"name" : "int_transit431",
- "id" : 118,
+ "id" : 119,
"runtime_data" : [],
"primitives" : [
{
@@ -14965,7 +14982,7 @@
},
{
"name" : "int_transit434",
- "id" : 119,
+ "id" : 120,
"runtime_data" : [],
"primitives" : [
{
@@ -15019,7 +15036,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -15041,14 +15058,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [48],
+ "action_ids" : [49],
"actions" : ["packetio25"],
"base_default_next" : "FabricIngress.spgw.interfaces",
"next_tables" : {
"packetio25" : "FabricIngress.spgw.interfaces"
},
"default_entry" : {
- "action_id" : 48,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15083,7 +15100,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39, 40],
+ "action_ids" : [40, 41],
"actions" : ["FabricIngress.spgw.load_iface", "FabricIngress.spgw.iface_miss"],
"base_default_next" : null,
"next_tables" : {
@@ -15091,7 +15108,7 @@
"__MISS__" : "node_16"
},
"default_entry" : {
- "action_id" : 40,
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15132,7 +15149,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31, 32, 33, 34],
+ "action_ids" : [32, 33, 34, 35],
"actions" : ["FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown"],
"base_default_next" : "node_7",
"next_tables" : {
@@ -15142,7 +15159,7 @@
"FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown" : "node_7"
},
"default_entry" : {
- "action_id" : 34,
+ "action_id" : 35,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15170,7 +15187,7 @@
}
],
"action_entry" : {
- "action_id" : 31,
+ "action_id" : 32,
"action_data" : []
},
"priority" : 1
@@ -15197,7 +15214,7 @@
}
],
"action_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_data" : []
},
"priority" : 2
@@ -15224,7 +15241,7 @@
}
],
"action_entry" : {
- "action_id" : 33,
+ "action_id" : 34,
"action_data" : []
},
"priority" : 3
@@ -15260,7 +15277,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [42, 44, 9],
+ "action_ids" : [43, 45, 10],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -15269,7 +15286,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 9,
+ "action_id" : 10,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -15298,7 +15315,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [41, 43, 8],
+ "action_ids" : [42, 44, 9],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -15307,7 +15324,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 8,
+ "action_id" : 9,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -15329,14 +15346,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [49],
+ "action_ids" : [50],
"actions" : ["spgw265"],
"base_default_next" : "node_12",
"next_tables" : {
"spgw265" : "node_12"
},
"default_entry" : {
- "action_id" : 49,
+ "action_id" : 50,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15377,7 +15394,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35, 36, 37, 38],
+ "action_ids" : [36, 37, 38, 39],
"actions" : ["FabricIngress.spgw.decap_gtpu.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu.decap_inner_udp", "FabricIngress.spgw.decap_gtpu.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu.decap_inner_unknown"],
"base_default_next" : "FabricIngress.spgw.fars",
"next_tables" : {
@@ -15387,7 +15404,7 @@
"FabricIngress.spgw.decap_gtpu.decap_inner_unknown" : "FabricIngress.spgw.fars"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15415,7 +15432,7 @@
}
],
"action_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_data" : []
},
"priority" : 1
@@ -15442,7 +15459,7 @@
}
],
"action_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_data" : []
},
"priority" : 2
@@ -15469,7 +15486,7 @@
}
],
"action_entry" : {
- "action_id" : 37,
+ "action_id" : 38,
"action_data" : []
},
"priority" : 3
@@ -15499,7 +15516,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45, 46, 47],
+ "action_ids" : [46, 47, 48],
"actions" : ["FabricIngress.spgw.load_normal_far", "FabricIngress.spgw.load_tunnel_far", "FabricIngress.spgw.load_dbuf_far"],
"base_default_next" : "tbl_spgw282",
"next_tables" : {
@@ -15508,7 +15525,7 @@
"FabricIngress.spgw.load_dbuf_far" : "tbl_spgw282"
},
"default_entry" : {
- "action_id" : 45,
+ "action_id" : 46,
"action_const" : true,
"action_data" : ["0x1", "0x0"],
"action_entry_const" : true
@@ -15530,25 +15547,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [50],
+ "action_ids" : [51],
"actions" : ["spgw282"],
"base_default_next" : "node_16",
"next_tables" : {
"spgw282" : "node_16"
},
"default_entry" : {
- "action_id" : 50,
+ "action_id" : 51,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 9,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -15559,25 +15576,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [51],
- "actions" : ["filtering111"],
+ "action_ids" : [52],
+ "actions" : ["filtering113"],
"base_default_next" : "node_18",
"next_tables" : {
- "filtering111" : "node_18"
+ "filtering113" : "node_18"
},
"default_entry" : {
- "action_id" : 51,
+ "action_id" : 52,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 10,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -15588,14 +15605,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [52],
- "actions" : ["filtering127"],
+ "action_ids" : [53],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 52,
+ "action_id" : 53,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15606,7 +15623,7 @@
"id" : 11,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -15636,7 +15653,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [11, 12, 13],
+ "action_ids" : [12, 13, 14],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -15645,7 +15662,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 11,
+ "action_id" : 12,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -15656,7 +15673,7 @@
"id" : 12,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -15692,14 +15709,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [14],
+ "action_ids" : [15],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_22",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_22"
},
"default_entry" : {
- "action_id" : 14,
+ "action_id" : 15,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -15734,12 +15751,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15, 1],
+ "action_ids" : [16, 1],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 1,
@@ -15771,12 +15788,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [16, 2],
+ "action_ids" : [17, 2],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 2,
@@ -15808,13 +15825,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [17, 18, 3],
+ "action_ids" : [18, 19, 3],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_29",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 3,
@@ -15824,9 +15841,83 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 16,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [20, 4],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 4,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 17,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [21, 5],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 5,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 18,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -15839,25 +15930,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [59],
+ "action_ids" : [60],
"actions" : ["acl27"],
- "base_default_next" : "node_30",
+ "base_default_next" : "node_33",
"next_tables" : {
- "acl27" : "node_30"
+ "acl27" : "node_33"
},
"default_entry" : {
- "action_id" : 59,
+ "action_id" : 60,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl97",
- "id" : 17,
+ "name" : "tbl_acl98",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -15868,25 +15959,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [55],
- "actions" : ["acl97"],
- "base_default_next" : "node_32",
+ "action_ids" : [56],
+ "actions" : ["acl98"],
+ "base_default_next" : "node_35",
"next_tables" : {
- "acl97" : "node_32"
+ "acl98" : "node_35"
},
"default_entry" : {
- "action_id" : 55,
+ "action_id" : 56,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl101",
- "id" : 18,
+ "name" : "tbl_acl102",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -15897,25 +15988,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [53],
- "actions" : ["acl101"],
+ "action_ids" : [54],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 53,
+ "action_id" : 54,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl104",
- "id" : 19,
+ "name" : "tbl_acl105",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -15926,25 +16017,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [54],
- "actions" : ["acl104"],
+ "action_ids" : [55],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 54,
+ "action_id" : 55,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl108",
- "id" : 20,
+ "name" : "tbl_acl109",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -15955,25 +16046,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [58],
- "actions" : ["acl108"],
- "base_default_next" : "node_38",
+ "action_ids" : [59],
+ "actions" : ["acl109"],
+ "base_default_next" : "node_41",
"next_tables" : {
- "acl108" : "node_38"
+ "acl109" : "node_41"
},
"default_entry" : {
- "action_id" : 58,
+ "action_id" : 59,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl112",
- "id" : 21,
+ "name" : "tbl_acl113",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -15984,25 +16075,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [56],
- "actions" : ["acl112"],
+ "action_ids" : [57],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 56,
+ "action_id" : 57,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl115",
- "id" : 22,
+ "name" : "tbl_acl116",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -16013,14 +16104,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [57],
- "actions" : ["acl115"],
+ "action_ids" : [58],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 57,
+ "action_id" : 58,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16028,7 +16119,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 23,
+ "id" : 25,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -16107,6 +16198,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata._port_type40"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -16115,18 +16212,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [19, 20, 21, 22, 23],
+ "action_ids" : [22, 23, 24, 25, 26],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_43",
+ "base_default_next" : "node_46",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_43",
- "FabricIngress.acl.punt_to_cpu" : "node_43",
- "FabricIngress.acl.set_clone_session_id" : "node_43",
- "FabricIngress.acl.drop" : "node_43",
- "FabricIngress.acl.nop_acl" : "node_43"
+ "FabricIngress.acl.set_next_id_acl" : "node_46",
+ "FabricIngress.acl.punt_to_cpu" : "node_46",
+ "FabricIngress.acl.set_clone_session_id" : "node_46",
+ "FabricIngress.acl.drop" : "node_46",
+ "FabricIngress.acl.nop_acl" : "node_46"
},
"default_entry" : {
- "action_id" : 23,
+ "action_id" : 26,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16134,10 +16231,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 24,
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 119,
+ "line" : 68,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -16161,7 +16258,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [25, 26, 5],
+ "action_ids" : [27, 28, 6],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
@@ -16170,7 +16267,7 @@
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 5,
+ "action_id" : 6,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16178,10 +16275,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 25,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -16200,22 +16297,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [27, 28, 29, 6],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [29, 30, 7],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 26,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -16233,52 +16329,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [30, 7],
+ "action_ids" : [31, 8],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_50",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_50",
+ "nop" : "node_50"
},
"default_entry" : {
- "action_id" : 7,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 27,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata._next_id9"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [24, 4],
- "actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_48",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_48",
- "nop" : "node_48"
- },
- "default_entry" : {
- "action_id" : 4,
+ "action_id" : 8,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16286,7 +16345,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 28,
+ "id" : 29,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -16300,14 +16359,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [60],
+ "action_ids" : [61],
"actions" : ["port_counter31"],
- "base_default_next" : "node_50",
+ "base_default_next" : "node_52",
"next_tables" : {
- "port_counter31" : "node_50"
+ "port_counter31" : "node_52"
},
"default_entry" : {
- "action_id" : 60,
+ "action_id" : 61,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16315,7 +16374,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 29,
+ "id" : 30,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -16329,14 +16388,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [61],
+ "action_ids" : [62],
"actions" : ["port_counter34"],
"base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
"next_tables" : {
"port_counter34" : "FabricIngress.process_set_source_sink.tb_set_source"
},
"default_entry" : {
- "action_id" : 61,
+ "action_id" : 62,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16344,7 +16403,7 @@
},
{
"name" : "FabricIngress.process_set_source_sink.tb_set_source",
- "id" : 30,
+ "id" : 31,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 46,
@@ -16365,7 +16424,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [10, 0],
+ "action_ids" : [11, 0],
"actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"],
"base_default_next" : null,
"next_tables" : {
@@ -16386,7 +16445,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -16522,7 +16581,7 @@
"id" : 4,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 66,
+ "line" : 68,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -16545,7 +16604,7 @@
"id" : 5,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -16560,7 +16619,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_18"
},
{
@@ -16568,7 +16627,7 @@
"id" : 6,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -16590,7 +16649,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -16598,7 +16657,7 @@
"id" : 7,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -16621,7 +16680,7 @@
}
},
"true_next" : "node_23",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_29"
},
{
"name" : "node_23",
@@ -16699,14 +16758,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v4",
+ "false_next" : "node_29"
+ },
+ {
+ "name" : "node_29",
+ "id" : 11,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._skip_next7"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_30",
- "id" : 11,
+ "name" : "node_33",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -16738,15 +16827,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_36"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_39"
},
{
- "name" : "node_32",
- "id" : 12,
+ "name" : "node_35",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -16761,15 +16850,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_34"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_37"
},
{
- "name" : "node_34",
- "id" : 13,
+ "name" : "node_37",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -16784,15 +16873,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_39",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -16807,15 +16896,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_38",
- "id" : 15,
+ "name" : "node_41",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -16830,15 +16919,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_40"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_43"
},
{
- "name" : "node_40",
- "id" : 16,
+ "name" : "node_43",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -16853,15 +16942,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_43",
- "id" : 17,
+ "name" : "node_46",
+ "id" : 18,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -16887,8 +16976,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_48",
- "id" : 18,
+ "name" : "node_50",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -16910,11 +16999,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_50"
+ "false_next" : "node_52"
},
{
- "name" : "node_50",
- "id" : 19,
+ "name" : "node_52",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -16945,15 +17034,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_55",
+ "init_table" : "node_57",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 31,
+ "id" : 32,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -16967,14 +17056,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [106],
+ "action_ids" : [107],
"actions" : ["packetio41"],
- "base_default_next" : "node_57",
+ "base_default_next" : "node_59",
"next_tables" : {
- "packetio41" : "node_57"
+ "packetio41" : "node_59"
},
"default_entry" : {
- "action_id" : 106,
+ "action_id" : 107,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -16982,7 +17071,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 32,
+ "id" : 33,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -16996,25 +17085,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [107],
+ "action_ids" : [108],
"actions" : ["packetio44"],
- "base_default_next" : "node_59",
+ "base_default_next" : "node_61",
"next_tables" : {
- "packetio44" : "node_59"
+ "packetio44" : "node_61"
},
"default_entry" : {
- "action_id" : 107,
+ "action_id" : 108,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next349",
- "id" : 33,
+ "name" : "tbl_next283",
+ "id" : 34,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -17025,14 +17114,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [108],
- "actions" : ["next349"],
- "base_default_next" : "node_61",
+ "action_ids" : [109],
+ "actions" : ["next283"],
+ "base_default_next" : "node_63",
"next_tables" : {
- "next349" : "node_61"
+ "next283" : "node_63"
},
"default_entry" : {
- "action_id" : 108,
+ "action_id" : 109,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17040,10 +17129,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 34,
+ "id" : 35,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -17054,14 +17143,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [100],
+ "action_ids" : [101],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 100,
+ "action_id" : 101,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17069,10 +17158,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 35,
+ "id" : 36,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -17083,14 +17172,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [101],
+ "action_ids" : [102],
"actions" : ["FabricEgress.egress_next.set_mpls"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 101,
+ "action_id" : 102,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17098,10 +17187,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 36,
+ "id" : 37,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -17125,27 +17214,27 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [102, 103, 104],
+ "action_ids" : [103, 104, 105],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_66",
+ "base_default_next" : "node_68",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_66",
- "FabricEgress.egress_next.pop_vlan" : "node_66",
- "FabricEgress.egress_next.drop" : "node_66"
+ "FabricEgress.egress_next.push_vlan" : "node_68",
+ "FabricEgress.egress_next.pop_vlan" : "node_68",
+ "FabricEgress.egress_next.drop" : "node_68"
},
"default_entry" : {
- "action_id" : 104,
+ "action_id" : 105,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next375",
- "id" : 37,
+ "name" : "tbl_next309",
+ "id" : 38,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -17156,25 +17245,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [110],
- "actions" : ["next375"],
- "base_default_next" : "node_68",
+ "action_ids" : [111],
+ "actions" : ["next309"],
+ "base_default_next" : "node_70",
"next_tables" : {
- "next375" : "node_68"
+ "next309" : "node_70"
},
"default_entry" : {
- "action_id" : 110,
+ "action_id" : 111,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next376",
- "id" : 38,
+ "name" : "tbl_next310",
+ "id" : 39,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -17185,25 +17274,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [109],
- "actions" : ["next376"],
- "base_default_next" : "node_74",
+ "action_ids" : [110],
+ "actions" : ["next310"],
+ "base_default_next" : "node_76",
"next_tables" : {
- "next376" : "node_74"
+ "next310" : "node_76"
},
"default_entry" : {
- "action_id" : 109,
+ "action_id" : 110,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next379",
- "id" : 39,
+ "name" : "tbl_next313",
+ "id" : 40,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -17214,25 +17303,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [112],
- "actions" : ["next379"],
- "base_default_next" : "node_72",
+ "action_ids" : [113],
+ "actions" : ["next313"],
+ "base_default_next" : "node_74",
"next_tables" : {
- "next379" : "node_72"
+ "next313" : "node_74"
},
"default_entry" : {
- "action_id" : 112,
+ "action_id" : 113,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next380",
- "id" : 40,
+ "name" : "tbl_next314",
+ "id" : 41,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -17243,14 +17332,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [111],
- "actions" : ["next380"],
- "base_default_next" : "node_74",
+ "action_ids" : [112],
+ "actions" : ["next314"],
+ "base_default_next" : "node_76",
"next_tables" : {
- "next380" : "node_74"
+ "next314" : "node_76"
},
"default_entry" : {
- "action_id" : 111,
+ "action_id" : 112,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17258,7 +17347,7 @@
},
{
"name" : "tbl_spgw_gtpu_encap",
- "id" : 41,
+ "id" : 42,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 339,
@@ -17272,14 +17361,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [105],
+ "action_ids" : [106],
"actions" : ["FabricEgress.spgw.gtpu_encap"],
- "base_default_next" : "node_77",
+ "base_default_next" : "node_79",
"next_tables" : {
- "FabricEgress.spgw.gtpu_encap" : "node_77"
+ "FabricEgress.spgw.gtpu_encap" : "node_79"
},
"default_entry" : {
- "action_id" : 105,
+ "action_id" : 106,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17287,7 +17376,7 @@
},
{
"name" : "tbl_spgw342",
- "id" : 42,
+ "id" : 43,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 342,
@@ -17301,14 +17390,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [113],
+ "action_ids" : [114],
"actions" : ["spgw342"],
- "base_default_next" : "node_79",
+ "base_default_next" : "node_81",
"next_tables" : {
- "spgw342" : "node_79"
+ "spgw342" : "node_81"
},
"default_entry" : {
- "action_id" : 113,
+ "action_id" : 114,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17316,7 +17405,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "id" : 43,
+ "id" : 44,
"source_info" : {
"filename" : "include/int/int_source.p4",
"line" : 66,
@@ -17355,15 +17444,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [66, 62],
+ "action_ids" : [67, 63],
"actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
- "base_default_next" : "node_82",
+ "base_default_next" : "node_84",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_82",
- "nop" : "node_82"
+ "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_84",
+ "nop" : "node_84"
},
"default_entry" : {
- "action_id" : 62,
+ "action_id" : 63,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17371,7 +17460,7 @@
},
{
"name" : "tbl_act",
- "id" : 44,
+ "id" : 45,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -17379,14 +17468,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [114],
+ "action_ids" : [115],
"actions" : ["act"],
"base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
"next_tables" : {
"act" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
},
"default_entry" : {
- "action_id" : 114,
+ "action_id" : 115,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17394,7 +17483,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
- "id" : 45,
+ "id" : 46,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 315,
@@ -17415,15 +17504,15 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [67, 63],
+ "action_ids" : [68, 64],
"actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
- "base_default_next" : "node_85",
+ "base_default_next" : "node_87",
"next_tables" : {
- "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_85",
- "nop" : "node_85"
+ "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_87",
+ "nop" : "node_87"
},
"default_entry" : {
- "action_id" : 63,
+ "action_id" : 64,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17431,7 +17520,7 @@
},
{
"name" : "tbl_int_transit420",
- "id" : 46,
+ "id" : 47,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 420,
@@ -17445,14 +17534,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [115],
+ "action_ids" : [116],
"actions" : ["int_transit420"],
- "base_default_next" : "node_87",
+ "base_default_next" : "node_89",
"next_tables" : {
- "int_transit420" : "node_87"
+ "int_transit420" : "node_89"
},
"default_entry" : {
- "action_id" : 115,
+ "action_id" : 116,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -17460,7 +17549,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
- "id" : 47,
+ "id" : 48,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 331,
@@ -17481,7 +17570,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 64],
+ "action_ids" : [69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 65],
"actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"],
"base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
"next_tables" : {
@@ -17504,7 +17593,7 @@
"NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
},
"default_entry" : {
- "action_id" : 64,
+ "action_id" : 65,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -17524,7 +17613,7 @@
}
],
"action_entry" : {
- "action_id" : 68,
+ "action_id" : 69,
"action_data" : []
},
"priority" : 1
@@ -17543,7 +17632,7 @@
}
],
"action_entry" : {
- "action_id" : 69,
+ "action_id" : 70,
"action_data" : []
},
"priority" : 2
@@ -17562,7 +17651,7 @@
}
],
"action_entry" : {
- "action_id" : 70,
+ "action_id" : 71,
"action_data" : []
},
"priority" : 3
@@ -17581,7 +17670,7 @@
}
],
"action_entry" : {
- "action_id" : 71,
+ "action_id" : 72,
"action_data" : []
},
"priority" : 4
@@ -17600,7 +17689,7 @@
}
],
"action_entry" : {
- "action_id" : 72,
+ "action_id" : 73,
"action_data" : []
},
"priority" : 5
@@ -17619,7 +17708,7 @@
}
],
"action_entry" : {
- "action_id" : 73,
+ "action_id" : 74,
"action_data" : []
},
"priority" : 6
@@ -17638,7 +17727,7 @@
}
],
"action_entry" : {
- "action_id" : 74,
+ "action_id" : 75,
"action_data" : []
},
"priority" : 7
@@ -17657,7 +17746,7 @@
}
],
"action_entry" : {
- "action_id" : 75,
+ "action_id" : 76,
"action_data" : []
},
"priority" : 8
@@ -17676,7 +17765,7 @@
}
],
"action_entry" : {
- "action_id" : 76,
+ "action_id" : 77,
"action_data" : []
},
"priority" : 9
@@ -17695,7 +17784,7 @@
}
],
"action_entry" : {
- "action_id" : 77,
+ "action_id" : 78,
"action_data" : []
},
"priority" : 10
@@ -17714,7 +17803,7 @@
}
],
"action_entry" : {
- "action_id" : 78,
+ "action_id" : 79,
"action_data" : []
},
"priority" : 11
@@ -17733,7 +17822,7 @@
}
],
"action_entry" : {
- "action_id" : 79,
+ "action_id" : 80,
"action_data" : []
},
"priority" : 12
@@ -17752,7 +17841,7 @@
}
],
"action_entry" : {
- "action_id" : 80,
+ "action_id" : 81,
"action_data" : []
},
"priority" : 13
@@ -17771,7 +17860,7 @@
}
],
"action_entry" : {
- "action_id" : 81,
+ "action_id" : 82,
"action_data" : []
},
"priority" : 14
@@ -17790,7 +17879,7 @@
}
],
"action_entry" : {
- "action_id" : 82,
+ "action_id" : 83,
"action_data" : []
},
"priority" : 15
@@ -17809,7 +17898,7 @@
}
],
"action_entry" : {
- "action_id" : 83,
+ "action_id" : 84,
"action_data" : []
},
"priority" : 16
@@ -17818,7 +17907,7 @@
},
{
"name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
- "id" : 48,
+ "id" : 49,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 375,
@@ -17839,7 +17928,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 65],
+ "action_ids" : [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 66],
"actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
"base_default_next" : "tbl_int_transit425",
"next_tables" : {
@@ -17862,7 +17951,7 @@
"NoAction" : "tbl_int_transit425"
},
"default_entry" : {
- "action_id" : 65,
+ "action_id" : 66,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -17882,7 +17971,7 @@
}
],
"action_entry" : {
- "action_id" : 84,
+ "action_id" : 85,
"action_data" : []
},
"priority" : 1
@@ -17901,7 +17990,7 @@
}
],
"action_entry" : {
- "action_id" : 85,
+ "action_id" : 86,
"action_data" : []
},
"priority" : 2
@@ -17920,7 +18009,7 @@
}
],
"action_entry" : {
- "action_id" : 86,
+ "action_id" : 87,
"action_data" : []
},
"priority" : 3
@@ -17939,7 +18028,7 @@
}
],
"action_entry" : {
- "action_id" : 87,
+ "action_id" : 88,
"action_data" : []
},
"priority" : 4
@@ -17958,7 +18047,7 @@
}
],
"action_entry" : {
- "action_id" : 88,
+ "action_id" : 89,
"action_data" : []
},
"priority" : 5
@@ -17977,7 +18066,7 @@
}
],
"action_entry" : {
- "action_id" : 89,
+ "action_id" : 90,
"action_data" : []
},
"priority" : 6
@@ -17996,7 +18085,7 @@
}
],
"action_entry" : {
- "action_id" : 90,
+ "action_id" : 91,
"action_data" : []
},
"priority" : 7
@@ -18015,7 +18104,7 @@
}
],
"action_entry" : {
- "action_id" : 91,
+ "action_id" : 92,
"action_data" : []
},
"priority" : 8
@@ -18034,7 +18123,7 @@
}
],
"action_entry" : {
- "action_id" : 92,
+ "action_id" : 93,
"action_data" : []
},
"priority" : 9
@@ -18053,7 +18142,7 @@
}
],
"action_entry" : {
- "action_id" : 93,
+ "action_id" : 94,
"action_data" : []
},
"priority" : 10
@@ -18072,7 +18161,7 @@
}
],
"action_entry" : {
- "action_id" : 94,
+ "action_id" : 95,
"action_data" : []
},
"priority" : 11
@@ -18091,7 +18180,7 @@
}
],
"action_entry" : {
- "action_id" : 95,
+ "action_id" : 96,
"action_data" : []
},
"priority" : 12
@@ -18110,7 +18199,7 @@
}
],
"action_entry" : {
- "action_id" : 96,
+ "action_id" : 97,
"action_data" : []
},
"priority" : 13
@@ -18129,7 +18218,7 @@
}
],
"action_entry" : {
- "action_id" : 97,
+ "action_id" : 98,
"action_data" : []
},
"priority" : 14
@@ -18148,7 +18237,7 @@
}
],
"action_entry" : {
- "action_id" : 98,
+ "action_id" : 99,
"action_data" : []
},
"priority" : 15
@@ -18167,7 +18256,7 @@
}
],
"action_entry" : {
- "action_id" : 99,
+ "action_id" : 100,
"action_data" : []
},
"priority" : 16
@@ -18176,7 +18265,7 @@
},
{
"name" : "tbl_int_transit425",
- "id" : 49,
+ "id" : 50,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 425,
@@ -18190,14 +18279,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [117],
+ "action_ids" : [118],
"actions" : ["int_transit425"],
- "base_default_next" : "node_91",
+ "base_default_next" : "node_93",
"next_tables" : {
- "int_transit425" : "node_91"
+ "int_transit425" : "node_93"
},
"default_entry" : {
- "action_id" : 117,
+ "action_id" : 118,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -18205,7 +18294,7 @@
},
{
"name" : "tbl_int_transit428",
- "id" : 50,
+ "id" : 51,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 428,
@@ -18219,14 +18308,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [116],
+ "action_ids" : [117],
"actions" : ["int_transit428"],
- "base_default_next" : "node_93",
+ "base_default_next" : "node_95",
"next_tables" : {
- "int_transit428" : "node_93"
+ "int_transit428" : "node_95"
},
"default_entry" : {
- "action_id" : 116,
+ "action_id" : 117,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -18234,7 +18323,7 @@
},
{
"name" : "tbl_int_transit431",
- "id" : 51,
+ "id" : 52,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 431,
@@ -18248,14 +18337,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [118],
+ "action_ids" : [119],
"actions" : ["int_transit431"],
- "base_default_next" : "node_95",
+ "base_default_next" : "node_97",
"next_tables" : {
- "int_transit431" : "node_95"
+ "int_transit431" : "node_97"
},
"default_entry" : {
- "action_id" : 118,
+ "action_id" : 119,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -18263,7 +18352,7 @@
},
{
"name" : "tbl_int_transit434",
- "id" : 52,
+ "id" : 53,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 434,
@@ -18277,14 +18366,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [119],
+ "action_ids" : [120],
"actions" : ["int_transit434"],
"base_default_next" : null,
"next_tables" : {
"int_transit434" : null
},
"default_entry" : {
- "action_id" : 119,
+ "action_id" : 120,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -18294,11 +18383,11 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_55",
- "id" : 20,
+ "name" : "node_57",
+ "id" : 21,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 103,
+ "line" : 108,
"column" : 33,
"source_fragment" : "fabric_metadata"
},
@@ -18314,11 +18403,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_57"
+ "false_next" : "node_59"
},
{
- "name" : "node_57",
- "id" : 21,
+ "name" : "node_59",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -18340,14 +18429,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_59"
+ "false_next" : "node_61"
},
{
- "name" : "node_59",
- "id" : 22,
+ "name" : "node_61",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -18382,15 +18471,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_61"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_63"
},
{
- "name" : "node_61",
- "id" : 23,
+ "name" : "node_63",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -18408,15 +18497,15 @@
}
}
},
- "true_next" : "node_62",
+ "true_next" : "node_64",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_62",
- "id" : 24,
+ "name" : "node_64",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -18435,11 +18524,11 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_66",
- "id" : 25,
+ "name" : "node_68",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -18454,15 +18543,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_70"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_72"
},
{
- "name" : "node_68",
- "id" : 26,
+ "name" : "node_70",
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -18480,15 +18569,15 @@
}
}
},
- "true_next" : "tbl_next376",
- "false_next" : "node_74"
+ "true_next" : "tbl_next310",
+ "false_next" : "node_76"
},
{
- "name" : "node_70",
- "id" : 27,
+ "name" : "node_72",
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -18523,15 +18612,15 @@
}
}
},
- "true_next" : "tbl_next379",
- "false_next" : "node_74"
+ "true_next" : "tbl_next313",
+ "false_next" : "node_76"
},
{
- "name" : "node_72",
- "id" : 28,
+ "name" : "node_74",
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -18549,12 +18638,12 @@
}
}
},
- "true_next" : "tbl_next380",
- "false_next" : "node_74"
+ "true_next" : "tbl_next314",
+ "false_next" : "node_76"
},
{
- "name" : "node_74",
- "id" : 29,
+ "name" : "node_76",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 337,
@@ -18579,15 +18668,15 @@
}
}
},
- "true_next" : "node_75",
- "false_next" : "node_79"
+ "true_next" : "node_77",
+ "false_next" : "node_81"
},
{
- "name" : "node_75",
- "id" : 30,
+ "name" : "node_77",
+ "id" : 31,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 106,
+ "line" : 111,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -18603,11 +18692,11 @@
}
},
"true_next" : "tbl_spgw_gtpu_encap",
- "false_next" : "node_77"
+ "false_next" : "node_79"
},
{
- "name" : "node_77",
- "id" : 31,
+ "name" : "node_79",
+ "id" : 32,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 341,
@@ -18633,11 +18722,11 @@
}
},
"true_next" : "tbl_spgw342",
- "false_next" : "node_79"
+ "false_next" : "node_81"
},
{
- "name" : "node_79",
- "id" : 32,
+ "name" : "node_81",
+ "id" : 33,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 102,
@@ -18713,14 +18802,14 @@
}
},
"false_next" : null,
- "true_next" : "node_80"
+ "true_next" : "node_82"
},
{
- "name" : "node_80",
- "id" : 33,
+ "name" : "node_82",
+ "id" : 34,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 112,
+ "line" : 117,
"column" : 36,
"source_fragment" : "fabric_metadata"
},
@@ -18736,11 +18825,11 @@
}
},
"true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
- "false_next" : "node_82"
+ "false_next" : "node_84"
},
{
- "name" : "node_82",
- "id" : 34,
+ "name" : "node_84",
+ "id" : 35,
"source_info" : {
"filename" : "include/int/int_main.p4",
"line" : 110,
@@ -18762,8 +18851,8 @@
"true_next" : "tbl_act"
},
{
- "name" : "node_85",
- "id" : 35,
+ "name" : "node_87",
+ "id" : 36,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 419,
@@ -18789,11 +18878,11 @@
}
},
"true_next" : "tbl_int_transit420",
- "false_next" : "node_87"
+ "false_next" : "node_89"
},
{
- "name" : "node_87",
- "id" : 36,
+ "name" : "node_89",
+ "id" : 37,
"expression" : {
"type" : "expression",
"value" : {
@@ -18816,8 +18905,8 @@
"true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
},
{
- "name" : "node_91",
- "id" : 37,
+ "name" : "node_93",
+ "id" : 38,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 427,
@@ -18836,11 +18925,11 @@
}
},
"true_next" : "tbl_int_transit428",
- "false_next" : "node_93"
+ "false_next" : "node_95"
},
{
- "name" : "node_93",
- "id" : 38,
+ "name" : "node_95",
+ "id" : 39,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 430,
@@ -18859,11 +18948,11 @@
}
},
"true_next" : "tbl_int_transit431",
- "false_next" : "node_95"
+ "false_next" : "node_97"
},
{
- "name" : "node_95",
- "id" : 39,
+ "name" : "node_97",
+ "id" : 40,
"source_info" : {
"filename" : "include/int/int_transit.p4",
"line" : 433,
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
index 11adb09..778efbb 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
@@ -180,6 +180,54 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -256,6 +304,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -277,30 +331,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 48735793
name: "FabricIngress.next.xconnect"
alias: "xconnect"
@@ -351,9 +381,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -629,6 +656,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -641,6 +673,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -699,6 +736,30 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -744,18 +805,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 24640974
name: "FabricIngress.next.output_xconnect"
alias: "output_xconnect"
@@ -814,33 +863,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -1182,6 +1204,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -1193,17 +1237,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 321989420
name: "FabricIngress.next.xconnect_counter"
alias: "xconnect_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index 0e33161..d639113 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -50,7 +50,9 @@
["userMetadata._spgw_notify_spgwc28", 1, false],
["userMetadata._spgw_needs_gtpu_encap29", 1, false],
["userMetadata._spgw_needs_gtpu_decap30", 1, false],
- ["userMetadata._spgw_skip_egress_pdr_ctr31", 1, false]
+ ["userMetadata._spgw_skip_egress_pdr_ctr31", 1, false],
+ ["userMetadata._port_type32", 2, false],
+ ["_padding_0", 6, false]
]
},
{
@@ -1853,7 +1855,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -1883,9 +1885,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 4,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 5,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 6,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -1895,56 +1921,44 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 5,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 6,
+ "id" : 7,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 107,
+ "line" : 56,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 7,
+ "id" : 8,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 8,
+ "id" : 9,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 9,
+ "id" : 10,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -1956,7 +1970,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 10,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -1968,7 +1982,7 @@
},
{
"name" : "FabricIngress.spgw.pdr_counter",
- "id" : 11,
+ "id" : 12,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 108,
@@ -1980,19 +1994,19 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 12,
+ "id" : 13,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
},
{
"name" : "FabricEgress.spgw.pdr_counter",
- "id" : 13,
+ "id" : 14,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 295,
@@ -2234,7 +2248,7 @@
"primitives" : []
},
{
- "name" : "NoAction",
+ "name" : "nop",
"id" : 7,
"runtime_data" : [],
"primitives" : []
@@ -2246,9 +2260,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.filtering.deny",
+ "name" : "NoAction",
"id" : 9,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.filtering.deny",
+ "id" : 10,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -2307,22 +2327,70 @@
"column" : 34,
"source_fragment" : "= true; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type32"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 10,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 11,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type32"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 11,
+ "id" : 12,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -2340,16 +2408,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 32,
"source_fragment" : "= vlan_id; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._port_type32"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 34,
+ "source_fragment" : "= port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 12,
+ "id" : 13,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2371,7 +2458,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 33,
"source_fragment" : "= fwd_type; ..."
}
@@ -2380,7 +2467,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 13,
+ "id" : 14,
"runtime_data" : [
{
"name" : "next_id",
@@ -2411,7 +2498,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 14,
+ "id" : 15,
"runtime_data" : [
{
"name" : "next_id",
@@ -2461,7 +2548,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 15,
+ "id" : 16,
"runtime_data" : [
{
"name" : "next_id",
@@ -2492,13 +2579,75 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 16,
+ "id" : 17,
"runtime_data" : [],
"primitives" : []
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 18,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._mpls_label4"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 35,
+ "source_fragment" : "= label; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 19,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._vlan_id1"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 32,
+ "source_fragment" : "= vlan_id; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 17,
+ "id" : 20,
"runtime_data" : [
{
"name" : "next_id",
@@ -2529,7 +2678,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 18,
+ "id" : 21,
"runtime_data" : [],
"primitives" : [
{
@@ -2584,7 +2733,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 19,
+ "id" : 22,
"runtime_data" : [
{
"name" : "clone_id",
@@ -2615,7 +2764,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 20,
+ "id" : 23,
"runtime_data" : [],
"primitives" : [
{
@@ -2666,105 +2815,12 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 21,
+ "id" : 24,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 22,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._vlan_id1"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 32,
- "source_fragment" : "= vlan_id; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_xconnect",
- "id" : 23,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 24,
- "runtime_data" : [
- {
- "name" : "next_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._next_id9"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 115,
- "column" : 32,
- "source_fragment" : "= next_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.output_hashed",
"id" : 25,
"runtime_data" : [
{
@@ -2795,20 +2851,12 @@
]
},
{
- "name" : "FabricIngress.next.routing_hashed",
+ "name" : "FabricIngress.next.set_next_id_xconnect",
"id" : 26,
"runtime_data" : [
{
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
+ "name" : "next_id",
+ "bitwidth" : 32
}
],
"primitives" : [
@@ -2817,39 +2865,32 @@
"parameters" : [
{
"type" : "field",
- "value" : ["ethernet", "src_addr"]
+ "value" : ["scalars", "userMetadata._next_id9"]
},
{
"type" : "runtime_data",
- "value" : 1
+ "value" : 0
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 36,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ "line" : 64,
+ "column" : 32,
+ "source_fragment" : "= next_id; ..."
}
- },
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.next.output_hashed",
+ "id" : 27,
+ "runtime_data" : [
{
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
+ "name" : "port_num",
+ "bitwidth" : 9
+ }
+ ],
+ "primitives" : [
{
"op" : "assign",
"parameters" : [
@@ -2872,8 +2913,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 27,
+ "name" : "FabricIngress.next.routing_hashed",
+ "id" : 28,
"runtime_data" : [
{
"name" : "port_num",
@@ -2886,10 +2927,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -2898,25 +2935,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata._mpls_label4"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 35,
- "source_fragment" : "= label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -2973,7 +2991,7 @@
},
{
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 28,
+ "id" : 29,
"runtime_data" : [
{
"name" : "group_id",
@@ -2995,7 +3013,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -3024,7 +3042,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 37,
"source_fragment" : "= true; ..."
}
@@ -3033,7 +3051,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp",
- "id" : 29,
+ "id" : 30,
"runtime_data" : [],
"primitives" : [
{
@@ -3050,7 +3068,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3252,7 +3270,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp",
- "id" : 30,
+ "id" : 31,
"runtime_data" : [],
"primitives" : [
{
@@ -3269,7 +3287,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3456,7 +3474,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp",
- "id" : 31,
+ "id" : 32,
"runtime_data" : [],
"primitives" : [
{
@@ -3473,7 +3491,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3675,7 +3693,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown",
- "id" : 32,
+ "id" : 33,
"runtime_data" : [],
"primitives" : [
{
@@ -3692,7 +3710,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3860,7 +3878,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_tcp",
- "id" : 33,
+ "id" : 34,
"runtime_data" : [],
"primitives" : [
{
@@ -3877,7 +3895,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4079,7 +4097,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_udp",
- "id" : 34,
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -4096,7 +4114,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4283,7 +4301,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_icmp",
- "id" : 35,
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -4300,7 +4318,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4502,7 +4520,7 @@
},
{
"name" : "FabricIngress.spgw.decap_gtpu.decap_inner_unknown",
- "id" : 36,
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -4519,7 +4537,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 132,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4687,7 +4705,7 @@
},
{
"name" : "FabricIngress.spgw.load_iface",
- "id" : 37,
+ "id" : 38,
"runtime_data" : [
{
"name" : "src_iface",
@@ -4747,7 +4765,7 @@
},
{
"name" : "FabricIngress.spgw.iface_miss",
- "id" : 38,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -4802,103 +4820,6 @@
},
{
"name" : "FabricIngress.spgw.load_pdr",
- "id" : 39,
- "runtime_data" : [
- {
- "name" : "ctr_id",
- "bitwidth" : 32
- },
- {
- "name" : "far_id",
- "bitwidth" : 32
- },
- {
- "name" : "needs_gtpu_decap",
- "bitwidth" : 1
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_ctr_id24"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 150,
- "column" : 30,
- "source_fragment" : "= ctr_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_far_id25"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 151,
- "column" : 30,
- "source_fragment" : "= far_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata._spgw_needs_gtpu_decap30"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 2
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/control/spgw.p4",
- "line" : 152,
- "column" : 40,
- "source_fragment" : "= (bool)needs_gtpu_decap; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw.load_pdr",
"id" : 40,
"runtime_data" : [
{
@@ -4995,7 +4916,7 @@
]
},
{
- "name" : "FabricIngress.spgw.load_pdr_qos",
+ "name" : "FabricIngress.spgw.load_pdr",
"id" : 41,
"runtime_data" : [
{
@@ -5009,10 +4930,6 @@
{
"name" : "needs_gtpu_decap",
"bitwidth" : 1
- },
- {
- "name" : "qid",
- "bitwidth" : 5
}
],
"primitives" : [
@@ -5197,10 +5114,111 @@
]
},
{
- "name" : "FabricIngress.spgw.load_normal_far",
+ "name" : "FabricIngress.spgw.load_pdr_qos",
"id" : 43,
"runtime_data" : [
{
+ "name" : "ctr_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "far_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "needs_gtpu_decap",
+ "bitwidth" : 1
+ },
+ {
+ "name" : "qid",
+ "bitwidth" : 5
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_ctr_id24"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 150,
+ "column" : 30,
+ "source_fragment" : "= ctr_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_far_id25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 151,
+ "column" : 30,
+ "source_fragment" : "= far_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._spgw_needs_gtpu_decap30"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 2
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 152,
+ "column" : 40,
+ "source_fragment" : "= (bool)needs_gtpu_decap; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw.load_normal_far",
+ "id" : 44,
+ "runtime_data" : [
+ {
"name" : "drop",
"bitwidth" : 1
},
@@ -5331,7 +5349,7 @@
},
{
"name" : "FabricIngress.spgw.load_tunnel_far",
- "id" : 44,
+ "id" : 45,
"runtime_data" : [
{
"name" : "drop",
@@ -5661,7 +5679,7 @@
},
{
"name" : "FabricIngress.spgw.load_dbuf_far",
- "id" : 45,
+ "id" : 46,
"runtime_data" : [
{
"name" : "drop",
@@ -6020,7 +6038,7 @@
},
{
"name" : "packetio25",
- "id" : 46,
+ "id" : 47,
"runtime_data" : [],
"primitives" : [
{
@@ -6100,7 +6118,7 @@
},
{
"name" : "spgw265",
- "id" : 47,
+ "id" : 48,
"runtime_data" : [],
"primitives" : [
{
@@ -6126,7 +6144,7 @@
},
{
"name" : "spgw282",
- "id" : 48,
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -6151,8 +6169,8 @@
]
},
{
- "name" : "filtering111",
- "id" : 49,
+ "name" : "filtering113",
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -6169,7 +6187,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
}
@@ -6188,7 +6206,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.pri; ..."
}
@@ -6207,7 +6225,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 37,
"source_fragment" : "= hdr.vlan_tag.cfi; ..."
}
@@ -6215,8 +6233,8 @@
]
},
{
- "name" : "filtering127",
- "id" : 50,
+ "name" : "filtering129",
+ "id" : 51,
"runtime_data" : [],
"primitives" : [
{
@@ -6233,7 +6251,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
}
@@ -6241,8 +6259,8 @@
]
},
{
- "name" : "acl101",
- "id" : 51,
+ "name" : "acl102",
+ "id" : 52,
"runtime_data" : [],
"primitives" : [
{
@@ -6259,7 +6277,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -6278,7 +6296,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -6286,8 +6304,8 @@
]
},
{
- "name" : "acl104",
- "id" : 52,
+ "name" : "acl105",
+ "id" : 53,
"runtime_data" : [],
"primitives" : [
{
@@ -6304,7 +6322,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -6323,7 +6341,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -6331,8 +6349,8 @@
]
},
{
- "name" : "acl97",
- "id" : 53,
+ "name" : "acl98",
+ "id" : 54,
"runtime_data" : [],
"primitives" : [
{
@@ -6349,7 +6367,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -6368,7 +6386,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -6387,7 +6405,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -6395,8 +6413,8 @@
]
},
{
- "name" : "acl112",
- "id" : 54,
+ "name" : "acl113",
+ "id" : 55,
"runtime_data" : [],
"primitives" : [
{
@@ -6413,7 +6431,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -6432,7 +6450,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -6440,8 +6458,8 @@
]
},
{
- "name" : "acl115",
- "id" : 55,
+ "name" : "acl116",
+ "id" : 56,
"runtime_data" : [],
"primitives" : [
{
@@ -6458,7 +6476,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -6477,7 +6495,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -6485,8 +6503,8 @@
]
},
{
- "name" : "acl108",
- "id" : 56,
+ "name" : "acl109",
+ "id" : 57,
"runtime_data" : [],
"primitives" : [
{
@@ -6503,7 +6521,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -6522,7 +6540,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -6541,7 +6559,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -6550,7 +6568,7 @@
},
{
"name" : "acl27",
- "id" : 57,
+ "id" : 58,
"runtime_data" : [],
"primitives" : [
{
@@ -6652,7 +6670,7 @@
},
{
"name" : "port_counter31",
- "id" : 58,
+ "id" : 59,
"runtime_data" : [],
"primitives" : [
{
@@ -6710,7 +6728,7 @@
},
{
"name" : "port_counter34",
- "id" : 59,
+ "id" : 60,
"runtime_data" : [],
"primitives" : [
{
@@ -6768,7 +6786,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 60,
+ "id" : 61,
"runtime_data" : [],
"primitives" : [
{
@@ -6781,7 +6799,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -6800,7 +6818,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
}
@@ -6809,7 +6827,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 61,
+ "id" : 62,
"runtime_data" : [],
"primitives" : [
{
@@ -6822,7 +6840,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -6841,7 +6859,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
}
@@ -6860,7 +6878,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -6879,7 +6897,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -6898,7 +6916,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
}
@@ -6917,7 +6935,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -6926,7 +6944,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 62,
+ "id" : 63,
"runtime_data" : [],
"primitives" : [
{
@@ -6939,7 +6957,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -6958,7 +6976,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
}
@@ -6977,7 +6995,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
}
@@ -6996,7 +7014,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -7015,7 +7033,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
}
@@ -7024,7 +7042,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 63,
+ "id" : 64,
"runtime_data" : [],
"primitives" : [
{
@@ -7037,7 +7055,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -7046,7 +7064,7 @@
},
{
"name" : "FabricEgress.egress_next.drop",
- "id" : 64,
+ "id" : 65,
"runtime_data" : [],
"primitives" : [
{
@@ -7059,7 +7077,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -7068,7 +7086,7 @@
},
{
"name" : "FabricEgress.spgw.gtpu_encap",
- "id" : 65,
+ "id" : 66,
"runtime_data" : [],
"primitives" : [
{
@@ -7119,7 +7137,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 135,
+ "line" : 147,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -7275,7 +7293,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 148,
+ "line" : 160,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -7294,7 +7312,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 132,
+ "line" : 144,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -7660,7 +7678,7 @@
},
{
"name" : "packetio41",
- "id" : 66,
+ "id" : 67,
"runtime_data" : [],
"primitives" : [
{
@@ -7677,7 +7695,7 @@
},
{
"name" : "packetio44",
- "id" : 67,
+ "id" : 68,
"runtime_data" : [],
"primitives" : [
{
@@ -7727,29 +7745,7 @@
]
},
{
- "name" : "next349",
- "id" : 68,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 349,
- "column" : 12,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- }
- }
- ]
- },
- {
- "name" : "next376",
+ "name" : "next283",
"id" : 69,
"runtime_data" : [],
"primitives" : [
@@ -7763,7 +7759,29 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 283,
+ "column" : 12,
+ "source_fragment" : "mark_to_drop(standard_metadata)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "next310",
+ "id" : 70,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "mark_to_drop",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "standard_metadata"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -7771,8 +7789,8 @@
]
},
{
- "name" : "next375",
- "id" : 70,
+ "name" : "next309",
+ "id" : 71,
"runtime_data" : [],
"primitives" : [
{
@@ -7812,7 +7830,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -7820,8 +7838,8 @@
]
},
{
- "name" : "next380",
- "id" : 71,
+ "name" : "next314",
+ "id" : 72,
"runtime_data" : [],
"primitives" : [
{
@@ -7834,7 +7852,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -7842,8 +7860,8 @@
]
},
{
- "name" : "next379",
- "id" : 72,
+ "name" : "next313",
+ "id" : 73,
"runtime_data" : [],
"primitives" : [
{
@@ -7883,7 +7901,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -7892,7 +7910,7 @@
},
{
"name" : "spgw342",
- "id" : 73,
+ "id" : 74,
"runtime_data" : [],
"primitives" : [
{
@@ -7923,7 +7941,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -7945,14 +7963,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [46],
+ "action_ids" : [47],
"actions" : ["packetio25"],
"base_default_next" : "FabricIngress.spgw.interfaces",
"next_tables" : {
"packetio25" : "FabricIngress.spgw.interfaces"
},
"default_entry" : {
- "action_id" : 46,
+ "action_id" : 47,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7987,7 +8005,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37, 38],
+ "action_ids" : [38, 39],
"actions" : ["FabricIngress.spgw.load_iface", "FabricIngress.spgw.iface_miss"],
"base_default_next" : null,
"next_tables" : {
@@ -7995,7 +8013,7 @@
"__MISS__" : "node_16"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8036,7 +8054,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [29, 30, 31, 32],
+ "action_ids" : [30, 31, 32, 33],
"actions" : ["FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown"],
"base_default_next" : "node_7",
"next_tables" : {
@@ -8046,7 +8064,7 @@
"FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown" : "node_7"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8074,7 +8092,7 @@
}
],
"action_entry" : {
- "action_id" : 29,
+ "action_id" : 30,
"action_data" : []
},
"priority" : 1
@@ -8101,7 +8119,7 @@
}
],
"action_entry" : {
- "action_id" : 30,
+ "action_id" : 31,
"action_data" : []
},
"priority" : 2
@@ -8128,7 +8146,7 @@
}
],
"action_entry" : {
- "action_id" : 31,
+ "action_id" : 32,
"action_data" : []
},
"priority" : 3
@@ -8164,7 +8182,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [40, 42, 8],
+ "action_ids" : [41, 43, 9],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -8173,7 +8191,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 8,
+ "action_id" : 9,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -8202,7 +8220,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39, 41, 7],
+ "action_ids" : [40, 42, 8],
"actions" : ["FabricIngress.spgw.load_pdr", "FabricIngress.spgw.load_pdr_qos", "NoAction"],
"base_default_next" : "node_10",
"next_tables" : {
@@ -8211,7 +8229,7 @@
"NoAction" : "node_10"
},
"default_entry" : {
- "action_id" : 7,
+ "action_id" : 8,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -8233,14 +8251,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [47],
+ "action_ids" : [48],
"actions" : ["spgw265"],
"base_default_next" : "node_12",
"next_tables" : {
"spgw265" : "node_12"
},
"default_entry" : {
- "action_id" : 47,
+ "action_id" : 48,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8281,7 +8299,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33, 34, 35, 36],
+ "action_ids" : [34, 35, 36, 37],
"actions" : ["FabricIngress.spgw.decap_gtpu.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu.decap_inner_udp", "FabricIngress.spgw.decap_gtpu.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu.decap_inner_unknown"],
"base_default_next" : "FabricIngress.spgw.fars",
"next_tables" : {
@@ -8291,7 +8309,7 @@
"FabricIngress.spgw.decap_gtpu.decap_inner_unknown" : "FabricIngress.spgw.fars"
},
"default_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8319,7 +8337,7 @@
}
],
"action_entry" : {
- "action_id" : 33,
+ "action_id" : 34,
"action_data" : []
},
"priority" : 1
@@ -8346,7 +8364,7 @@
}
],
"action_entry" : {
- "action_id" : 34,
+ "action_id" : 35,
"action_data" : []
},
"priority" : 2
@@ -8373,7 +8391,7 @@
}
],
"action_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_data" : []
},
"priority" : 3
@@ -8403,7 +8421,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [43, 44, 45],
+ "action_ids" : [44, 45, 46],
"actions" : ["FabricIngress.spgw.load_normal_far", "FabricIngress.spgw.load_tunnel_far", "FabricIngress.spgw.load_dbuf_far"],
"base_default_next" : "tbl_spgw282",
"next_tables" : {
@@ -8412,7 +8430,7 @@
"FabricIngress.spgw.load_dbuf_far" : "tbl_spgw282"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 44,
"action_const" : true,
"action_data" : ["0x1", "0x0"],
"action_entry_const" : true
@@ -8434,25 +8452,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [48],
+ "action_ids" : [49],
"actions" : ["spgw282"],
"base_default_next" : "node_16",
"next_tables" : {
"spgw282" : "node_16"
},
"default_entry" : {
- "action_id" : 48,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 9,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -8463,25 +8481,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [49],
- "actions" : ["filtering111"],
+ "action_ids" : [50],
+ "actions" : ["filtering113"],
"base_default_next" : "node_18",
"next_tables" : {
- "filtering111" : "node_18"
+ "filtering113" : "node_18"
},
"default_entry" : {
- "action_id" : 49,
+ "action_id" : 50,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 10,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -8492,14 +8510,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [50],
- "actions" : ["filtering127"],
+ "action_ids" : [51],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 50,
+ "action_id" : 51,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8510,7 +8528,7 @@
"id" : 11,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -8540,7 +8558,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [9, 10, 11],
+ "action_ids" : [10, 11, 12],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -8549,7 +8567,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 9,
+ "action_id" : 10,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8560,7 +8578,7 @@
"id" : 12,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -8596,14 +8614,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [12],
+ "action_ids" : [13],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_22",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_22"
},
"default_entry" : {
- "action_id" : 12,
+ "action_id" : 13,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -8638,12 +8656,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [13, 0],
+ "action_ids" : [14, 0],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 0,
@@ -8675,12 +8693,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [14, 1],
+ "action_ids" : [15, 1],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 1,
@@ -8712,13 +8730,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15, 16, 2],
+ "action_ids" : [16, 17, 2],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_29",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_29",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_29",
+ "nop" : "node_29"
},
"default_entry" : {
"action_id" : 2,
@@ -8728,9 +8746,83 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 16,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [18, 3],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 3,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 17,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata._next_id9"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [19, 4],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 4,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 18,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -8743,25 +8835,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [57],
+ "action_ids" : [58],
"actions" : ["acl27"],
- "base_default_next" : "node_30",
+ "base_default_next" : "node_33",
"next_tables" : {
- "acl27" : "node_30"
+ "acl27" : "node_33"
},
"default_entry" : {
- "action_id" : 57,
+ "action_id" : 58,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl97",
- "id" : 17,
+ "name" : "tbl_acl98",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -8772,25 +8864,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [53],
- "actions" : ["acl97"],
- "base_default_next" : "node_32",
+ "action_ids" : [54],
+ "actions" : ["acl98"],
+ "base_default_next" : "node_35",
"next_tables" : {
- "acl97" : "node_32"
+ "acl98" : "node_35"
},
"default_entry" : {
- "action_id" : 53,
+ "action_id" : 54,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl101",
- "id" : 18,
+ "name" : "tbl_acl102",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -8801,25 +8893,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [51],
- "actions" : ["acl101"],
+ "action_ids" : [52],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 51,
+ "action_id" : 52,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl104",
- "id" : 19,
+ "name" : "tbl_acl105",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -8830,25 +8922,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [52],
- "actions" : ["acl104"],
+ "action_ids" : [53],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 52,
+ "action_id" : 53,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl108",
- "id" : 20,
+ "name" : "tbl_acl109",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -8859,25 +8951,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [56],
- "actions" : ["acl108"],
- "base_default_next" : "node_38",
+ "action_ids" : [57],
+ "actions" : ["acl109"],
+ "base_default_next" : "node_41",
"next_tables" : {
- "acl108" : "node_38"
+ "acl109" : "node_41"
},
"default_entry" : {
- "action_id" : 56,
+ "action_id" : 57,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl112",
- "id" : 21,
+ "name" : "tbl_acl113",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -8888,25 +8980,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [54],
- "actions" : ["acl112"],
+ "action_ids" : [55],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 54,
+ "action_id" : 55,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl115",
- "id" : 22,
+ "name" : "tbl_acl116",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -8917,14 +9009,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [55],
- "actions" : ["acl115"],
+ "action_ids" : [56],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 55,
+ "action_id" : 56,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -8932,7 +9024,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 23,
+ "id" : 25,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -9011,6 +9103,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata._port_type32"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -9019,18 +9117,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [17, 18, 19, 20, 21],
+ "action_ids" : [20, 21, 22, 23, 24],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_43",
+ "base_default_next" : "node_46",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_43",
- "FabricIngress.acl.punt_to_cpu" : "node_43",
- "FabricIngress.acl.set_clone_session_id" : "node_43",
- "FabricIngress.acl.drop" : "node_43",
- "FabricIngress.acl.nop_acl" : "node_43"
+ "FabricIngress.acl.set_next_id_acl" : "node_46",
+ "FabricIngress.acl.punt_to_cpu" : "node_46",
+ "FabricIngress.acl.set_clone_session_id" : "node_46",
+ "FabricIngress.acl.drop" : "node_46",
+ "FabricIngress.acl.nop_acl" : "node_46"
},
"default_entry" : {
- "action_id" : 21,
+ "action_id" : 24,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9038,10 +9136,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 24,
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 119,
+ "line" : 68,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -9065,7 +9163,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [23, 24, 4],
+ "action_ids" : [25, 26, 5],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
@@ -9074,7 +9172,7 @@
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 4,
+ "action_id" : 5,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9082,10 +9180,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 25,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -9104,22 +9202,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [25, 26, 27, 5],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [27, 28, 6],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 26,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -9137,52 +9234,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [28, 6],
+ "action_ids" : [29, 7],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_50",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_50",
+ "nop" : "node_50"
},
"default_entry" : {
- "action_id" : 6,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 27,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata._next_id9"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [22, 3],
- "actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_48",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_48",
- "nop" : "node_48"
- },
- "default_entry" : {
- "action_id" : 3,
+ "action_id" : 7,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9190,7 +9250,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 28,
+ "id" : 29,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -9204,14 +9264,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [58],
+ "action_ids" : [59],
"actions" : ["port_counter31"],
- "base_default_next" : "node_50",
+ "base_default_next" : "node_52",
"next_tables" : {
- "port_counter31" : "node_50"
+ "port_counter31" : "node_52"
},
"default_entry" : {
- "action_id" : 58,
+ "action_id" : 59,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9219,7 +9279,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 29,
+ "id" : 30,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -9233,14 +9293,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [59],
+ "action_ids" : [60],
"actions" : ["port_counter34"],
"base_default_next" : null,
"next_tables" : {
"port_counter34" : null
},
"default_entry" : {
- "action_id" : 59,
+ "action_id" : 60,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9253,7 +9313,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -9389,7 +9449,7 @@
"id" : 4,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 66,
+ "line" : 68,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -9412,7 +9472,7 @@
"id" : 5,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -9427,7 +9487,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_18"
},
{
@@ -9435,7 +9495,7 @@
"id" : 6,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -9457,7 +9517,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -9465,7 +9525,7 @@
"id" : 7,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -9488,7 +9548,7 @@
}
},
"true_next" : "node_23",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_29"
},
{
"name" : "node_23",
@@ -9566,14 +9626,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v4",
+ "false_next" : "node_29"
+ },
+ {
+ "name" : "node_29",
+ "id" : 11,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata._skip_next7"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_30",
- "id" : 11,
+ "name" : "node_33",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -9605,15 +9695,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_36"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_39"
},
{
- "name" : "node_32",
- "id" : 12,
+ "name" : "node_35",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -9628,15 +9718,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_34"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_37"
},
{
- "name" : "node_34",
- "id" : 13,
+ "name" : "node_37",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -9651,15 +9741,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_39",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -9674,15 +9764,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_38",
- "id" : 15,
+ "name" : "node_41",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -9697,15 +9787,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_40"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_43"
},
{
- "name" : "node_40",
- "id" : 16,
+ "name" : "node_43",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -9720,15 +9810,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_43",
- "id" : 17,
+ "name" : "node_46",
+ "id" : 18,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -9754,8 +9844,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_48",
- "id" : 18,
+ "name" : "node_50",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -9777,11 +9867,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_50"
+ "false_next" : "node_52"
},
{
- "name" : "node_50",
- "id" : 19,
+ "name" : "node_52",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -9812,15 +9902,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_54",
+ "init_table" : "node_56",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 30,
+ "id" : 31,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -9834,14 +9924,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [66],
+ "action_ids" : [67],
"actions" : ["packetio41"],
- "base_default_next" : "node_56",
+ "base_default_next" : "node_58",
"next_tables" : {
- "packetio41" : "node_56"
+ "packetio41" : "node_58"
},
"default_entry" : {
- "action_id" : 66,
+ "action_id" : 67,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9849,7 +9939,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 31,
+ "id" : 32,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -9863,25 +9953,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [67],
+ "action_ids" : [68],
"actions" : ["packetio44"],
- "base_default_next" : "node_58",
+ "base_default_next" : "node_60",
"next_tables" : {
- "packetio44" : "node_58"
+ "packetio44" : "node_60"
},
"default_entry" : {
- "action_id" : 67,
+ "action_id" : 68,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next349",
- "id" : 32,
+ "name" : "tbl_next283",
+ "id" : 33,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -9892,14 +9982,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [68],
- "actions" : ["next349"],
- "base_default_next" : "node_60",
+ "action_ids" : [69],
+ "actions" : ["next283"],
+ "base_default_next" : "node_62",
"next_tables" : {
- "next349" : "node_60"
+ "next283" : "node_62"
},
"default_entry" : {
- "action_id" : 68,
+ "action_id" : 69,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9907,10 +9997,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 33,
+ "id" : 34,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -9921,14 +10011,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [60],
+ "action_ids" : [61],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 60,
+ "action_id" : 61,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9936,10 +10026,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 34,
+ "id" : 35,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -9950,14 +10040,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [61],
+ "action_ids" : [62],
"actions" : ["FabricEgress.egress_next.set_mpls"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 61,
+ "action_id" : 62,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -9965,10 +10055,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 35,
+ "id" : 36,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -9992,27 +10082,27 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [62, 63, 64],
+ "action_ids" : [63, 64, 65],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_65",
+ "base_default_next" : "node_67",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_65",
- "FabricEgress.egress_next.pop_vlan" : "node_65",
- "FabricEgress.egress_next.drop" : "node_65"
+ "FabricEgress.egress_next.push_vlan" : "node_67",
+ "FabricEgress.egress_next.pop_vlan" : "node_67",
+ "FabricEgress.egress_next.drop" : "node_67"
},
"default_entry" : {
- "action_id" : 64,
+ "action_id" : 65,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next375",
- "id" : 36,
+ "name" : "tbl_next309",
+ "id" : 37,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -10023,25 +10113,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [70],
- "actions" : ["next375"],
- "base_default_next" : "node_67",
+ "action_ids" : [71],
+ "actions" : ["next309"],
+ "base_default_next" : "node_69",
"next_tables" : {
- "next375" : "node_67"
+ "next309" : "node_69"
},
"default_entry" : {
- "action_id" : 70,
+ "action_id" : 71,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next376",
- "id" : 37,
+ "name" : "tbl_next310",
+ "id" : 38,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -10052,25 +10142,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [69],
- "actions" : ["next376"],
- "base_default_next" : "node_73",
+ "action_ids" : [70],
+ "actions" : ["next310"],
+ "base_default_next" : "node_75",
"next_tables" : {
- "next376" : "node_73"
+ "next310" : "node_75"
},
"default_entry" : {
- "action_id" : 69,
+ "action_id" : 70,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next379",
- "id" : 38,
+ "name" : "tbl_next313",
+ "id" : 39,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -10081,25 +10171,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [72],
- "actions" : ["next379"],
- "base_default_next" : "node_71",
+ "action_ids" : [73],
+ "actions" : ["next313"],
+ "base_default_next" : "node_73",
"next_tables" : {
- "next379" : "node_71"
+ "next313" : "node_73"
},
"default_entry" : {
- "action_id" : 72,
+ "action_id" : 73,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next380",
- "id" : 39,
+ "name" : "tbl_next314",
+ "id" : 40,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -10110,14 +10200,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [71],
- "actions" : ["next380"],
- "base_default_next" : "node_73",
+ "action_ids" : [72],
+ "actions" : ["next314"],
+ "base_default_next" : "node_75",
"next_tables" : {
- "next380" : "node_73"
+ "next314" : "node_75"
},
"default_entry" : {
- "action_id" : 71,
+ "action_id" : 72,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -10125,7 +10215,7 @@
},
{
"name" : "tbl_spgw_gtpu_encap",
- "id" : 40,
+ "id" : 41,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 339,
@@ -10139,14 +10229,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [65],
+ "action_ids" : [66],
"actions" : ["FabricEgress.spgw.gtpu_encap"],
- "base_default_next" : "node_76",
+ "base_default_next" : "node_78",
"next_tables" : {
- "FabricEgress.spgw.gtpu_encap" : "node_76"
+ "FabricEgress.spgw.gtpu_encap" : "node_78"
},
"default_entry" : {
- "action_id" : 65,
+ "action_id" : 66,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -10154,7 +10244,7 @@
},
{
"name" : "tbl_spgw342",
- "id" : 41,
+ "id" : 42,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 342,
@@ -10168,14 +10258,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [73],
+ "action_ids" : [74],
"actions" : ["spgw342"],
"base_default_next" : null,
"next_tables" : {
"spgw342" : null
},
"default_entry" : {
- "action_id" : 73,
+ "action_id" : 74,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -10185,11 +10275,11 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_54",
- "id" : 20,
+ "name" : "node_56",
+ "id" : 21,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 103,
+ "line" : 108,
"column" : 33,
"source_fragment" : "fabric_metadata"
},
@@ -10205,11 +10295,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_56"
+ "false_next" : "node_58"
},
{
- "name" : "node_56",
- "id" : 21,
+ "name" : "node_58",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -10231,14 +10321,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_58"
+ "false_next" : "node_60"
},
{
- "name" : "node_58",
- "id" : 22,
+ "name" : "node_60",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -10273,15 +10363,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_60"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_62"
},
{
- "name" : "node_60",
- "id" : 23,
+ "name" : "node_62",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -10299,15 +10389,15 @@
}
}
},
- "true_next" : "node_61",
+ "true_next" : "node_63",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_61",
- "id" : 24,
+ "name" : "node_63",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -10326,11 +10416,11 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_65",
- "id" : 25,
+ "name" : "node_67",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -10345,15 +10435,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_69"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_71"
},
{
- "name" : "node_67",
- "id" : 26,
+ "name" : "node_69",
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -10371,15 +10461,15 @@
}
}
},
- "true_next" : "tbl_next376",
- "false_next" : "node_73"
+ "true_next" : "tbl_next310",
+ "false_next" : "node_75"
},
{
- "name" : "node_69",
- "id" : 27,
+ "name" : "node_71",
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -10414,15 +10504,15 @@
}
}
},
- "true_next" : "tbl_next379",
- "false_next" : "node_73"
+ "true_next" : "tbl_next313",
+ "false_next" : "node_75"
},
{
- "name" : "node_71",
- "id" : 28,
+ "name" : "node_73",
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -10440,12 +10530,12 @@
}
}
},
- "true_next" : "tbl_next380",
- "false_next" : "node_73"
+ "true_next" : "tbl_next314",
+ "false_next" : "node_75"
},
{
- "name" : "node_73",
- "id" : 29,
+ "name" : "node_75",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 337,
@@ -10471,14 +10561,14 @@
}
},
"false_next" : null,
- "true_next" : "node_74"
+ "true_next" : "node_76"
},
{
- "name" : "node_74",
- "id" : 30,
+ "name" : "node_76",
+ "id" : 31,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 106,
+ "line" : 111,
"column" : 24,
"source_fragment" : "fabric_metadata"
},
@@ -10494,11 +10584,11 @@
}
},
"true_next" : "tbl_spgw_gtpu_encap",
- "false_next" : "node_76"
+ "false_next" : "node_78"
},
{
- "name" : "node_76",
- "id" : 31,
+ "name" : "node_78",
+ "id" : 32,
"source_info" : {
"filename" : "include/control/spgw.p4",
"line" : 341,
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
index a5547a0..31906c7 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
@@ -156,6 +156,54 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -232,6 +280,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -253,30 +307,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 48735793
name: "FabricIngress.next.xconnect"
alias: "xconnect"
@@ -327,9 +357,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -533,6 +560,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -545,6 +577,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -603,6 +640,30 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -648,18 +709,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 24640974
name: "FabricIngress.next.output_xconnect"
alias: "output_xconnect"
@@ -718,33 +767,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -1036,6 +1058,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -1047,17 +1091,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 321989420
name: "FabricIngress.next.xconnect_counter"
alias: "xconnect_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index f2edc55..3b0151c 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -36,7 +36,8 @@
["userMetadata.l4_dport", 16, false],
["userMetadata.ipv4_src_addr", 32, false],
["userMetadata.ipv4_dst_addr", 32, false],
- ["_padding_0", 5, false]
+ ["userMetadata.port_type", 2, false],
+ ["_padding_0", 3, false]
]
},
{
@@ -1792,7 +1793,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 85,
+ "line" : 87,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -1822,9 +1823,33 @@
}
},
{
- "name" : "FabricIngress.acl.acl_counter",
+ "name" : "FabricIngress.pre_next.next_mpls_counter",
"id" : 4,
"is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_mpls",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 29,
+ "column" : 50,
+ "source_fragment" : "next_mpls_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan_counter",
+ "id" : 5,
+ "is_direct" : true,
+ "binding" : "FabricIngress.pre_next.next_vlan",
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 54,
+ "column" : 50,
+ "source_fragment" : "next_vlan_counter"
+ }
+ },
+ {
+ "name" : "FabricIngress.acl.acl_counter",
+ "id" : 6,
+ "is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
"filename" : "include/control/acl.p4",
@@ -1834,56 +1859,44 @@
}
},
{
- "name" : "FabricIngress.next.next_vlan_counter",
- "id" : 5,
- "is_direct" : true,
- "binding" : "FabricIngress.next.next_vlan",
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 67,
- "column" : 50,
- "source_fragment" : "next_vlan_counter"
- }
- },
- {
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 6,
+ "id" : 7,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 107,
+ "line" : 56,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 7,
+ "id" : 8,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 126,
"column" : 50,
"source_fragment" : "hashed_counter"
}
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 8,
+ "id" : 9,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 228,
+ "line" : 163,
"column" : 50,
"source_fragment" : "multicast_counter"
}
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 9,
+ "id" : 10,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -1895,7 +1908,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 10,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -1907,12 +1920,12 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 11,
+ "id" : 12,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 248,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
@@ -2088,9 +2101,15 @@
"primitives" : []
},
{
- "name" : "FabricIngress.filtering.deny",
+ "name" : "nop",
"id" : 7,
"runtime_data" : [],
+ "primitives" : []
+ },
+ {
+ "name" : "FabricIngress.filtering.deny",
+ "id" : 8,
+ "runtime_data" : [],
"primitives" : [
{
"op" : "assign",
@@ -2149,22 +2168,70 @@
"column" : 8,
"source_fragment" : "fabric_metadata.skip_next = true"
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.port_type"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 119,
+ "column" : 38,
+ "source_fragment" : "0x0; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 8,
- "runtime_data" : [],
- "primitives" : []
+ "id" : 9,
+ "runtime_data" : [
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.port_type"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 8,
+ "source_fragment" : "fabric_metadata.port_type = port_type"
+ }
+ }
+ ]
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 9,
+ "id" : 10,
"runtime_data" : [
{
"name" : "vlan_id",
"bitwidth" : 12
+ },
+ {
+ "name" : "port_type",
+ "bitwidth" : 2
}
],
"primitives" : [
@@ -2182,16 +2249,35 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 8,
"source_fragment" : "fabric_metadata.vlan_id = vlan_id"
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.port_type"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 44,
+ "column" : 8,
+ "source_fragment" : "fabric_metadata.port_type = port_type; ..."
+ }
}
]
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 10,
+ "id" : 11,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2213,7 +2299,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 88,
+ "line" : 90,
"column" : 8,
"source_fragment" : "fabric_metadata.fwd_type = fwd_type"
}
@@ -2222,7 +2308,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 11,
+ "id" : 12,
"runtime_data" : [
{
"name" : "next_id",
@@ -2253,7 +2339,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 12,
+ "id" : 13,
"runtime_data" : [
{
"name" : "next_id",
@@ -2303,7 +2389,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 13,
+ "id" : 14,
"runtime_data" : [
{
"name" : "next_id",
@@ -2334,13 +2420,75 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 14,
+ "id" : 15,
"runtime_data" : [],
"primitives" : []
},
{
+ "name" : "FabricIngress.pre_next.set_mpls_label",
+ "id" : 16,
+ "runtime_data" : [
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.mpls_label"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 32,
+ "column" : 8,
+ "source_fragment" : "fabric_metadata.mpls_label = label"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.pre_next.set_vlan",
+ "id" : 17,
+ "runtime_data" : [
+ {
+ "name" : "vlan_id",
+ "bitwidth" : 12
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.vlan_id"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
+ }
+ }
+ ]
+ },
+ {
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 15,
+ "id" : 18,
"runtime_data" : [
{
"name" : "next_id",
@@ -2371,7 +2519,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 16,
+ "id" : 19,
"runtime_data" : [],
"primitives" : [
{
@@ -2426,7 +2574,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 17,
+ "id" : 20,
"runtime_data" : [
{
"name" : "clone_id",
@@ -2457,7 +2605,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 18,
+ "id" : 21,
"runtime_data" : [],
"primitives" : [
{
@@ -2508,105 +2656,12 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 19,
+ "id" : 22,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricIngress.next.set_vlan",
- "id" : 20,
- "runtime_data" : [
- {
- "name" : "vlan_id",
- "bitwidth" : 12
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata.vlan_id"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 70,
- "column" : 8,
- "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
- }
- }
- ]
- },
- {
"name" : "FabricIngress.next.output_xconnect",
- "id" : 21,
- "runtime_data" : [
- {
- "name" : "port_num",
- "bitwidth" : 9
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 31,
- "column" : 5,
- "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 22,
- "runtime_data" : [
- {
- "name" : "next_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "userMetadata.next_id"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 115,
- "column" : 8,
- "source_fragment" : "fabric_metadata.next_id = next_id"
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.next.output_hashed",
"id" : 23,
"runtime_data" : [
{
@@ -2637,20 +2692,12 @@
]
},
{
- "name" : "FabricIngress.next.routing_hashed",
+ "name" : "FabricIngress.next.set_next_id_xconnect",
"id" : 24,
"runtime_data" : [
{
- "name" : "port_num",
- "bitwidth" : 9
- },
- {
- "name" : "smac",
- "bitwidth" : 48
- },
- {
- "name" : "dmac",
- "bitwidth" : 48
+ "name" : "next_id",
+ "bitwidth" : 32
}
],
"primitives" : [
@@ -2659,39 +2706,32 @@
"parameters" : [
{
"type" : "field",
- "value" : ["ethernet", "src_addr"]
+ "value" : ["scalars", "userMetadata.next_id"]
},
{
"type" : "runtime_data",
- "value" : 1
+ "value" : 0
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 36,
+ "line" : 64,
"column" : 8,
- "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ "source_fragment" : "fabric_metadata.next_id = next_id"
}
- },
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.next.output_hashed",
+ "id" : 25,
+ "runtime_data" : [
{
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ethernet", "dst_addr"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 41,
- "column" : 8,
- "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
- }
- },
+ "name" : "port_num",
+ "bitwidth" : 9
+ }
+ ],
+ "primitives" : [
{
"op" : "assign",
"parameters" : [
@@ -2714,8 +2754,8 @@
]
},
{
- "name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 25,
+ "name" : "FabricIngress.next.routing_hashed",
+ "id" : 26,
"runtime_data" : [
{
"name" : "port_num",
@@ -2728,10 +2768,6 @@
{
"name" : "dmac",
"bitwidth" : 48
- },
- {
- "name" : "label",
- "bitwidth" : 20
}
],
"primitives" : [
@@ -2740,25 +2776,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "userMetadata.mpls_label"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 46,
- "column" : 8,
- "source_fragment" : "fabric_metadata.mpls_label = label; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["ethernet", "src_addr"]
},
{
@@ -2815,7 +2832,7 @@
},
{
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 26,
+ "id" : 27,
"runtime_data" : [
{
"name" : "group_id",
@@ -2837,7 +2854,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 231,
+ "line" : 166,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -2866,7 +2883,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 232,
+ "line" : 167,
"column" : 8,
"source_fragment" : "fabric_metadata.is_multicast = true"
}
@@ -2875,7 +2892,7 @@
},
{
"name" : "packetio25",
- "id" : 27,
+ "id" : 28,
"runtime_data" : [],
"primitives" : [
{
@@ -2954,8 +2971,8 @@
]
},
{
- "name" : "filtering111",
- "id" : 28,
+ "name" : "filtering113",
+ "id" : 29,
"runtime_data" : [],
"primitives" : [
{
@@ -2972,7 +2989,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
}
@@ -2991,7 +3008,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 112,
+ "line" : 114,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
}
@@ -3010,7 +3027,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 113,
+ "line" : 115,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
}
@@ -3018,8 +3035,8 @@
]
},
{
- "name" : "filtering127",
- "id" : 29,
+ "name" : "filtering129",
+ "id" : 30,
"runtime_data" : [],
"primitives" : [
{
@@ -3036,7 +3053,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
}
@@ -3044,8 +3061,8 @@
]
},
{
- "name" : "acl101",
- "id" : 30,
+ "name" : "acl102",
+ "id" : 31,
"runtime_data" : [],
"primitives" : [
{
@@ -3062,7 +3079,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_tcp.sport"
}
@@ -3081,7 +3098,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 102,
+ "line" : 103,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_tcp.dport"
}
@@ -3089,8 +3106,8 @@
]
},
{
- "name" : "acl104",
- "id" : 31,
+ "name" : "acl105",
+ "id" : 32,
"runtime_data" : [],
"primitives" : [
{
@@ -3107,7 +3124,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 16,
"source_fragment" : "l4_sport = hdr.inner_udp.sport"
}
@@ -3126,7 +3143,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 105,
+ "line" : 106,
"column" : 16,
"source_fragment" : "l4_dport = hdr.inner_udp.dport"
}
@@ -3134,8 +3151,8 @@
]
},
{
- "name" : "acl97",
- "id" : 32,
+ "name" : "acl98",
+ "id" : 33,
"runtime_data" : [],
"primitives" : [
{
@@ -3152,7 +3169,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
}
@@ -3171,7 +3188,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 98,
+ "line" : 99,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
}
@@ -3190,7 +3207,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 99,
+ "line" : 100,
"column" : 12,
"source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
}
@@ -3198,8 +3215,8 @@
]
},
{
- "name" : "acl112",
- "id" : 33,
+ "name" : "acl113",
+ "id" : 34,
"runtime_data" : [],
"primitives" : [
{
@@ -3216,7 +3233,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 16,
"source_fragment" : "l4_sport = hdr.tcp.sport"
}
@@ -3235,7 +3252,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 113,
+ "line" : 114,
"column" : 16,
"source_fragment" : "l4_dport = hdr.tcp.dport"
}
@@ -3243,8 +3260,8 @@
]
},
{
- "name" : "acl115",
- "id" : 34,
+ "name" : "acl116",
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -3261,7 +3278,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 16,
"source_fragment" : "l4_sport = hdr.udp.sport"
}
@@ -3280,7 +3297,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 116,
+ "line" : 117,
"column" : 16,
"source_fragment" : "l4_dport = hdr.udp.dport"
}
@@ -3288,8 +3305,8 @@
]
},
{
- "name" : "acl108",
- "id" : 35,
+ "name" : "acl109",
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -3306,7 +3323,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 12,
"source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
}
@@ -3325,7 +3342,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 109,
+ "line" : 110,
"column" : 12,
"source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
}
@@ -3344,7 +3361,7 @@
],
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 110,
+ "line" : 111,
"column" : 12,
"source_fragment" : "ip_proto = hdr.ipv4.protocol"
}
@@ -3353,7 +3370,7 @@
},
{
"name" : "acl27",
- "id" : 36,
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -3455,7 +3472,7 @@
},
{
"name" : "port_counter31",
- "id" : 37,
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -3513,7 +3530,7 @@
},
{
"name" : "port_counter34",
- "id" : 38,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -3571,7 +3588,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 39,
+ "id" : 40,
"runtime_data" : [],
"primitives" : [
{
@@ -3584,7 +3601,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 270,
+ "line" : 204,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -3603,7 +3620,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 206,
"column" : 8,
"source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
}
@@ -3612,7 +3629,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 40,
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -3625,7 +3642,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 277,
+ "line" : 211,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -3644,7 +3661,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 278,
+ "line" : 212,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
}
@@ -3663,7 +3680,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 279,
+ "line" : 213,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -3682,7 +3699,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 280,
+ "line" : 214,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -3701,7 +3718,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 281,
+ "line" : 215,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
}
@@ -3720,7 +3737,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 118,
+ "line" : 130,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3729,7 +3746,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 41,
+ "id" : 42,
"runtime_data" : [],
"primitives" : [
{
@@ -3742,7 +3759,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 289,
+ "line" : 223,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -3761,7 +3778,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 290,
+ "line" : 224,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
}
@@ -3780,7 +3797,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 225,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
}
@@ -3799,7 +3816,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 117,
+ "line" : 129,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -3818,7 +3835,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 293,
+ "line" : 227,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
}
@@ -3827,7 +3844,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 42,
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -3840,7 +3857,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 322,
+ "line" : 256,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -3849,7 +3866,7 @@
},
{
"name" : "FabricEgress.egress_next.drop",
- "id" : 43,
+ "id" : 44,
"runtime_data" : [],
"primitives" : [
{
@@ -3862,7 +3879,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 261,
"column" : 8,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -3871,7 +3888,7 @@
},
{
"name" : "packetio41",
- "id" : 44,
+ "id" : 45,
"runtime_data" : [],
"primitives" : [
{
@@ -3888,7 +3905,7 @@
},
{
"name" : "packetio44",
- "id" : 45,
+ "id" : 46,
"runtime_data" : [],
"primitives" : [
{
@@ -3938,29 +3955,7 @@
]
},
{
- "name" : "next349",
- "id" : 46,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 349,
- "column" : 12,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- }
- }
- ]
- },
- {
- "name" : "next376",
+ "name" : "next283",
"id" : 47,
"runtime_data" : [],
"primitives" : [
@@ -3974,7 +3969,29 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 283,
+ "column" : 12,
+ "source_fragment" : "mark_to_drop(standard_metadata)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "next310",
+ "id" : 48,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "mark_to_drop",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "standard_metadata"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -3982,8 +3999,8 @@
]
},
{
- "name" : "next375",
- "id" : 48,
+ "name" : "next309",
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -4023,7 +4040,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -4031,8 +4048,8 @@
]
},
{
- "name" : "next380",
- "id" : 49,
+ "name" : "next314",
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -4045,7 +4062,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -4053,8 +4070,8 @@
]
},
{
- "name" : "next379",
- "id" : 50,
+ "name" : "next313",
+ "id" : 51,
"runtime_data" : [],
"primitives" : [
{
@@ -4094,7 +4111,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -4108,7 +4125,7 @@
"id" : 0,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 46,
+ "line" : 47,
"column" : 8,
"source_fragment" : "FabricIngress"
},
@@ -4130,25 +4147,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [27],
+ "action_ids" : [28],
"actions" : ["packetio25"],
"base_default_next" : "node_4",
"next_tables" : {
"packetio25" : "node_4"
},
"default_entry" : {
- "action_id" : 27,
+ "action_id" : 28,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering111",
+ "name" : "tbl_filtering113",
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 111,
+ "line" : 113,
"column" : 36,
"source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
@@ -4159,25 +4176,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [28],
- "actions" : ["filtering111"],
+ "action_ids" : [29],
+ "actions" : ["filtering113"],
"base_default_next" : "node_6",
"next_tables" : {
- "filtering111" : "node_6"
+ "filtering113" : "node_6"
},
"default_entry" : {
- "action_id" : 28,
+ "action_id" : 29,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_filtering127",
+ "name" : "tbl_filtering129",
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 127,
+ "line" : 129,
"column" : 37,
"source_fragment" : "="
},
@@ -4188,14 +4205,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [29],
- "actions" : ["filtering127"],
+ "action_ids" : [30],
+ "actions" : ["filtering129"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
- "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
+ "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 29,
+ "action_id" : 30,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4206,7 +4223,7 @@
"id" : 3,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 53,
+ "line" : 55,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -4236,7 +4253,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [7, 8, 9],
+ "action_ids" : [8, 9, 10],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -4245,7 +4262,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 7,
+ "action_id" : 8,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4256,7 +4273,7 @@
"id" : 4,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 92,
+ "line" : 94,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -4292,14 +4309,14 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [10],
+ "action_ids" : [11],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
"base_default_next" : "node_10",
"next_tables" : {
"FabricIngress.filtering.set_forwarding_type" : "node_10"
},
"default_entry" : {
- "action_id" : 10,
+ "action_id" : 11,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
@@ -4334,12 +4351,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [11, 0],
+ "action_ids" : [12, 0],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_bridging" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 0,
@@ -4371,12 +4388,12 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [12, 1],
+ "action_ids" : [13, 1],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.pop_mpls_and_next" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 1,
@@ -4408,13 +4425,13 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [13, 14, 2],
+ "action_ids" : [14, 15, 2],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
- "base_default_next" : "tbl_acl27",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
- "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
- "nop" : "tbl_acl27"
+ "FabricIngress.forwarding.set_next_id_routing_v4" : "node_17",
+ "FabricIngress.forwarding.nop_routing_v4" : "node_17",
+ "nop" : "node_17"
},
"default_entry" : {
"action_id" : 2,
@@ -4424,9 +4441,83 @@
}
},
{
- "name" : "tbl_acl27",
+ "name" : "FabricIngress.pre_next.next_mpls",
"id" : 8,
"source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 36,
+ "column" : 10,
+ "source_fragment" : "next_mpls"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata.next_id"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [16, 3],
+ "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+ "base_default_next" : "FabricIngress.pre_next.next_vlan",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+ "nop" : "FabricIngress.pre_next.next_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 3,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.pre_next.next_vlan",
+ "id" : 9,
+ "source_info" : {
+ "filename" : "include/control/pre_next.p4",
+ "line" : 73,
+ "column" : 10,
+ "source_fragment" : "next_vlan"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "next_id",
+ "target" : ["scalars", "userMetadata.next_id"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : true,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [17, 4],
+ "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
+ "base_default_next" : "tbl_acl27",
+ "next_tables" : {
+ "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
+ "nop" : "tbl_acl27"
+ },
+ "default_entry" : {
+ "action_id" : 4,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_acl27",
+ "id" : 10,
+ "source_info" : {
"filename" : "include/control/acl.p4",
"line" : 27,
"column" : 4,
@@ -4439,25 +4530,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36],
+ "action_ids" : [37],
"actions" : ["acl27"],
- "base_default_next" : "node_18",
+ "base_default_next" : "node_21",
"next_tables" : {
- "acl27" : "node_18"
+ "acl27" : "node_21"
},
"default_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl97",
- "id" : 9,
+ "name" : "tbl_acl98",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 97,
+ "line" : 98,
"column" : 21,
"source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
},
@@ -4468,25 +4559,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [32],
- "actions" : ["acl97"],
- "base_default_next" : "node_20",
+ "action_ids" : [33],
+ "actions" : ["acl98"],
+ "base_default_next" : "node_23",
"next_tables" : {
- "acl97" : "node_20"
+ "acl98" : "node_23"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl101",
- "id" : 10,
+ "name" : "tbl_acl102",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 101,
+ "line" : 102,
"column" : 25,
"source_fragment" : "= hdr.inner_tcp.sport; ..."
},
@@ -4497,25 +4588,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [30],
- "actions" : ["acl101"],
+ "action_ids" : [31],
+ "actions" : ["acl102"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl101" : "FabricIngress.acl.acl"
+ "acl102" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 30,
+ "action_id" : 31,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl104",
- "id" : 11,
+ "name" : "tbl_acl105",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 104,
+ "line" : 105,
"column" : 25,
"source_fragment" : "= hdr.inner_udp.sport; ..."
},
@@ -4526,25 +4617,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31],
- "actions" : ["acl104"],
+ "action_ids" : [32],
+ "actions" : ["acl105"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl104" : "FabricIngress.acl.acl"
+ "acl105" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 31,
+ "action_id" : 32,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl108",
- "id" : 12,
+ "name" : "tbl_acl109",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 108,
+ "line" : 109,
"column" : 21,
"source_fragment" : "= hdr.ipv4.src_addr; ..."
},
@@ -4555,25 +4646,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35],
- "actions" : ["acl108"],
- "base_default_next" : "node_26",
+ "action_ids" : [36],
+ "actions" : ["acl109"],
+ "base_default_next" : "node_29",
"next_tables" : {
- "acl108" : "node_26"
+ "acl109" : "node_29"
},
"default_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl112",
- "id" : 13,
+ "name" : "tbl_acl113",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 112,
+ "line" : 113,
"column" : 25,
"source_fragment" : "= hdr.tcp.sport; ..."
},
@@ -4584,25 +4675,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33],
- "actions" : ["acl112"],
+ "action_ids" : [34],
+ "actions" : ["acl113"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl112" : "FabricIngress.acl.acl"
+ "acl113" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 33,
+ "action_id" : 34,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_acl115",
- "id" : 14,
+ "name" : "tbl_acl116",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 115,
+ "line" : 116,
"column" : 25,
"source_fragment" : "= hdr.udp.sport; ..."
},
@@ -4613,14 +4704,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34],
- "actions" : ["acl115"],
+ "action_ids" : [35],
+ "actions" : ["acl116"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
- "acl115" : "FabricIngress.acl.acl"
+ "acl116" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 34,
+ "action_id" : 35,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4628,7 +4719,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 15,
+ "id" : 17,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 66,
@@ -4707,6 +4798,12 @@
"name" : "l4_dport",
"target" : ["scalars", "acl_l4_dport"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "port_type",
+ "target" : ["scalars", "userMetadata.port_type"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -4715,18 +4812,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [15, 16, 17, 18, 19],
+ "action_ids" : [18, 19, 20, 21, 22],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_31",
+ "base_default_next" : "node_34",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_31",
- "FabricIngress.acl.punt_to_cpu" : "node_31",
- "FabricIngress.acl.set_clone_session_id" : "node_31",
- "FabricIngress.acl.drop" : "node_31",
- "FabricIngress.acl.nop_acl" : "node_31"
+ "FabricIngress.acl.set_next_id_acl" : "node_34",
+ "FabricIngress.acl.punt_to_cpu" : "node_34",
+ "FabricIngress.acl.set_clone_session_id" : "node_34",
+ "FabricIngress.acl.drop" : "node_34",
+ "FabricIngress.acl.nop_acl" : "node_34"
},
"default_entry" : {
- "action_id" : 19,
+ "action_id" : 22,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4734,10 +4831,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 16,
+ "id" : 18,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 119,
+ "line" : 68,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -4761,7 +4858,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [21, 22, 4],
+ "action_ids" : [23, 24, 5],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
@@ -4770,7 +4867,7 @@
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 4,
+ "action_id" : 5,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4778,10 +4875,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 17,
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 202,
+ "line" : 138,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -4800,22 +4897,21 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [23, 24, 25, 5],
- "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
+ "action_ids" : [25, 26, 6],
+ "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
"FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
"FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
- "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
"nop" : "FabricIngress.next.multicast"
}
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 18,
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 236,
+ "line" : 171,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -4833,52 +4929,15 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [26, 6],
+ "action_ids" : [27, 7],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
- "base_default_next" : "FabricIngress.next.next_vlan",
+ "base_default_next" : "node_38",
"next_tables" : {
- "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
- "nop" : "FabricIngress.next.next_vlan"
+ "FabricIngress.next.set_mcast_group_id" : "node_38",
+ "nop" : "node_38"
},
"default_entry" : {
- "action_id" : 6,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.next.next_vlan",
- "id" : 19,
- "source_info" : {
- "filename" : "include/control/next.p4",
- "line" : 86,
- "column" : 10,
- "source_fragment" : "next_vlan"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "next_id",
- "target" : ["scalars", "userMetadata.next_id"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [20, 3],
- "actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_36",
- "next_tables" : {
- "FabricIngress.next.set_vlan" : "node_36",
- "nop" : "node_36"
- },
- "default_entry" : {
- "action_id" : 3,
+ "action_id" : 7,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4886,7 +4945,7 @@
},
{
"name" : "tbl_port_counter31",
- "id" : 20,
+ "id" : 21,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -4900,14 +4959,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37],
+ "action_ids" : [38],
"actions" : ["port_counter31"],
- "base_default_next" : "node_38",
+ "base_default_next" : "node_40",
"next_tables" : {
- "port_counter31" : "node_38"
+ "port_counter31" : "node_40"
},
"default_entry" : {
- "action_id" : 37,
+ "action_id" : 38,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4915,7 +4974,7 @@
},
{
"name" : "tbl_port_counter34",
- "id" : 21,
+ "id" : 22,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -4929,14 +4988,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38],
+ "action_ids" : [39],
"actions" : ["port_counter34"],
"base_default_next" : null,
"next_tables" : {
"port_counter34" : null
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4949,7 +5008,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 183,
+ "line" : 125,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -5010,7 +5069,7 @@
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 112,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -5025,7 +5084,7 @@
}
}
},
- "true_next" : "tbl_filtering111",
+ "true_next" : "tbl_filtering113",
"false_next" : "node_6"
},
{
@@ -5033,7 +5092,7 @@
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 122,
+ "line" : 124,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -5055,7 +5114,7 @@
}
}
},
- "true_next" : "tbl_filtering127",
+ "true_next" : "tbl_filtering129",
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
@@ -5063,7 +5122,7 @@
"id" : 3,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 69,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding"
},
@@ -5086,7 +5145,7 @@
}
},
"true_next" : "node_11",
- "false_next" : "tbl_acl27"
+ "false_next" : "node_17"
},
{
"name" : "node_11",
@@ -5164,14 +5223,44 @@
}
},
"true_next" : "FabricIngress.forwarding.routing_v4",
+ "false_next" : "node_17"
+ },
+ {
+ "name" : "node_17",
+ "id" : 7,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 74,
+ "column" : 12,
+ "source_fragment" : "fabric_metadata.skip_next"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "userMetadata.skip_next"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "FabricIngress.pre_next.next_mpls",
"false_next" : "tbl_acl27"
},
{
- "name" : "node_18",
- "id" : 7,
+ "name" : "node_21",
+ "id" : 8,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 96,
+ "line" : 97,
"column" : 12,
"source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
},
@@ -5203,15 +5292,15 @@
}
}
},
- "true_next" : "tbl_acl97",
- "false_next" : "node_24"
+ "true_next" : "tbl_acl98",
+ "false_next" : "node_27"
},
{
- "name" : "node_20",
- "id" : 8,
+ "name" : "node_23",
+ "id" : 9,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 100,
+ "line" : 101,
"column" : 16,
"source_fragment" : "hdr.inner_tcp.isValid()"
},
@@ -5226,15 +5315,15 @@
}
}
},
- "true_next" : "tbl_acl101",
- "false_next" : "node_22"
+ "true_next" : "tbl_acl102",
+ "false_next" : "node_25"
},
{
- "name" : "node_22",
- "id" : 9,
+ "name" : "node_25",
+ "id" : 10,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 103,
+ "line" : 104,
"column" : 23,
"source_fragment" : "hdr.inner_udp.isValid()"
},
@@ -5249,15 +5338,15 @@
}
}
},
- "true_next" : "tbl_acl104",
+ "true_next" : "tbl_acl105",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_24",
- "id" : 10,
+ "name" : "node_27",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 107,
+ "line" : 108,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -5272,15 +5361,15 @@
}
}
},
- "true_next" : "tbl_acl108",
+ "true_next" : "tbl_acl109",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_26",
- "id" : 11,
+ "name" : "node_29",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 111,
+ "line" : 112,
"column" : 16,
"source_fragment" : "hdr.tcp.isValid()"
},
@@ -5295,15 +5384,15 @@
}
}
},
- "true_next" : "tbl_acl112",
- "false_next" : "node_28"
+ "true_next" : "tbl_acl113",
+ "false_next" : "node_31"
},
{
- "name" : "node_28",
- "id" : 12,
+ "name" : "node_31",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/acl.p4",
- "line" : 114,
+ "line" : 115,
"column" : 23,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -5318,15 +5407,15 @@
}
}
},
- "true_next" : "tbl_acl115",
+ "true_next" : "tbl_acl116",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_31",
- "id" : 13,
+ "name" : "node_34",
+ "id" : 14,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 73,
+ "line" : 78,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next"
},
@@ -5352,8 +5441,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_38",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -5375,11 +5464,11 @@
}
},
"true_next" : "tbl_port_counter31",
- "false_next" : "node_38"
+ "false_next" : "node_40"
},
{
- "name" : "node_38",
- "id" : 15,
+ "name" : "node_40",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -5410,15 +5499,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 91,
+ "line" : 96,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_42",
+ "init_table" : "node_44",
"tables" : [
{
"name" : "tbl_packetio41",
- "id" : 22,
+ "id" : 23,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -5432,14 +5521,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [44],
+ "action_ids" : [45],
"actions" : ["packetio41"],
- "base_default_next" : "node_44",
+ "base_default_next" : "node_46",
"next_tables" : {
- "packetio41" : "node_44"
+ "packetio41" : "node_46"
},
"default_entry" : {
- "action_id" : 44,
+ "action_id" : 45,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5447,7 +5536,7 @@
},
{
"name" : "tbl_packetio44",
- "id" : 23,
+ "id" : 24,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -5461,25 +5550,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45],
+ "action_ids" : [46],
"actions" : ["packetio44"],
- "base_default_next" : "node_46",
+ "base_default_next" : "node_48",
"next_tables" : {
- "packetio44" : "node_46"
+ "packetio44" : "node_48"
},
"default_entry" : {
- "action_id" : 45,
+ "action_id" : 46,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next349",
- "id" : 24,
+ "name" : "tbl_next283",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 349,
+ "line" : 283,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -5490,14 +5579,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [46],
- "actions" : ["next349"],
- "base_default_next" : "node_48",
+ "action_ids" : [47],
+ "actions" : ["next283"],
+ "base_default_next" : "node_50",
"next_tables" : {
- "next349" : "node_48"
+ "next283" : "node_50"
},
"default_entry" : {
- "action_id" : 46,
+ "action_id" : 47,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5505,10 +5594,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 25,
+ "id" : 26,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -5519,14 +5608,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39],
+ "action_ids" : [40],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 39,
+ "action_id" : 40,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5534,10 +5623,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 26,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 355,
+ "line" : 289,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -5548,14 +5637,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [40],
+ "action_ids" : [41],
"actions" : ["FabricEgress.egress_next.set_mpls"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 40,
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5563,10 +5652,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 27,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 265,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -5590,27 +5679,27 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [41, 42, 43],
+ "action_ids" : [42, 43, 44],
"actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
- "base_default_next" : "node_53",
+ "base_default_next" : "node_55",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_53",
- "FabricEgress.egress_next.pop_vlan" : "node_53",
- "FabricEgress.egress_next.drop" : "node_53"
+ "FabricEgress.egress_next.push_vlan" : "node_55",
+ "FabricEgress.egress_next.pop_vlan" : "node_55",
+ "FabricEgress.egress_next.drop" : "node_55"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 44,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next375",
- "id" : 28,
+ "name" : "tbl_next309",
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 375,
+ "line" : 309,
"column" : 25,
"source_fragment" : "="
},
@@ -5621,25 +5710,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [48],
- "actions" : ["next375"],
- "base_default_next" : "node_55",
+ "action_ids" : [49],
+ "actions" : ["next309"],
+ "base_default_next" : "node_57",
"next_tables" : {
- "next375" : "node_55"
+ "next309" : "node_57"
},
"default_entry" : {
- "action_id" : 48,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next376",
- "id" : 29,
+ "name" : "tbl_next310",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -5650,25 +5739,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [47],
- "actions" : ["next376"],
+ "action_ids" : [48],
+ "actions" : ["next310"],
"base_default_next" : null,
"next_tables" : {
- "next376" : null
+ "next310" : null
},
"default_entry" : {
- "action_id" : 47,
+ "action_id" : 48,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next379",
- "id" : 30,
+ "name" : "tbl_next313",
+ "id" : 31,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 379,
+ "line" : 313,
"column" : 29,
"source_fragment" : "="
},
@@ -5679,25 +5768,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [50],
- "actions" : ["next379"],
- "base_default_next" : "node_59",
+ "action_ids" : [51],
+ "actions" : ["next313"],
+ "base_default_next" : "node_61",
"next_tables" : {
- "next379" : "node_59"
+ "next313" : "node_61"
},
"default_entry" : {
- "action_id" : 50,
+ "action_id" : 51,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_next380",
- "id" : 31,
+ "name" : "tbl_next314",
+ "id" : 32,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -5708,14 +5797,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [49],
- "actions" : ["next380"],
+ "action_ids" : [50],
+ "actions" : ["next314"],
"base_default_next" : null,
"next_tables" : {
- "next380" : null
+ "next314" : null
},
"default_entry" : {
- "action_id" : 49,
+ "action_id" : 50,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5725,8 +5814,8 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_42",
- "id" : 16,
+ "name" : "node_44",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 39,
@@ -5745,11 +5834,11 @@
}
},
"true_next" : "tbl_packetio41",
- "false_next" : "node_44"
+ "false_next" : "node_46"
},
{
- "name" : "node_44",
- "id" : 17,
+ "name" : "node_46",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -5771,14 +5860,14 @@
}
},
"true_next" : "tbl_packetio44",
- "false_next" : "node_46"
+ "false_next" : "node_48"
},
{
- "name" : "node_46",
- "id" : 18,
+ "name" : "node_48",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 347,
+ "line" : 281,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -5813,15 +5902,15 @@
}
}
},
- "true_next" : "tbl_next349",
- "false_next" : "node_48"
+ "true_next" : "tbl_next283",
+ "false_next" : "node_50"
},
{
- "name" : "node_48",
- "id" : 19,
+ "name" : "node_50",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 352,
+ "line" : 286,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -5839,15 +5928,15 @@
}
}
},
- "true_next" : "node_49",
+ "true_next" : "node_51",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_49",
- "id" : 20,
+ "name" : "node_51",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 353,
+ "line" : 287,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -5866,11 +5955,11 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_53",
- "id" : 21,
+ "name" : "node_55",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 374,
+ "line" : 308,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -5885,15 +5974,15 @@
}
}
},
- "true_next" : "tbl_next375",
- "false_next" : "node_57"
+ "true_next" : "tbl_next309",
+ "false_next" : "node_59"
},
{
- "name" : "node_55",
- "id" : 22,
+ "name" : "node_57",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 376,
+ "line" : 310,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -5912,14 +6001,14 @@
}
},
"false_next" : null,
- "true_next" : "tbl_next376"
+ "true_next" : "tbl_next310"
},
{
- "name" : "node_57",
- "id" : 23,
+ "name" : "node_59",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 378,
+ "line" : 312,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
},
@@ -5955,14 +6044,14 @@
}
},
"false_next" : null,
- "true_next" : "tbl_next379"
+ "true_next" : "tbl_next313"
},
{
- "name" : "node_59",
- "id" : 24,
+ "name" : "node_61",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 380,
+ "line" : 314,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -5981,7 +6070,7 @@
}
},
"false_next" : null,
- "true_next" : "tbl_next380"
+ "true_next" : "tbl_next314"
}
]
}
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
index dd1645b..2765d9f 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
@@ -156,6 +156,54 @@
}
tables {
preamble {
+ id: 36626242
+ name: "FabricIngress.pre_next.next_mpls"
+ alias: "next_mpls"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 22765924
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 330020245
+ size: 1024
+}
+tables {
+ preamble {
+ id: 48011802
+ name: "FabricIngress.pre_next.next_vlan"
+ alias: "next_vlan"
+ }
+ match_fields {
+ id: 1
+ name: "next_id"
+ bitwidth: 32
+ match_type: EXACT
+ }
+ action_refs {
+ id: 33475378
+ }
+ action_refs {
+ id: 28485346
+ annotations: "@defaultonly"
+ scope: DEFAULT_ONLY
+ }
+ const_default_action_id: 28485346
+ direct_resource_ids: 333692067
+ size: 1024
+}
+tables {
+ preamble {
id: 44104738
name: "FabricIngress.acl.acl"
alias: "acl"
@@ -232,6 +280,12 @@
bitwidth: 16
match_type: TERNARY
}
+ match_fields {
+ id: 13
+ name: "port_type"
+ bitwidth: 2
+ match_type: TERNARY
+ }
action_refs {
id: 23623126
}
@@ -253,30 +307,6 @@
}
tables {
preamble {
- id: 35696861
- name: "FabricIngress.next.next_vlan"
- alias: "next_vlan"
- }
- match_fields {
- id: 1
- name: "next_id"
- bitwidth: 32
- match_type: EXACT
- }
- action_refs {
- id: 22099101
- }
- action_refs {
- id: 28485346
- annotations: "@defaultonly"
- scope: DEFAULT_ONLY
- }
- const_default_action_id: 28485346
- direct_resource_ids: 326370320
- size: 1024
-}
-tables {
- preamble {
id: 48735793
name: "FabricIngress.next.xconnect"
alias: "xconnect"
@@ -327,9 +357,6 @@
id: 20985706
}
action_refs {
- id: 27920375
- }
- action_refs {
id: 28485346
annotations: "@defaultonly"
scope: DEFAULT_ONLY
@@ -416,6 +443,11 @@
name: "FabricIngress.filtering.permit"
alias: "permit"
}
+ params {
+ id: 1
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -428,6 +460,11 @@
name: "vlan_id"
bitwidth: 12
}
+ params {
+ id: 2
+ name: "port_type"
+ bitwidth: 2
+ }
}
actions {
preamble {
@@ -486,6 +523,30 @@
}
actions {
preamble {
+ id: 22765924
+ name: "FabricIngress.pre_next.set_mpls_label"
+ alias: "set_mpls_label"
+ }
+ params {
+ id: 1
+ name: "label"
+ bitwidth: 20
+ }
+}
+actions {
+ preamble {
+ id: 33475378
+ name: "FabricIngress.pre_next.set_vlan"
+ alias: "set_vlan"
+ }
+ params {
+ id: 1
+ name: "vlan_id"
+ bitwidth: 12
+ }
+}
+actions {
+ preamble {
id: 23623126
name: "FabricIngress.acl.set_next_id_acl"
alias: "set_next_id_acl"
@@ -531,18 +592,6 @@
}
actions {
preamble {
- id: 22099101
- name: "FabricIngress.next.set_vlan"
- alias: "set_vlan"
- }
- params {
- id: 1
- name: "vlan_id"
- bitwidth: 12
- }
-}
-actions {
- preamble {
id: 24640974
name: "FabricIngress.next.output_xconnect"
alias: "output_xconnect"
@@ -601,33 +650,6 @@
}
actions {
preamble {
- id: 27920375
- name: "FabricIngress.next.mpls_routing_hashed"
- alias: "mpls_routing_hashed"
- }
- params {
- id: 1
- name: "port_num"
- bitwidth: 9
- }
- params {
- id: 2
- name: "smac"
- bitwidth: 48
- }
- params {
- id: 3
- name: "dmac"
- bitwidth: 48
- }
- params {
- id: 4
- name: "label"
- bitwidth: 20
- }
-}
-actions {
- preamble {
id: 21629581
name: "FabricIngress.next.set_mcast_group_id"
alias: "set_mcast_group_id"
@@ -738,6 +760,28 @@
}
direct_counters {
preamble {
+ id: 330020245
+ name: "FabricIngress.pre_next.next_mpls_counter"
+ alias: "next_mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 36626242
+}
+direct_counters {
+ preamble {
+ id: 333692067
+ name: "FabricIngress.pre_next.next_vlan_counter"
+ alias: "next_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 48011802
+}
+direct_counters {
+ preamble {
id: 319194241
name: "FabricIngress.acl.acl_counter"
alias: "acl_counter"
@@ -749,17 +793,6 @@
}
direct_counters {
preamble {
- id: 326370320
- name: "FabricIngress.next.next_vlan_counter"
- alias: "next_vlan_counter"
- }
- spec {
- unit: BOTH
- }
- direct_table_id: 35696861
-}
-direct_counters {
- preamble {
id: 321989420
name: "FabricIngress.next.xconnect_counter"
alias: "xconnect_counter"
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java
index 2ea8b29..3852629 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java
@@ -69,78 +69,6 @@
interpreter = new FabricInterpreter(allCapabilities);
}
- /* Filtering control block */
-
- /**
- * Map treatment to push_internal_vlan action.
- */
- @Test
- public void testFilteringTreatmentPermitWithInternalVlan() throws Exception {
- TrafficTreatment treatment = DefaultTrafficTreatment.builder()
- .pushVlan()
- .setVlanId(VLAN_100)
- .build();
- PiAction mappedAction = interpreter.mapTreatment(treatment,
- FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
- PiActionParam param = new PiActionParam(FabricConstants.VLAN_ID,
- ImmutableByteSequence.copyFrom(VLAN_100.toShort()));
- PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
- .withParameter(param)
- .build();
-
- assertEquals(expectedAction, mappedAction);
- }
-
- /**
- * Map empty treatment to permit action.
- */
- @Test
- public void testFilteringTreatmentPermit() throws Exception {
- TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
- PiAction mappedAction = interpreter.mapTreatment(treatment,
- FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
- PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
- .build();
-
- assertEquals(expectedAction, mappedAction);
- }
-
- /**
- * Map empty treatment and wipeDeferred to permit action.
- */
- @Test
- public void testFilteringTreatmentPermit2() throws Exception {
- TrafficTreatment treatment = DefaultTrafficTreatment.builder()
- .wipeDeferred()
- .build();
- PiAction mappedAction = interpreter.mapTreatment(treatment,
- FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
- PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
- .build();
-
- assertEquals(expectedAction, mappedAction);
- }
-
- /**
- * Map popVlan to permit action.
- */
- @Test
- public void testFilteringTreatmentPermit3() throws Exception {
- TrafficTreatment treatment = DefaultTrafficTreatment.builder()
- .popVlan()
- .build();
- PiAction mappedAction = interpreter.mapTreatment(treatment,
- FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
- PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
- .build();
-
- assertEquals(expectedAction, mappedAction);
- }
-
/* Forwarding control block */
/**
@@ -230,45 +158,39 @@
}
/**
- * Map treatment for hashed table to routing v4 action.
+ * Map treatment to set_vlan_output action.
*/
@Test
- public void testNextTreatmentHashedRoutingMpls() throws Exception {
+ public void testNextVlanTreatment() throws Exception {
TrafficTreatment treatment = DefaultTrafficTreatment.builder()
- .setEthSrc(SRC_MAC)
- .setEthDst(DST_MAC)
- .setOutput(PORT_1)
- .pushMpls()
- .setMpls(MPLS_10)
+ .setVlanId(VLAN_100)
.build();
PiAction mappedAction = interpreter.mapTreatment(
- treatment, FabricConstants.FABRIC_INGRESS_NEXT_HASHED);
- PiActionParam ethSrcParam = new PiActionParam(FabricConstants.SMAC, SRC_MAC.toBytes());
- PiActionParam ethDstParam = new PiActionParam(FabricConstants.DMAC, DST_MAC.toBytes());
- PiActionParam portParam = new PiActionParam(FabricConstants.PORT_NUM, PORT_1.toLong());
- PiActionParam mplsParam = new PiActionParam(FabricConstants.LABEL, MPLS_10.toInt());
+ treatment, FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN);
+ PiActionParam vlanParam = new PiActionParam(
+ FabricConstants.VLAN_ID, VLAN_100.toShort());
PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_NEXT_MPLS_ROUTING_HASHED)
- .withParameters(ImmutableList.of(ethSrcParam, ethDstParam, portParam, mplsParam))
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_VLAN)
+ .withParameter(vlanParam)
.build();
assertEquals(expectedAction, mappedAction);
}
/**
- * Map treatment to set_vlan_output action.
+ * Map treatment to set_mpls action.
*/
@Test
- public void testNextTreatment3() throws Exception {
+ public void testNextMplsTreatment() throws Exception {
TrafficTreatment treatment = DefaultTrafficTreatment.builder()
- .setVlanId(VLAN_100)
+ .setMpls(MPLS_10)
.build();
PiAction mappedAction = interpreter.mapTreatment(
- treatment, FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN);
- PiActionParam vlanParam = new PiActionParam(
- FabricConstants.VLAN_ID, VLAN_100.toShort());
+ treatment, FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS);
+ PiActionParam mplsParam = new PiActionParam(
+ FabricConstants.LABEL, MPLS_10.toInt());
PiAction expectedAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_NEXT_SET_VLAN)
- .withParameter(vlanParam)
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_MPLS_LABEL)
+ .withParameter(mplsParam)
.build();
assertEquals(expectedAction, mappedAction);
}
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/BaseObjectiveTranslatorTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/BaseObjectiveTranslatorTest.java
index 72f49be..5015d4e 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/BaseObjectiveTranslatorTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/BaseObjectiveTranslatorTest.java
@@ -44,6 +44,8 @@
static final VlanId VLAN_200 = VlanId.vlanId("200");
static final MacAddress HOST_MAC = MacAddress.valueOf("00:00:00:00:00:01");
static final MacAddress ROUTER_MAC = MacAddress.valueOf("00:00:00:00:02:01");
+ static final MacAddress SPINE1_MAC = MacAddress.valueOf("00:00:00:00:03:01");
+ static final MacAddress SPINE2_MAC = MacAddress.valueOf("00:00:00:00:03:02");
static final IpPrefix IPV4_UNICAST_ADDR = IpPrefix.valueOf("10.0.0.1/32");
static final IpPrefix IPV4_MCAST_ADDR = IpPrefix.valueOf("224.0.0.1/32");
static final IpPrefix IPV6_UNICAST_ADDR = IpPrefix.valueOf("2000::1/32");
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java
index a2fa47b..d3a7c5c 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java
@@ -49,6 +49,7 @@
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertTrue;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INTERNAL;
public class FabricPipelinerTest {
@@ -95,6 +96,7 @@
.piTableAction(PiAction.builder()
.withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
.withParameter(new PiActionParam(FabricConstants.VLAN_ID, DEFAULT_VLAN))
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, PORT_TYPE_INTERNAL))
.build())
.build();
final FlowRule expectedCpuIgVlanRule = DefaultFlowRule.builder()
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslatorTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslatorTest.java
index 71e45b1..73039b5 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslatorTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslatorTest.java
@@ -44,15 +44,22 @@
import java.util.List;
import static org.junit.Assert.assertEquals;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.DEFAULT_PW_TRANSPORT_VLAN;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.DEFAULT_VLAN;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ETH_TYPE_EXACT_MASK;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_IPV4_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_IPV6_ROUTING;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.FWD_MPLS;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ONE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_EDGE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INFRA;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.ZERO;
/**
* Test cases for fabric.p4 pipeline filtering control block.
*/
public class FilteringObjectiveTranslatorTest extends BaseObjectiveTranslatorTest {
- public static final byte[] ONE = {1};
- public static final byte[] ZERO = {0};
- public static final short EXACT_MATCH_ETH_TYPE = (short) 0xFFFF;
private FilteringObjectiveTranslator translator;
@Before
@@ -77,6 +84,7 @@
VlanId.NONE,
VlanId.NONE,
VLAN_100,
+ PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
// forwarding classifier ipv4
@@ -85,7 +93,7 @@
ROUTER_MAC,
null,
Ethernet.TYPE_IPV4,
- FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
+ FWD_IPV4_ROUTING));
// forwarding classifier ipv6
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
@@ -93,7 +101,7 @@
ROUTER_MAC,
null,
Ethernet.TYPE_IPV6,
- FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
+ FWD_IPV6_ROUTING));
// forwarding classifier mpls
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
@@ -101,7 +109,7 @@
ROUTER_MAC,
null,
Ethernet.MPLS_UNICAST,
- FilteringObjectiveTranslator.FWD_MPLS));
+ FWD_MPLS));
// ObjectiveTranslation.Builder expectedTranslationBuilder = ObjectiveTranslation.builder()
// .addFlowRule(inportFlowRuleExpected);
@@ -148,6 +156,7 @@
VlanId.NONE,
VlanId.NONE,
VLAN_100,
+ PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
// forwarding classifier
@@ -156,7 +165,7 @@
MacAddress.IPV4_MULTICAST,
MacAddress.IPV4_MULTICAST_MASK,
Ethernet.TYPE_IPV4,
- FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
+ FWD_IPV4_ROUTING));
ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
@@ -192,6 +201,7 @@
VlanId.NONE,
VlanId.NONE,
VLAN_100,
+ PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
flowRules.addAll(buildExpectedFwdClassifierRule(
@@ -199,7 +209,7 @@
MacAddress.IPV6_MULTICAST,
MacAddress.IPV6_MULTICAST_MASK,
Ethernet.TYPE_IPV6,
- FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
+ FWD_IPV6_ROUTING));
ObjectiveTranslation expectedTranslation = buildExpectedTranslation(flowRules);
@@ -222,6 +232,7 @@
VlanId.NONE,
VlanId.NONE,
VLAN_100,
+ PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
// No rules in forwarding classifier, will do default action: set fwd type to bridging
@@ -297,18 +308,18 @@
Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
// Ingress port vlan rule
expectedFlowRules.add(buildExpectedVlanInPortRule(
- PORT_1, VLAN_100, VLAN_200, VlanId.NONE,
+ PORT_1, VLAN_100, VLAN_200, VlanId.NONE, PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
// Forwarding classifier rules (ipv6, ipv4, mpls)
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV4,
- FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
+ FWD_IPV4_ROUTING));
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV6,
- FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
+ FWD_IPV6_ROUTING));
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
PORT_1, ROUTER_MAC, null, Ethernet.MPLS_UNICAST,
- FilteringObjectiveTranslator.FWD_MPLS));
+ FWD_MPLS));
ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
assertEquals(expectedTranslation, actualTranslation);
@@ -349,7 +360,7 @@
* ingress_port_vlan table.
*/
@Test
- public void testPortUpdate() throws FabricPipelinerException {
+ public void testIsPortUpdate() throws FabricPipelinerException {
// Tagged port scenario
FilteringObjective filteringObjective = DefaultFilteringObjective.builder()
.withKey(Criteria.matchInPort(PORT_1))
@@ -366,7 +377,7 @@
Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
// Ingress port vlan rule
expectedFlowRules.add(buildExpectedVlanInPortRule(
- PORT_1, VLAN_100, null, VlanId.NONE,
+ PORT_1, VLAN_100, null, VlanId.NONE, PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
assertEquals(expectedTranslation, actualTranslation);
@@ -389,7 +400,7 @@
expectedFlowRules = Lists.newArrayList();
// Ingress port vlan rule
expectedFlowRules.add(buildExpectedVlanInPortRule(
- PORT_1, VlanId.NONE, null, VLAN_200,
+ PORT_1, VlanId.NONE, null, VLAN_200, PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
expectedTranslation = buildExpectedTranslation(expectedFlowRules);
assertEquals(expectedTranslation, actualTranslation);
@@ -414,7 +425,7 @@
Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
// Ingress port vlan rule
expectedFlowRules.add(buildExpectedVlanInPortRule(
- PORT_1, VLAN_100, null, VlanId.NONE,
+ PORT_1, VLAN_100, null, VlanId.NONE, PORT_TYPE_EDGE,
FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
// forwarding classifier ipv4
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
@@ -422,26 +433,109 @@
ROUTER_MAC,
null,
Ethernet.TYPE_IPV4,
- FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
+ FWD_IPV4_ROUTING));
// forwarding classifier ipv6
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
PORT_1,
ROUTER_MAC,
null,
Ethernet.TYPE_IPV6,
- FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
+ FWD_IPV6_ROUTING));
// forwarding classifier mpls
expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
PORT_1,
ROUTER_MAC,
null,
Ethernet.MPLS_UNICAST,
- FilteringObjectiveTranslator.FWD_MPLS));
+ FWD_MPLS));
ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
assertEquals(expectedTranslation, actualTranslation);
}
+ /**
+ * Test is infra port scenarios for filtering objective.
+ */
+ @Test
+ public void testIsInfraPort() throws FabricPipelinerException {
+ // PW transport vlan
+ FilteringObjective filteringObjective = DefaultFilteringObjective.builder()
+ .withKey(Criteria.matchInPort(PORT_1))
+ .addCondition(Criteria.matchEthDst(ROUTER_MAC))
+ .addCondition(Criteria.matchVlanId(VlanId.vlanId((short) DEFAULT_PW_TRANSPORT_VLAN)))
+ .withPriority(PRIORITY)
+ .fromApp(APP_ID)
+ .permit()
+ .add();
+ ObjectiveTranslation actualTranslation = translator.translate(filteringObjective);
+
+ Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
+ expectedFlowRules.add(buildExpectedVlanInPortRule(
+ PORT_1, VlanId.vlanId((short) DEFAULT_PW_TRANSPORT_VLAN), null, VlanId.NONE,
+ PORT_TYPE_INFRA, FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.TYPE_IPV4,
+ FWD_IPV4_ROUTING));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.TYPE_IPV6,
+ FWD_IPV6_ROUTING));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.MPLS_UNICAST,
+ FWD_MPLS));
+
+ ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
+ assertEquals(expectedTranslation, actualTranslation);
+
+ // Untagged port scenario
+ filteringObjective = DefaultFilteringObjective.builder()
+ .withKey(Criteria.matchInPort(PORT_1))
+ .addCondition(Criteria.matchEthDst(ROUTER_MAC))
+ .addCondition(Criteria.matchVlanId(VlanId.NONE))
+ .withPriority(PRIORITY)
+ .fromApp(APP_ID)
+ .withMeta(DefaultTrafficTreatment.builder()
+ .pushVlan()
+ .setVlanId(VlanId.vlanId((short) DEFAULT_VLAN))
+ .build())
+ .permit()
+ .add();
+ actualTranslation = translator.translate(filteringObjective);
+ expectedFlowRules = Lists.newArrayList();
+ expectedFlowRules.add(buildExpectedVlanInPortRule(
+ PORT_1, null, null, VlanId.vlanId((short) DEFAULT_VLAN),
+ PORT_TYPE_INFRA, FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.TYPE_IPV4,
+ FWD_IPV4_ROUTING));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.TYPE_IPV6,
+ FWD_IPV6_ROUTING));
+ expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
+ PORT_1,
+ ROUTER_MAC,
+ null,
+ Ethernet.MPLS_UNICAST,
+ FWD_MPLS));
+
+ expectedTranslation = buildExpectedTranslation(expectedFlowRules);
+ assertEquals(expectedTranslation, actualTranslation);
+ }
+
/* Utilities */
private void assertError(ObjectiveError error, ObjectiveTranslation actualTranslation) {
@@ -473,6 +567,7 @@
VlanId vlanId,
VlanId innerVlanId,
VlanId internalVlan,
+ byte portType,
TableId tableId) {
TrafficSelector.Builder selector = DefaultTrafficSelector.builder()
@@ -482,8 +577,8 @@
if (!vlanValid(vlanId)) {
piAction = PiAction.builder()
.withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN)
- .withParameter(new PiActionParam(
- FabricConstants.VLAN_ID, internalVlan.toShort()))
+ .withParameter(new PiActionParam(FabricConstants.VLAN_ID, internalVlan.toShort()))
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, portType))
.build();
} else {
selector.matchVlanId(vlanId);
@@ -492,6 +587,7 @@
}
piAction = PiAction.builder()
.withId(FabricConstants.FABRIC_INGRESS_FILTERING_PERMIT)
+ .withParameter(new PiActionParam(FabricConstants.PORT_TYPE, portType))
.build();
}
@@ -567,13 +663,13 @@
Collection<FlowRule> flowRules = Lists.newArrayList();
TrafficSelector selectorIpv4 = selectorBuilder
.add(PiCriterion.builder()
- .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE)
+ .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK)
.matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV4)
.build())
.build();
TrafficSelector selectorIpv6 = selectorBuilder
.add(PiCriterion.builder()
- .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE)
+ .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK)
.matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV6)
.build())
.build();
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslatorTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslatorTest.java
index 14253e7..dfae0df 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslatorTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslatorTest.java
@@ -34,6 +34,7 @@
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.flow.criteria.Criterion;
import org.onosproject.net.flow.criteria.EthCriterion;
+import org.onosproject.net.flow.criteria.PiCriterion;
import org.onosproject.net.flowobjective.DefaultForwardingObjective;
import org.onosproject.net.flowobjective.ForwardingObjective;
import org.onosproject.net.group.DefaultGroupBucket;
@@ -52,6 +53,9 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_EDGE;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_INFRA;
+import static org.onosproject.pipelines.fabric.impl.behaviour.Constants.PORT_TYPE_MASK;
/**
* Test cases for fabric.p4 pipeline forwarding control block.
@@ -185,7 +189,150 @@
assertTrue(expectedFlowRule.exactMatch(actualFlowRule));
}
-/**
+
+ /**
+ * Test versatile flag of forwarding objective with next step.
+ */
+ @Test
+ public void testAclNext() {
+ // ACL 8-tuples
+ TrafficSelector selector = DefaultTrafficSelector.builder()
+ .matchEthType(Ethernet.TYPE_IPV4)
+ .matchIPDst(IPV4_UNICAST_ADDR)
+ .build();
+ ForwardingObjective fwd = DefaultForwardingObjective.builder()
+ .withSelector(selector)
+ .withPriority(PRIORITY)
+ .fromApp(APP_ID)
+ .makePermanent()
+ .withFlag(ForwardingObjective.Flag.VERSATILE)
+ .nextStep(NEXT_ID_1)
+ .add();
+
+ ObjectiveTranslation result = translator.translate(fwd);
+
+ List<FlowRule> flowRulesInstalled = (List<FlowRule>) result.flowRules();
+ List<GroupDescription> groupsInstalled = (List<GroupDescription>) result.groups();
+ assertEquals(1, flowRulesInstalled.size());
+ assertTrue(groupsInstalled.isEmpty());
+
+ FlowRule actualFlowRule = flowRulesInstalled.get(0);
+ PiAction piAction = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_ACL_SET_NEXT_ID_ACL)
+ .withParameter(new PiActionParam(FabricConstants.NEXT_ID, NEXT_ID_1))
+ .build();
+ FlowRule expectedFlowRule = DefaultFlowRule.builder()
+ .forDevice(DEVICE_ID)
+ .forTable(FabricConstants.FABRIC_INGRESS_ACL_ACL)
+ .withPriority(PRIORITY)
+ .makePermanent()
+ .withSelector(selector)
+ .withTreatment(DefaultTrafficTreatment.builder()
+ .piTableAction(piAction).build())
+ .fromApp(APP_ID)
+ .build();
+
+ assertTrue(expectedFlowRule.exactMatch(actualFlowRule));
+ }
+
+ /**
+ * Test versatile flag of forwarding objective with next step and port type.
+ */
+ @Test
+ public void testAclNextWithPortType() {
+ // ACL 8-tuples
+ TrafficSelector selector = DefaultTrafficSelector.builder()
+ .matchEthType(Ethernet.TYPE_IPV4)
+ .matchIPDst(IPV4_UNICAST_ADDR)
+ .build();
+ TrafficSelector metaSelector = DefaultTrafficSelector.builder()
+ .matchMetadata(PORT_TYPE_EDGE)
+ .build();
+ ForwardingObjective fwd = DefaultForwardingObjective.builder()
+ .withSelector(selector)
+ .withPriority(PRIORITY)
+ .fromApp(APP_ID)
+ .makePermanent()
+ .withFlag(ForwardingObjective.Flag.VERSATILE)
+ .nextStep(NEXT_ID_1)
+ .withMeta(metaSelector)
+ .add();
+
+ ObjectiveTranslation result = translator.translate(fwd);
+
+ List<FlowRule> flowRulesInstalled = (List<FlowRule>) result.flowRules();
+ List<GroupDescription> groupsInstalled = (List<GroupDescription>) result.groups();
+ assertEquals(1, flowRulesInstalled.size());
+ assertTrue(groupsInstalled.isEmpty());
+
+ FlowRule actualFlowRule = flowRulesInstalled.get(0);
+ PiAction piAction = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_ACL_SET_NEXT_ID_ACL)
+ .withParameter(new PiActionParam(FabricConstants.NEXT_ID, NEXT_ID_1))
+ .build();
+ TrafficSelector expectedSelector = DefaultTrafficSelector.builder()
+ .matchEthType(Ethernet.TYPE_IPV4)
+ .matchIPDst(IPV4_UNICAST_ADDR)
+ .matchPi(PiCriterion.builder()
+ .matchTernary(FabricConstants.HDR_PORT_TYPE, PORT_TYPE_EDGE, PORT_TYPE_MASK)
+ .build())
+ .build();
+ FlowRule expectedFlowRule = DefaultFlowRule.builder()
+ .forDevice(DEVICE_ID)
+ .forTable(FabricConstants.FABRIC_INGRESS_ACL_ACL)
+ .withPriority(PRIORITY)
+ .makePermanent()
+ .withSelector(expectedSelector)
+ .withTreatment(DefaultTrafficTreatment.builder()
+ .piTableAction(piAction).build())
+ .fromApp(APP_ID)
+ .build();
+
+ assertTrue(expectedFlowRule.exactMatch(actualFlowRule));
+
+ metaSelector = DefaultTrafficSelector.builder()
+ .matchMetadata(PORT_TYPE_INFRA)
+ .build();
+ fwd = DefaultForwardingObjective.builder()
+ .withSelector(selector)
+ .withPriority(PRIORITY)
+ .fromApp(APP_ID)
+ .makePermanent()
+ .withFlag(ForwardingObjective.Flag.VERSATILE)
+ .nextStep(NEXT_ID_1)
+ .withMeta(metaSelector)
+ .add();
+
+ result = translator.translate(fwd);
+
+ flowRulesInstalled = (List<FlowRule>) result.flowRules();
+ groupsInstalled = (List<GroupDescription>) result.groups();
+ assertEquals(1, flowRulesInstalled.size());
+ assertTrue(groupsInstalled.isEmpty());
+
+ actualFlowRule = flowRulesInstalled.get(0);
+ expectedSelector = DefaultTrafficSelector.builder()
+ .matchEthType(Ethernet.TYPE_IPV4)
+ .matchIPDst(IPV4_UNICAST_ADDR)
+ .matchPi(PiCriterion.builder()
+ .matchTernary(FabricConstants.HDR_PORT_TYPE, PORT_TYPE_INFRA, PORT_TYPE_MASK)
+ .build())
+ .build();
+ expectedFlowRule = DefaultFlowRule.builder()
+ .forDevice(DEVICE_ID)
+ .forTable(FabricConstants.FABRIC_INGRESS_ACL_ACL)
+ .withPriority(PRIORITY)
+ .makePermanent()
+ .withSelector(expectedSelector)
+ .withTreatment(DefaultTrafficTreatment.builder()
+ .piTableAction(piAction).build())
+ .fromApp(APP_ID)
+ .build();
+
+ assertTrue(expectedFlowRule.exactMatch(actualFlowRule));
+ }
+
+ /**
* Test versatile flag of forwarding objective with acl drop.
*/
@Test
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslatorTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslatorTest.java
index 393ba45..6647a83 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslatorTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslatorTest.java
@@ -57,6 +57,7 @@
private NextObjectiveTranslator translatorSimple;
private FlowRule vlanMetaFlowRule;
+ private FlowRule mplsFlowRule;
@Before
public void setup() {
@@ -72,7 +73,7 @@
.matchPi(nextIdCriterion)
.build();
PiAction piAction = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_NEXT_SET_VLAN)
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_VLAN)
.withParameter(new PiActionParam(FabricConstants.VLAN_ID, VLAN_100.toShort()))
.build();
TrafficTreatment treatment = DefaultTrafficTreatment.builder()
@@ -81,7 +82,24 @@
vlanMetaFlowRule = DefaultFlowRule.builder()
.withSelector(selector)
.withTreatment(treatment)
- .forTable(FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN)
+ .forTable(FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN)
+ .makePermanent()
+ // FIXME: currently next objective doesn't support priority, ignore this
+ .withPriority(0)
+ .forDevice(DEVICE_ID)
+ .fromApp(APP_ID)
+ .build();
+ piAction = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_MPLS_LABEL)
+ .withParameter(new PiActionParam(FabricConstants.LABEL, MPLS_10.toInt()))
+ .build();
+ treatment = DefaultTrafficTreatment.builder()
+ .piTableAction(piAction)
+ .build();
+ mplsFlowRule = DefaultFlowRule.builder()
+ .withSelector(selector)
+ .withTreatment(treatment)
+ .forTable(FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_MPLS)
.makePermanent()
// FIXME: currently next objective doesn't support priority, ignore this
.withPriority(0)
@@ -91,6 +109,164 @@
}
/**
+ * Test program mpls ecmp output group for Hashed table.
+ */
+ @Test
+ public void testMplsHashedOutput() throws Exception {
+ TrafficTreatment treatment1 = DefaultTrafficTreatment.builder()
+ .setEthSrc(ROUTER_MAC)
+ .setEthDst(SPINE1_MAC)
+ .pushMpls()
+ .copyTtlOut()
+ .setMpls(MPLS_10)
+ .popVlan()
+ .setOutput(PORT_1)
+ .build();
+ TrafficTreatment treatment2 = DefaultTrafficTreatment.builder()
+ .setEthSrc(ROUTER_MAC)
+ .setEthDst(SPINE2_MAC)
+ .pushMpls()
+ .copyTtlOut()
+ .setMpls(MPLS_10)
+ .popVlan()
+ .setOutput(PORT_2)
+ .build();
+
+ NextObjective nextObjective = DefaultNextObjective.builder()
+ .withId(NEXT_ID_1)
+ .withPriority(PRIORITY)
+ .withMeta(VLAN_META)
+ .addTreatment(treatment1)
+ .addTreatment(treatment2)
+ .withType(NextObjective.Type.HASHED)
+ .makePermanent()
+ .fromApp(APP_ID)
+ .add();
+
+ ObjectiveTranslation actualTranslation = translatorHashed.doTranslate(nextObjective);
+
+ // Expected hashed table flow rule.
+ PiCriterion nextIdCriterion = PiCriterion.builder()
+ .matchExact(FabricConstants.HDR_NEXT_ID, NEXT_ID_1)
+ .build();
+ TrafficSelector nextIdSelector = DefaultTrafficSelector.builder()
+ .matchPi(nextIdCriterion)
+ .build();
+ PiActionProfileGroupId actionGroupId = PiActionProfileGroupId.of(NEXT_ID_1);
+ TrafficTreatment treatment = DefaultTrafficTreatment.builder()
+ .piTableAction(actionGroupId)
+ .build();
+ FlowRule expectedFlowRule = DefaultFlowRule.builder()
+ .forDevice(DEVICE_ID)
+ .fromApp(APP_ID)
+ .makePermanent()
+ // FIXME: currently next objective doesn't support priority, ignore this
+ .withPriority(0)
+ .forTable(FabricConstants.FABRIC_INGRESS_NEXT_HASHED)
+ .withSelector(nextIdSelector)
+ .withTreatment(treatment)
+ .build();
+
+ // First egress rule - port1
+ PortNumber outPort = outputPort(treatment1);
+ PiCriterion egressVlanTableMatch = PiCriterion.builder()
+ .matchExact(FabricConstants.HDR_EG_PORT, outPort.toLong())
+ .build();
+ TrafficSelector selectorForEgressVlan = DefaultTrafficSelector.builder()
+ .matchPi(egressVlanTableMatch)
+ .matchVlanId(VLAN_100)
+ .build();
+ PiAction piActionForEgressVlan = PiAction.builder()
+ .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
+ .build();
+ TrafficTreatment treatmentForEgressVlan = DefaultTrafficTreatment.builder()
+ .piTableAction(piActionForEgressVlan)
+ .build();
+ FlowRule expectedEgressVlanPopRule1 = DefaultFlowRule.builder()
+ .withSelector(selectorForEgressVlan)
+ .withTreatment(treatmentForEgressVlan)
+ .forTable(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN)
+ .makePermanent()
+ .withPriority(nextObjective.priority())
+ .forDevice(DEVICE_ID)
+ .fromApp(APP_ID)
+ .build();
+
+ // Second egress rule - port2
+ outPort = outputPort(treatment2);
+ egressVlanTableMatch = PiCriterion.builder()
+ .matchExact(FabricConstants.HDR_EG_PORT, outPort.toLong())
+ .build();
+ selectorForEgressVlan = DefaultTrafficSelector.builder()
+ .matchPi(egressVlanTableMatch)
+ .matchVlanId(VLAN_100)
+ .build();
+ FlowRule expectedEgressVlanPopRule2 = DefaultFlowRule.builder()
+ .withSelector(selectorForEgressVlan)
+ .withTreatment(treatmentForEgressVlan)
+ .forTable(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN)
+ .makePermanent()
+ .withPriority(nextObjective.priority())
+ .forDevice(DEVICE_ID)
+ .fromApp(APP_ID)
+ .build();
+
+ // Expected group
+ PiAction piAction1 = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_HASHED)
+ .withParameter(new PiActionParam(
+ FabricConstants.SMAC, ROUTER_MAC.toBytes()))
+ .withParameter(new PiActionParam(
+ FabricConstants.DMAC, SPINE1_MAC.toBytes()))
+ .withParameter(new PiActionParam(
+ FabricConstants.PORT_NUM, PORT_1.toLong()))
+ .build();
+ PiAction piAction2 = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_NEXT_ROUTING_HASHED)
+ .withParameter(new PiActionParam(
+ FabricConstants.SMAC, ROUTER_MAC.toBytes()))
+ .withParameter(new PiActionParam(
+ FabricConstants.DMAC, SPINE2_MAC.toBytes()))
+ .withParameter(new PiActionParam(
+ FabricConstants.PORT_NUM, PORT_2.toLong()))
+ .build();
+ treatment1 = DefaultTrafficTreatment.builder()
+ .piTableAction(piAction1)
+ .build();
+ treatment2 = DefaultTrafficTreatment.builder()
+ .piTableAction(piAction2)
+ .build();
+ List<TrafficTreatment> treatments = ImmutableList.of(treatment1, treatment2);
+ List<GroupBucket> buckets = treatments.stream()
+ .map(DefaultGroupBucket::createSelectGroupBucket)
+ .collect(Collectors.toList());
+ GroupBuckets groupBuckets = new GroupBuckets(buckets);
+ PiGroupKey groupKey = new PiGroupKey(FabricConstants.FABRIC_INGRESS_NEXT_HASHED,
+ FabricConstants.FABRIC_INGRESS_NEXT_HASHED_SELECTOR,
+ NEXT_ID_1);
+ GroupDescription expectedGroup = new DefaultGroupDescription(
+ DEVICE_ID,
+ GroupDescription.Type.SELECT,
+ groupBuckets,
+ groupKey,
+ NEXT_ID_1,
+ APP_ID
+ );
+
+ ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
+ .addFlowRule(expectedFlowRule)
+ .addFlowRule(vlanMetaFlowRule)
+ .addFlowRule(mplsFlowRule)
+ .addGroup(expectedGroup)
+ .addFlowRule(expectedEgressVlanPopRule1)
+ .addFlowRule(expectedEgressVlanPopRule2)
+ .build();
+
+ assertEquals(expectedTranslation, actualTranslation);
+ }
+
+ // TODO: add profile with simple next or remove tests
+ /**
* Test program output rule for Simple table.
*/
@Test
@@ -269,7 +445,7 @@
.build();
PiAction piActionPush = PiAction.builder()
- .withId(FabricConstants.FABRIC_INGRESS_NEXT_SET_DOUBLE_VLAN)
+ .withId(FabricConstants.FABRIC_INGRESS_PRE_NEXT_SET_DOUBLE_VLAN)
.withParameter(new PiActionParam(
FabricConstants.INNER_VLAN_ID, VLAN_100.toShort()))
.withParameter(new PiActionParam(
@@ -298,7 +474,7 @@
.withTreatment(DefaultTrafficTreatment.builder()
.piTableAction(piActionPush)
.build())
- .forTable(FabricConstants.FABRIC_INGRESS_NEXT_NEXT_VLAN)
+ .forTable(FabricConstants.FABRIC_INGRESS_PRE_NEXT_NEXT_VLAN)
.makePermanent()
// FIXME: currently next objective doesn't support priority, ignore this
.withPriority(0)