CORD-1578 CORD-1708 Handle dual single homed router and single dual homed router
In addition
- Carry all alternatives in ROUTE_UPDATED and ROUTE_REMOVED event
- More unit tests
- More debug messages
- Fix routing table out-of-sync issue in MockRoutingService
- Fix populateRoute/revokeRoute mastership issue
Change-Id: I22d537625b570b09ecd4e22e6e14bb1ee27f8bcb
diff --git a/apps/segmentrouting/src/test/java/org/onosproject/segmentrouting/MockRouteService.java b/apps/segmentrouting/src/test/java/org/onosproject/segmentrouting/MockRouteService.java
index 14e2166..7927636 100644
--- a/apps/segmentrouting/src/test/java/org/onosproject/segmentrouting/MockRouteService.java
+++ b/apps/segmentrouting/src/test/java/org/onosproject/segmentrouting/MockRouteService.java
@@ -16,29 +16,44 @@
package org.onosproject.segmentrouting;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
+import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
+import org.onlab.packet.MacAddress;
+import org.onlab.packet.VlanId;
+import org.onosproject.routeservice.ResolvedRoute;
+import org.onosproject.routeservice.Route;
import org.onosproject.routeservice.RouteInfo;
import org.onosproject.routeservice.RouteServiceAdapter;
import org.onosproject.routeservice.RouteTableId;
import java.util.Collection;
-import java.util.Set;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* Mock Route Service.
* We assume there is only one routing table named "default".
*/
public class MockRouteService extends RouteServiceAdapter {
- private Set<RouteInfo> routes;
+ private Map<MockRoutingTableKey, MockRoutingTableValue> routingTable;
- MockRouteService(Set<RouteInfo> routes) {
- this.routes = ImmutableSet.copyOf(routes);
+ MockRouteService(Map<MockRoutingTableKey, MockRoutingTableValue> routingTable) {
+ this.routingTable = routingTable;
}
@Override
public Collection<RouteInfo> getRoutes(RouteTableId id) {
- return routes;
+ return routingTable.entrySet().stream().map(e -> {
+ IpPrefix prefix = e.getKey().ipPrefix;
+ IpAddress nextHop = IpAddress.valueOf(0); // dummy
+ MacAddress mac = e.getValue().macAddress;
+ VlanId vlan = e.getValue().vlanId;
+ Route route = new Route(Route.Source.STATIC, prefix, nextHop);
+ ResolvedRoute rr = new ResolvedRoute(route, mac, vlan);
+
+ return new RouteInfo(prefix, rr, Sets.newHashSet(rr));
+ }).collect(Collectors.toSet());
}
@Override