VOL-3913 Group sink add/remove operations expire in InOrderFlowObjectiveManager since OltPipeline invalidates the next group operation instead of the current one when it receives a group event for the related group.
Solution:
Group is removed from the pendingGroups cache before notifying InOrderFlowObjectiveManager.
Change-Id: I77a04d4c187b994f9a3f3f8b4de5e61cdc6df697
diff --git a/impl/src/main/java/org/opencord/olt/driver/OltPipeline.java b/impl/src/main/java/org/opencord/olt/driver/OltPipeline.java
index d5beb63..84a56ca 100644
--- a/impl/src/main/java/org/opencord/olt/driver/OltPipeline.java
+++ b/impl/src/main/java/org/opencord/olt/driver/OltPipeline.java
@@ -1221,12 +1221,12 @@
if (event.type() == GroupEvent.Type.GROUP_ADDED ||
event.type() == GroupEvent.Type.GROUP_UPDATED) {
flowObjectiveStore.putNextGroup(obj.id(), new OltPipelineGroup(key));
- pass(obj);
pendingGroups.invalidate(key);
+ pass(obj);
} else if (event.type() == GroupEvent.Type.GROUP_REMOVED) {
flowObjectiveStore.removeNextGroup(obj.id());
- pass(obj);
pendingGroups.invalidate(key);
+ pass(obj);
}
}
}