[openstack-dev] [Neutron] initial OVN testing

Russell Bryant rbryant at redhat.com
Thu Mar 26 23:54:32 UTC 2015

Gary and Kyle, I saw in my IRC backlog that you guys were briefly
talking about testing the Neutron ovn ml2 driver.  I suppose it's time
to add some more code to the devstack integration to install the current
ovn branch and set up ovsdb-server to serve up the right database for
this.  I'll try to work on that tomorrow.  Of course, note that all we
can set up right now is the northbound database.  None of the code that
reacts to updates to that database is merged yet.  We can still go ahead
and test our code and make sure the expected data makes it there, though.

Here's some more detail about the pieces ...

When I was writing ovn-nbctl [1], I was testing using ovs-sandbox.  It's
a script that sets up a handy development environment for ovs.  It has
ovn support if you pass the "-o" option [2].  To run it, it would be
something like ...

  $ git clone https://github.com/openvswitch/ovs.git
  $ cd ovs
  $ git checkout ovn
  $ ./boot.sh
  $ ./configure
  $ make
  $ make SANDBOXFLAGS="-o" sandbox

>From there you can run ovn-nbctl.  Here's a script to demonstrate the
various commands:


To set this up outside of ovs-sandbox, you need to first create the OVN
northbound database:

  $ ovsdb-tool create ovnnb.db ovs-git-tree/ovn/ovn-nb.ovsschema

Then you need to tell ovsdb-server to use it.  By default ovsdb-server
will only serve up conf.db.  It can take a list of dbs as positional
arguments, though.  You can see that's what the ovs-sandbox script is doing.

So, you can either change the command used to start ovsdb-server on your
system, or start up another instance of it with its own unix socket and
tcp port.

There was also a question on IRC about the format of the database option
for the ML2 driver.  The value is passed directly to ovn-nbctl.  The
format is the same as is used for ovs-vsctl (and probably others).

When running in ovs-sandbox, ovn-nbctl's help output shows:

  --db=DATABASE             connect to DATABASE

and further down, it provides some more detail:

  Active database connection methods:
    tcp:IP:PORT             PORT at remote IP
    ssl:IP:PORT             SSL PORT at remote IP
    unix:FILE               Unix domain socket named FILE
  Passive database connection methods:
    ptcp:PORT[:IP]          listen to TCP PORT on IP
    pssl:PORT[:IP]          listen for SSL on PORT on IP
    punix:FILE              listen on Unix domain socket FILE

[1] http://openvswitch.org/pipermail/dev/2015-March/052757.html
[2] http://openvswitch.org/pipermail/dev/2015-March/052353.html

Russell Bryant

More information about the OpenStack-dev mailing list