Removed Floodlight devicemanager, topology, routing and forwarding modules
Change-Id: Icbdecb2f7c84bcb450ee95177d82ae9c82a3f163
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java
index 99438ab..2b45200 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java
@@ -21,8 +21,6 @@
import java.util.Set;
import net.floodlightcontroller.core.module.IFloodlightService;
-import net.floodlightcontroller.routing.Link;
-import net.floodlightcontroller.topology.NodePortTuple;
public interface ILinkDiscoveryService extends IFloodlightService {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java
new file mode 100755
index 0000000..38fc3d9
--- /dev/null
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java
@@ -0,0 +1,122 @@
+/**
+* Copyright 2011, Big Switch Networks, Inc.
+* Originally created by David Erickson, Stanford University
+*
+* 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 net.onrc.onos.ofcontroller.linkdiscovery;
+
+import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
+import net.floodlightcontroller.core.web.serializers.UShortSerializer;
+
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.openflow.util.HexString;
+
+public class Link {
+ private long src;
+ private short srcPort;
+ private long dst;
+ private short dstPort;
+
+
+ public Link(long srcId, short srcPort, long dstId, short dstPort) {
+ this.src = srcId;
+ this.srcPort = srcPort;
+ this.dst = dstId;
+ this.dstPort = dstPort;
+ }
+
+ // Convenience method
+ public Link(long srcId, int srcPort, long dstId, int dstPort) {
+ this.src = srcId;
+ this.srcPort = (short) srcPort;
+ this.dst = dstId;
+ this.dstPort = (short) dstPort;
+ }
+
+ @JsonProperty("src-switch")
+ @JsonSerialize(using=DPIDSerializer.class)
+ public long getSrc() {
+ return src;
+ }
+
+ @JsonProperty("src-port")
+ @JsonSerialize(using=UShortSerializer.class)
+ public short getSrcPort() {
+ return srcPort;
+ }
+
+ @JsonProperty("dst-switch")
+ @JsonSerialize(using=DPIDSerializer.class)
+ public long getDst() {
+ return dst;
+ }
+ @JsonProperty("dst-port")
+ @JsonSerialize(using=UShortSerializer.class)
+ public short getDstPort() {
+ return dstPort;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (int) (dst ^ (dst >>> 32));
+ result = prime * result + dstPort;
+ result = prime * result + (int) (src ^ (src >>> 32));
+ result = prime * result + srcPort;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Link other = (Link) obj;
+ if (dst != other.dst)
+ return false;
+ if (dstPort != other.dstPort)
+ return false;
+ if (src != other.src)
+ return false;
+ if (srcPort != other.srcPort)
+ return false;
+ return true;
+ }
+
+
+ @Override
+ public String toString() {
+ return "Link [src=" + HexString.toHexString(this.src)
+ + " outPort="
+ + (srcPort & 0xffff)
+ + ", dst=" + HexString.toHexString(this.dst)
+ + ", inPort="
+ + (dstPort & 0xffff)
+ + "]";
+ }
+
+ public String toKeyString() {
+ return (HexString.toHexString(this.src) + "|" +
+ (this.srcPort & 0xffff) + "|" +
+ HexString.toHexString(this.dst) + "|" +
+ (this.dstPort & 0xffff) );
+ }
+}
+
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java
new file mode 100644
index 0000000..646386c
--- /dev/null
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java
@@ -0,0 +1,90 @@
+package net.onrc.onos.ofcontroller.linkdiscovery;
+
+import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
+import net.floodlightcontroller.core.web.serializers.UShortSerializer;
+
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.openflow.util.HexString;
+
+/**
+ * A NodePortTuple is similar to a SwitchPortTuple
+ * but it only stores IDs instead of references
+ * to the actual objects.
+ * @author srini
+ */
+public class NodePortTuple {
+ protected long nodeId; // switch DPID
+ protected short portId; // switch port id
+
+ /**
+ * Creates a NodePortTuple
+ * @param nodeId The DPID of the switch
+ * @param portId The port of the switch
+ */
+ public NodePortTuple(long nodeId, short portId) {
+ this.nodeId = nodeId;
+ this.portId = portId;
+ }
+
+ public NodePortTuple(long nodeId, int portId) {
+ this.nodeId = nodeId;
+ this.portId = (short) portId;
+ }
+
+ @JsonProperty("switch")
+ @JsonSerialize(using=DPIDSerializer.class)
+ public long getNodeId() {
+ return nodeId;
+ }
+ public void setNodeId(long nodeId) {
+ this.nodeId = nodeId;
+ }
+ @JsonProperty("port")
+ @JsonSerialize(using=UShortSerializer.class)
+ public short getPortId() {
+ return portId;
+ }
+ public void setPortId(short portId) {
+ this.portId = portId;
+ }
+
+ public String toString() {
+ return "[id=" + HexString.toHexString(nodeId) + ", port=" + new Short(portId) + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (int) (nodeId ^ (nodeId >>> 32));
+ result = prime * result + portId;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ NodePortTuple other = (NodePortTuple) obj;
+ if (nodeId != other.nodeId)
+ return false;
+ if (portId != other.portId)
+ return false;
+ return true;
+ }
+
+ /**
+ * API to return a String value formed wtih NodeID and PortID
+ * The portID is a 16-bit field, so mask it as an integer to get full
+ * positive value
+ * @return
+ */
+ public String toKeyString() {
+ return (HexString.toHexString(nodeId)+ "|" + (portId & 0xffff));
+ }
+}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 3bb2878..a035867 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -58,9 +58,7 @@
import net.floodlightcontroller.packet.LLDP;
import net.floodlightcontroller.packet.LLDPTLV;
import net.floodlightcontroller.restserver.IRestApiService;
-import net.floodlightcontroller.routing.Link;
import net.floodlightcontroller.threadpool.IThreadPoolService;
-import net.floodlightcontroller.topology.NodePortTuple;
import net.floodlightcontroller.util.EventHistory;
import net.floodlightcontroller.util.EventHistory.EvAction;
import net.onrc.onos.ofcontroller.core.IOnosRemoteSwitch;
@@ -69,7 +67,9 @@
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.UpdateOperation;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryListener;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.ofcontroller.linkdiscovery.Link;
import net.onrc.onos.ofcontroller.linkdiscovery.LinkInfo;
+import net.onrc.onos.ofcontroller.linkdiscovery.NodePortTuple;
import net.onrc.onos.ofcontroller.linkdiscovery.web.LinkDiscoveryWebRoutable;
import net.onrc.onos.registry.controller.IControllerRegistryService;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java
index 3e5a5e7..6fa430e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java
@@ -9,7 +9,7 @@
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.openflow.util.HexString;
-import net.floodlightcontroller.routing.Link;
+import net.onrc.onos.ofcontroller.linkdiscovery.Link;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.LinkType;
/**
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java
index 3c97e6a..ce6b2fa 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java
@@ -6,8 +6,8 @@
import java.util.Map.Entry;
import java.util.Set;
-import net.floodlightcontroller.routing.Link;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.ofcontroller.linkdiscovery.Link;
import net.onrc.onos.ofcontroller.linkdiscovery.LinkInfo;
import org.restlet.resource.Get;