CORD-1180 Collection of fixes for hash-group buckets. Required the following changes:
Next-objectives that edited groups are now queued in the FlowObjectiveManager instead of the driver.
During linkup immediately checking for previous portups that should be added to a hash group.
A final retry 30 secs later to catch all ports that should be part of the same hash group.
Change-Id: I7ef450149d685890ca47932b8e559a0c11dc5ab4
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2GroupHandler.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2GroupHandler.java
index aaca495..6a03ee6 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2GroupHandler.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2GroupHandler.java
@@ -984,7 +984,8 @@
* @param nextObjective the objective to process.
*/
protected void processPwNextObjective(NextObjective nextObjective) {
- log.warn("Pseudo wire extensions are not support for the OFDPA 2.0 {}", nextObjective.id());
+ log.warn("Pseudo wire extensions are not supported in OFDPA 2.0 {}",
+ nextObjective.id());
}
//////////////////////////////////////
@@ -1049,6 +1050,9 @@
objectiveToAdd = builder.addToExisting(context);
} else {
// buckets to add are already there - nothing to do
+ log.debug("buckets already exist {} in next: {} ..ignoring bucket add",
+ duplicateBuckets, nextObjective.id());
+ pass(nextObjective);
return;
}
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 1abe86c..9800260 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
@@ -283,13 +283,13 @@
nextObjective.id(), deviceId);
return;
}
- log.debug("Processing NextObjective id{} in dev{} - add group",
+ log.debug("Processing NextObjective id {} in dev {} - add group",
nextObjective.id(), deviceId);
groupHandler.addGroup(nextObjective);
break;
case ADD_TO_EXISTING:
if (nextGroup != null) {
- log.debug("Processing NextObjective id{} in dev{} - add bucket",
+ log.debug("Processing NextObjective id {} in dev {} - add bucket",
nextObjective.id(), deviceId);
groupHandler.addBucketToGroup(nextObjective, nextGroup);
} else {
@@ -313,7 +313,7 @@
nextObjective.id(), deviceId);
return;
}
- log.debug("Processing NextObjective id{} in dev{} - remove group",
+ log.debug("Processing NextObjective id {} in dev {} - remove group",
nextObjective.id(), deviceId);
groupHandler.removeGroup(nextObjective, nextGroup);
break;
@@ -323,7 +323,7 @@
nextObjective.id(), deviceId);
return;
}
- log.debug("Processing NextObjective id{} in dev{} - remove bucket",
+ log.debug("Processing NextObjective id {} in dev {} - remove bucket",
nextObjective.id(), deviceId);
groupHandler.removeBucketFromGroup(nextObjective, nextGroup);
break;
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpa2Pipeline.java
index b0e3d9f..4a6d7d9 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpa2Pipeline.java
@@ -20,11 +20,7 @@
/**
* Driver for software switch emulation of the OFDPA pipeline.
- * The software switch is the OVS OF 1.3 switch. Unfortunately the OVS switch
- * does not handle vlan tags and mpls labels simultaneously, which requires us
- * to do some workarounds in the driver. This driver is meant for the use of
- * the cpqd switch when MPLS is required. As a result this driver works only
- * on incoming untagged packets.
+ * The software switch is the OVS OF 1.3 switch (version 2.5 or later).
*/
public class OvsOfdpa2Pipeline extends CpqdOfdpa2Pipeline {