mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	-Hold generated local macs at 42: prefix to avoid conflict with FE: and make libvirt do unique tap addresses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@7673 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -225,11 +225,16 @@ sub genMac { #Generates a mac address for a node, does NOT assure uniqueness, ca | ||||
|         $tail =~ s/(..)(..)(..)/:$1:$2:$3/; | ||||
|         return $prefix.$tail; | ||||
|     } | ||||
|     my $allbutmult = 0xfeff; # to & with a number to ensure multicast bit is *not* set | ||||
|     my $locallyadministered = 0x200; # to | with the 16 MSBs to indicate a local mac | ||||
|     my $leading = int(rand(0xffff)); | ||||
|     $leading = $leading & $allbutmult; | ||||
|     $leading = $leading | $locallyadministered; | ||||
|     #my $allbutmult = 0xfeff; # to & with a number to ensure multicast bit is *not* set | ||||
|     #my $locallyadministered = 0x200; # to | with the 16 MSBs to indicate a local mac | ||||
|     #my $leading = int(rand(0xffff)); | ||||
|     #$leading = $leading & $allbutmult; | ||||
|     #$leading = $leading | $locallyadministered; | ||||
|     #for the header, we used to use all 14 possible bits, however, if a guest mac starts with 0xfe then libvirt will construct a bridge that looks identical | ||||
|     #First thought was to go to 13 bits, but by fixing our generated mac addresses to always start with the same byte and still be unique | ||||
|     #this induces libvirt to do unique TAP mac addresses | ||||
|     my $leading = int(rand(0xff)); | ||||
|     $leading = $leading & 0x4200; | ||||
|     #If this nodename is a resolvable name, we'll use that for the other 32 bits | ||||
|     my $low32; | ||||
|     my $n; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user