T3: Ping to same host behind two routers
Change-Id: Idb07b620587345c4ffefccc980e365606bbbffc0
diff --git a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteService.java b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteService.java
index c626e47..cacee10 100644
--- a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteService.java
+++ b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteService.java
@@ -17,6 +17,7 @@
package org.onosproject.routeservice;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
import org.onosproject.event.ListenerService;
import java.util.Collection;
@@ -51,6 +52,15 @@
Optional<ResolvedRoute> longestPrefixLookup(IpAddress ip);
/**
+ * Returns all resolved routes stored for the given prefix, including the
+ * best selected route.
+ *
+ * @param prefix IP prefix to look up routes for
+ * @return all stored resolved routes for this prefix
+ */
+ Collection<ResolvedRoute> getAllResolvedRoutes(IpPrefix prefix);
+
+ /**
* Performs a longest prefix match on the given IP address. The call will
* return the route with the most specific prefix that contains the given
* IP address.
diff --git a/apps/route-service/api/src/test/java/org/onosproject/routeservice/RouteServiceAdapter.java b/apps/route-service/api/src/test/java/org/onosproject/routeservice/RouteServiceAdapter.java
index 1d6ec19..5d41450 100644
--- a/apps/route-service/api/src/test/java/org/onosproject/routeservice/RouteServiceAdapter.java
+++ b/apps/route-service/api/src/test/java/org/onosproject/routeservice/RouteServiceAdapter.java
@@ -16,7 +16,9 @@
package org.onosproject.routeservice;
+import com.google.common.collect.ImmutableList;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
import java.util.Collection;
import java.util.Optional;
@@ -56,6 +58,11 @@
}
@Override
+ public Collection<ResolvedRoute> getAllResolvedRoutes(IpPrefix prefix) {
+ return ImmutableList.of();
+ }
+
+ @Override
public void addListener(RouteListener listener) {
}
diff --git a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/RouteManager.java b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/RouteManager.java
index e1acc2c..e92cc0e 100644
--- a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/RouteManager.java
+++ b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/RouteManager.java
@@ -16,6 +16,7 @@
package org.onosproject.routeservice.impl;
+import com.google.common.collect.ImmutableList;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
@@ -211,6 +212,11 @@
}
@Override
+ public Collection<ResolvedRoute> getAllResolvedRoutes(IpPrefix prefix) {
+ return ImmutableList.copyOf(resolvedRouteStore.getAllRoutes(prefix));
+ }
+
+ @Override
public void update(Collection<Route> routes) {
synchronized (this) {
routes.forEach(route -> {