@@ -0,0 +1,1614 @@
+package net.floodlightcontroller.nfvtest.nfvutils;%0A%0Apublic class RouteTuple %7B%0A%09public final static int TCP = 1;%0A%09public final static int UDP = 2;%0A%09public final static int OTHER = 3;%0A%09%0A%09public final int srcIp;%0A%09public final int dstIp;%0A%09public final int type;%0A%09public final int srcPort;%0A%09public final int dstPort;%0A%09public final long dstMac;%0A%09%0A%09public RouteTuple(int srcIp, int dstIp, int type, int srcPort, int dstPort, long dstMac)%7B%0A%09%09this.srcIp = srcIp;%0A%09%09this.dstIp = dstIp;%0A%09%09this.type = type;%0A%09%09this.srcPort = srcPort;%0A%09%09this.dstPort = dstPort;%0A%09%09this.dstMac = dstMac;%0A%09%7D%0A%09%0A%09@Override%0A%09public int hashCode() %7B%0A%09%09int mac = (int)this.dstMac;%0A%09%09mac = (mac%3C0)?(-1*mac):mac;%0A%09%09%0A%09%09final int prime = 5807;%0A%09%09int result = prime;%0A%09%09result = result+this.srcIp;%0A%09%09result = result+this.dstIp;%0A%09%09result = result+this.type;%0A%09%09result = result+this.srcPort;%0A%09%09result = result+this.dstPort;%0A%09%09result = result+mac;%0A%09%09return result;%09%0A%09%7D%0A%09%0A%09@Override%0A    public boolean equals(Object obj) %7B%0A%09%09if (this == obj)%0A            return true;%0A        if (!(obj instanceof RouteTuple))%0A            return false;%0A        RouteTuple other = (RouteTuple)obj;%0A        %0A        if(other.srcIp != this.srcIp)%7B%0A        %09return false;%0A        %7D%0A        if(other.dstIp != this.dstIp)%7B%0A        %09return false;%0A        %7D%0A        if(other.type != this.type)%7B%0A        %09return false;%0A        %7D%0A        if(other.srcPort != this.srcPort)%7B%0A        %09return false;%0A        %7D%0A        if(other.dstPort != this.dstPort)%7B%0A        %09return false;%0A        %7D%0A        if(other.dstMac != this.dstMac)%7B%0A        %09return false;%0A        %7D%0A        return true;%0A        %0A%09%7D%0A%7D%0A

add RouteTuple