[ovs-git] [ovn-org/ovn] 42e694: Add new table Load_Balancer in Southbound database.

numansiddique noreply at github.com
Fri Nov 20 07:01:13 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/ovn-org/ovn
  Commit: 42e694f03c187137852c2d7349daa0541a4f5e62
      https://github.com/ovn-org/ovn/commit/42e694f03c187137852c2d7349daa0541a4f5e62
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M northd/ovn-northd.c
    M ovn-sb.ovsschema
    M ovn-sb.xml
    M tests/ovn-northd.at
    M utilities/ovn-sbctl.c

  Log Message:
  -----------
  Add new table Load_Balancer in Southbound database.

This patch adds a new table 'Load_Balancer' in SB DB and syncs the Load_Balancer table rows
from NB DB to SB DB. An upcoming patch will make use of this table for handling the
load balancer hairpin traffic.

Co-authored-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>
Acked-by: Mark Michelson <mmichels at redhat.com>


  Commit: f1119c1257652702e0ee88cf634f2ee19cc92c44
      https://github.com/ovn-org/ovn/commit/f1119c1257652702e0ee88cf634f2ee19cc92c44
  Author: Dumitru Ceara <dceara at redhat.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M lib/automake.mk
    A lib/lb.c
    A lib/lb.h
    M northd/ovn-northd.c

  Log Message:
  -----------
  northd: Refactor load balancer vip parsing.

Parsing of the load balancer VIPs is moved to a separate file - lib/lb.c.
ovn-northd makes use of these functions. Upcoming patch will make use of these
util functions for parsing SB Load_Balancers.

Co-authored-by: Numan Siddique <numans at ovn.org>
Signed-off-by: Numan Siddique <numans at ovn.org>
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>


  Commit: 7da8145d9d4743b3d15f0d7f51b201e7ba87fe63
      https://github.com/ovn-org/ovn/commit/7da8145d9d4743b3d15f0d7f51b201e7ba87fe63
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M controller/lflow.c
    M controller/lflow.h
    M controller/ovn-controller.c
    M include/ovn/logical-fields.h
    M tests/ovn.at

  Log Message:
  -----------
  controller: Add load balancer hairpin OF flows.

Presently to handle the load balancer hairpin traffic (the traffic destined to the
load balancer VIP is dnatted to the backend which originated the traffic), ovn-northd
adds a lot of logical flows to check this scenario. This patch attempts to reduce the
these logical flows. Each ovn-controller will read the load balancers from
the newly added southbound Load_Balancer table and adds the load balancer hairpin OF
flows in the table 68, 69 and 70. If suppose a below load balancer is configured

10.0.0.10:80 = 10.0.0.4:8080, 10.0.0.5:8090, then the below flows are added

table=68, ip.src = 10.0.0.4,ip.dst=10.0.0.4,tcp.dst=8080 actions=load:1->NXM_NX_REG10[7]
table=68, ip.src = 10.0.0.5,ip.dst=10.0.0.5,tcp.dst=8090 actions=load:1->NXM_NX_REG10[7]
table=69, ip.src = 10.0.0.4,ip.dst=10.0.0.10,tcp.src=8080 actions=load:1->NXM_NX_REG10[7]
table=69, ip.src = 10.0.0.5,ip.dst=10.0.0.10,tcp.src=8090 actions=load:1->NXM_NX_REG10[7]
table=70, ct.trk && ct.dnat && ct.nw_dst == 10.0.0.10. actions=ct(commit, zone=reg12, nat(src=10.0.0.5))

Upcoming patch will add OVN actions which does the lookup in these tables to handle the
hairpin traffic.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: fc219d84b667a48760c62e41dbc25fcb5748d41a
      https://github.com/ovn-org/ovn/commit/fc219d84b667a48760c62e41dbc25fcb5748d41a
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M controller/lflow.c
    M include/ovn/actions.h
    M lib/actions.c
    M ovn-sb.xml
    M tests/ovn.at
    M tests/test-ovn.c
    M utilities/ovn-trace.c

  Log Message:
  -----------
  actions: Add new actions chk_lb_hairpin, chk_lb_hairpin_reply and ct_snat_to_vip.

The action - chk_lb_hairpin checks if the packet destined to a load balancer VIP
is to be hairpinned back to the same destination and if so, sets the destination register
bit to 1.

The action - chk_lb_hairpin_reply checks if the packet is a reply of the hairpinned
packet. If so, it sets the destination register bit to 1.

The action ct_snat_to_vip snats the source IP to the load balancer VIP if chk_lb_hairpin()
returned true.

These actions will be used in the upcoming patch by ovn-northd in the hairpin logical flows.
This helps in reducing lots of hairpin logical flows.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: 3357ab14076f0a7e91fe690538b4315c7219de60
      https://github.com/ovn-org/ovn/commit/3357ab14076f0a7e91fe690538b4315c7219de60
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M northd/ovn-northd.8.xml
    M northd/ovn-northd.c
    M tests/ovn-northd.at
    M tests/ovn.at

  Log Message:
  -----------
  northd: Make use of new hairpin actions.

This patch makes use of the new hairpin OVN actions - chk_lb_hairpin, chk_lb_hairpin_reply
and ct_snat_to_vip.

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. After this patch, ovn-northd adds just 5 hairpin logical flows.

With this patch number of hairpin related OF flows on a chassis are almost the same as before,
but in a large scale deployment, this reduces memory consumption and load on ovn-northd and
SB DB ovsdb-servers.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: 287605267f64daed845828d5f11b473f0cc98f33
      https://github.com/ovn-org/ovn/commit/287605267f64daed845828d5f11b473f0cc98f33
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M utilities/ovn-detrace.in

  Log Message:
  -----------
  ovn-detrace: Add SB Load Balancer cookier handler.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: 4da6881b6431d7101ea48518e3c071cb7ad27313
      https://github.com/ovn-org/ovn/commit/4da6881b6431d7101ea48518e3c071cb7ad27313
  Author: Numan Siddique <numans at ovn.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M utilities/ovn-sbctl.c

  Log Message:
  -----------
  sbctl: Add Load Balancer support for vflows option.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


Compare: https://github.com/ovn-org/ovn/compare/71e2fd244fca...4da6881b6431


More information about the git mailing list