ONOS-1786: Updates group buckets when link status is changed.
- Add null check for port map when creating new groups
Change-Id: I92b494d91e908011f2c08be850ccde648e647a09
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultTransitGroupHandler.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultTransitGroupHandler.java
index 67e9eef..752ee2d 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultTransitGroupHandler.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultTransitGroupHandler.java
@@ -24,7 +24,9 @@
import org.onosproject.net.Link;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.flowobjective.DefaultNextObjective;
import org.onosproject.net.flowobjective.FlowObjectiveService;
+import org.onosproject.net.flowobjective.NextObjective;
import org.onosproject.net.link.LinkService;
/**
@@ -114,18 +116,19 @@
.setMpls(MplsLabel.
mplsLabel(ns.getEdgeLabel()));
}
- /*GroupBucket updatedBucket = DefaultGroupBucket.
- createSelectGroupBucket(tBuilder.build());
- GroupBuckets updatedBuckets = new GroupBuckets(
- Arrays.asList(updatedBucket));
- log.debug("newPortToExistingNeighborAtEdgeRouter: "
- + "groupService.addBucketsToGroup for neighborset{}", ns);
- groupService.addBucketsToGroup(deviceId,
- getGroupKey(ns),
- updatedBuckets,
- getGroupKey(ns),
- appId);*/
- //TODO: Use nextObjective APIs to update the next objective
+
+
+ Integer nextId = deviceNextObjectiveIds.get(getGroupKey(ns));
+ if (nextId != null) {
+ NextObjective.Builder nextObjBuilder = DefaultNextObjective
+ .builder().withId(nextId)
+ .withType(NextObjective.Type.HASHED).fromApp(appId);
+
+ nextObjBuilder.addTreatment(tBuilder.build());
+
+ NextObjective nextObjective = nextObjBuilder.add();
+ flowObjectiveService.next(deviceId, nextObjective);
+ }
}
}