[ovs-git] [openvswitch/ovs] 4b67b1: tests: Make OVS_WAIT_UNTIL and OVS_WAIT_WHILE fail...

GitHub noreply at github.com
Tue May 1 00:23:43 UTC 2018


  Branch: refs/heads/branch-2.9
  Home:   https://github.com/openvswitch/ovs
  Commit: 4b67b1cdafcd123fbeaa46f03d39b2c73afb7c64
      https://github.com/openvswitch/ovs/commit/4b67b1cdafcd123fbeaa46f03d39b2c73afb7c64
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tests/ovs-macros.at

  Log Message:
  -----------
  tests: Make OVS_WAIT_UNTIL and OVS_WAIT_WHILE failures easier to debug.

Until now, when OVS_WAIT_UNTIL or OVS_WAIT_WHILE ran, little information
was available: usually nothing at all in the log, unless the wait failed,
in which case there was a line number.  This commit adds a note saying
what is being waited for in any case, and a message saying that the wait
failed if it does.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Tested-by: Yifeng Sun <pkusunyifeng at gmail.com>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>


  Commit: 50af00351056b8ec3e854ff27ec986c3ed91b7a1
      https://github.com/openvswitch/ovs/commit/50af00351056b8ec3e854ff27ec986c3ed91b7a1
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/json.c

  Log Message:
  -----------
  json: Make it safe to pass null pointers to json_equal().

Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 73bf4ab2188caba9fb605b9990946ebc2ee854a6
      https://github.com/openvswitch/ovs/commit/73bf4ab2188caba9fb605b9990946ebc2ee854a6
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M NEWS
    M ovsdb/ovsdb-client.1.in
    M ovsdb/ovsdb-client.c
    M tests/ovs-macros.at

  Log Message:
  -----------
  ovsdb-client: Add --timeout option.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: f266accb7b225adecb531fd38f29382d6e32d240
      https://github.com/openvswitch/ovs/commit/f266accb7b225adecb531fd38f29382d6e32d240
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/db-ctl-base.c
    M lib/db-ctl-base.h
    M ovn/lib/ovn-util.h
    M ovn/utilities/ovn-nbctl.8.xml
    M ovn/utilities/ovn-nbctl.c
    M ovn/utilities/ovn-sbctl.8.in
    M ovn/utilities/ovn-sbctl.c
    M utilities/ovs-vsctl.8.in
    M utilities/ovs-vsctl.c
    M vtep/vtep-ctl.c

  Log Message:
  -----------
  Refer to database manpages in *ctl manpages

The ovn-nbctl, ovn-sbctl, and ovs-vsctl manpages are inconsistent in
their "Database Commands" section when it comes to referring to what
database tables exist. This commit amends this by making each *ctl
manpage reference the corresponding database manpage instead.

To aid in having a more handy list, the --help text of ovn-nbctl,
ovn-sbctl, and ovs-vsctl have been modified to list the available
tables. This is also referenced in the manpages for those applications.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e987d9a19545ef935d2c9df9c561b4b0e24cd851
      https://github.com/openvswitch/ovs/commit/e987d9a19545ef935d2c9df9c561b4b0e24cd851
  Author: Daniel Alvarez <dalvarez at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/file.c
    M ovsdb/log.c
    M ovsdb/ovsdb-server.1.in

  Log Message:
  -----------
  ovsdb: Loosen requirements for automatically compacting databases.

Before this patch, the databases were automatically compacted when a
transaction is logged when:

* It's been > 10 minutes after last compaction AND
* At least 100 commits have occurred AND
* Database has grown at least 4x since last compaction (and it's > 10M)

This patch changes the conditions as follows:

* It's been > 10 minutes after last compaction AND
* At least 100 commits have occurred AND either
   - It's been > 24 hours after the last compaction OR
   - Database has grown at least 2x since last compaction (and it's > 10M)

Reported-by: Daniel Alvarez <dalvarez at redhat.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-March/046309.html
Signed-off-by: Daniel Alvarez <dalvarez at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e8505fd7ebd3a0965e481c5dc49aacd6f1ef8632
      https://github.com/openvswitch/ovs/commit/e8505fd7ebd3a0965e481c5dc49aacd6f1ef8632
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/ovsdb-idlc.1
    M ovsdb/ovsdb-idlc.in
    M python/ovs/db/schema.py

  Log Message:
  -----------
  ovsdb-idlc: Add "cDecls" and "hDecls" IDL schema extensions.

An IDL schema is an OVSDB schema with some extra stuff in it: an idlPrefix
and an idlHeader at the top level to indicate what ovsdb-idlc needs to
generate the interface definitions.  This commit adds support for two more
optional IDL schema extensions that allow extra code to be written to the
.c and .h file that ovsdb-idlc generates.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 28c07bdcab4033eb3396cda7f8a4cd61382337d1
      https://github.com/openvswitch/ovs/commit/28c07bdcab4033eb3396cda7f8a4cd61382337d1
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/ovsdb-idlc.1
    M python/ovs/db/schema.py

  Log Message:
  -----------
  ovsdb-idlc: Add infrastructure for IDL schema extensions.

An IDL schema is an OVSDB schema with some extra stuff in it.  So far, all
of the extras have been at the top level.  This commit makes it possible
for IDL schemas to have extra information at the table and column levels as
long as it is in an "extensions" member.

No extensions are actually supported yet.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 75a6f54915fa43f2405cb7be46116929bcb1bb6b
      https://github.com/openvswitch/ovs/commit/75a6f54915fa43f2405cb7be46116929bcb1bb6b
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/ovsdb-idl-provider.h
    M lib/ovsdb-idl.c
    M ovsdb/ovsdb-idlc.1
    M ovsdb/ovsdb-idlc.in

  Log Message:
  -----------
  ovsdb-idlc: Implement synthetic columns.

A synthetic column is one that is not present in the actual database but
instead calculated by code in the client based on columns in the row.  This
can be useful to avoid repeatedly calculating the same function of a row.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: b4451d057030b2d96dff6bc73d3aa37064ddb653
      https://github.com/openvswitch/ovs/commit/b4451d057030b2d96dff6bc73d3aa37064ddb653
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M AUTHORS.rst
    M lib/ovsdb-idl.c
    M python/ovs/db/idl.py

  Log Message:
  -----------
  ovsdb-idl: Use modern form of <monitor-requests>.

Long ago, a <monitor-requests> object in the OVSDB protocol mapped a table
name to a single <monitor-request>.  Since then, it has mapped a table name
to an *array of* <monitor-request> objects, but the OVSDB IDL has never
been updated to use the modern form.  This commit makes that change.

Reported-by: Anil Jangam <anilj.mailing at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: caa518b3f8729b034897bc8b2e8b5e4afd367d54
      https://github.com/openvswitch/ovs/commit/caa518b3f8729b034897bc8b2e8b5e4afd367d54
  Author: Daniel Alvarez <dalvarez at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/file.c

  Log Message:
  -----------
  ovsdb: Fix database compaction check

We want to compact database file if it has been over 24 hours since we
last compacted it and there's more than 100 commits regardless of the
size of the database. This patch fixes the previous comparisson which
checked if 24 hours was elapsed since the next scheduled compaction.

Signed-off-by: Daniel Alvarez <dalvarez at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 33f0a836edb40714a122fdab569a6d3e98103447
      https://github.com/openvswitch/ovs/commit/33f0a836edb40714a122fdab569a6d3e98103447
  Author: Alin Gabriel Serdean <aserdean at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/ovsdb-client.c

  Log Message:
  -----------
  ovsdb-client: Set binary mode when doing backup/restore

Add some needed consistency on Windows for STD_IN/OUT file descriptors
when doing backup and restore.

Reported-at:https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343518.html
Suggested-by: Ben Pfaff <blp at ovn.org>
Co-authored-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>


  Commit: 89c565fe20027a0a36dd6876df97923e31c6b133
      https://github.com/openvswitch/ovs/commit/89c565fe20027a0a36dd6876df97923e31c6b133
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/file.c
    M ovsdb/log.c
    M ovsdb/log.h
    M ovsdb/ovsdb-tool.c
    M tests/test-ovsdb.c

  Log Message:
  -----------
  log: Add async commit support.

The OVSDB log code has always had the ability to commit the log to disk and
wait for the commit to finish.  This patch introduces a new feature that
allows the client to start a commit in the background and then to determine
asynchronously that the commit has completed.  This will be especially
useful later for the distributed database feature.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>


  Commit: 8e25fe807451e6c0dc260f271584e5b2ab23fe4c
      https://github.com/openvswitch/ovs/commit/8e25fe807451e6c0dc260f271584e5b2ab23fe4c
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/reconnect.c
    M lib/reconnect.h
    M python/ovs/reconnect.py
    M tests/reconnect.at
    M tests/test-reconnect.c
    M tests/test-reconnect.py

  Log Message:
  -----------
  reconnect: Add ability to do a number of retries without backoff.

This is aimed at an upcoming database clustering implementation, where it's
desirable to try all of the cluster members quickly before backing off to
retry them again in sequence.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Russell Bryant <russell at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 19ca30dbe8cca44d2b15483c39da744282e35f93
      https://github.com/openvswitch/ovs/commit/19ca30dbe8cca44d2b15483c39da744282e35f93
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/jsonrpc.c
    M lib/jsonrpc.h
    M lib/svec.c
    M lib/svec.h

  Log Message:
  -----------
  jsonrpc: Allow jsonrpc_session to have more than one remote.

The implementation cycles through the remotes in random order.  This allows
clients to perform some load balancing across alternative implementations
of a service.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Russell Bryant <russell at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 36d4bd4bd156fcca861cbc37a0b1dcbc9bfe70a0
      https://github.com/openvswitch/ovs/commit/36d4bd4bd156fcca861cbc37a0b1dcbc9bfe70a0
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/file.c
    M ovsdb/file.h
    M ovsdb/monitor.c
    M ovsdb/ovsdb.c
    M ovsdb/ovsdb.h
    M ovsdb/transaction.c

  Log Message:
  -----------
  ovsdb-server: Distinguish logs from other replicas.

Until now, ovsdb-server has internally chained a list of replicas from each
database.  Whenever ovsdb_txn_commit() commits a transaction, it passes the
transaction to each replica.  The first replica, which is always the disk
file that stores the database, is special because it is the only replica
that can report an error and thereby abort the transaction.  This is a very
special property that genuinely distinguishes this first replica from the
others on the chain.  This commit breaks that first replica out as a
separate kind of entity that is not on the list of replicas.  When later
commits add support for clustering, there will only be more and more
special cases for the "first replica", so it makes sense to distinguish it
this way.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: aa9545efd679c3a77e11190432294fd7a775c626
      https://github.com/openvswitch/ovs/commit/aa9545efd679c3a77e11190432294fd7a775c626
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/monitor.c
    M ovsdb/monitor.h
    M ovsdb/ovsdb.c
    M ovsdb/ovsdb.h
    M ovsdb/transaction.c

  Log Message:
  -----------
  ovsdb: Drop distinction between monitors and replicas.

Until now, OVSDB distinguished "monitors", which are associated with OVSDB
JSON-RPC client sessions and allow clients to find out about database
changes, from "replicas", which are associated with databases and also find
out about database changes and act on them in some way.  Now that
committing to disk has been broken into a separate concept, there is a
one-to-one and "onto" relationship between monitors and replicas: every
monitor M has a replica R and R is associated with M as well.  It's easier
if we just treat them as a single entity, and that's what this commit
implements.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 807e73825a4df67cae93d722d2d34db6c5dd5be8
      https://github.com/openvswitch/ovs/commit/807e73825a4df67cae93d722d2d34db6c5dd5be8
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/jsonrpc-server.c
    M ovsdb/jsonrpc-server.h
    M ovsdb/ovsdb-server.c

  Log Message:
  -----------
  jsonrpc-server: Separate changing read_only status from reconnecting.

The code in jsonrpc-server conflated two different kinds of functionality.
It makes sense for the client to be able to change whether a particular
server is read-only.  It also makes sense for the client to tell a server
to reconnect.  The code in jsonrpc-server only provided a single function
that does both, which is weird.  This commit breaks these apart.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: bf245efc37b1c969373d97ba150c3d0b65aaa6b5
      https://github.com/openvswitch/ovs/commit/bf245efc37b1c969373d97ba150c3d0b65aaa6b5
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/ovsdb-idl-provider.h
    M lib/ovsdb-idl.c
    M lib/ovsdb-idl.h

  Log Message:
  -----------
  ovsdb-idl: Break out database-specific stuff into new data structure.

Until now, a given ovsdb-idl instances has only monitored a single
database.  In an upcoming commit, it will grow to also monitor a second
database that represents the state of the database server itself.  Much of
the work is the same for both databases, so this commit breaks the common
code and data out into new data structures and functions.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: c226aec48953d897d7eb1349cfc15158a68b77b7
      https://github.com/openvswitch/ovs/commit/c226aec48953d897d7eb1349cfc15158a68b77b7
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovn/utilities/ovn-sbctl.c

  Log Message:
  -----------
  ovn-sbctl: Allow retries by default.

Most of the OVS database-manipulation utilities (ovn-sbctl, ovn-nbctl,
ovs-vsctl, vtep-ctl) don't retry their connections by default because
they assume that the database is either up or down and likely to stay
that way.  The OVN southbound database, however, is a likely candidate
for high availability clustering, so that even if it appears to be
down for a moment it will be available again soon.  So, prepare for
the clustering implementation by enabling retry by default in
ovn-sbctl.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: 21de9f7c8c8cc8d6a90fd027d70a4d665dfbb5ec
      https://github.com/openvswitch/ovs/commit/21de9f7c8c8cc8d6a90fd027d70a4d665dfbb5ec
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M Documentation/ref/index.rst
    M Makefile.am
    M NEWS
    M build-aux/automake.mk
    A build-aux/text2c
    M debian/openvswitch-switch.manpages
    M ovsdb/.gitignore
    A ovsdb/_server.ovsschema
    A ovsdb/_server.xml
    M ovsdb/automake.mk
    M ovsdb/ovsdb-server.1.in
    M ovsdb/ovsdb-server.c
    M ovsdb/ovsdb-util.c
    M ovsdb/ovsdb-util.h
    M rhel/openvswitch-fedora.spec.in
    M rhel/openvswitch.spec.in
    M tests/ovsdb-server.at
    M xenserver/openvswitch-xen.spec.in

  Log Message:
  -----------
  ovsdb-server: Add support for a built-in _Server database.

The _Server database is valuable primarily because it provides database
clients a way to find out the details of changes to databases, schemas,
etc. in a granular, natural way.  Until now, the only way that the server
could notify clients about these kinds of changes was to close the session;
when the client reconnects, it is expected to reassess the server's state.
One way to provide this kind of granular information would be to add
specific JSON-RPC requests to obtain notifications for different kinds of
changes, but since ovsdb-server already provides granular and flexible
notification support for databases, using a database for the purpose is
convenient and avoids duplicating functionality.

Initially this database only reports databases' names and schemas, but
when clustering support is added in a later commit it will also report
important aspects of clustering and cluster status.  Thus, this database
also reduces the need to add JSON-RPC calls to retrieve information about
new features.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: c347ae2c44a52d34f351b99e214b57b7d4e657a8
      https://github.com/openvswitch/ovs/commit/c347ae2c44a52d34f351b99e214b57b7d4e657a8
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M Documentation/ref/ovsdb-server.7.rst
    M ovsdb/_server.xml
    M ovsdb/jsonrpc-server.c
    M ovsdb/jsonrpc-server.h
    M ovsdb/ovsdb-client.c
    M ovsdb/ovsdb-server.c
    M tests/ovsdb-server.at

  Log Message:
  -----------
  ovsdb-server: Add new RPC "set_db_change_aware".

The _Server database recently added to ovsdb-server can be used to dump out
information about databases, but monitoring updates to _Server is not yet
very useful because for historical reasons ovsdb-server drops all of its
OVSDB connections whenever databases are added or removed or otherwise
change in some major way.  It is not a good idea to change this behavior
for all clients, because some of them rely on it, but this commit
introduces a new RPC that allows clients that understand _Server to
suppress the connection-closing behavior.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 9d0be9ccc9670dbf47f26be9e892dcdd27e7a267
      https://github.com/openvswitch/ovs/commit/9d0be9ccc9670dbf47f26be9e892dcdd27e7a267
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M Documentation/ref/ovsdb-server.7.rst
    M Documentation/ref/ovsdb.7.rst
    M NEWS
    M lib/ovsdb-data.c
    M lib/ovsdb-data.h
    M ovsdb/file.c
    M ovsdb/file.h
    M ovsdb/jsonrpc-server.c
    M ovsdb/jsonrpc-server.h
    M ovsdb/monitor.c
    M ovsdb/monitor.h
    M ovsdb/ovsdb-client.1.in
    M ovsdb/ovsdb-client.c
    M ovsdb/ovsdb-server.c
    M ovsdb/ovsdb.c
    M ovsdb/ovsdb.h
    M ovsdb/transaction.c
    M ovsdb/transaction.h
    M ovsdb/trigger.c
    M ovsdb/trigger.h
    M tests/ovsdb-monitor.at
    M tests/ovsdb-server.at
    M tests/test-ovsdb.c

  Log Message:
  -----------
  ovsdb: Add support for online schema conversion.

With this change, "ovsdb-client convert" can be used to convert a database
from one schema to another without taking the database offline.

This can be useful to minimize downtime for a database during a software
upgrade.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: fa9a62453ea4c4d52666d1b950bebddcb01b883d
      https://github.com/openvswitch/ovs/commit/fa9a62453ea4c4d52666d1b950bebddcb01b883d
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M Documentation/ref/ovsdb.5.rst
    M Documentation/ref/ovsdb.7.rst
    M NEWS
    M lib/.gitignore
    M lib/automake.mk
    M lib/jsonrpc.c
    M lib/jsonrpc.h
    M lib/ovsdb-idl.c
    M lib/ovsdb-idl.h
    A lib/ovsdb-server-idl.ann
    A lib/ovsdb-session.c
    A lib/ovsdb-session.h
    M lib/smap.c
    M lib/smap.h
    M lib/uuid.h
    M ovn/controller/ovn-controller.c
    M ovn/utilities/ovn-nbctl.8.xml
    M ovn/utilities/ovn-nbctl.c
    M ovn/utilities/ovn-sbctl.8.in
    M ovn/utilities/ovn-sbctl.c
    A ovsdb/TODO.rst
    M ovsdb/_server.ovsschema
    M ovsdb/_server.xml
    M ovsdb/automake.mk
    M ovsdb/execution.c
    M ovsdb/file.c
    M ovsdb/file.h
    M ovsdb/jsonrpc-server.c
    M ovsdb/jsonrpc-server.h
    M ovsdb/log.c
    M ovsdb/log.h
    M ovsdb/ovsdb-client.1.in
    M ovsdb/ovsdb-client.c
    M ovsdb/ovsdb-server.1.in
    M ovsdb/ovsdb-server.c
    M ovsdb/ovsdb-tool.1.in
    M ovsdb/ovsdb-tool.c
    M ovsdb/ovsdb-util.c
    M ovsdb/ovsdb-util.h
    M ovsdb/ovsdb.c
    M ovsdb/ovsdb.h
    A ovsdb/raft-private.c
    A ovsdb/raft-private.h
    A ovsdb/raft-rpc.c
    A ovsdb/raft-rpc.h
    A ovsdb/raft.c
    A ovsdb/raft.h
    M ovsdb/replication.c
    M ovsdb/row.c
    M ovsdb/server.c
    M ovsdb/server.h
    A ovsdb/storage.c
    A ovsdb/storage.h
    M ovsdb/transaction.c
    M ovsdb/transaction.h
    M ovsdb/trigger.c
    M ovsdb/trigger.h
    M tests/.gitignore
    M tests/automake.mk
    M tests/ovs-macros.at
    A tests/ovsdb-cluster.at
    M tests/ovsdb-idl.at
    M tests/ovsdb-monitor.at
    M tests/ovsdb-server.at
    M tests/ovsdb-tool.at
    M tests/ovsdb.at
    M tests/test-ovsdb.c
    M tutorial/ovs-sandbox

  Log Message:
  -----------
  ovsdb: Introduce experimental support for clustered databases.

This commit adds support for OVSDB clustering via Raft.  Please read
ovsdb(7) for information on how to set up a clustered database.  It is
simple and boils down to running "ovsdb-tool create-cluster" on one server
and "ovsdb-tool join-cluster" on each of the others and then starting
ovsdb-server in the usual way on all of them.

One you have a clustered database, you configure ovn-controller and
ovn-northd to use it by pointing them to all of the servers, e.g. where
previously you might have said "tcp:1.2.3.4" was the database server,
now you say that it is "tcp:1.2.3.4,tcp:5.6.7.8,tcp:9.10.11.12".

This also adds support for database clustering to ovs-sandbox.

Acked-by: Justin Pettit <jpettit at ovn.org>
Tested-by: aginwala <aginwala at asu.edu>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: a7801001cc62449caf9126d78097716dd2fee7a7
      https://github.com/openvswitch/ovs/commit/a7801001cc62449caf9126d78097716dd2fee7a7
  Author: aginwala <amginwal at gmail.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tutorial/ovn-setup.sh
    M tutorial/ovs-sandbox

  Log Message:
  -----------
  Use new default nb and sb dbs for sandbox northd:

As per new clustering change, ovn-northd sandbox should use nb1.ovsdb and
sb1.ovsdb. It was updated in ovn-northd --help section but missed for sandbox.
This commit fixes the same

Reported-by: Mark Michelson <mmichels at redhat.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018-March/345535.html
Signed-off-by: aginwala <aginwala at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e3fbb0d21333ec47b9498f15ba1f291c2623802d
      https://github.com/openvswitch/ovs/commit/e3fbb0d21333ec47b9498f15ba1f291c2623802d
  Author: Alin Gabriel Serdean <aserdean at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovsdb/automake.mk

  Log Message:
  -----------
  Windows: Fix broken build caused by a bad file extension

The compiler (cl) complains:
`ovsdb/ovsdb-server.c(689) : fatal error C1083:
    Cannot open include file: 'ovsdb/_server.ovsschema.inc':
       No such file or directory`
(https://ci.appveyor.com/project/blp/ovs/build/1.0.4079#L2586)

Generated compiler objects have the extension `.obj` on Windows.

This patch switches to `$(OBJEXT)` instead, so the schema will be generated.

Signed-off-by: Alin Gabriel Serdean aserdean at ovn.org
Acked-by: Ben Pfaff <blp at ovn.org>


  Commit: cd28621dafd4342a3e03210ac1c901f4d1acc594
      https://github.com/openvswitch/ovs/commit/cd28621dafd4342a3e03210ac1c901f4d1acc594
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tests/atlocal.in
    M tests/ovsdb-server.at

  Log Message:
  -----------
  tests: Skip tests that need "normal" diff if not available.

busybox diff does not support "normal" diff format, only the unified
format.  A few OVS tests rely on "normal" format, so those would fail.
This commit avoids the problem by skipping tests that require "normal"
format if it is not available.

Reported-by: Stuart Cardall <developer at it-offshore.co.uk>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-March/046460.html
Acked-by: Alin Gabriel Serdean <aserdean at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 3b2d011ed807520a32c6fcfb0e9cae20863af387
      https://github.com/openvswitch/ovs/commit/3b2d011ed807520a32c6fcfb0e9cae20863af387
  Author: Han Zhou <zhouhan at gmail.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/ovsdb-idl.c

  Log Message:
  -----------
  ovsdb-idl: omit_alert should implicitly turn off tracking.

OVSDB_IDL_TRACK is not valid without OVSDB_IDL_ALERT, so it should
be turned off as well in ovsdb_idl_omit_alert().

Signed-off-by: Han Zhou <hzhou8 at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: c71ff20791fedc16bfce1ff333d845f604560fc6
      https://github.com/openvswitch/ovs/commit/c71ff20791fedc16bfce1ff333d845f604560fc6
  Author: Yifeng Sun <pkusunyifeng at gmail.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M lib/ovsdb-idl.c

  Log Message:
  -----------
  ovsdb-idl: properly destroy ovsdb_idl.server

This patch fixes the memory leak reported by valgrind in testing
"learning action - TCPv6 port learning"

150 (40 direct, 110 indirect) bytes in 1 blocks are definitely lost in loss record 329 of 363
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x51D0D4: xmalloc (util.c:120)
by 0x572E17: json_create (json.c:1442)
by 0x572E17: json_array_create (json.c:217)
by 0x572E17: json_array_create_2 (json.c:238)
by 0x4F69EA: ovsdb_idl_db_init (ovsdb-idl.c:424)
by 0x4F6A58: ovsdb_idl_create (ovsdb-idl.c:454)
by 0x40FAC7: bridge_init (bridge.c:396)
by 0x406F93: main (ovs-vswitchd.c:106)

3,727 (40 direct, 3,687 indirect) bytes in 1 blocks are definitely lost in loss record 358 of 363
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x51D0D4: xmalloc (util.c:120)
by 0x572EBA: json_create (json.c:1442)
by 0x572EBA: json_object_create (json.c:254)
by 0x573254: json_parser_push_object (json.c:1264)
by 0x573254: json_parse_value.isra.12 (json.c:1293)
by 0x57339F: json_parser_input (json.c:1398)
by 0x5742C1: json_lex_input (json.c:982)
by 0x5748EB: json_parser_feed (json.c:1140)
by 0x57597A: jsonrpc_recv.part.7 (jsonrpc.c:332)
by 0x5768A7: jsonrpc_recv (jsonrpc.c:1140)
by 0x5768A7: jsonrpc_session_recv (jsonrpc.c:1113)
by 0x4F4E5C: ovsdb_idl_run (ovsdb-idl.c:818)
by 0x4100F9: bridge_run (bridge.c:2949)
by 0x406FB4: main (ovs-vswitchd.c:121)

Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: a3b3ed994d3cccf7531080ed60af1bb4d1ef3804
      https://github.com/openvswitch/ovs/commit/a3b3ed994d3cccf7531080ed60af1bb4d1ef3804
  Author: Numan Siddique <nusiddiq at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M ovn/utilities/ovn-ctl
    M ovn/utilities/ovn-ctl.8.xml
    M utilities/ovs-lib.in

  Log Message:
  -----------
  ovn-ctl: Support starting clustered OVN dbs

This patch adds the options to start clustered OVN db servers in ovn-ctl.
To support this, following options are added - '--db-(nb/sb)-cluster-local-addr',
'--db-(nb/sb)-cluster-local-port', '--db-(nb/sb)-cluster-local-proto',
'--db-(nb/sb)-cluster-remote-addr', '--db-(nb/sb)-cluster-remote-port' and
'--db-(nb/sb)-cluster-remote-proto'.

If only '--db-(nb/sb)-cluster-local-addr' is defined then clustered db is created
(using ovsdb-tool create-cluster). If both are defined, then the db is added to
the cluster (using ovsdb-tool join-cluster)

This patch also adds the support to configure ovn-northd to point to all the servers
in the cluster using the options - '--ovn-northd-nb-db' and 'ovn-northd-sb-db'.

Presently this patch doesn't handle the schema update scenario when restarting the
clustered ovsdb-servers. This will be handled in a separate patch.

The initial versions of these commands are tested by Aliasgar <aginwala <aginwala at asu.edu>
and the discussion on this can be found here -
https://mail.openvswitch.org/pipermail/ovs-discuss/2018-March/046470.html

(There are 4 checkpatch warnings 'Line length is >79-characters long' in ovn-ctl.8.xml
which I couldn't resolve without losing proper rendering when "man ovn-ctl" is run.)

Co-authored-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 6723204d3c78c8f8202633c7655648ea1e2a6045
      https://github.com/openvswitch/ovs/commit/6723204d3c78c8f8202633c7655648ea1e2a6045
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tutorial/ovs-sandbox

  Log Message:
  -----------
  ovs-sandbox: Connect ovn-northd to all the SB and NB database instances.

For a clustered database instance, we want ovn-northd to connect to the
entire cluster, not just the first server.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: aginwala <aginwala at asu.edu>


  Commit: e3096cff984dad934eb47688716c22de191df072
      https://github.com/openvswitch/ovs/commit/e3096cff984dad934eb47688716c22de191df072
  Author: Alin Gabriel Serdean <aserdean at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tests/ovsdb-tool.at

  Log Message:
  -----------
  ovsdb-tool.at: Drop monitor argument

This patch drops the '--monitor' argument when running the ovsdb-server.

This can potentially increase the bug detection since the process will not
be restarted in certain situations.

Also, fixes the test under Windows since daemons do not have '--monitor'
argument.

Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Suggested-by: Ben Pfaff <blp at ovn.org>
Suggested-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018-April/346135.html


  Commit: 5a6bba2c28ff82a7a1c30ef3e42f6a0389af32fe
      https://github.com/openvswitch/ovs/commit/5a6bba2c28ff82a7a1c30ef3e42f6a0389af32fe
  Author: Terry Wilson <twilson at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M python/automake.mk
    A python/ovs/compat/__init__.py
    A python/ovs/compat/sortedcontainers/LICENSE
    A python/ovs/compat/sortedcontainers/__init__.py
    A python/ovs/compat/sortedcontainers/sorteddict.py
    A python/ovs/compat/sortedcontainers/sortedlist.py
    A python/ovs/compat/sortedcontainers/sortedset.py
    A python/ovs/db/custom_index.py
    M python/ovs/db/idl.py
    M python/setup.py
    M tests/test-ovsdb.py

  Log Message:
  -----------
  Add multi-column index support for the Python IDL

This adds multi-column index support for the Python IDL that is
similar to the feature in the C IDL. Since it adds sortedcontainers
as a dependency and some distros don't yet package it, the library
is copied in-tree and used if sortedcontainers is not installed.

Signed-off-by: Terry Wilson <twilson at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: bf5fdbdbb030a7be9fb468a1d5d9c31e18096cc6
      https://github.com/openvswitch/ovs/commit/bf5fdbdbb030a7be9fb468a1d5d9c31e18096cc6
  Author: Jakub Sitnicki <jkbs at redhat.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tests/test-ovsdb.py

  Log Message:
  -----------
  python: Fix reporting that test-ovsdb.py command needs more args

In Python OVSDB tester, we are not unpacking a value from n_args tuple
that holds the accepted range of arguments. This causes an error:

  $ python tests/test-ovsdb.py idl tests/idltest.schema
  Traceback (most recent call last):
    File "./tests/test-ovsdb.py", line 869, in <module>
      main(sys.argv)
    File "./tests/test-ovsdb.py", line 852, in main
      n_args, len(args)))
  TypeError: %d format: a number is required, not tuple

Signed-off-by: Jakub Sitnicki <jkbs at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Mark Michelson <mmichels at redhat.com>


  Commit: 38ccc2f7868b1338a14ee9700ea2d727c5df1b56
      https://github.com/openvswitch/ovs/commit/38ccc2f7868b1338a14ee9700ea2d727c5df1b56
  Author: aginwala <amginwal at gmail.com>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M tutorial/ovs-sandbox

  Log Message:
  -----------
  tutorial: skip passing .db for backup option for ovn_start_ovsdb_server:

current params uses two sb1.db which is redundant:
e.g. ovsdb-server --remote=punix:sb1.ovsdb sb1.db sb1.db
expected:
e.g. ovsdb-server --remote=punix:sb1.ovsdb sb1.db

tested and works as expected:
ovn-sbctl --db=unix:/root/ovs/tutorial/sandbox/sb2.ovsdb show
Chassis "chassis-1"
    hostname: sandbox
    Encap geneve
  ip: "127.0.0.1"
  options: {csum="true"}

Signed-off-by: aginwala <aginwala at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 10df89e1675637fbe1dbf4264d07d5bb7a31882e
      https://github.com/openvswitch/ovs/commit/10df89e1675637fbe1dbf4264d07d5bb7a31882e
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M Documentation/ref/ovsdb.7.rst

  Log Message:
  -----------
  ovsdb.7: Clarify description of OVSDB.

A reader reported that "network database system" made it sound like OVSDB
was specialized for databases about networks.  It's not, it's just
accessible over the network.

Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>


  Commit: f75c3f217e57ddfd1943452a272dd2db40c2060b
      https://github.com/openvswitch/ovs/commit/f75c3f217e57ddfd1943452a272dd2db40c2060b
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M NEWS

  Log Message:
  -----------
  NEWS: Move database clustering to v2.9.1.

These changes didn't make it into v2.9.0.

Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/1b4482c7f6c1...f75c3f217e57


More information about the git mailing list