Adding route blackhole
Change-Id: I70212b0ab91e628e8528bca896c3aecc499e31b1
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
index 04d581a..d834b48 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
@@ -284,6 +284,15 @@
return false;
}
+ /**
+ * Determines whether this driver supports installing a clearDeferred action on table 30.
+ *
+ * @return true if required
+ */
+ protected boolean supportsUnicastBlackHole() {
+ return true;
+ }
+
//////////////////////////////////////
// Flow Objectives
//////////////////////////////////////
@@ -1462,6 +1471,15 @@
tb.transition(ACL_TABLE);
}
+ if (fwd.treatment() != null && fwd.treatment().clearedDeferred()) {
+ if (supportsUnicastBlackHole()) {
+ tb.wipeDeferred();
+ } else {
+ log.warn("Clear Deferred is not supported Unicast Routing Table on device {}", deviceId);
+ return Collections.emptySet();
+ }
+ }
+
FlowRule.Builder ruleBuilder = DefaultFlowRule.builder()
.fromApp(fwd.appId())
.withPriority(fwd.priority())