Esempio n. 1
0
File: vpn.py Progetto: cygmris/enos
def tomac(s):
    try:
        mac = MACAddress(int(s))
    except:
        try:
            mac = MACAddress(s)
        except:
            print "%s is an invalid MAC address" % s
            sys.exit(1)
    return mac
Esempio n. 2
0
File: sim.py Progetto: cygmris/enos
def parseMac(mac):
    if mac == 'B':
        return MACAddress.createBroadcast()
    try:
        return MACAddress(int(mac))
    except:
        pass
    try:
        return MACAddress(mac)
    except:
        pass
    return None
Esempio n. 3
0
 def getHostParams(self,name):
     index = self.hostID
     self.hostID +=  1
     mininetName = "h" + str(index)
     self.mininetToRealNames[mininetName] = name
     ip = self.network['ip'] + "." + str(index) + self.network['netmask']
     return {'mininetName' : mininetName, 'ip' : ip, 'mac' : MACAddress(index)}
Esempio n. 4
0
File: mat.py Progetto: cygmris/enos
 def deserialize(obj):
     mat = MAT(obj['vid'])
     mat.props['hid'] = obj['hid']
     for (hid, mac) in obj['mac'].items():
         # Note: json file can only use str as key
         # so we need to transfer hid back to int first
         mat.props['mac'][int(hid)] = MACAddress(mac)
     return mat
Esempio n. 5
0
File: mat.py Progetto: cygmris/enos
 def __init__(self, vid):
     super(MAT, self).__init__(name='MAT[%d]' % vid)
     self.props['vid'] = vid
     self.props['hid'] = {}  # [str(mac)] = hid
     self.props['mac'] = {}  # [hid] = mac
     self.props['lock'] = threading.Lock()
     self.props['mac'][0xFFFF] = MACAddress("FF:FF:FF:FF:FF:FF")
     self.props['hid']['FF:FF:FF:FF:FF:FF'] = 0xFFFF
Esempio n. 6
0
File: sim.py Progetto: esnet/enos
def parseMac(mac):
    if mac == 'B':
        return MACAddress.createBroadcast()
    try:
        return MACAddress(int(mac))
    except:
        pass
    try:
        return MACAddress(mac)
    except:
        pass
    return None
Esempio n. 7
0
File: mat.py Progetto: cygmris/enos
 def translate(self, mac):
     if not str(mac) in self.props['hid']:
         with self.props['lock']:
             if not str(mac) in self.props['hid']:
                 hid = random.randint(1, MAT.reserved)
                 while hid in self.props['mac']:
                     hid = random.randint(1, MAT.reserved)
                 self.props['hid'][str(mac)] = hid
                 self.props['mac'][hid] = mac
     trans_mac = MACAddress()
     trans_mac.setVid(self.props['vid'])
     hid = self.props['hid'][str(mac)]
     trans_mac.setHid(hid)
     if hid > MAT.reserved:
         # broadcast MAC address
         trans_mac.data[0] = 0xFF
     return trans_mac
Esempio n. 8
0
File: mat.py Progetto: esnet/enos
 def translate(self, mac):
     if not str(mac) in self.props['hid']:
         with self.props['lock']:
             if not str(mac) in self.props['hid']:
                 hid = random.randint(1, MAT.reserved)
                 while hid in self.props['mac']:
                     hid = random.randint(1, MAT.reserved)
                 self.props['hid'][str(mac)] = hid
                 self.props['mac'][hid] = mac
     trans_mac = MACAddress()
     trans_mac.setVid(self.props['vid'])
     hid = self.props['hid'][str(mac)]
     trans_mac.setHid(hid)
     if hid > MAT.reserved:
         # broadcast MAC address
         trans_mac.data[0] = 0xFF
     return trans_mac
Esempio n. 9
0
File: mat.py Progetto: cygmris/enos
 def reverse(self, hid):
     if not hid in self.props['mac']:
         return None
     return MACAddress(self.props['mac'][hid])