diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
index 8417420ebef9ef688fb18224d18a76e989fa5dda..691ef86b30fff6940b3c8ccef3eee8825327b66b 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
@@ -1242,6 +1242,7 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe
 
     @Override
     public Device getDeviceByDataLayerAddress(byte[] address) {
+        if (address.length != Ethernet.DATALAYER_ADDRESS_LENGTH) return null;
         return getDeviceByDataLayerAddress(Ethernet.toLong(address));
     }
 
diff --git a/src/main/java/net/floodlightcontroller/packet/Ethernet.java b/src/main/java/net/floodlightcontroller/packet/Ethernet.java
index 54055426ab4c5e602970c387c395e194e7fb195f..9eba6e9baa77960ab048f598a59238541afa1f90 100644
--- a/src/main/java/net/floodlightcontroller/packet/Ethernet.java
+++ b/src/main/java/net/floodlightcontroller/packet/Ethernet.java
@@ -37,6 +37,7 @@ public class Ethernet extends BasePacket {
     public static final short TYPE_BSN = (short) 0x8950; // Not officially assigned
     public static final short VLAN_UNTAGGED = (short)0xffff;
     public static final short TYPE_BDDP = (short) 0x8999;
+    public static final short DATALAYER_ADDRESS_LENGTH = 6; // bytes
     public static Map<Short, Class<? extends IPacket>> etherTypeClassMap;
 
     static {