Add default VLAN 4094 tag to all untagged traffic in fabric.p4
Also fix nop action in ingres_port_vlan table not invoking direct
counter.
This allows processing LLDP packets before any SR-related flow rule is
pushed
Change-Id: Ic6c33ff0c74e643d9e7c853e029bff924ba6f2ac
(cherry picked from commit 0433a9d002c6a9533ffd55de709aba5a6ca26f04)
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
index d3137e5..5b29faa 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
@@ -187,8 +187,8 @@
PiActionId.of("FabricIngress.next.mpls_routing_v6_simple");
public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_UPDATE_TOTAL_HOP_CNT =
PiActionId.of("FabricEgress.process_int_transit.int_update_total_hop_cnt");
- public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_V6_HASHED =
- PiActionId.of("FabricIngress.next.mpls_routing_v6_hashed");
+ public static final PiActionId FABRIC_INGRESS_FILTERING_NOP_INGRESS_PORT_VLAN =
+ PiActionId.of("FabricIngress.filtering.nop_ingress_port_vlan");
public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0407_I14 =
PiActionId.of("FabricEgress.process_int_transit.int_set_header_0407_i14");
public static final PiActionId FABRIC_INGRESS_FORWARDING_SET_NEXT_ID_BRIDGING =
@@ -318,6 +318,8 @@
PiActionId.of("FabricIngress.next.mpls_routing_v4_simple");
public static final PiActionId FABRIC_INGRESS_FORWARDING_NOP_ACL =
PiActionId.of("FabricIngress.forwarding.nop_acl");
+ public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_V6_HASHED =
+ PiActionId.of("FabricIngress.next.mpls_routing_v6_hashed");
public static final PiActionId FABRIC_INGRESS_NEXT_L3_ROUTING_VLAN =
PiActionId.of("FabricIngress.next.l3_routing_vlan");
public static final PiActionId FABRIC_INGRESS_FORWARDING_SET_NEXT_ID_ACL =
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
index e5d11a5..d14aa1a 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
@@ -53,6 +53,8 @@
private static final String INVALID_TREATMENT = "Invalid treatment for %s block [%s]";
private static final String INVALID_TREATMENT_WITH_EXP = "Invalid treatment for %s block: %s [%s]";
private static final PiAction NOP = PiAction.builder().withId(FabricConstants.NOP).build();
+ private static final PiAction NOP_INGRESS_PORT_VLAN = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_FILTERING_NOP_INGRESS_PORT_VLAN).build();
private static final PiAction NOP_ACL = PiAction.builder()
.withId(FabricConstants.FABRIC_INGRESS_FORWARDING_NOP_ACL).build();
@@ -81,7 +83,7 @@
Instruction noActInst = Instructions.createNoAction();
if (instructions.isEmpty() || instructions.contains(noActInst)) {
// nop
- return NOP;
+ return NOP_INGRESS_PORT_VLAN;
}
L2ModificationInstruction.ModVlanHeaderInstruction pushVlanInst = null;