diff --git a/src/main/java/net/floodlightcontroller/routing/Link.java b/src/main/java/net/floodlightcontroller/routing/Link.java index 19032590b18b7a6c1faf55f58714488d7fc44d0e..cf649dc8932753af2fd3ae68585d7d9c355ed407 100755 --- a/src/main/java/net/floodlightcontroller/routing/Link.java +++ b/src/main/java/net/floodlightcontroller/routing/Link.java @@ -133,16 +133,19 @@ public class Link implements Comparable<Link> { @Override public int compareTo(Link a) { // compare link based on natural ordering - src id, src port, dst id, dst port - if (this.getSrc() != a.getSrc()) - return (int) (this.getSrc().getLong() - a.getSrc().getLong()); + int srcComp = this.getSrc().compareTo(a.getSrc()); + if (srcComp != 0) + return srcComp; - if (this.getSrcPort() != a.getSrcPort()) - return (int) (this.getSrc().getLong() - a.getSrc().getLong()); + int srcPortComp = this.getSrcPort().compareTo(a.getSrcPort()); + if (srcPortComp != 0) + return srcPortComp; + + int dstComp = this.getDst().compareTo(a.getDst()); + if (dstComp != 0) + return dstComp; - if (this.getDst() != a.getDst()) - return (int) (this.getDst().getLong() - a.getDst().getLong()); - - return this.getDstPort().getPortNumber() - a.getDstPort().getPortNumber(); + return this.getDstPort().compareTo(a.getDstPort()); } }