Prevent XConnect loop
Change-Id: I65c52342840ebef944a65b8c6f65a33448da59cf
diff --git a/app/src/main/java/org/onosproject/segmentrouting/xconnect/api/XconnectService.java b/app/src/main/java/org/onosproject/segmentrouting/xconnect/api/XconnectService.java
index 25f1b01..4e82524 100644
--- a/app/src/main/java/org/onosproject/segmentrouting/xconnect/api/XconnectService.java
+++ b/app/src/main/java/org/onosproject/segmentrouting/xconnect/api/XconnectService.java
@@ -22,6 +22,7 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
+import java.util.List;
import java.util.Set;
/**
@@ -73,6 +74,24 @@
boolean hasXconnect(ConnectPoint cp);
/**
+ * Gives xconnect VLAN of given port of a device.
+ *
+ * @param deviceId Device ID
+ * @param port Port number
+ * @return true if given VLAN vlanId is XConnect VLAN on device deviceId.
+ */
+ List<VlanId> getXconnectVlans(DeviceId deviceId, PortNumber port);
+
+ /**
+ * Checks given VLAN is XConnect VLAN in given device.
+ *
+ * @param deviceId Device ID
+ * @param vlanId VLAN ID
+ * @return true if given VLAN vlanId is XConnect VLAN on device deviceId.
+ */
+ boolean isXconnectVlan(DeviceId deviceId, VlanId vlanId);
+
+ /**
* Returns the Xconnect next objective store.
*
* @return current contents of the xconnectNextObjStore
@@ -86,4 +105,12 @@
*/
void removeNextId(int nextId);
+ /**
+ * Returns Xconnect next objective ID associated with group device + vlan.
+ *
+ * @param deviceId - Device ID
+ * @param vlanId - VLAN ID
+ * @return Current associated group ID
+ */
+ int getNextId(DeviceId deviceId, VlanId vlanId);
}