On Sat, May 19, 2018 at 02:23:22PM -0700, Han Zhou wrote:
> This case fails occasionally because although it waits until port
> binding is completed on HV, the patch port creation may not be
> completed yet on HV for the localnet port, so if the packets are sent
> out at this moment, the case will fail. This patch ensures patch
> port is created and then do another sync before sending the packet
> so that the ovn-controller is given a chance to handle the change
> and install related flows to OVS.
> 
> Signed-off-by: Han Zhou <[email protected]>

It sounds to me like this is actually a bug in ovn-controller: it should
not report that it is up-to-date until the patch port creation has
completed.  There is a mechanism to find out that this is complete, and
ovn-controller should use it.  The outline of how it would be done is
something like this:

    * When ovn-controller commits a change to the OVS database, it
      should also increment the next_cfg column in the Open_vSwitch
      table.  ovs-vsctl does this, with:

        ovsdb_idl_txn_increment(txn, &ovs->header_,
                                &ovsrec_open_vswitch_col_next_cfg, false);

    * Before ovn-controller updates nb_cfg, it waits until cur_cfg in
      the Open_vSwitch table reaches at least the next_cfg that it set.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to