Files
os-ken/doc/source/library_ovsdb.rst
Hongbin Lu 52a227c309 Fixup the docs building
This commit enable users to run `tox -e docs` to build docs for os-ken.
It fixes several issues to ensure the build will succeed.
In addition, the docs from upstream Ryu library is grouped into
archived content. The future work is merging those docs into
the os-ken contents.

Change-Id: I5ee1998e0d2835495650cda530eb0b73c49b091a
2018-10-17 18:51:14 +00:00

2.0 KiB

OVSDB library

Path: os_ken.lib.ovs

Similar to the library_ovsdb_manager, this library enables your application to speak the OVSDB protocol (RFC7047), but differ from the library_ovsdb_manager, this library will initiate connections from controller side as ovs-vsctl command does. Please make sure that your devices are listening on either the Unix domain socket or TCP/SSL port before calling the APIs of this library.

# Show current configuration
$ ovs-vsctl get-manager

# Set TCP listen address
$ ovs-vsctl set-manager "ptcp:6640"

See manpage of ovs-vsctl command for more details.

Basic Usage

  1. Instantiate :pyos_ken.lib.ovs.vsctl.VSCtl.
  2. Construct commands with :pyos_ken.lib.ovs.vsctl.VSCtlCommand. The syntax is almost the same as ovs-vsctl command.
  3. Execute commands via :pyos_ken.lib.ovs.vsctl.VSCtl.run_command.

Example

from os_ken.lib.ovs import vsctl

OVSDB_ADDR = 'tcp:127.0.0.1:6640'
ovs_vsctl = vsctl.VSCtl(OVSDB_ADDR)

# Equivalent to
# $ ovs-vsctl show
command = vsctl.VSCtlCommand('show')
ovs_vsctl.run_command([command])
print(command)
# >>> VSCtlCommand(args=[],command='show',options=[],result='830d781f-c3c8-4b4f-837e-106e1b33d058\n    ovs_version: "2.8.90"\n')

# Equivalent to
# $ ovs-vsctl list Port s1-eth1
command = vsctl.VSCtlCommand('list', ('Port', 's1-eth1'))
ovs_vsctl.run_command([command])
print(command)
# >>> VSCtlCommand(args=('Port', 's1-eth1'),command='list',options=[],result=[<ovs.db.idl.Row object at 0x7f525fb682e8>])
print(command.result[0].name)
# >>> s1-eth1

API Reference

os_ken.lib.ovs.vsctl

os_ken.lib.ovs.vsctl

os_ken.lib.ovs.bridge

os_ken.lib.ovs.bridge