aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java')
-rw-r--r--framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java76
1 files changed, 76 insertions, 0 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
new file mode 100644
index 00000000..2d1bb311
--- /dev/null
+++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/IntentRequestListener.java
@@ -0,0 +1,76 @@
+/*
+ * 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.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
+import org.onlab.packet.MacAddress;
+import org.onosproject.net.ConnectPoint;
+
+/**
+ * An interface to process intent requests.
+ */
+public interface IntentRequestListener {
+
+ /**
+ * Sets up connectivity for packet from Internet to a host in local
+ * SDN network.
+ *
+ * @param dstIpAddress IP address of destination host in local SDN network
+ */
+ void setUpConnectivityInternetToHost(IpAddress dstIpAddress);
+
+ /**
+ * Sets up the connectivity for two hosts in local SDN network.
+ *
+ * @param dstIpAddress the destination IP address
+ * @param srcIpAddress the source IP address
+ * @param srcMacAddress the source MAC address
+ * @param srcConnectPoint the connectPoint of the source host
+ */
+ void setUpConnectivityHostToHost(IpAddress dstIpAddress,
+ IpAddress srcIpAddress,
+ MacAddress srcMacAddress,
+ ConnectPoint srcConnectPoint);
+
+ /**
+ * Adds one new ingress connect point into ingress points of an existing
+ * intent and resubmits the new intent.
+ * <p>
+ * If there is already an intent for an IP prefix in the system, we do not
+ * need to create a new one, we only need to update this existing intent by
+ * adding more ingress points.
+ * </p>
+ *
+ * @param ipPrefix the IP prefix used to search the existing
+ * MultiPointToSinglePointIntent
+ * @param ingressConnectPoint the ingress connect point to be added into
+ * the exiting intent
+ */
+ void updateExistingMp2pIntent(IpPrefix ipPrefix,
+ ConnectPoint ingressConnectPoint);
+
+ /**
+ * Checks whether there is a MultiPointToSinglePointIntent in memory for a
+ * given IP prefix.
+ *
+ * @param ipPrefix the IP prefix used to search the existing
+ * MultiPointToSinglePointIntent
+ * @return true if there is a MultiPointToSinglePointIntent, otherwise false
+ */
+ boolean mp2pIntentExists(IpPrefix ipPrefix);
+
+}