def add_port(self, port_name): ipoplib.runshell([ LinuxBridge.iptool, "link", "set", port_name, "mtu", str(self.mtu) ]) ipoplib.runshell([LinuxBridge.brctl, "addif", self.name, port_name]) self.ports.add(port_name)
def stp(self, val=True): """ Turn STP protocol on/off. """ if val: state = "on" else: state = "off" ipoplib.runshell([LinuxBridge.brctl, "stp", self.name, state])
def stp(self, val=True): """ Turn STP protocol on/off. """ if val: state = "on" else: state = "off" ipoplib.runshell([LinuxBridge.brctl, "stp", self.name, state])
def add_port(self, port_name): ipoplib.runshell([ OvsBridge.iptool, "link", "set", "dev", port_name, "mtu", str(self.mtu) ]) ipoplib.runshell( [OvsBridge.brctl, "--may-exist", "add-port", self.name, port_name]) self.ports.add(port_name)
def add_sdn_ctrl(self, sdn_ctrl_cfg): if sdn_ctrl_cfg["ConnectionType"] == "tcp": ctrl_conn_str = ":".join([ sdn_ctrl_cfg["ConnectionType"], sdn_ctrl_cfg["HostName"], sdn_ctrl_cfg["Port"] ]) ipoplib.runshell( [OvsBridge.brctl, "set-controller", self.name, ctrl_conn_str])
def stp(self, enable): if enable: ipoplib.runshell([OvsBridge.brctl, "set", "bridge", self.name, "stp_enable=true"]) else: ipoplib.runshell([OvsBridge.brctl, "set", "bridge", self.name, "stp_enable=false"])
def stp(self, enable): if enable: ipoplib.runshell([ OvsBridge.brctl, "set", "bridge", self.name, "stp_enable=true" ]) else: ipoplib.runshell([ OvsBridge.brctl, "set", "bridge", self.name, "stp_enable=false" ])
def del_port(self, port_name): p = ipoplib.runshell([LinuxBridge.brctl, "show", self.name]) wlist = map(str.split, p.stdout.decode("utf-8").splitlines()[1:]) port_lines = filter(lambda x: len(x) == 4, wlist) ports = map(lambda x: x[-1], port_lines) for port in ports: if port == port_name: ipoplib.runshell([LinuxBridge.brctl, "delif", self.name, port_name]) if port_name in self.ports: self.ports.remove(port_name)
def add_sdn_ctrl(self, sdn_ctrl_cfg): if sdn_ctrl_cfg["ConnectionType"] == "tcp": ctrl_conn_str = ":".join([sdn_ctrl_cfg["ConnectionType"], sdn_ctrl_cfg["HostName"], sdn_ctrl_cfg["Port"]]) ipoplib.runshell([OvsBridge.brctl, "set-controller", self.name, ctrl_conn_str])
def req_handler_remove_tunnel(self, cbt): msg = cbt.request.params ctl = ipoplib.CTL_REMOVE_TUNNEL ctl["IPOP"]["TransactionId"] = cbt.tag req = ctl["IPOP"]["Request"] req["OverlayId"] = msg["OverlayId"] req["TunnelId"] = msg["TunnelId"] self.send_control(json.dumps(ctl)) if "TapName" in msg and msg["TapName"]: ipoplib.runshell( [self.iptool, "link", "del", "dev", msg["TapName"]])
def del_port(self, port_name): p = ipoplib.runshell([LinuxBridge.brctl, "show", self.name]) wlist = map(str.split, p.stdout.decode("utf-8").splitlines()[1:]) port_lines = filter(lambda x: len(x) == 4, wlist) ports = map(lambda x: x[-1], port_lines) for port in ports: if port == port_name: ipoplib.runshell( [LinuxBridge.brctl, "delif", self.name, port_name]) if port_name in self.ports: self.ports.remove(port_name)
def __init__(self, name, ip_addr, prefix_len, mtu, cm, stp_enable, sdn_ctrl_cfg=None): """ Initialize an OpenvSwitch bridge object. """ super(OvsBridge, self).__init__(name, ip_addr, prefix_len, mtu, cm) if OvsBridge.brctl is None or OvsBridge.iptool is None: raise RuntimeError( "openvswitch-switch was not found" if not OvsBridge.brctl else "iproute2 was not found") ipoplib.runshell([OvsBridge.brctl, "--may-exist", "add-br", self.name]) # try: # p = ipoplib.runshell([OvsBridge.brctl, "set", "int", # self.name, # "mtu_request=" + str(self.mtu)]) # except RuntimeError as e: # pass # self.register_cbt( # "Logger", "LOG_WARN", "Following error occurred while" # " setting MTU for OVS bridge: " + e.message # + ". Proceeding with OVS-specified default" # " value for the bridge...") if ip_addr and prefix_len: net = "{0}/{1}".format(ip_addr, prefix_len) ipoplib.runshell( [OvsBridge.iptool, "addr", "flush", "dev", self.name]) ipoplib.runshell( [OvsBridge.iptool, "addr", "add", net, "dev", self.name]) try: ipoplib.runshell([ OvsBridge.brctl, "set", "int", self.name, "mtu_request=" + str(self.mtu) ]) except RuntimeError as e: self.cm.register_cbt( "Logger", "LOG_WARN", "The following error occurred while setting" " MTU for OVS bridge: {0}".format(e)) self.stp(stp_enable) ipoplib.runshell( [OvsBridge.iptool, "link", "set", "dev", self.name, "up"]) if sdn_ctrl_cfg: self.add_sdn_ctrl(sdn_ctrl_cfg)
def __init__(self, name, ip_addr, prefix_len, mtu, stp_enable, sdn_ctrl_cfg=None): """ Initialize an OpenvSwitch bridge object. """ super(OvsBridge, self).__init__(name, ip_addr, prefix_len, mtu) if OvsBridge.brctl is None or OvsBridge.iptool is None: raise RuntimeError("openvswitch-switch was not found" if not OvsBridge.brctl else "iproute2 was not found") ipoplib.runshell([OvsBridge.brctl, "--may-exist", "add-br", self.name]) # try: # p = ipoplib.runshell([OvsBridge.brctl, "set", "int", # self.name, # "mtu_request=" + str(self.mtu)]) # except RuntimeError as e: # pass # self.register_cbt( # "Logger", "LOG_WARN", "Following error occurred while" # " setting MTU for OVS bridge: " + e.message # + ". Proceeding with OVS-specified default" # " value for the bridge...") net = "{0}/{1}".format(ip_addr, prefix_len) p = ipoplib.runshell([OvsBridge.iptool, "addr", "show", self.name]) ip_addr_info = p.stdout.decode() if net not in ip_addr_info: ipoplib.runshell([OvsBridge.iptool, "addr", "add", net, "dev", self.name]) self.stp(stp_enable) ipoplib.runshell([OvsBridge.iptool, "link", "set", "dev", self.name, "up"]) if sdn_ctrl_cfg: self.add_sdn_ctrl(sdn_ctrl_cfg)
def add_port(self, port_name): self.name = port_name net = "{0}/{1}".format(self.ip_addr, self.prefix_len) ipoplib.runshell([VNIC.iptool, "addr", "add", net, "dev", self.name]) ipoplib.runshell( [VNIC.iptool, "link", "set", self.name, "mtu", str(self.mtu)]) ipoplib.runshell([VNIC.iptool, "link", "set", "dev", self.name, "up"])
def __init__(self, name, ip_addr, prefix_len, mtu, stp_enable): """ Initialize a Linux bridge object. """ super(LinuxBridge, self).__init__(name, ip_addr, prefix_len, mtu) if LinuxBridge.brctl is None or LinuxBridge.iptool is None: raise RuntimeError("bridge-utils was not found" if not LinuxBridge.brctl else "iproute2 was not found") p = ipoplib.runshell([LinuxBridge.brctl, "show"]) wlist = map(str.split, p.stdout.decode("utf-8").splitlines()[1:]) brwlist = filter(lambda x: len(x) != 1, wlist) brlist = map(lambda x: x[0], brwlist) for br in brlist: if br == name: return p = ipoplib.runshell([LinuxBridge.brctl, "addbr", self.name]) net = "{0}/{1}".format(ip_addr, prefix_len) ipoplib.runshell([LinuxBridge.iptool, "addr", "add", net, "dev", name]) self.stp(stp_enable) ipoplib.runshell([LinuxBridge.iptool, "link", "set", "dev", name, "up"])
def __init__(self, name, ip_addr, prefix_len, mtu, cm, stp_enable): """ Initialize a Linux bridge object. """ super(LinuxBridge, self).__init__(name, ip_addr, prefix_len, mtu, cm) if LinuxBridge.brctl is None or LinuxBridge.iptool is None: raise RuntimeError("bridge-utils was not found" if not LinuxBridge. brctl else "iproute2 was not found") p = ipoplib.runshell([LinuxBridge.brctl, "show"]) wlist = map(str.split, p.stdout.decode("utf-8").splitlines()[1:]) brwlist = filter(lambda x: len(x) != 1, wlist) brlist = map(lambda x: x[0], brwlist) for br in brlist: if br == name: return p = ipoplib.runshell([LinuxBridge.brctl, "addbr", self.name]) net = "{0}/{1}".format(ip_addr, prefix_len) ipoplib.runshell([LinuxBridge.iptool, "addr", "add", net, "dev", name]) self.stp(stp_enable) ipoplib.runshell( [LinuxBridge.iptool, "link", "set", "dev", name, "up"])
def del_port(self, port_name): ipoplib.runshell([OvsBridge.brctl, "--if-exists", "del-port", self.name, port_name]) if port_name in self.ports: self.ports.remove(port_name)
def set_path_cost(self, port, cost): """ Set port path cost value for STP protocol. """ ipoplib.runshell( [LinuxBridge.brctl, "setpathcost", self.name, port, str(cost)])
def set_port_prio(self, port, prio): """ Set port priority value. """ ipoplib.runshell( [LinuxBridge.brctl, "setportprio", self.name, port, str(prio)])
def del_br(self): self.del_sdn_ctrl() ipoplib.runshell([OvsBridge.brctl, "--if-exists", "del-br", self.name])
def set_bridge_prio(self, prio): """ Set bridge priority value. """ ipoplib.runshell( [LinuxBridge.brctl, "setbridgeprio", self.name, str(prio)])
def add_port(self, port_name): ipoplib.runshell([OvsBridge.iptool, "link", "set", "dev", port_name, "mtu", str(self.mtu)]) ipoplib.runshell([OvsBridge.brctl, "--may-exist", "add-port", self.name, port_name]) self.ports.add(port_name)
def set_path_cost(self, port, cost): """ Set port path cost value for STP protocol. """ ipoplib.runshell([LinuxBridge.brctl, "setpathcost", self.name, port, str(cost)])
def set_bridge_prio(self, prio): """ Set bridge priority value. """ ipoplib.runshell([LinuxBridge.brctl, "setbridgeprio", self.name, str(prio)])
def del_br(self): # Set the device down and delete the bridge ipoplib.runshell( [LinuxBridge.iptool, "link", "set", "dev", self.name, "down"]) ipoplib.runshell([LinuxBridge.brctl, "delbr", self.name])
def set_port_prio(self, port, prio): """ Set port priority value. """ ipoplib.runshell([LinuxBridge.brctl, "setportprio", self.name, port, str(prio)])
def del_port(self, port_name): ipoplib.runshell( [OvsBridge.brctl, "--if-exists", "del-port", self.name, port_name]) if port_name in self.ports: self.ports.remove(port_name)
def del_br(self): # Set the device down and delete the bridge ipoplib.runshell([LinuxBridge.iptool, "link", "set", "dev", self.name, "down"]) ipoplib.runshell([LinuxBridge.brctl, "delbr", self.name])
def del_br(self): self.del_sdn_ctrl() ipoplib.runshell([OvsBridge.brctl, "--if-exists", "del-br", self.name])
def del_sdn_ctrl(self): ipoplib.runshell([OvsBridge.brctl, "del-controller", self.name])
def del_sdn_ctrl(self): ipoplib.runshell([OvsBridge.brctl, "del-controller", self.name])
def add_port(self, port_name): ipoplib.runshell([LinuxBridge.iptool, "link", "set", port_name, "mtu", str(self.mtu)]) ipoplib.runshell([LinuxBridge.brctl, "addif", self.name, port_name]) self.ports.add(port_name)