diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
commit | 6a07d2d622eaa06953f3353e39c080984076e8de (patch) | |
tree | bfb50a2090fce186c2cc545a400c969bf2ea702b /framework/src/onos/apps/routing-api/src/main | |
parent | e6d71622143ff9b2421a1abbe8434b954b5b1099 (diff) |
Updated master to commit id 6ee8aa3e67ce89908a8c93aa9445c6f71a18f986
Change-Id: I94b055ee2f298daf71e2ec794fd0f2495bd8081f
Diffstat (limited to 'framework/src/onos/apps/routing-api/src/main')
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(); + +} |