X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Farphandler%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Farphandler%2FARPReply.java;h=1a446b83db92fe1a690e8ac94f181b6bf75705ac;hb=6f9fda057ddadd8d4eef643bca398cea65dd2007;hp=4ca3e42c7c496a00f07503fd04df974ce243de3f;hpb=b34143e6c369a6746c5d5399ed17964812a106f0;p=controller.git diff --git a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java index 4ca3e42c7c..1a446b83db 100644 --- a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java +++ b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java @@ -13,23 +13,27 @@ import java.net.InetAddress; import java.util.Arrays; import org.opendaylight.controller.sal.core.NodeConnector; +import org.opendaylight.controller.sal.utils.HexEncode; /* * ARP Reply event wrapper */ public class ARPReply extends ARPEvent { - + private static final long serialVersionUID = 1L; private final NodeConnector port; private final byte[] tMac; private final byte[] sMac; private final InetAddress sIP; + private final short vlan; @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); + result = prime * result + ((port == null) ? 0 : port.hashCode()); result = prime * result + ((sIP == null) ? 0 : sIP.hashCode()); result = prime * result + Arrays.hashCode(sMac); result = prime * result + Arrays.hashCode(tMac); + result = prime * result + vlan; return result; } @@ -38,13 +42,20 @@ public class ARPReply extends ARPEvent { if (this == obj) { return true; } - if (obj == null) { + if (!super.equals(obj)) { return false; } if (!(obj instanceof ARPReply)) { return false; } ARPReply other = (ARPReply) obj; + if (port == null) { + if (other.port != null) { + return false; + } + } else if (!port.equals(other.port)) { + return false; + } if (sIP == null) { if (other.sIP != null) { return false; @@ -58,23 +69,28 @@ public class ARPReply extends ARPEvent { if (!Arrays.equals(tMac, other.tMac)) { return false; } + if (vlan != other.vlan) { + return false; + } return true; } - public ARPReply(NodeConnector port, InetAddress sIP, byte[] sMAC, InetAddress tIP, byte[] tMAC) { + public ARPReply(NodeConnector port, InetAddress sIP, byte[] sMAC, InetAddress tIP, byte[] tMAC, short vlan) { super(tIP); this.tMac = tMAC; this.sIP = sIP; this.sMac = sMAC; this.port = port; + this.vlan = vlan; } - public ARPReply(InetAddress tIP, byte[] tMAC) { + public ARPReply(InetAddress tIP, byte[] tMAC, short vlan) { super(tIP); this.tMac = tMAC; this.sIP = null; this.sMac = null; this.port = null; + this.vlan = vlan; } public byte[] getTargetMac() { @@ -92,4 +108,44 @@ public class ARPReply extends ARPEvent { public NodeConnector getPort() { return port; } + + public short getVlan() { + return vlan; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("ARPReply ["); + if (port != null) { + builder.append("port=") + .append(port) + .append(", "); + } + if (tMac != null) { + builder.append("tMac=") + .append(HexEncode.bytesToHexString(tMac)) + .append(", "); + } + if (sMac != null) { + builder.append("sMac=") + .append(HexEncode.bytesToHexString(sMac)) + .append(", "); + } + if (sIP != null) { + builder.append("sIP=") + .append(sIP); + } + if (vlan != 0) { + builder.append(", vlan=") + .append(vlan); + } + builder.append("]"); + return builder.toString(); + } }