X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=vtep%2Fovs-vtep;h=97397b0ca23ac4e7464d41b64260edee6fa1a3f6;hb=HEAD;hp=47ef65c70742322cca3c6c9a7e94d49475bf5847;hpb=3c057118d16ae0c7dc02c1c87ee2c19b401e39ce;p=cascardo%2Fovs.git diff --git a/vtep/ovs-vtep b/vtep/ovs-vtep index 47ef65c70..97397b0ca 100755 --- a/vtep/ovs-vtep +++ b/vtep/ovs-vtep @@ -29,6 +29,8 @@ import ovs.util import ovs.daemon import ovs.unixctl.server import ovs.vlog +from six.moves import range +import six VERSION = "0.99" @@ -126,11 +128,11 @@ class Logical_Switch(object): ovs_ofctl("add-flow %s priority=0,action=drop" % self.short_name) def cleanup_ls(self): - for port_no, tun_name, remote_ip in self.tunnels.itervalues(): + for port_no, tun_name, remote_ip in six.itervalues(self.tunnels): del_bfd(remote_ip) def update_flood(self): - flood_ports = self.ports.values() + flood_ports = list(self.ports.values()) # Traffic flowing from one 'unknown-dst' should not be flooded to # port belonging to another 'unknown-dst'. @@ -165,7 +167,7 @@ class Logical_Switch(object): def del_lbinding(self, lbinding): vlog.info("removing %s binding from %s" % (lbinding, self.name)) port_no = self.ports[lbinding] - ovs_ofctl("del-flows %s in_port=%s" % (self.short_name, port_no)); + ovs_ofctl("del-flows %s in_port=%s" % (self.short_name, port_no)) del self.ports[lbinding] self.update_flood() @@ -237,7 +239,7 @@ class Logical_Switch(object): self.local_macs = macs def add_remote_mac(self, mac, tunnel): - port_no = self.tunnels.get(tunnel, (0,""))[0] + port_no = self.tunnels.get(tunnel, (0, ""))[0] if not port_no: return @@ -281,12 +283,12 @@ class Logical_Switch(object): for tunnel in old_tunnels.difference(tunnels): self.del_tunnel(tunnel) - for mac in remote_macs.keys(): + for mac in six.iterkeys(remote_macs): if (self.remote_macs.get(mac) != remote_macs[mac]): self.add_remote_mac(mac, remote_macs[mac]) - for mac in self.remote_macs.keys(): - if not remote_macs.has_key(mac): + for mac in six.iterkeys(self.remote_macs): + if mac not in remote_macs: self.del_remote_mac(mac) self.remote_macs = remote_macs @@ -300,14 +302,14 @@ class Logical_Switch(object): # vtep's logical_binding_stats. Since we are using the 'interface' from # the logical switch to collect stats, packets transmitted from it # is received in the physical switch and vice versa. - stats_map = {'tx_packets':'packets_to_local', - 'tx_bytes':'bytes_to_local', - 'rx_packets':'packets_from_local', - 'rx_bytes':'bytes_from_local'} + stats_map = {'tx_packets': 'packets_to_local', + 'tx_bytes': 'bytes_to_local', + 'rx_packets': 'packets_from_local', + 'rx_bytes': 'bytes_from_local'} # Go through all the logical switch's interfaces that end with "-l" # and copy the statistics to logical_binding_stats. - for interface in self.ports.iterkeys(): + for interface in six.iterkeys(self.ports): if not interface.endswith("-l"): continue # Physical ports can have a '-' as part of its name. @@ -318,7 +320,7 @@ class Logical_Switch(object): if not uuid: continue - for (mapfrom, mapto) in stats_map.iteritems(): + for mapfrom, mapto in six.iteritems(stats_map): value = ovs_vsctl("get interface %s statistics:%s" % (interface, mapfrom)).strip('"') vtep_ctl("set logical_binding_stats %s %s=%s" @@ -362,7 +364,7 @@ def create_vtep_tunnel(remote_ip): % remote_ip) tunnel = vtep_ctl("add physical_switch %s tunnels @tun -- " "--id=@tun create Tunnel local=%s remote=%s" - %(ps_name, local, remote)) + % (ps_name, local, remote)) return tunnel @@ -426,15 +428,15 @@ def run_bfd(): if not tunnel: continue - bfd_params_default = {'bfd_params:enable' : 'false', - 'bfd_params:min_rx' : 1000, - 'bfd_params:min_tx' : 100, - 'bfd_params:decay_min_rx' : 0, - 'bfd_params:cpath_down' : 'false', - 'bfd_params:check_tnl_key' : 'false'} + bfd_params_default = {'bfd_params:enable': 'false', + 'bfd_params:min_rx': 1000, + 'bfd_params:min_tx': 100, + 'bfd_params:decay_min_rx': 0, + 'bfd_params:cpath_down': 'false', + 'bfd_params:check_tnl_key': 'false'} bfd_params_values = {} - for key, default in bfd_params_default.iteritems(): + for key, default in six.iteritems(bfd_params_default): column = vtep_ctl("--if-exists get tunnel %s %s" % (tunnel, key)) if not column: @@ -442,8 +444,8 @@ def run_bfd(): else: bfd_params_values[key] = column - for key, value in bfd_params_values.iteritems(): - new_key = key.replace('_params','') + for key, value in six.iteritems(bfd_params_values): + new_key = key.replace('_params', '') ovs_vsctl("set interface %s %s=%s" % (port, new_key, value)) bfd_status = ['bfd_status:state', 'bfd_status:forwarding', @@ -452,7 +454,7 @@ def run_bfd(): for key in bfd_status: value = ovs_vsctl("--if-exists get interface %s %s" % (port, key)) if value: - vtep_ctl("set tunnel %s %s=%s" %(tunnel, key, value)) + vtep_ctl("set tunnel %s %s=%s" % (tunnel, key, value)) else: new_key = key.replace('bfd_status:', '') vtep_ctl("remove tunnel %s bfd_status %s" % (tunnel, new_key)) @@ -461,11 +463,11 @@ def run_bfd(): % (tunnel, bfd_params_values['bfd_params:enable'])) # Add the defaults as described in VTEP schema to make it explicit. - bfd_lconf_default = {'bfd_config_local:bfd_dst_ip' : '169.254.1.0', - 'bfd_config_local:bfd_dst_mac' : + bfd_lconf_default = {'bfd_config_local:bfd_dst_ip': '169.254.1.0', + 'bfd_config_local:bfd_dst_mac': '00:23:20:00:00:01'} - for key, value in bfd_lconf_default.iteritems(): - vtep_ctl("set tunnel %s %s=%s" %(tunnel, key, value)) + for key, value in six.iteritems(bfd_lconf_default): + vtep_ctl("set tunnel %s %s=%s" % (tunnel, key, value)) # bfd_config_remote options from VTEP DB should be populated to # corresponding OVS DB values. @@ -490,8 +492,8 @@ def add_binding(binding, ls): vlog.info("adding binding %s" % binding) vlan, pp_name = binding.split("-", 1) - pbinding = binding+"-p" - lbinding = binding+"-l" + pbinding = binding + "-p" + lbinding = binding + "-l" # Create a patch port that connects the VLAN+port to the lswitch. # Do them as two separate calls so if one side already exists, the @@ -520,9 +522,9 @@ def add_binding(binding, ls): # Create a logical_bindings_stats record. if not vlan_: vlan_ = "0" - vtep_ctl("set physical_port %s vlan_stats:%s=@stats --\ - --id=@stats create logical_binding_stats packets_from_local=0"\ - % (pp_name, vlan_)) + vtep_ctl("set physical_port %s vlan_stats:%s=@stats -- " + "--id=@stats create logical_binding_stats packets_from_local=0" + % (pp_name, vlan_)) ls.add_lbinding(lbinding) Bindings[binding] = ls.name @@ -532,8 +534,8 @@ def del_binding(binding, ls): vlog.info("removing binding %s" % binding) vlan, pp_name = binding.split("-", 1) - pbinding = binding+"-p" - lbinding = binding+"-l" + pbinding = binding + "-p" + lbinding = binding + "-l" port_no = ovs_vsctl("get Interface %s ofport" % pp_name) patch_no = ovs_vsctl("get Interface %s ofport" % pbinding) @@ -587,7 +589,7 @@ def handle_physical(): ls = Lswitches[ls_name] new_bindings.add(binding) - if Bindings.has_key(binding): + if binding in Bindings: if Bindings[binding] == ls_name: continue else: @@ -712,7 +714,7 @@ def main(): handle_physical() - for ls_name, ls in Lswitches.items(): + for ls_name, ls in six.iteritems(Lswitches): ls.run() run_bfd()