[ovs-dev] [PATCH ovn 1/2] northd: Treat reachable and unreachable VIPs differently.

Dumitru Ceara dceara at redhat.com
Tue Nov 9 12:41:51 UTC 2021


On 11/8/21 6:10 PM, numans at ovn.org wrote:
> From: Numan Siddique <numans at ovn.org>
> 
> If a logical switch is used to join multiple gateway
> routers and if each of these gateway routers are
> configured with the same load balancer,  then after the
> commit [1] it's results in a flow explosion in
> the "ls_in_l2_lkup" stage of this logical switch.
> 
> So, this patch reverts parts of the commit [1] related to
> the load balancer VIPs.
> 
> Eg. If a load balancer with vip - 5.0.0.48 is configured
> on gateway routers g0, g1 and g2.  Then ovn-northd will add
> the below logical flows
> 
> table=22(ls_in_l2_lkup), priority=80,
>   match=(flags[1] == 0 && arp.op == 1 && arp.tpa == 5.0.0.48),
>   action=(outport = "join-to-g0-port"; output;)
> table=22(ls_in_l2_lkup), priority=80,
>   match=(flags[1] == 0 && arp.op == 1 && arp.tpa == 5.0.0.48),
>   action=(outport = "join-to-g1-port"; output;)
> table=22(ls_in_l2_lkup), priority=80,
>   match=(flags[1] == 0 && arp.op == 1 && arp.tpa == 5.0.0.48),
>   action=(outport = "join-to-g2-port"; output;)
> 
> After this patch,  we will just have one lflow
> table=22(ls_in_l2_lkup), priority=90,
>   match=(flags[1] == 0 && arp.op == 1 && arp.tpa == 5.0.0.48),
>   action=(outport = "_MC_flood"; output;)
> 
> [1] - ccbbbd0584e5("ovn-northd: Treat reachable and unreachable addresses identically.")
> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2020710
> Fixes: ccbbbd0584e5("ovn-northd: Treat reachable and unreachable addresses identically.")
> Signed-off-by: Numan Siddique <numans at ovn.org>
> ---

Some test numbers with a topology simulating 120 ovn-k8s nodes (120
gateway routers connected to a single join switch) with 10K load
balancers applied to all gateway router:

A. Before this patch:
- northd loop processing time: 6854ms
- SB DB size (on disk, after compaction): 520M
- number of logical flows: 1245942

B. With this patch:
- northd loop processing time: 2638ms
- SB DB size (on disk, after compaction): 94M
- number of logical flows: 55942

Looks good to me, thanks for the quick fix!

Acked-by: Dumitru Ceara <dceara at redhat.com>



More information about the dev mailing list