Remove dependencies from EVPN route system on unicast route system.
The route system is moving to an app, so EVPN code in the incubator
can't depend on it. I implemented an EvpnRouteTableId to remove this
dependency.
Change-Id: Id9af9fc0e0c680add1e061d0628ffdbd2a23dbde
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteService.java
index ba9179b..20e1fa7 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteService.java
@@ -32,5 +32,5 @@
*
* @return collection of route table IDs.
*/
- Collection<RouteTableId> getRouteTables();
+ Collection<EvpnRouteTableId> getRouteTables();
}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteSet.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteSet.java
index 9530f09..adc8c1c 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteSet.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteSet.java
@@ -27,7 +27,7 @@
* A set of routes for a particular prefix in a route table.
*/
public class EvpnRouteSet {
- private final RouteTableId tableId;
+ private final EvpnRouteTableId tableId;
private final EvpnPrefix prefix;
private final Set<EvpnRoute> routes;
@@ -39,7 +39,7 @@
* @param prefix IP prefix
* @param routes routes for the given prefix
*/
- public EvpnRouteSet(RouteTableId tableId, EvpnPrefix prefix, Set<EvpnRoute>
+ public EvpnRouteSet(EvpnRouteTableId tableId, EvpnPrefix prefix, Set<EvpnRoute>
routes) {
this.tableId = checkNotNull(tableId);
this.prefix = checkNotNull(prefix);
@@ -51,7 +51,7 @@
*
* @return route table ID
*/
- public RouteTableId tableId() {
+ public EvpnRouteTableId tableId() {
return tableId;
}
@@ -84,7 +84,7 @@
return true;
}
- if (!(other instanceof RouteSet)) {
+ if (!(other instanceof EvpnRouteSet)) {
return false;
}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteStore.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteStore.java
index 9dd5e73..5c6e2ef 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteStore.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteStore.java
@@ -47,7 +47,7 @@
*
* @return route table IDs
*/
- Set<RouteTableId> getRouteTables();
+ Set<EvpnRouteTableId> getRouteTables();
/**
* Returns the routes in the given route table, grouped by prefix.
@@ -55,7 +55,7 @@
* @param table route table ID
* @return routes
*/
- Collection<EvpnRouteSet> getRoutes(RouteTableId table);
+ Collection<EvpnRouteSet> getRoutes(EvpnRouteTableId table);
/**
* Returns the routes that point to the given next hop IP address.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteTableId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteTableId.java
new file mode 100644
index 0000000..44af3cb
--- /dev/null
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnRouteTableId.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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 java.util.Objects;
+
+/**
+ * Identifier for an EVPN routing table.
+ */
+public class EvpnRouteTableId {
+ private final String name;
+
+ /**
+ * Creates a new route table ID.
+ *
+ * @param name unique name for the route table
+ */
+ public EvpnRouteTableId(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Returns the name of the route table.
+ *
+ * @return table name
+ */
+ public String name() {
+ return name;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj instanceof EvpnRouteTableId) {
+ EvpnRouteTableId that = (EvpnRouteTableId) obj;
+
+ return Objects.equals(this.name, that.name);
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ return name;
+ }
+}
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnTable.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnTable.java
index eaa07af..1b8fe78 100755
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnTable.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/EvpnTable.java
@@ -44,7 +44,7 @@
*
* @return route table ID
*/
- RouteTableId id();
+ EvpnRouteTableId id();
/**
* Returns all routes in the route table.