[ovs-dev] [PATCH v2] vswitch.ovsschema: Add datapath_types and port_types.

O Mahony, Billy billy.o.mahony at intel.com
Fri Mar 27 16:42:49 UTC 2015


Hi Ben, 

Thanks for the info. 

Billy

-----Original Message-----
From: Ben Pfaff [mailto:blp at nicira.com] 
Sent: Thursday, March 26, 2015 5:30 AM
To: O Mahony, Billy
Cc: dev at openvswitch.org
Subject: Re: [ovs-dev] [PATCH v2] vswitch.ovsschema: Add datapath_types and port_types.

On Wed, Mar 25, 2015 at 12:29:56PM +0000, O Mahony, Billy wrote:
> I have verified the modified code works as expected when run with/without --dpdk on the vswitchd command line.
> 
> I'm wondering why there is a call to 'discover_types' in two places?

I made a mistake, sorry.  Thanks for pointing it out.  I sent out a fix:
        http://openvswitch.org/pipermail/dev/2015-March/052868.html

> I think it might be to do with something that I could not figure out 
> when I was trying to ensure discover_types was not called more often 
> that necessary.
> 
> I had initially tried to align the call to 'discover_types' with the 
> 'initial_config_done' flag in 'bridge_run'. However on the first 
> invocation (the first 3 in fact) 'cfg' was NULL (i.e. there was no 
> record in Open_vSwitch table).

It will be null (all the database will be empty) until the IDL manages to retrieve the database contents from the server.  This takes a few trips through the main loop; I guess you tended to see 3 trips, but it can certainly vary.

> Then on the 4th invocation the idl sequence number is bumped and 
> 'bridge_reconfigure' is handed an empty ' ovsrec_open_vswitch' which 
> is then commited to the db before vswitchd daemonizes.

It shouldn't be empty at this point unless the database hasn't been initialized.  There was a bug in the ovs-sandbox script that made this likely for casual developer testing with "make sandbox"; I sent out a fix for that:
        http://openvswitch.org/pipermail/dev/2015-March/052867.html

> However, and this is what I could not get, was that handing the empty 
> ' ovsrec_open_vswitch' ('null_cfg') to discover_types when doing the 
> initial config did not update the Open_vSwitch table as desired - I 
> was expecting discover_types to update the idl record and the the 
> commit on 'daemonize_txn' to do the needful.  ( I had removed the 
> separate txn create/commit from discover_types at this point).

If null_cfg gets handed to bridge_reconfigure(), that means there's no real record to modify (none has been added to the database; the database is empty).



More information about the dev mailing list