[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