[CORD-2903] Improve SR/Multicast APIs
Change-Id: Id44af87569e0a83129c96504b21c69e1d455f785
(cherry picked from commit a2858a34a26e02e9d2dd66dc562d0f6fb2c4bdd1)
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
index 924794b..fc89fde 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
@@ -55,7 +55,6 @@
import org.slf4j.Logger;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -234,10 +233,11 @@
*
* @param mcastIp multicast IP
* @return source connect point or null if not found
+ *
+ * @deprecated in 1.12 ("Magpie") release.
*/
- // FIXME To be addressed with multiple sources support
+ @Deprecated
ConnectPoint getSource(IpAddress mcastIp) {
- // FIXME we should support different types of routes
McastRoute mcastRoute = srManager.multicastRouteService.getRoutes().stream()
.filter(mcastRouteInternal -> mcastRouteInternal.group().equals(mcastIp))
.findFirst().orElse(null);
@@ -247,6 +247,21 @@
}
/**
+ * Gets sources connect points of given multicast group.
+ *
+ * @param mcastIp multicast IP
+ * @return sources connect points or empty set if not found
+ */
+ Set<ConnectPoint> getSources(IpAddress mcastIp) {
+ // FIXME we should support different types of routes
+ McastRoute mcastRoute = srManager.multicastRouteService.getRoutes().stream()
+ .filter(mcastRouteInternal -> mcastRouteInternal.group().equals(mcastIp))
+ .findFirst().orElse(null);
+ return mcastRoute == null ? ImmutableSet.of() :
+ srManager.multicastRouteService.sources(mcastRoute);
+ }
+
+ /**
* Gets sinks of given multicast group.
*
* @param mcastIp multicast IP
@@ -258,7 +273,7 @@
.filter(mcastRouteInternal -> mcastRouteInternal.group().equals(mcastIp))
.findFirst().orElse(null);
return mcastRoute == null ?
- Collections.emptyMap() :
+ ImmutableMap.of() :
srManager.multicastRouteService.routeData(mcastRoute).sinks();
}