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

77 lines
2.0 KiB
ReStructuredText

*************
OVSDB library
*************
Path: ``os_ken.lib.ovs``
Similar to the :doc:`library_ovsdb_manager`, this library enables your
application to speak the OVSDB protocol (RFC7047_), but differ from the
:doc:`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.
.. code-block:: bash
# 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.
.. _RFC7047: https://tools.ietf.org/html/rfc7047
.. _ovs-vsctl: http://openvswitch.org/support/dist-docs/ovs-vsctl.8.txt
Basic Usage
===========
1. Instantiate :py:mod:`os_ken.lib.ovs.vsctl.VSCtl`.
2. Construct commands with :py:mod:`os_ken.lib.ovs.vsctl.VSCtlCommand`.
The syntax is almost the same as ovs-vsctl_ command.
3. Execute commands via :py:mod:`os_ken.lib.ovs.vsctl.VSCtl.run_command`.
Example
-------
.. code-block:: python
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
--------------------
.. automodule:: os_ken.lib.ovs.vsctl
:members:
os_ken.lib.ovs.bridge
---------------------
.. automodule:: os_ken.lib.ovs.bridge
:members: