def add_port(self, port_name):
     ipoplib.runshell_su(
         [IPEXE, "link", "set", port_name, "mtu",
          str(self.mtu)])
     ipoplib.runshell_su(
         [LinuxBridge.brctlexe, "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_su([LinuxBridge.brctlexe, "stp", self.name, state])
 def add_port(self, port_name):
     ipoplib.runshell_su(
         [IPEXE, "link", "set", "dev", port_name, "mtu",
          str(self.mtu)])
     ipoplib.runshell_su([
         OvsBridge.brctlexe, "--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_su([
                OvsBridge.brctlexe, "set-controller", self.name, ctrl_conn_str
            ])
 def del_port(self, port_name):
     p = ipoplib.runshell_su([LinuxBridge.brctlexe, "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_su(
                 [LinuxBridge.brctlexe, "delif", self.name, port_name])
             if port_name in self.ports:
                 self.ports.remove(port_name)
 def stp(self, enable):
     if enable:
         ipoplib.runshell_su([
             OvsBridge.brctlexe, "set", "bridge", self.name,
             "stp_enable=true"
         ])
     else:
         ipoplib.runshell_su([
             OvsBridge.brctlexe, "set", "bridge", self.name,
             "stp_enable=false"
         ])
    def __init__(self, name, ip_addr, prefix_len, sdn_ctrl_cfg=dict()):
        """ Initialize a bridge object. """
        super(OvsBridge, self).__init__(name, ip_addr, prefix_len)
        ipoplib.runshell_su(
            [OvsBridge.brctlexe, "--may-exist", "add-br", self.name])
        '''net = "{0}/{1}".format(ip_addr, prefix_len)

        p = ipoplib.runshell_su([IPEXE, "addr", "show", self.name])
        ip_addr_info = p.stdout.decode()
        if net not in ip_addr_info:
            ipoplib.runshell_su([IPEXE, "addr", "add", net, "dev", self.name])

        self.stp(False)
        ipoplib.runshell_su([IPEXE, "link", "set", "dev", self.name, "up"])'''

        self.add_sdn_ctrl(sdn_ctrl_cfg)
    def __init__(self,
                 name,
                 ip_addr,
                 prefix_len,
                 mtu,
                 stp_enable,
                 sdn_ctrl_cfg=None):
        """ Initialize a bridge object. """
        super(OvsBridge, self).__init__(name, ip_addr, prefix_len, mtu)
        ipoplib.runshell_su(
            [OvsBridge.brctlexe, "--may-exist", "add-br", self.name])

        try:
            p = ipoplib.runshell_su([
                OvsBridge.brctlexe, "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_su([IPEXE, "addr", "show", self.name])
        ip_addr_info = p.stdout.decode()
        if net not in ip_addr_info:
            ipoplib.runshell_su([IPEXE, "addr", "add", net, "dev", self.name])

        self.stp(stp_enable)
        ipoplib.runshell_su([IPEXE, "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, *args, **kwargs):
        """ Initialize a bridge object. """

        super(LinuxBridge, self).__init__(name, ip_addr, prefix_len)

        p = ipoplib.runshell_su([LinuxBridge.brctlexe, '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:
            print(br)
            if br == name:
                print("deleting {}".format(br))
                self.del_br()

        ipoplib.runshell_su([LinuxBridge.brctlexe, "addbr", self.name])
        net = "{0}/{1}".format(ip_addr, prefix_len)
        ipoplib.runshell_su([IPEXE, "addr", "add", net, "dev", name])
        self.stp(False)
        ipoplib.runshell_su([IPEXE, "link", "set", "dev", name, "up"])
    def __init__(self, name, ip_addr, prefix_len, mtu, stp_enable):
        """ Initialize a bridge object. """

        super(LinuxBridge, self).__init__(name, ip_addr, prefix_len, mtu)

        p = ipoplib.runshell_su([LinuxBridge.brctlexe, "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_su([LinuxBridge.brctlexe, "addbr", self.name])
        net = "{0}/{1}".format(ip_addr, prefix_len)
        ipoplib.runshell_su([IPEXE, "addr", "add", net, "dev", name])
        self.stp(stp_enable)
        ipoplib.runshell_su([IPEXE, "link", "set", "dev", name, "up"])
Esempio n. 11
0
 def add_port(self, port_name):
     ipoplib.runshell_su([
         OvsBridge.brctlexe, "--may-exist", "add-port", self.name, port_name
     ])
Esempio n. 12
0
    def del_br(self):
        self.del_sdn_ctrl()

        ipoplib.runshell_su(
            [OvsBridge.brctlexe, "--if-exists", "del-br", self.name])
Esempio n. 13
0
 def del_sdn_ctrl(self):
     ipoplib.runshell_su([OvsBridge.brctlexe, "del-controller", self.name])
 def del_port(self, port_name):
     ipoplib.runshell_su([
         OvsBridge.brctlexe, "--if-exists", "del-port", self.name, port_name
     ])
     if port_name in self.ports:
         self.ports.remove(port_name)
Esempio n. 15
0
 def set_port_prio(self, port, prio):
     """ Set port priority value. """
     ipoplib.runshell_su(
         [LinuxBridge.brctlexe, "setportprio", self.name, port,
          str(prio)])
Esempio n. 16
0
 def set_path_cost(self, port, cost):
     """ Set port path cost value for STP protocol. """
     ipoplib.runshell_su(
         [LinuxBridge.brctlexe, "setpathcost", self.name, port,
          str(cost)])
Esempio n. 17
0
 def del_port(self, port):
     ipoplib.runshell_su([LinuxBridge.brctlexe, "delif", self.name, port])
Esempio n. 18
0
 def add_port(self, port):
     ipoplib.runshell_su([LinuxBridge.brctlexe, "addif", self.name, port])
Esempio n. 19
0
 def del_br(self):
     """ Set the device down and delete the bridge. """
     ipoplib.runshell_su([IPEXE, "link", "set", "dev", self.name, "down"])
     ipoplib.runshell_su([LinuxBridge.brctlexe, "delbr", self.name])
Esempio n. 20
0
 def del_port(self, port_name):
     ipoplib.runshell_su([
         OvsBridge.brctlexe, "--if-exists", "del-port", self.name, port_name
     ])