Segment Routing Service interface definition file
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/ISegmentRoutingService.java b/src/main/java/net/onrc/onos/apps/segmentrouting/ISegmentRoutingService.java
new file mode 100644
index 0000000..d544fc5
--- /dev/null
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/ISegmentRoutingService.java
@@ -0,0 +1,61 @@
+package net.onrc.onos.apps.segmentrouting;
+
+import java.util.List;
+
+import net.floodlightcontroller.core.module.IFloodlightService;
+import net.floodlightcontroller.util.MACAddress;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.IPv4Net;
+
+/**
+ * The API exported by the main SDN-IP class. This is the interface between the
+ * REST handlers and the SDN-IP module.
+ */
+public interface ISegmentRoutingService extends IFloodlightService {
+
+ /**
+ * Create a tunnel for policy routing.
+ *
+ * @param tunnelId ID for the tunnel
+ * @param Ids Node IDs for the tunnel
+ *
+ * @return "true/false" depending tunnel creation status
+ */
+ public boolean createTunnel(String tunnelId, List<Dpid> Ids);
+
+ /**
+ * Remove a Segment Routing tunnel given a tunnel Id.
+ *
+ * @param tunnelId ID for the tunnel
+ *
+ * @return "true/false" depending tunnel deletion status
+ */
+ public boolean removeTunnel(String tunnelId);
+
+ /**
+ * Create a policy for policy based segment routing
+ *
+ * @param pid Unique Policy Identifier
+ * @param srcIP Source IP address in CIDR format
+ * @param dstIP Destination IP address in CIDR format
+ * @param ipProto IP protocol type
+ * @param srcPort Source L4 port
+ * @param dstPort Destination L4 port
+ * @param priority Priority of the policy
+ * @param tid SR Tunnel Id to be associated with this policy
+ *
+ * @return "true/false" depending tunnel creation status
+ */
+ public boolean createPolicy(String pid, MACAddress srcMac, MACAddress dstMac,
+ Short etherType, IPv4Net srcIp, IPv4Net dstIp, Byte ipProto,
+ Short srcPort, Short dstPort, int priority, String tid);
+
+ /**
+ * Remove a policy given policy Id
+ *
+ * @param pid Unique Policy Identifier
+ *
+ * @return "true/false" depending tunnel deletion status
+ */
+ public boolean removePolicy(String pid);
+}