[ovs-dev] [PATCH ovn v5 0/7] Optimize load balancer hairpin logical flows.
numans at ovn.org
numans at ovn.org
Tue Nov 17 14:26:36 UTC 2020
From: Numan Siddique <numans at ovn.org>
This patch series optimizes the load balancer hairpin logical flows.
Presently, ovn-northd generates a lot of these logical flows.
Suppose there are 'm' load balancers associated to a logical switch and each load balancer
has 'n' VIPs and each VIP has 'p' backends then ovn-northd adds (m * ((n * p) + n))
hairpin logical flows.
With this patch series, ovn-northd adds just 5 hairpin logical flows.
To reduce the number of lflows, load balancer information is now pushed
to the Southbound database using a new 'Load_Balancer' table.
ovn-controller programs the OF flows required for handling the load
balancer hairpin traffic directly and new OVN actions are added to
abstract the hairpining from ovn-northd.
v4 -> v5
----
* Incorporated Dumitru's changes on top of v4 patch 2 and squashed it
into one patch - v5 p2.
v3 -> v4
----
* Addressed review comments from Dumitru which was missed out in v3.
* Separate lb structures for northd and ovn-controller in lib/lb.c.
* Incorporated Dumitru's code suggestions in patch 1 for syncing
the NB load balancer to SB load balancer.
v2 -> v3
----
* Addressed most of the review comments from Dumitru.
* Modified the test cases to make use of the newly added helper test
functions.
v1 -> v2
-----
* Addressed the review comments from Mark Michelson.
* Added 2 more patches to the series to have SB Load balancer support
ovn-detrace and 'ovn-sbctl --vflows' as pointed by Dumitru Ceara.
Dumitru Ceara (1):
northd: Refactor load balancer vip parsing.
Numan Siddique (6):
Add new table Load_Balancer in Southbound database.
controller: Add load balancer hairpin OF flows.
actions: Add new actions chk_lb_hairpin, chk_lb_hairpin_reply and
ct_snat_to_vip.
northd: Make use of new hairpin actions.
ovn-detrace: Add SB Load Balancer cookier handler.
sbctl: Add Load Balancer support for vflows option.
controller/lflow.c | 234 +++++++++++++
controller/lflow.h | 6 +-
controller/ovn-controller.c | 27 +-
include/ovn/actions.h | 15 +-
include/ovn/logical-fields.h | 3 +
lib/actions.c | 116 ++++++-
lib/automake.mk | 4 +-
lib/lb.c | 301 +++++++++++++++++
lib/lb.h | 97 ++++++
northd/ovn-northd.8.xml | 65 +++-
northd/ovn-northd.c | 632 ++++++++++++++---------------------
ovn-sb.ovsschema | 27 +-
ovn-sb.xml | 82 +++++
tests/ovn-northd.at | 115 ++++++-
tests/ovn.at | 510 +++++++++++++++++++++++++++-
tests/test-ovn.c | 3 +
utilities/ovn-detrace.in | 11 +-
utilities/ovn-sbctl.c | 59 ++++
utilities/ovn-trace.c | 65 +++-
19 files changed, 1940 insertions(+), 432 deletions(-)
create mode 100644 lib/lb.c
create mode 100644 lib/lb.h
--
2.28.0
More information about the dev
mailing list