
On Wed, Apr 02, 2014 at 03:40:14PM -0400, Brian Rak wrote:
@@ -163,6 +164,28 @@ virNWFilterVarHashmapAddStdValues(virNWFilterHashTablePtr table, "%s", _("Could not add variable 'MAC' to hashmap")); return -1; } + + virMacAddr parsedMac; + if (virMacAddrParse(macaddr, &parsedMac) == 0) + { + parsedMac.addr[0] ^= 2; + + char euiMacAddr[26]; + snprintf(euiMacAddr, sizeof(euiMacAddr), "fe80::%x%x:%xff:fe%x:%x%x", parsedMac.addr[0], parsedMac.addr[1], parsedMac.addr[2], + parsedMac.addr[3], parsedMac.addr[4], parsedMac.addr[5]);
Unfortunately this IPv6 addressing scheme isn't portable. Windows Vista will create link local addresses which are completely random, not based on the MAC address. http://technet.microsoft.com/en-us/magazine/2007.08.cableguy.aspx I wonder if there's a way todo something more clever for IPv6 to learn the addresses, we as do for IPv4 address learning, or snoop route advertisment traffic as we do for DHCP Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|