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 -> {