Moving Source from connect point to HostId in MulticastHandling
Change-Id: Ie8f678e150b7ee388680b8d8f27df0bce60ec01f
diff --git a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostJoinCommand.java b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostJoinCommand.java
index 629cb2a..7650649 100644
--- a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostJoinCommand.java
+++ b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostJoinCommand.java
@@ -21,13 +21,8 @@
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.mcast.api.McastRoute;
import org.onosproject.mcast.api.MulticastRouteService;
-import org.onosproject.net.ConnectPoint;
import org.onosproject.net.HostId;
-import java.util.Arrays;
-import java.util.Set;
-import java.util.stream.Collectors;
-
/**
* Installs a source, multicast group flow.
*/
@@ -52,8 +47,8 @@
String gAddr = null;
@Option(name = "-srcs", aliases = "--sources",
- description = "Ingress port of:XXXXXXXXXX/XX",
- valueToShowInHelp = "of:0000000000000001/1",
+ description = "Host sink format: MAC/VLAN",
+ valueToShowInHelp = "00:00:00:00:00:00/None",
multiValued = true)
String[] sources = null;
@@ -62,7 +57,7 @@
description = "Host sink format: MAC/VLAN",
valueToShowInHelp = "00:00:00:00:00:00/None",
multiValued = true)
- String[] hosts = null;
+ String[] sinks = null;
@Override
protected void execute() {
@@ -78,16 +73,14 @@
mcastRouteManager.add(mRoute);
if (sources != null) {
- Set<ConnectPoint> sourcesSet = Arrays.stream(sources)
- .map(ConnectPoint::deviceConnectPoint)
- .collect(Collectors.toSet());
- mcastRouteManager.addSources(mRoute, sourcesSet);
+ for (String hostId : sources) {
+ mcastRouteManager.addSource(mRoute, HostId.hostId(hostId));
+ }
}
- if (hosts != null) {
- for (String hostId : hosts) {
+ if (sinks != null) {
+ for (String hostId : sinks) {
mcastRouteManager.addSink(mRoute, HostId.hostId(hostId));
-
}
}
printMcastRoute(mRoute);
@@ -96,7 +89,7 @@
private void printMcastRoute(McastRoute mcastRoute) {
// If the source is present let's use it, otherwise we need to print *
print(FORMAT_MAPPING, mcastRoute.type(), mcastRoute.group(),
- mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
+ mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
}
}
diff --git a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastShowHostCommand.java b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastShowHostCommand.java
index 24ee11b..dbf2ca6 100644
--- a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastShowHostCommand.java
+++ b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastShowHostCommand.java
@@ -89,7 +89,7 @@
private void printRoute(MulticastRouteService mcastService, McastRoute route) {
Map<HostId, Set<ConnectPoint>> sinks = mcastService.routeData(route).sinks();
- Set<ConnectPoint> sources = mcastService.sources(route);
+ Map<HostId, Set<ConnectPoint>> sources = mcastService.routeData(route).sources();
String srcIp = "*";
if (route.source().isPresent()) {
srcIp = route.source().get().toString();
diff --git a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostDeleteCommand.java b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSinkDeleteCommand.java
similarity index 89%
rename from apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostDeleteCommand.java
rename to apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSinkDeleteCommand.java
index ca5959d..524fcb2 100644
--- a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastHostDeleteCommand.java
+++ b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSinkDeleteCommand.java
@@ -26,9 +26,9 @@
/**
* Deletes a multicast route.
*/
-@Command(scope = "onos", name = "mcast-host-delete",
- description = "Delete a multicast route flow")
-public class McastHostDeleteCommand extends AbstractShellCommand {
+@Command(scope = "onos", name = "mcast-sink-delete",
+ description = "Delete a sink from multicast route flow. If no sin is specified removes the whole route.")
+public class McastSinkDeleteCommand extends AbstractShellCommand {
// Delete format for group line
private static final String D_FORMAT_MAPPING = "Deleted the mcast route: " +
@@ -50,7 +50,7 @@
required = true, multiValued = false)
String gAddr = null;
- @Option(name = "-h", aliases = "--host",
+ @Option(name = "-s", aliases = "--sinks",
description = "Host sink format: MAC/VLAN",
valueToShowInHelp = "00:00:00:00:00:00/None")
String host = null;
@@ -70,7 +70,7 @@
sAddrIp = IpAddress.valueOf(sAddr);
}
McastRoute mRoute = new McastRoute(sAddrIp, IpAddress.valueOf(gAddr),
- McastRoute.Type.STATIC);
+ McastRoute.Type.STATIC);
// If the user provides only sAddr and gAddr, we have to remove the route
if (host == null || host.isEmpty()) {
mcastRouteManager.remove(mRoute);
@@ -93,6 +93,6 @@
private void printMcastRoute(String format, McastRoute mcastRoute) {
// If the source is present let's use it, otherwise we need to print *
print(format, mcastRoute.type(), mcastRoute.group(),
- mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
+ mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
}
}
diff --git a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSourceDeleteCommand.java b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSourceDeleteCommand.java
index 0a6080c..d1f646f 100644
--- a/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSourceDeleteCommand.java
+++ b/apps/mcast/cli/src/main/java/org/onosproject/mcast/cli/McastSourceDeleteCommand.java
@@ -21,11 +21,7 @@
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.mcast.api.McastRoute;
import org.onosproject.mcast.api.MulticastRouteService;
-import org.onosproject.net.ConnectPoint;
-
-import java.util.Arrays;
-import java.util.Set;
-import java.util.stream.Collectors;
+import org.onosproject.net.HostId;
/**
* Deletes a multicast route.
@@ -55,8 +51,8 @@
String gAddr = null;
@Option(name = "-src", aliases = "--connectPoint",
- description = "Source port of:XXXXXXXXXX/XX",
- valueToShowInHelp = "of:0000000000000001/1",
+ description = "Host sink format: MAC/VLAN",
+ valueToShowInHelp = "00:00:00:00:00:00/None",
multiValued = true)
String[] sourceList = null;
@@ -76,7 +72,7 @@
sAddrIp = IpAddress.valueOf(sAddr);
}
McastRoute mRoute = new McastRoute(sAddrIp, IpAddress.valueOf(gAddr),
- McastRoute.Type.STATIC);
+ McastRoute.Type.STATIC);
// No specific connect points, we have to remove everything
if (sourceList == null) {
mcastRouteManager.remove(mRoute);
@@ -88,16 +84,16 @@
print("Route is not present, store it first");
return;
}
- Set<ConnectPoint> sourcesSet = Arrays.stream(sourceList)
- .map(ConnectPoint::deviceConnectPoint)
- .collect(Collectors.toSet());
- mcastRouteManager.removeSources(mRoute, sourcesSet);
+ for (String hostId : sourceList) {
+ mcastRouteManager.removeSource(mRoute, HostId.hostId(hostId));
+
+ }
printMcastRoute(U_FORMAT_MAPPING, mRoute);
}
private void printMcastRoute(String format, McastRoute mcastRoute) {
// If the source is present let's use it, otherwise we need to print *
print(format, mcastRoute.type(), mcastRoute.group(),
- mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
+ mcastRoute.source().isPresent() ? mcastRoute.source().get() : "*");
}
}
diff --git a/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 1525938..7bf0fcb 100644
--- a/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -21,7 +21,7 @@
<action class="org.onosproject.mcast.cli.McastHostJoinCommand"/>
<optional-completers>
<entry key="-gAddr" value-ref="mcastGroupCompleter"/>
- <entry key="-srcs" value-ref="connectpointCompleter"/>
+ <entry key="-srcs" value-ref="hostIdCompleter"/>
<entry key="-sinks" value-ref="hostIdCompleter"/>
</optional-completers>
</command>
@@ -32,18 +32,18 @@
</optional-completers>
</command>
<command>
- <action class="org.onosproject.mcast.cli.McastHostDeleteCommand"/>
+ <action class="org.onosproject.mcast.cli.McastSinkDeleteCommand"/>
<optional-completers>
<entry key="-gAddr" value-ref="mcastGroupCompleter"/>
<entry key="-cps" value-ref="connectpointCompleter"/>
- <entry key="-h" value-ref="hostIdCompleter"/>
+ <entry key="-s" value-ref="hostIdCompleter"/>
</optional-completers>
</command>
<command>
<action class="org.onosproject.mcast.cli.McastSourceDeleteCommand"/>
<optional-completers>
<entry key="-gAddr" value-ref="mcastGroupCompleter"/>
- <entry key="-src" value-ref="connectpointCompleter"/>
+ <entry key="-src" value-ref="hostIdCompleter"/>
</optional-completers>
</command>
<command>