[AETHER-998] FabricPipeliner should support L2 modification of the NextObjective
This patch allows:
- to MODIFY completely the L3 unicast chain
- to MODIFY the L2 configuration of a port
Moreover, it includes support for metadata signaling:
- to not remove the fwd classifier rules during the port
update scenarios (dynamic config changes)
- add new unit tests for verifying the scenario
Change-Id: I54168653a730573ec0650f25ec670c36282b0419
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 2da557a..de3ecbf 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
@@ -241,8 +241,12 @@
}
private static boolean isNoAction(TrafficTreatment treatment) {
+ // Empty treatment OR
+ // No instructions OR
+ // Empty treatment AND writeMetadata
return treatment.equals(DefaultTrafficTreatment.emptyTreatment()) ||
- treatment.allInstructions().isEmpty();
+ treatment.allInstructions().isEmpty() ||
+ (treatment.allInstructions().size() == 1 && treatment.writeMetadata() != null);
}
private static boolean isFilteringPopAction(TrafficTreatment treatment) {