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])
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
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])
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])
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])
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])
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])
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')
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
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])
def _set_up_vsctl(cls): cls.vsctl = vsctl.VSCtl(OVSDB_SWITCH_ADDR)
# -*- 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'
def _set_up_vsctl(cls): cls.vsctl = vsctl.VSCtl(OVSDB_SWITCH_ADDR % cls.container_mn_ip)
def __init__(self, *args, **kwargs): super(FaBridge, self).__init__(*args, **kwargs) self.vsctl = ovs_vsctl.VSCtl( 'unix:/usr/local/var/run/openvswitch/db.sock')
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')