1 package org.opendaylight.controller.sal.match.extensible;
3 import java.util.Arrays;
5 import javax.xml.bind.annotation.XmlAccessType;
6 import javax.xml.bind.annotation.XmlAccessorType;
7 import javax.xml.bind.annotation.XmlElement;
8 import javax.xml.bind.annotation.XmlRootElement;
10 import org.opendaylight.controller.sal.utils.HexEncode;
11 import org.opendaylight.controller.sal.utils.NetUtils;
14 @XmlAccessorType(XmlAccessType.NONE)
15 public class DlDst extends MatchField<byte[]> {
16 private static final long serialVersionUID = 1L;
17 public static final String TYPE = "DL_DST";
18 private byte[] address;
21 * Creates a Match field for the destination data layer address
24 * the data layer address. The constructor makes a copy of it
26 public DlDst(byte[] address) {
28 if (address != null) {
29 this.address = Arrays.copyOf(address, address.length);
39 public byte[] getValue() {
40 return Arrays.copyOf(address, address.length);
44 @XmlElement(name = "value")
45 protected String getValueString() {
46 return HexEncode.bytesToHexStringFormat(address);
50 public byte[] getMask() {
55 protected String getMaskString() {
60 public boolean isValid() {
61 return address != null && address.length == NetUtils.MACAddrLengthInBytes;
65 public boolean hasReverse() {
70 public DlSrc getReverse() {
71 return new DlSrc(address);
75 public DlDst clone() {
76 return new DlDst(address);
80 public boolean isV6() {
85 public int hashCode() {
88 result = prime * result + Arrays.hashCode(address);
93 public boolean equals(Object obj) {
100 if (!(obj instanceof DlDst)) {
103 DlDst other = (DlDst) obj;
104 return Arrays.equals(address, other.address);