X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplanetlab%2Fvlink.py;h=3a45fc6e7b7dff27c856f36921c0c979c6a997bb;hb=4a9e6751f9f396f463932133b9d62fc925a99ef6;hp=625963d0170c82caee407ed62f0e0865801f8baf;hpb=0f90da7f05fbe3d07e56790c10f6ecc877b33754;p=sfa.git diff --git a/sfa/planetlab/vlink.py b/sfa/planetlab/vlink.py index 625963d0..3a45fc6e 100644 --- a/sfa/planetlab/vlink.py +++ b/sfa/planetlab/vlink.py @@ -12,20 +12,20 @@ suffixes = { "bit": 1, "kibit": 1024, "kbit": 1000, - "mibit": 1024*1024, + "mibit": 1024 * 1024, "mbit": 1000000, - "gibit": 1024*1024*1024, + "gibit": 1024 * 1024 * 1024, "gbit": 1000000000, - "tibit": 1024*1024*1024*1024, + "tibit": 1024 * 1024 * 1024 * 1024, "tbit": 1000000000000, "bps": 8, - "kibps": 8*1024, + "kibps": 8 * 1024, "kbps": 8000, - "mibps": 8*1024*1024, + "mibps": 8 * 1024 * 1024, "mbps": 8000000, - "gibps": 8*1024*1024*1024, + "gibps": 8 * 1024 * 1024 * 1024, "gbps": 8000000000, - "tibps": 8*1024*1024*1024*1024, + "tibps": 8 * 1024 * 1024 * 1024 * 1024, "tbps": 8000000000000 } @@ -41,11 +41,12 @@ def get_tc_rate(s): if m is None: return -1 suffix = m.group(2).lower() - if suffixes.has_key(suffix): + if suffix in suffixes: return int(float(m.group(1)) * suffixes[suffix]) else: return -1 + def format_tc_rate(rate): """ Formats a bits/second rate into a tc rate string @@ -60,13 +61,15 @@ def format_tc_rate(rate): else: return "%.0fbit" % rate + class VLink: + @staticmethod def get_link_id(if1, if2): if if1['id'] < if2['id']: - link = (if1['id']<<7) + if2['id'] + link = (if1['id'] << 7) + if2['id'] else: - link = (if2['id']<<7) + if1['id'] + link = (if2['id'] << 7) + if1['id'] return link @staticmethod @@ -82,14 +85,14 @@ class VLink: link_id = VLink.get_link_id(if1, if2) iface_id = VLink.get_iface_id(if1, if2) first = link_id >> 6 - second = ((link_id & 0x3f)<<2) + iface_id + second = ((link_id & 0x3f) << 2) + iface_id return "192.168.%d.%s" % (first, second) @staticmethod def get_virt_net(link): link_id = VLink.get_link_id(link['interface1'], link['interface2']) first = link_id >> 6 - second = (link_id & 0x3f)<<2 + second = (link_id & 0x3f) << 2 return "192.168.%d.%d/30" % (first, second) @staticmethod @@ -99,7 +102,6 @@ class VLink: node_id = int(node.replace("node", "")) return node_id - @staticmethod def get_topo_rspec(link, ipaddr): link['interface1']['id'] = VLink.get_interface_id(link['interface1']) @@ -107,9 +109,9 @@ class VLink: my_ip = VLink.get_virt_ip(link['interface1'], link['interface2']) remote_ip = VLink.get_virt_ip(link['interface2'], link['interface1']) net = VLink.get_virt_net(link) - bw = format_tc_rate(long(link['capacity'])) + bw = format_tc_rate(int(link['capacity'])) return (link['interface2']['id'], ipaddr, bw, my_ip, remote_ip, net) - @staticmethod + @staticmethod def topo_rspec_to_link(topo_rspec): - pass + pass