Merge "Adding Inactive Static Hosts"
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / packet / Ethernet.java
index 0d866d644eae967780eeb8cd5bb7fd6847e2f27c..d0068564a93b29a326395b1e6cae9eeacf968a53 100644 (file)
@@ -13,16 +13,13 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.opendaylight.controller.sal.utils.EtherTypes;
+import org.opendaylight.controller.sal.utils.NetUtils;
 
 /**
  * Class that represents the Ethernet frame objects
- *
- *
  */
 public class Ethernet extends Packet {
     private static final String DMAC = "DestinationMACAddress";
@@ -31,12 +28,16 @@ public class Ethernet extends Packet {
 
     // TODO: This has to be outside and it should be possible for osgi
     // to add new coming packet classes
-    public static Map<Short, Class<? extends Packet>> etherTypeClassMap;
+    public static final Map<Short, Class<? extends Packet>> etherTypeClassMap;
     static {
         etherTypeClassMap = new HashMap<Short, Class<? extends Packet>>();
         etherTypeClassMap.put(EtherTypes.ARP.shortValue(), ARP.class);
         etherTypeClassMap.put(EtherTypes.IPv4.shortValue(), IPv4.class);
         etherTypeClassMap.put(EtherTypes.LLDP.shortValue(), LLDP.class);
+        etherTypeClassMap.put(EtherTypes.VLANTAGGED.shortValue(), IEEE8021Q.class);
+        etherTypeClassMap.put(EtherTypes.OLDQINQ.shortValue(), IEEE8021Q.class);
+        etherTypeClassMap.put(EtherTypes.QINQ.shortValue(), IEEE8021Q.class);
+        etherTypeClassMap.put(EtherTypes.CISCOQINQ.shortValue(), IEEE8021Q.class);
     }
     private static Map<String, Pair<Integer, Integer>> fieldCoordinates = new LinkedHashMap<String, Pair<Integer, Integer>>() {
         private static final long serialVersionUID = 1L;
@@ -46,7 +47,7 @@ public class Ethernet extends Packet {
             put(ETHT, new ImmutablePair<Integer, Integer>(96, 16));
         }
     };
-    private Map<String, byte[]> fieldValues;
+    private final Map<String, byte[]> fieldValues;
 
     /**
      * Default constructor that creates and sets the HashMap
@@ -102,6 +103,14 @@ public class Ethernet extends Packet {
         return BitBufferHelper.getShort(fieldValues.get(ETHT));
     }
 
+    public boolean isBroadcast(){
+        return NetUtils.isBroadcastMACAddr(getDestinationMACAddress());
+    }
+
+    public boolean isMulticast(){
+        return NetUtils.isMulticastMACAddr(getDestinationMACAddress());
+    }
+
     /**
      * Sets the destination MAC address for the current Ethernet object instance
      * @param byte[] - the destinationMACAddress to set
@@ -130,14 +139,4 @@ public class Ethernet extends Packet {
         return this;
     }
 
-    @Override
-    public int hashCode() {
-        return HashCodeBuilder.reflectionHashCode(this);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return EqualsBuilder.reflectionEquals(this, obj);
-    }
-
 }