Implement NOP in routing v4 table
Change-Id: Ia238cf88eb1ed5e23309f3b2cab7f1403f30dafe
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 0c0b380..78cf071 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
@@ -177,6 +177,8 @@
PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i10");
public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_V6_SIMPLE =
PiActionId.of("FabricIngress.next.mpls_routing_v6_simple");
+ public static final PiActionId FABRIC_INGRESS_FORWARDING_NOP_ROUTING_V4 =
+ PiActionId.of("FabricIngress.forwarding.nop_routing_v4");
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_FILTERING_NOP_INGRESS_PORT_VLAN =
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 0a7ba9e..818fb43 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
@@ -58,6 +58,8 @@
.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();
+ private static final PiAction NOP_ROUTING_V4 = PiAction.builder()
+ .withId(FabricConstants.FABRIC_INGRESS_FORWARDING_NOP_ROUTING_V4).build();
private static final PiAction POP_VLAN = PiAction.builder()
.withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
@@ -143,9 +145,12 @@
public static PiAction mapForwardingTreatment(TrafficTreatment treatment, PiTableId tableId)
throws PiInterpreterException {
// Empty treatment, generate table entry with no action
- if (treatment.equals(DefaultTrafficTreatment.emptyTreatment())) {
+ if (treatment.equals(DefaultTrafficTreatment.emptyTreatment()) ||
+ treatment.allInstructions().isEmpty()) {
if (tableId.equals(FabricConstants.FABRIC_INGRESS_FORWARDING_ACL)) {
return NOP_ACL;
+ } else if (tableId.equals(FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V4)) {
+ return NOP_ROUTING_V4;
} else {
return NOP;
}