[SDFAB-359] Purge all objective for a given application ID
Change-Id: I51847b0be890deacec5caddc18d52bcd2993959a
(cherry picked from commit 607fd0b70e4553226d0937d36de9cde655f2eb62)
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
index cad1a88..dedc810 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
@@ -289,6 +289,11 @@
}
+ @Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ }
+
private Collection<FlowRule> processForward(ForwardingObjective fwd) {
switch (fwd.flag()) {
case SPECIFIC:
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
index 1b3d310..e66adb9 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
@@ -21,6 +21,7 @@
import com.google.common.cache.RemovalNotification;
import org.onlab.osgi.ServiceDirectory;
import org.onlab.util.KryoNamespace;
+import org.onosproject.core.ApplicationId;
import org.onosproject.net.DeviceId;
import org.onosproject.net.behaviour.NextGroup;
import org.onosproject.net.behaviour.Pipeliner;
@@ -274,6 +275,11 @@
}
@Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ }
+
+ @Override
public List<String> getNextMappings(NextGroup nextGroup) {
// Default single table pipeline does not use nextObjectives or groups
return Collections.emptyList();
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
index ef79ee3..57ef6ea 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
@@ -216,6 +216,11 @@
}
+ @Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ }
+
private Collection<FlowRule> processForward(ForwardingObjective fwd) {
switch (fwd.flag()) {
case SPECIFIC:
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
index 9ca9420..1d0e0dd 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
@@ -186,6 +186,11 @@
}
}
+ @Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ }
+
private void pass(Objective obj) {
obj.context().ifPresent(context -> context.onSuccess(obj));
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
index 4376295..166ba72 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
@@ -286,6 +286,12 @@
}
}
+ @Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ groupService.purgeGroupEntries(deviceId, appId);
+ }
+
private void removeGroup(NextObjective nextObjective) {
log.debug("removeGroup in {}: for next objective id {}",
deviceId, nextObjective.id());
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 a020a64..a22ecbe 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
@@ -477,6 +477,12 @@
}
}
+ @Override
+ public void purgeAll(ApplicationId appId) {
+ flowRuleService.purgeFlowRules(deviceId, appId);
+ groupService.purgeGroupEntries(deviceId, appId);
+ }
+
//////////////////////////////////////
// Flow handling
//////////////////////////////////////