public static boolean isUnicastMac(final String macAddr) { String std = standardizeMacAddress(macAddr); if(std == null) { return false; } long stdl = mac2Long(std); // libvirt refuses to attach a mac address that is multicast, as defined // by the least significant bit of the first octet of the mac. long mask = 0x1l << 40l; return ((stdl & mask) == mask) ? false : true; }
public static String generateMacOnIncrease(final String baseMac, final long l) { long mac = mac2Long(baseMac); if (l > 0xFFFFl) { return null; } mac = mac + (l << 24); mac = mac & 0x06FFFFFFFFFFl; return long2Mac(mac); }
public static String standardizeMacAddress(final String macAddr) { if (!isValidMac(macAddr)) { return null; } String norm = macAddr.replace('.', ':'); norm = norm.replace('-', ':'); return long2Mac(mac2Long(norm)); }
@Test public void testMac2Long() { assertEquals(0l, NetUtils.mac2Long("00:00:00:00:00:00")); assertEquals(1l, NetUtils.mac2Long("00:00:00:00:00:01")); assertEquals(0xFFl, NetUtils.mac2Long("00:00:00:00:00:FF")); assertEquals(0xFFAAl, NetUtils.mac2Long("00:00:00:00:FF:AA")); assertEquals(0x11FFAAl, NetUtils.mac2Long("00:00:00:11:FF:AA")); assertEquals(0x12345678l, NetUtils.mac2Long("00:00:12:34:56:78")); assertEquals(0x123456789Al, NetUtils.mac2Long("00:12:34:56:78:9A")); assertEquals(0x123456789ABCl, NetUtils.mac2Long("12:34:56:78:9A:BC")); }
public static boolean isUnicastMac(final String macAddr) { final String std = standardizeMacAddress(macAddr); if (std == null) { return false; } final long stdl = mac2Long(std); // libvirt refuses to attach a mac address that is multicast, as defined // by the least significant bit of the first octet of the mac. final long mask = 0x1l << 40l; return (stdl & mask) != mask; }
public static String generateMacOnIncrease(final String baseMac, final long l) { long mac = mac2Long(baseMac); if (l > 0xFFFFl) { return null; } mac = mac + (l << 24); mac = mac & 0x06FFFFFFFFFFl; return long2Mac(mac); }
public static String standardizeMacAddress(final String macAddr) { if (!isValidMac(macAddr)) { return null; } String norm = macAddr.replace('.', ':'); norm = norm.replace('-', ':'); return long2Mac(mac2Long(norm)); }
@Test public void testMac2Long() { assertEquals(0l, NetUtils.mac2Long("00:00:00:00:00:00")); assertEquals(1l, NetUtils.mac2Long("00:00:00:00:00:01")); assertEquals(0xFFl, NetUtils.mac2Long("00:00:00:00:00:FF")); assertEquals(0xFFAAl, NetUtils.mac2Long("00:00:00:00:FF:AA")); assertEquals(0x11FFAAl, NetUtils.mac2Long("00:00:00:11:FF:AA")); assertEquals(0x12345678l, NetUtils.mac2Long("00:00:12:34:56:78")); assertEquals(0x123456789Al, NetUtils.mac2Long("00:12:34:56:78:9A")); assertEquals(0x123456789ABCl, NetUtils.mac2Long("12:34:56:78:9A:BC")); }