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 {