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
_______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
