[ovs-dev] [PATCH ovn v2] ovn-nbd: Populate OVN Bindings table.

Ben Pfaff blp at nicira.com
Fri Apr 3 02:55:45 UTC 2015


On Thu, Apr 02, 2015 at 08:09:16PM -0400, Russell Bryant wrote:
> When ovn-nbd gets notified that the contents of the OVN_Northbound
> database have changed, it will now ensure that the contents of the
> Bindings table in the OVN database are up to date.  It will create a
> binding if none exists.  If one does exist, it will update its
> contents as necessary, though today the only thing supported is the
> list of MAC addresses.  Finally, any binding associated with a logical
> port that has been deleted will be removed from the OVN database.
> 
> Signed-off-by: Russell Bryant <rbryant at redhat.com>
> ---
> 
> v1->v2
>  - Use lport name instead of UUID for logical_port column of Bindings table
>  - Optimize out including MAC addresses in the transaction for existing rows
>    in the Bindings table unless they have actually changed.

Thanks, I applied this.

> A question on the 2nd change ... if you take a look at macs_equal(), is there
> anything we can assume about the ordering of the MAC addresses that would let
> this be simpler?  When the MAC addresses are put in the db, is the order
> significant?  If the order is always kept, the sorting part could just
> be removed.  I just wasn't sure.

In OVSDB, columns are something like mathematical sets: order is not
significant, and duplicates are not allowed (generally, they are dropped
if anything tries to add them).

The DB IDL in fact always sorts the data that it present to the client,
so we could simply skip that step here.  I'm not sure that this is
clearly documented in the IDL documentation anywhere, but it's always
been true.



More information about the dev mailing list