Message ID | 20201117142636.184125-1-numans@ovn.org |
---|---|
Headers | show |
Series | Optimize load balancer hairpin logical flows. | expand |
For the series: Acked-by: Mark Michelson <mmichels@redhat.com> On 11/17/20 9:26 AM, numans@ovn.org wrote: > From: Numan Siddique <numans@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 >
On Fri, Nov 20, 2020 at 8:04 AM Mark Michelson <mmichels@redhat.com> wrote: > > For the series: > > Acked-by: Mark Michelson <mmichels@redhat.com> Thanks Dumitru and Mark for the reviews. I applied this series to master. @Ben - There are changes in ovn-northd in this series which would break the ddlog tests. When you respin another version of ddlog, you can skip the failing tests with northd-ddlog. I will work on the ddlog changes. Thanks Numan > > On 11/17/20 9:26 AM, numans@ovn.org wrote: > > From: Numan Siddique <numans@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 > > > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >
On Fri, Nov 20, 2020 at 12:35:18PM +0530, Numan Siddique wrote: > On Fri, Nov 20, 2020 at 8:04 AM Mark Michelson <mmichels@redhat.com> wrote: > > > > For the series: > > > > Acked-by: Mark Michelson <mmichels@redhat.com> > > Thanks Dumitru and Mark for the reviews. I applied this series to master. > > @Ben - There are changes in ovn-northd in this series which would > break the ddlog tests. > When you respin another version of ddlog, you can skip the failing > tests with northd-ddlog. > I will work on the ddlog changes. That's very kind of you, thanks.
From: Numan Siddique <numans@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