aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing')
-rw-r--r--framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java10
-rw-r--r--framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentSynchronizationService.java51
-rw-r--r--framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RoutingService.java97
-rw-r--r--framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/SdnIpService.java39
4 files changed, 100 insertions, 97 deletions
diff --git a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java
index 2d1bb311..1069ec5a 100644
--- a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java
+++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java
@@ -47,6 +47,16 @@ public interface IntentRequestListener {
ConnectPoint srcConnectPoint);
/**
+ * Sets up connectivity for packet from a local host to the Internet.
+ *
+ * @param hostIp IP address of the local host
+ * @param prefix external IP prefix that the host is talking to
+ * @param nextHopIpAddress IP address of the next hop router for the prefix
+ */
+ void setUpConnectivityHostToInternet(IpAddress hostIp, IpPrefix prefix,
+ IpAddress nextHopIpAddress);
+
+ /**
* Adds one new ingress connect point into ingress points of an existing
* intent and resubmits the new intent.
* <p>
diff --git a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentSynchronizationService.java b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentSynchronizationService.java
new file mode 100644
index 00000000..dc6a838d
--- /dev/null
+++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentSynchronizationService.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015 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.routing;
+
+import org.onosproject.net.intent.Intent;
+
+/**
+ * Submits and withdraws intents to the IntentService from a single point in
+ * the cluster at any one time. The provided intents will be synchronized with
+ * the IntentService on leadership change.
+ */
+public interface IntentSynchronizationService {
+
+ /**
+ * Submits and intent to the synchronizer.
+ * <p>
+ * The intent will be submitted directly to the IntentService if this node
+ * is the leader, otherwise it will be stored in the synchronizer for
+ * synchronization if this node becomes the leader.
+ * </p>
+ *
+ * @param intent intent to submit
+ */
+ void submit(Intent intent);
+
+ /**
+ * Withdraws an intent from the synchronizer.
+ * <p>
+ * The intent will be withdrawn directly from the IntentService if this node
+ * is the leader. The intent will be removed from the synchronizer's
+ * in-memory storage.
+ * </p>
+ *
+ * @param intent intent to withdraw
+ */
+ void withdraw(Intent intent);
+}
diff --git a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RoutingService.java b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RoutingService.java
index 8b7040e2..7399ed75 100644
--- a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RoutingService.java
+++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RoutingService.java
@@ -16,8 +16,6 @@
package org.onosproject.routing;
import org.onlab.packet.IpAddress;
-import org.onlab.packet.MacAddress;
-import org.onosproject.net.ConnectPoint;
import org.onosproject.routing.config.BgpConfig;
import java.util.Collection;
@@ -32,63 +30,6 @@ public interface RoutingService {
Class<BgpConfig> CONFIG_CLASS = BgpConfig.class;
/**
- * Specifies the type of an IP address or an IP prefix location.
- */
- enum LocationType {
- /**
- * The location of an IP address or an IP prefix is in local SDN network.
- */
- LOCAL,
- /**
- * The location of an IP address or an IP prefix is outside local SDN network.
- */
- INTERNET,
- /**
- * There is no route for this IP address or IP prefix.
- */
- NO_ROUTE
- }
-
- /**
- * Specifies the type of traffic.
- * <p>
- * We classify traffic by the first packet of each traffic.
- * </p>
- */
- enum TrafficType {
- /**
- * Traffic from a host located in local SDN network wants to
- * communicate with destination host located in Internet (outside
- * local SDN network).
- */
- HOST_TO_INTERNET,
- /**
- * Traffic from Internet wants to communicate with a host located
- * in local SDN network.
- */
- INTERNET_TO_HOST,
- /**
- * Both the source host and destination host of a traffic are in
- * local SDN network.
- */
- HOST_TO_HOST,
- /**
- * Traffic from Internet wants to traverse local SDN network.
- */
- INTERNET_TO_INTERNET,
- /**
- * Any traffic wants to communicate with a destination which has
- * no route, or traffic from Internet wants to access a local private
- * IP address.
- */
- DROP,
- /**
- * Traffic does not belong to the types above.
- */
- UNKNOWN
- }
-
- /**
* Starts the routing service.
*/
void start();
@@ -101,15 +42,6 @@ public interface RoutingService {
void addFibListener(FibListener fibListener);
/**
- * Adds intent creation and submission listener.
- *
- * @param intentRequestListener listener to send intent creation and
- * submission request to
- */
- void addIntentRequestListener(IntentRequestListener
- intentRequestListener);
-
- /**
* Stops the routing service.
*/
void stop();
@@ -129,14 +61,6 @@ public interface RoutingService {
Collection<RouteEntry> getRoutes6();
/**
- * Evaluates the location of an IP address and returns the location type.
- *
- * @param ipAddress the IP address to evaluate
- * @return the IP address location type
- */
- LocationType getLocationType(IpAddress ipAddress);
-
- /**
* Finds out the route entry which has the longest matchable IP prefix.
*
* @param ipAddress IP address used to find out longest matchable IP prefix
@@ -145,25 +69,4 @@ public interface RoutingService {
*/
RouteEntry getLongestMatchableRouteEntry(IpAddress ipAddress);
- /**
- * Finds out the egress connect point where to emit the first packet
- * based on destination IP address.
- *
- * @param dstIpAddress the destination IP address
- * @return the egress connect point if found, otherwise null
- */
- ConnectPoint getEgressConnectPoint(IpAddress dstIpAddress);
-
- /**
- * Routes packet reactively.
- *
- * @param dstIpAddress the destination IP address of a packet
- * @param srcIpAddress the source IP address of a packet
- * @param srcConnectPoint the connect point where a packet comes from
- * @param srcMacAddress the source MAC address of a packet
- */
- void packetReactiveProcessor(IpAddress dstIpAddress,
- IpAddress srcIpAddress,
- ConnectPoint srcConnectPoint,
- MacAddress srcMacAddress);
}
diff --git a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/SdnIpService.java b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/SdnIpService.java
new file mode 100644
index 00000000..0945336c
--- /dev/null
+++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/SdnIpService.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2014-2015 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.routing;
+
+/**
+ * Service interface exported by SDN-IP.
+ */
+public interface SdnIpService {
+
+ /**
+ * Changes whether this SDN-IP instance is the primary or not based on the
+ * boolean parameter.
+ *
+ * @param isPrimary true if the instance is primary, false if it is not
+ */
+ void modifyPrimary(boolean isPrimary);
+
+ /**
+ * Gets the intent synchronization service.
+ *
+ * @return intent synchronization service
+ */
+ // TODO fix service resolution in SDN-IP
+ IntentSynchronizationService getIntentSynchronizationService();
+
+}