X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Futils%2FNetUtilsTest.java;h=e5e0a0941b7db0ccb6b647b313096f64def5fa90;hp=a2b12782ac2986f24cfd6fbe8f295f5ef105712d;hb=c1d6c147a5fdd6b18cf9f00e1bb7855020f2361f;hpb=7312d7684413675e8dda5e3616deaa727e6d18ba;ds=sidebyside diff --git a/opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java b/opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java index a2b12782ac..e5e0a0941b 100644 --- a/opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java +++ b/opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java @@ -468,4 +468,35 @@ public class NetUtilsTest { Assert.assertEquals(32768, NetUtils.getUnsignedShort((short) 0x8000)); Assert.assertEquals(65535, NetUtils.getUnsignedShort((short) 0xffff)); } + + @Test + public void testMulticastMACAddr() { + byte[] empty = new byte[0]; + Assert.assertFalse(NetUtils.isUnicastMACAddr(empty)); + Assert.assertFalse(NetUtils.isMulticastMACAddr(empty)); + + byte[] bcast = { + (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, + }; + Assert.assertFalse(NetUtils.isUnicastMACAddr(bcast)); + Assert.assertFalse(NetUtils.isMulticastMACAddr(bcast)); + + byte[] firstOctet = { + (byte)0x00, (byte)0x20, (byte)0x80, (byte)0xfe, + }; + for (int len = 1; len <= 10; len++) { + byte[] ba = new byte[len]; + boolean valid = (len == 6); + for (byte first: firstOctet) { + ba[0] = first; + Assert.assertFalse(NetUtils.isMulticastMACAddr(ba)); + Assert.assertEquals(valid, NetUtils.isUnicastMACAddr(ba)); + + ba[0] |= (byte)0x01; + Assert.assertEquals(valid, NetUtils.isMulticastMACAddr(ba)); + Assert.assertFalse(NetUtils.isUnicastMACAddr(ba)); + } + } + } }