Remove deprecated RouteService APIs.
The goal is to clean up the interfaces a little bit in preparation for
a major RouteService refactoring that is coming.
Change-Id: Ifbde9a507dd0dc3cddcd7fa1c02c426dad386e5f
diff --git a/cli/src/main/java/org/onosproject/cli/net/NextHopsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/NextHopsListCommand.java
deleted file mode 100644
index 9d8bb91..0000000
--- a/cli/src/main/java/org/onosproject/cli/net/NextHopsListCommand.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.cli.net;
-
-import org.apache.karaf.shell.commands.Command;
-import org.onosproject.cli.AbstractShellCommand;
-import org.onosproject.incubator.net.routing.NextHop;
-import org.onosproject.incubator.net.routing.Route;
-import org.onosproject.incubator.net.routing.RouteService;
-
-import java.util.Collection;
-import java.util.Set;
-
-/**
- * Command to show information about routing next hops.
- */
-@Command(scope = "onos", name = "next-hops",
- description = "Lists all next hops in the route store")
-public class NextHopsListCommand extends AbstractShellCommand {
-
- private static final String FORMAT_HEADER =
- " Network Next Hop";
- private static final String FORMAT_ROUTE =
- " %-18s %-15s";
-
- private static final String FORMAT_TABLE = "Table: %s";
- private static final String FORMAT_TOTAL = " Total: %d";
-
- private static final String FORMAT = "ip=%s, mac=%s, loc=%s, numRoutes=%s";
-
- @Override
- protected void execute() {
- RouteService service = AbstractShellCommand.get(RouteService.class);
-
- Set<NextHop> nextHops = service.getNextHops();
-
- nextHops.forEach(nextHop -> {
- Collection<Route> routes = service.getRoutesForNextHop(nextHop.ip());
- print(FORMAT, nextHop.ip(), nextHop.mac(), nextHop.location(), routes.size());
- });
- }
-
-}
diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index d718406..1a20343 100644
--- a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -573,9 +573,6 @@
<command>
<action class="org.onosproject.cli.net.RouteRemoveCommand"/>
</command>
- <command>
- <action class="org.onosproject.cli.net.NextHopsListCommand"/>
- </command>
<command>
<action class="org.onosproject.cli.net.GlobalLabelCommand"/>
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/NextHop.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/NextHop.java
deleted file mode 100644
index 0241742..0000000
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/NextHop.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.incubator.net.routing;
-
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.MacAddress;
-import org.onosproject.net.ConnectPoint;
-
-import java.util.Objects;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-
-/**
- * Describes a routing next hop.
- */
-public class NextHop {
-
- private final IpAddress ip;
- private final NextHopData nextHopData;
-
- /**
- * Creates a new next hop.
- *
- * @param ip IP address
- * @param nextHopData Next hop data
- */
- public NextHop(IpAddress ip, NextHopData nextHopData) {
- this.ip = ip;
- this.nextHopData = nextHopData;
- }
-
- /**
- * Returns the IP address of the next hop.
- *
- * @return IP address
- */
- public IpAddress ip() {
- return ip;
- }
-
- /**
- * Returns the MAC address of the next hop.
- *
- * @return MAC address
- */
- public MacAddress mac() {
- return nextHopData.mac();
- }
-
- /**
- * Returns the location of the next hop.
- *
- * @return Connect point
- */
- public ConnectPoint location() {
- return nextHopData.location();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(ip, nextHopData);
- }
-
- @Override
- public boolean equals(Object other) {
- if (this == other) {
- return true;
- }
-
- if (!(other instanceof NextHop)) {
- return false;
- }
-
- NextHop that = (NextHop) other;
-
- return Objects.equals(this.ip, that.ip) &&
- Objects.equals(this.nextHopData, that.nextHopData);
- }
-
- @Override
- public String toString() {
- return toStringHelper(this)
- .add("ip", ip)
- .add("nextHopData", nextHopData)
- .toString();
- }
-}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteService.java
index 4a298ba..c123dc3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteService.java
@@ -20,9 +20,7 @@
import org.onosproject.event.ListenerService;
import java.util.Collection;
-import java.util.Map;
import java.util.Optional;
-import java.util.Set;
/**
* Unicast IP route service.
@@ -30,16 +28,6 @@
public interface RouteService extends ListenerService<RouteEvent, RouteListener> {
/**
- * Returns all routes for all route tables in the system.
- *
- * @return map of route table name to routes in that table
- * @deprecated in Kingfisher release. Use {@link #getRoutes(RouteTableId)}
- * instead.
- */
- @Deprecated
- Map<RouteTableId, Collection<Route>> getAllRoutes();
-
- /**
* Returns information about all routes in the given route table.
*
* @param id route table ID
@@ -55,6 +43,14 @@
Collection<RouteTableId> getRouteTables();
/**
+ * Performs a longest prefix lookup on the given IP address.
+ *
+ * @param ip IP address to look up
+ * @return most specific matching route, if one exists
+ */
+ Optional<ResolvedRoute> longestPrefixLookup(IpAddress ip);
+
+ /**
* 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.
@@ -66,30 +62,4 @@
*/
@Deprecated
Route longestPrefixMatch(IpAddress ip);
-
- /**
- * Performs a longest prefix lookup on the given IP address.
- *
- * @param ip IP address to look up
- * @return most specific matching route, if one exists
- */
- Optional<ResolvedRoute> longestPrefixLookup(IpAddress ip);
-
- /**
- * Returns the routes for the given next hop.
- *
- * @param nextHop next hop IP address
- * @return routes for this next hop
- */
- @Deprecated
- Collection<Route> getRoutesForNextHop(IpAddress nextHop);
-
- /**
- * Returns all next hops in the route store.
- *
- * @return set of next hops
- */
- @Deprecated
- Set<NextHop> getNextHops();
-
}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteStore.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteStore.java
index 27ec1c3..0d2eb23 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteStore.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteStore.java
@@ -22,7 +22,6 @@
import org.onosproject.store.Store;
import java.util.Collection;
-import java.util.Map;
import java.util.Set;
/**
@@ -78,49 +77,4 @@
@Beta
RouteSet getRoutes(IpPrefix prefix);
- /**
- * Updates a next hop information in the store.
- *
- * @param ip IP address
- * @param nextHopData Information of the next hop
- */
- @Deprecated
- void updateNextHop(IpAddress ip, NextHopData nextHopData);
-
- /**
- * Removes a next hop information from the store.
- *
- * @param ip IP address
- * @param nextHopData Information of the next hop
- */
- @Deprecated
- void removeNextHop(IpAddress ip, NextHopData nextHopData);
-
- /**
- * Returns the information of the given next hop.
- *
- * @param ip next hop IP
- * @return Information of the next hop
- */
- @Deprecated
- NextHopData getNextHop(IpAddress ip);
-
- /**
- * Returns all next hops in the route store.
- *
- * @return next hops
- */
- @Deprecated
- Map<IpAddress, NextHopData> getNextHops();
-
- /**
- * Performs a longest prefix match with the given IP address.
- *
- * @param ip IP to look up
- * @return longest prefix match route
- * @deprecated in Kingfisher release. Now handled by the manager instead of
- * the store
- */
- @Deprecated
- Route longestPrefixMatch(IpAddress ip);
}
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/routing/RouteServiceAdapter.java b/incubator/api/src/test/java/org/onosproject/incubator/net/routing/RouteServiceAdapter.java
index a13f5c8..e81fc30 100644
--- a/incubator/api/src/test/java/org/onosproject/incubator/net/routing/RouteServiceAdapter.java
+++ b/incubator/api/src/test/java/org/onosproject/incubator/net/routing/RouteServiceAdapter.java
@@ -19,9 +19,7 @@
import org.onlab.packet.IpAddress;
import java.util.Collection;
-import java.util.Map;
import java.util.Optional;
-import java.util.Set;
/**
* Adapter class for the route service.
@@ -38,11 +36,6 @@
}
@Override
- public Map<RouteTableId, Collection<Route>> getAllRoutes() {
- return null;
- }
-
- @Override
public Collection<RouteInfo> getRoutes(RouteTableId id) {
return null;
}
@@ -63,16 +56,6 @@
}
@Override
- public Collection<Route> getRoutesForNextHop(IpAddress nextHop) {
- return null;
- }
-
- @Override
- public Set<NextHop> getNextHops() {
- return null;
- }
-
- @Override
public void addListener(RouteListener listener) {
}
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
index 267bb69..f057942 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/routing/impl/RouteManager.java
@@ -26,7 +26,6 @@
import org.onlab.packet.IpPrefix;
import org.onosproject.cluster.ClusterService;
import org.onosproject.incubator.net.routing.InternalRouteEvent;
-import org.onosproject.incubator.net.routing.NextHop;
import org.onosproject.incubator.net.routing.ResolvedRoute;
import org.onosproject.incubator.net.routing.Route;
import org.onosproject.incubator.net.routing.RouteAdminService;
@@ -48,7 +47,6 @@
import javax.annotation.concurrent.GuardedBy;
import java.util.Collection;
-import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
@@ -59,7 +57,6 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
-import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.concurrent.Executors.newSingleThreadExecutor;
@@ -175,14 +172,6 @@
}
}
- @Override
- public Map<RouteTableId, Collection<Route>> getAllRoutes() {
- return routeStore.getRouteTables().stream()
- .collect(Collectors.toMap(Function.identity(),
- table -> (table == null) ?
- Collections.emptySet() : reformatRoutes(routeStore.getRoutes(table))));
- }
-
private Collection<Route> reformatRoutes(Collection<RouteSet> routeSets) {
return routeSets.stream().flatMap(r -> r.routes().stream()).collect(Collectors.toList());
}
@@ -214,30 +203,11 @@
}
@Override
- public Route longestPrefixMatch(IpAddress ip) {
- return longestPrefixLookup(ip)
- .map(ResolvedRoute::route)
- .orElse(null);
- }
-
- @Override
public Optional<ResolvedRoute> longestPrefixLookup(IpAddress ip) {
return resolvedRouteStore.longestPrefixMatch(ip);
}
@Override
- public Collection<Route> getRoutesForNextHop(IpAddress nextHop) {
- return routeStore.getRoutesForNextHop(nextHop);
- }
-
- @Override
- public Set<NextHop> getNextHops() {
- return routeStore.getNextHops().entrySet().stream()
- .map(entry -> new NextHop(entry.getKey(), entry.getValue()))
- .collect(Collectors.toSet());
- }
-
- @Override
public void update(Collection<Route> routes) {
synchronized (this) {
routes.forEach(route -> {
@@ -257,6 +227,13 @@
}
}
+ @Override
+ public Route longestPrefixMatch(IpAddress ip) {
+ return longestPrefixLookup(ip)
+ .map(ResolvedRoute::route)
+ .orElse(null);
+ }
+
private ResolvedRoute resolve(Route route) {
hostService.startMonitoringIp(route.nextHop());
Set<Host> hosts = hostService.getHostsByIp(route.nextHop());
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/DistributedRouteStore.java b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/DistributedRouteStore.java
index 34e281a..9f0ae4f 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/DistributedRouteStore.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/DistributedRouteStore.java
@@ -21,7 +21,6 @@
import org.onlab.packet.IpPrefix;
import org.onlab.util.KryoNamespace;
import org.onosproject.incubator.net.routing.InternalRouteEvent;
-import org.onosproject.incubator.net.routing.NextHopData;
import org.onosproject.incubator.net.routing.Route;
import org.onosproject.incubator.net.routing.RouteSet;
import org.onosproject.incubator.net.routing.RouteStore;
@@ -137,12 +136,6 @@
}
@Override
- public Route longestPrefixMatch(IpAddress ip) {
- // Not supported
- return null;
- }
-
- @Override
public Collection<Route> getRoutesForNextHop(IpAddress ip) {
return getDefaultRouteTable(ip).getRoutesForNextHop(ip);
}
@@ -152,28 +145,6 @@
return getDefaultRouteTable(prefix.address()).getRoutes(prefix);
}
- @Override
- public void updateNextHop(IpAddress ip, NextHopData nextHopData) {
- // Not supported
- }
-
- @Override
- public void removeNextHop(IpAddress ip, NextHopData nextHopData) {
- // Not supported
- }
-
- @Override
- public NextHopData getNextHop(IpAddress ip) {
- // Not supported
- return null;
- }
-
- @Override
- public Map<IpAddress, NextHopData> getNextHops() {
- // Not supported
- return Collections.emptyMap();
- }
-
private void createRouteTable(RouteTableId tableId) {
routeTables.computeIfAbsent(tableId, id -> new DefaultRouteTable(id, ourDelegate, storageService, executor));
}
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/LocalRouteStore.java b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/LocalRouteStore.java
index 508c2f1..04663e2 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/LocalRouteStore.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/LocalRouteStore.java
@@ -23,7 +23,6 @@
import org.onlab.packet.IpAddress;
import org.onlab.packet.IpPrefix;
import org.onosproject.incubator.net.routing.InternalRouteEvent;
-import org.onosproject.incubator.net.routing.NextHopData;
import org.onosproject.incubator.net.routing.Route;
import org.onosproject.incubator.net.routing.RouteSet;
import org.onosproject.incubator.net.routing.RouteStore;
@@ -102,11 +101,6 @@
}
@Override
- public Route longestPrefixMatch(IpAddress ip) {
- return getDefaultRouteTable(ip).longestPrefixMatch(ip);
- }
-
- @Override
public Collection<Route> getRoutesForNextHop(IpAddress ip) {
return getDefaultRouteTable(ip).getRoutesForNextHop(ip);
}
@@ -116,28 +110,6 @@
return getDefaultRouteTable(prefix.address()).getRoutes(prefix);
}
- @Override
- public void updateNextHop(IpAddress ip, NextHopData nextHopData) {
- // No longer needed
- }
-
- @Override
- public void removeNextHop(IpAddress ip, NextHopData nextHopData) {
- // No longer needed
- }
-
- @Override
- public NextHopData getNextHop(IpAddress ip) {
- // No longer needed
- return null;
- }
-
- @Override
- public Map<IpAddress, NextHopData> getNextHops() {
- // No longer needed
- return Collections.emptyMap();
- }
-
private RouteTable getDefaultRouteTable(Route route) {
return getDefaultRouteTable(route.prefix().address());
}
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
index c07f3a6..4d1f5f0 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
@@ -28,7 +28,6 @@
import org.onlab.util.Tools;
import org.onosproject.cfg.ComponentConfigService;
import org.onosproject.incubator.net.routing.InternalRouteEvent;
-import org.onosproject.incubator.net.routing.NextHopData;
import org.onosproject.incubator.net.routing.Route;
import org.onosproject.incubator.net.routing.RouteSet;
import org.onosproject.incubator.net.routing.RouteStore;
@@ -43,7 +42,6 @@
import java.util.Collection;
import java.util.Dictionary;
-import java.util.Map;
import java.util.Set;
/**
@@ -154,11 +152,6 @@
}
@Override
- public Route longestPrefixMatch(IpAddress ip) {
- return currentRouteStore.longestPrefixMatch(ip);
- }
-
- @Override
public Collection<Route> getRoutesForNextHop(IpAddress ip) {
return currentRouteStore.getRoutesForNextHop(ip);
}
@@ -167,24 +160,4 @@
public RouteSet getRoutes(IpPrefix prefix) {
return currentRouteStore.getRoutes(prefix);
}
-
- @Override
- public void updateNextHop(IpAddress ip, NextHopData nextHopData) {
- currentRouteStore.updateNextHop(ip, nextHopData);
- }
-
- @Override
- public void removeNextHop(IpAddress ip, NextHopData nextHopData) {
- currentRouteStore.removeNextHop(ip, nextHopData);
- }
-
- @Override
- public NextHopData getNextHop(IpAddress ip) {
- return currentRouteStore.getNextHop(ip);
- }
-
- @Override
- public Map<IpAddress, NextHopData> getNextHops() {
- return currentRouteStore.getNextHops();
- }
}