Topology interface to use Dpid, PortNumber
- Modified Switch interface to use Dpid, PortNumber instead of Long
- Modified Port interface to use Dpid, PortNumber instead of Long
- Modified Topology interface which uses Dpid, PortNumber, SwitchPort
- PortImpl#toString() format has changed: "%d:%d" -> "Dpid#toString():PortNumber#toString"
- Part of ONOS-1564
Change-Id: I8decdbb2fb0cce9e087ad49af3a087b65b8511d7
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
index d48e222..2bba015 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
@@ -8,6 +8,8 @@
import java.util.concurrent.locks.ReentrantReadWriteLock;
import net.floodlightcontroller.util.MACAddress;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.PortNumber;
import net.onrc.onos.core.util.SwitchPort;
import org.slf4j.Logger;
@@ -18,7 +20,7 @@
private static final Logger log = LoggerFactory.getLogger(TopologyImpl.class);
// DPID -> Switch
- private final ConcurrentMap<Long, Switch> switches;
+ private final ConcurrentMap<Dpid, Switch> switches;
private final ConcurrentMap<MACAddress, Device> mac2Device;
private final ConcurrentMap<SwitchPort, Link> outgoingLinks;
@@ -38,7 +40,7 @@
}
@Override
- public Switch getSwitch(Long dpid) {
+ public Switch getSwitch(Dpid dpid) {
// TODO Check if it is safe to directly return this Object.
return switches.get(dpid);
}
@@ -48,6 +50,10 @@
}
protected void removeSwitch(Long dpid) {
+ switches.remove(new Dpid(dpid));
+ }
+
+ protected void removeSwitch(Dpid dpid) {
switches.remove(dpid);
}
@@ -58,7 +64,7 @@
}
@Override
- public Port getPort(Long dpid, Long number) {
+ public Port getPort(Dpid dpid, PortNumber number) {
Switch sw = getSwitch(dpid);
if (sw != null) {
return sw.getPort(number);
@@ -67,18 +73,34 @@
}
@Override
- public Link getOutgoingLink(Long dpid, Long number) {
- return outgoingLinks.get(new SwitchPort(dpid, number.shortValue()));
+ public Port getPort(SwitchPort port) {
+ return getPort(port.dpid(), port.port());
}
@Override
- public Link getIncomingLink(Long dpid, Long number) {
- return incomingLinks.get(new SwitchPort(dpid, number.shortValue()));
+ public Link getOutgoingLink(Dpid dpid, PortNumber number) {
+ return outgoingLinks.get(new SwitchPort(dpid, number));
}
@Override
- public Link getLink(Long srcDpid, Long srcNumber, Long dstDpid,
- Long dstNumber) {
+ public Link getOutgoingLink(SwitchPort port) {
+ return outgoingLinks.get(port);
+ }
+
+ @Override
+ public Link getIncomingLink(Dpid dpid, PortNumber number) {
+ return incomingLinks.get(new SwitchPort(dpid, number));
+ }
+
+ @Override
+ public Link getIncomingLink(SwitchPort port) {
+ return incomingLinks.get(port);
+ }
+
+ @Override
+ public Link getLink(Dpid srcDpid, PortNumber srcNumber,
+ Dpid dstDpid, PortNumber dstNumber) {
+
Link link = getOutgoingLink(srcDpid, srcNumber);
if (link == null) {
return null;