On Thu, May 25, 2023 at 10:37:23AM +0200, Dumitru Ceara wrote:
> Whenever an OpenFlow error is returned by OvS, trigger a reconnect of
> the OpenFlow (rconn) connection.  This will clear any installed OpenFlow
> rules/groups. To ensure consistency, trigger a full I-P recompute too.
> 
> An example of scenario that can result in an OpenFlow error returned by
> OvS follows (describing two main loop iterations in ovn-controller):
>   - Iteration I:
>     a. get updates from SB
>     b. process these updates and generate "desired" openflows (lets assume
>     this generates quite a lot of desired openflow modifications)
>     c.1. add bundle-open msg to rconn
>     c.2. add openflow mod msgs to rconn (only some of these make it through,
>     the rest gets queued, the rconn is backlogged at this point).
>     c.3. add bundle-commit msg to rconn (this gets queued)
> 
>   - Iteration II:
>     a. get updates from SB (rconn is still backlogged)
>     b. process the updates and generate "desired" openflows (lets assume
>     this takes 10+ seconds for the specific SB updates)
> 
> At some point, while step II.b was being executed OvS declared the bundle
> operation (started at I.c.1) timeout.  We now act on this error by
> reconnecting which in turn triggers a flush of the rconn backlog and
> gives more chance to the next full recompute to succeed in installing
> all flows.
> 
> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2134880
> Reported-by: François Rigault <fr...@amadeus.com>
> CC: Ilya Maximets <i.maxim...@ovn.org>
> Signed-off-by: Dumitru Ceara <dce...@redhat.com>

Reviewed-by: Simon Horman <simon.hor...@corigine.com>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to