Beispiel #1
0
def add_bridge(name, db_addr=LOCAL, protocols=None, datapath_id=None):
    ovsdb = vsctl.VSCtl(db_addr)

    def create():
        command = "add-br"
        args = [name]
        run = vsctl.VSCtlCommand(command, args)
        ovsdb.run_command([run])
        return run.result

    def set_ofversion():
        table = ["Bridge"]
        value = [name, "protocols={version}".format(version=protocols)]
        set_ovsdb(db_addr=db_addr, table=table, value=value)

    def set_dpid():
        table = ["Bridge"]
        value = [
            name, "other-config:datapath-id={dpid}".format(dpid=datapath_id)
        ]
        set_ovsdb(db_addr=db_addr, table=table, value=value)

    try:
        if not exists_bridge(name=name, db_addr=db_addr):
            create()
        if protocols is not None:
            set_ofversion()
        if datapath_id is not None:
            set_dpid()
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #2
0
    def __init__(self, ovsdb_addr, br_name, timeout=None, exception=None):
        super(OVSBridge, self).__init__()
        #self.datapath_id = datapath_id
        self.vsctl = ovs_vsctl.VSCtl(ovsdb_addr)
        self.timeout = timeout or CONF.ovsdb_timeout
        self.exception = exception

        self.br_name = br_name
Beispiel #3
0
def rem_bridge(name, db_addr=LOCAL):
    ovsdb = vsctl.VSCtl(db_addr)
    command = "del-br"
    args = [name]
    run = vsctl.VSCtlCommand(command, args)
    try:
        if exists_bridge(db_addr, name):
            ovsdb.run_command([run])
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #4
0
def exists_bridge(name, db_addr=LOCAL):
    ovsdb = vsctl.VSCtl(db_addr)
    command = "br-exists"
    args = [name]
    run = vsctl.VSCtlCommand(command, args)
    try:
        ovsdb.run_command([run])
        return run.result
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #5
0
def get_ovsdb(db_addr=LOCAL, table=[], value=[]):
    ovsdb = vsctl.VSCtl(db_addr)
    command = "get"
    value = table + value
    run = vsctl.VSCtlCommand(command, value)
    try:
        ovsdb.run_command([run])
        return run.result
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #6
0
def del_port_bridge(db_addr, name, port_name):
    ovsdb = vsctl.VSCtl(db_addr)
    command = "del-port"
    args = [name, port_name]
    run = vsctl.VSCtlCommand(command, args)

    try:
        ovsdb.run_command([run])
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #7
0
def del_bridge_controller(name, db_addr=LOCAL):
    ovsdb = vsctl.VSCtl(db_addr)
    command = "del-controller"
    args = [name]
    run = vsctl.VSCtlCommand(command, args)
    try:
        if exists_bridge(name=name, db_addr=db_addr):
            ovsdb.run_command([run])
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #8
0
 def __init__(self, *args, **kwargs):
     super(NetFaSwitch, self).__init__(*args, **kwargs)
     self.switch = {}
     self.vsctl = ovs_vsctl.VSCtl(
         'unix:/usr/local/var/run/openvswitch/db.sock')
     wsgi = kwargs['wsgi']
     wsgi.register(NetFaApi, {net_fa_api_instance_name: self})
     self.CONF.register_opts([
         cfg.StrOpt('my_site', default=None),
         cfg.StrOpt('fa_br_name', default=None),
         cfg.StrOpt('fa_tun_name', default=None)
     ], 'netfa')
Beispiel #9
0
 def __init__(self, *args, **kwargs):
     super(SimpleSwitch13, self).__init__(*args, **kwargs)
     self.mac_to_port = {}
     self.queue_list = {}
     self.ovsdb_addr = "tcp:127.0.0.1:6640"
     #self.ovs_bridge = None
     self.ovs_vsctl = vsctl.VSCtl(self.ovsdb_addr)
     self.lastModify=os.path.getmtime("config.ini")
     print("init finish")
     server_ip = "127.0.0.1"
     server_port = 9163
     bufsize=1024
     addr=(server_ip,server_port)
     try:
         self.dpi_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
         self.dpi_server.connect(addr)
         self.connected=True
         print("Connected to dpi server")
     except:
         self.connected=False
Beispiel #10
0
def add_port_bridge(db_addr, name, port_name, ofport=None):
    ovsdb = vsctl.VSCtl(db_addr)

    def adding():
        command = "add-port"
        args = [name, port_name]
        run = vsctl.VSCtlCommand(command, args)
        ovsdb.run_command([run])

    def set_ofport():
        table = ["Interface"]
        value = [port_name, "ofport_request={ofport}".format(ofport=ofport)]
        set_ovsdb(db_addr, table, value)

    try:
        adding()
        if ofport is not None:
            set_ofport()
    except Exception as ex:
        raise RuntimeError(ex.args[0])
Beispiel #11
0
 def _set_up_vsctl(cls):
     cls.vsctl = vsctl.VSCtl(OVSDB_SWITCH_ADDR)
Beispiel #12
0
# -*- coding: utf-8 -*-
# @Time    : 2019/4/18 14:24
# @Author  : MrCocoaCat
# @Email   : [email protected]
# @File    : OVSDB_vsctl.py

from ryu.lib.ovs import vsctl

# 判断格式是否正确
#
# vsctl.valid_ovsdb_addr(OVSDB_ADDR)

OVSDB_ADDR = 'tcp:192.168.83.137:6640'
ovs_vsctl = vsctl.VSCtl(OVSDB_ADDR)
command = vsctl.VSCtlCommand(command='add-br', args=['s1'])
command1 = vsctl.VSCtlCommand(command='set',
                              args=['Bridge', 's1', 'protocols=OpenFlow13'])
ovs_vsctl.run_command([command, command1])
#ovs_vsctl.run_command([command1])
print(command.result)

# ovs_vsctl.run_command([command1])
print(command1.result)
# vsctl.VSCtlCommand 类用于定义命令

# Bridge commands.
# 'add-br'
# 'del-br'
# 'list-br'
# 'br-exists'
# 'br-to-vlan'
Beispiel #13
0
 def _set_up_vsctl(cls):
     cls.vsctl = vsctl.VSCtl(OVSDB_SWITCH_ADDR % cls.container_mn_ip)
Beispiel #14
0
 def __init__(self, *args, **kwargs):
     super(FaBridge, self).__init__(*args, **kwargs)
     self.vsctl = ovs_vsctl.VSCtl(
         'unix:/usr/local/var/run/openvswitch/db.sock')
Beispiel #15
0
 def __init__(self, *args, **kwargs):
     super(OvnController, self).__init__(*args, **kwargs)
     self.vsctl = ovs_vsctl.VSCtl(
         'unix:/usr/local/var/run/openvswitch/db.sock')
     self.CONF.register_opts([cfg.StrOpt('ovsdb_connection', default=None)],
                             'ovn')