[ovs-discuss] [OVN] OVN Load balancing algorithm

Maciej Jozefczyk mjozefcz at redhat.com
Tue Apr 7 14:04:53 UTC 2020


Hello!

I would like to ask you to clarify how the OVN Load balancing algorithm
works.

Based on the action [1]:
1) If connection is alive the same 'backend' will be chosen,

2) If it is a new connection the backend will be chosen based on
selection_method=dp_hash [2].
Based on changelog the dp_hash uses '5 tuple hash' [3].
The hash is calculated based on values: source and destination IP,  source
port, protocol and arbitrary value - 42. [4]
Based on that information we could name it SOURCE_IP_PORT.

Unfortunately we recently got a bug report in OVN Octavia provider driver
project, that the Load Balancing in OVN
works differently [5]. The report shows even when the test uses the same
source ip and port, but new TCP connection,
traffic is randomly distributed, but based on [2] it shouldn't?

Is it a bug?  Is something else taken to account while creating a hash? Can
it be fixed in OVS/OVN?



Thanks,
Maciej


[1] https://github.com/ovn-org/ovn/blob/branch-20.03/lib/actions.c#L1017
[2] https://github.com/ovn-org/ovn/blob/branch-20.03/lib/actions.c#L1059
[3]
https://github.com/openvswitch/ovs/blob/d58b59c17c70137aebdde37d3c01c26a26b28519/NEWS#L364-L371
[4]
https://github.com/openvswitch/ovs/blob/74286173f4d7f51f78e9db09b07a6d4d65263252/lib/flow.c#L2217
[5] https://bugs.launchpad.net/neutron/+bug/1871239

-- 
Best regards,
Maciej Józefczyk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20200407/16e03fd2/attachment.html>


More information about the discuss mailing list