Exemplo n.º 1
0
Arquivo: vpn.py Projeto: 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
Exemplo n.º 2
0
Arquivo: sim.py Projeto: 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
Exemplo 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)}
Exemplo n.º 4
0
Arquivo: mat.py Projeto: 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
Exemplo n.º 5
0
Arquivo: mat.py Projeto: 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
Exemplo n.º 6
0
Arquivo: sim.py Projeto: 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
Exemplo n.º 7
0
Arquivo: mat.py Projeto: 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
Exemplo n.º 8
0
Arquivo: mat.py Projeto: 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
Exemplo n.º 9
0
Arquivo: mat.py Projeto: cygmris/enos
 def reverse(self, hid):
     if not hid in self.props['mac']:
         return None
     return MACAddress(self.props['mac'][hid])