Statistics
| Branch: | Tag: | Revision:

root / contrib / ganeti-hooks / mac2eui64.py @ f533f224

History | View | Annotate | Download (580 Bytes)

1
#!/usr/bin/env python
2

    
3
import sys
4

    
5
from IPy import IP
6

    
7
mac = sys.argv[1]
8
prefix = IP(sys.argv[2])
9

    
10
if prefix.version() != 6:
11
    print "%s is not a valid IPv6 prefix" % prefix
12
    sys.exit(1)
13

    
14
components = mac.split(":")
15
pfx = sys.argv[2].split("::")[0]
16

    
17
if len(components) != 6:
18
    print "%s is not a valid MAC-48 address" % mac
19
    sys.exit(1)
20

    
21
eui64 = components[:3] + [ "ff", "fe" ] + components[3:]
22

    
23
eui64[0] = "%02x" % (int(eui64[0], 16) ^ 0x02)
24

    
25
for l in range(0, len(eui64), 2):
26
    pfx += ":%s" % "".join(eui64[l:l+2])
27

    
28
print IP(pfx)
29

    
30
# vim: set ts=4 sts=4 sw=4 et ai :