diff --git a/src/main/java/net/floodlightcontroller/routing/Link.java b/src/main/java/net/floodlightcontroller/routing/Link.java index 436e67c719146aa44a46d24776f3461faa9a7f2e..79585969aadaebd238f268943f4d3f50367eef43 100755 --- a/src/main/java/net/floodlightcontroller/routing/Link.java +++ b/src/main/java/net/floodlightcontroller/routing/Link.java @@ -18,6 +18,7 @@ package net.floodlightcontroller.routing; 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; @@ -52,6 +53,7 @@ public class Link { } @JsonProperty("src-port") + @JsonSerialize(using=UShortSerializer.class) public short getSrcPort() { return srcPort; } @@ -62,6 +64,7 @@ public class Link { return dst; } @JsonProperty("dst-port") + @JsonSerialize(using=UShortSerializer.class) public short getDstPort() { return dstPort; } @@ -102,11 +105,18 @@ public class Link { public String toString() { return "Link [src=" + HexString.toHexString(this.src) + " outPort=" - + srcPort + + (srcPort & 0xffff) + ", dst=" + HexString.toHexString(this.dst) + ", inPort=" - + dstPort + + (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/floodlightcontroller/topology/NodePortTuple.java b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java index 821a1737cbe21bfa6d3684aeada84b9e283e6fa6..4983529d6b6c76e07b8ca1b90e740c3f67c09655 100644 --- a/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java +++ b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java @@ -1,6 +1,7 @@ package net.floodlightcontroller.topology; 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; @@ -40,6 +41,7 @@ public class NodePortTuple { this.nodeId = nodeId; } @JsonProperty("port") + @JsonSerialize(using=UShortSerializer.class) public short getPortId() { return portId; } @@ -76,7 +78,13 @@ public class NodePortTuple { 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); + return (HexString.toHexString(nodeId)+ "|" + (portId & 0xffff)); } }