This is a preliminary patch to sync load_balancers applied to
logical_routers to Load_Balancer table in the SouthBound database.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2193323
Signed-off-by: Lorenzo Bianconi <[email protected]>
---
 controller/lflow.c          |  7 ++++---
 controller/local_data.c     |  2 +-
 controller/ovn-controller.c |  6 +++---
 northd/northd.c             |  6 +++---
 ovn-sb.ovsschema            |  4 ++--
 ovn-sb.xml                  |  7 ++++---
 tests/ovn-northd.at         | 14 +++++++-------
 utilities/ovn-sbctl.c       | 15 ++++++++-------
 8 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/controller/lflow.c b/controller/lflow.c
index 22faaf013..9a4e3006b 100644
--- a/controller/lflow.c
+++ b/controller/lflow.c
@@ -1870,11 +1870,12 @@ add_lb_ct_snat_hairpin_vip_flow(const struct 
ovn_controller_lb *lb,
                                           local_datapaths, &match,
                                           &ofpacts, flow_table);
         }
-        if (lb->slb->datapath_group) {
-            for (size_t i = 0; i < lb->slb->datapath_group->n_datapaths; i++) {
+        if (lb->slb->ls_datapath_group) {
+            for (size_t i = 0;
+                 i < lb->slb->ls_datapath_group->n_datapaths; i++) {
                 add_lb_ct_snat_hairpin_for_dp(
                     lb, !!lb_vip->vip_port,
-                    lb->slb->datapath_group->datapaths[i],
+                    lb->slb->ls_datapath_group->datapaths[i],
                     local_datapaths, &match, &ofpacts, flow_table);
             }
         }
diff --git a/controller/local_data.c b/controller/local_data.c
index cf0b21bb1..2950434ac 100644
--- a/controller/local_data.c
+++ b/controller/local_data.c
@@ -661,7 +661,7 @@ lb_is_local(const struct sbrec_load_balancer *sbrec_lb,
         }
     }
 
-    struct sbrec_logical_dp_group *dp_group = sbrec_lb->datapath_group;
+    struct sbrec_logical_dp_group *dp_group = sbrec_lb->ls_datapath_group;
 
     for (size_t i = 0; dp_group && i < dp_group->n_datapaths; i++) {
         if (get_local_datapath(local_datapaths,
diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index 3a81a13fb..ab4896b91 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -2699,10 +2699,10 @@ load_balancers_by_dp_init(const struct hmap 
*local_datapaths,
             load_balancers_by_dp_add_one(local_datapaths,
                                          lb->datapaths[i], lb, lbs);
         }
-        for (size_t i = 0; lb->datapath_group
-                           && i < lb->datapath_group->n_datapaths; i++) {
+        for (size_t i = 0; lb->ls_datapath_group
+                           && i < lb->ls_datapath_group->n_datapaths; i++) {
             load_balancers_by_dp_add_one(local_datapaths,
-                                         lb->datapath_group->datapaths[i],
+                                         lb->ls_datapath_group->datapaths[i],
                                          lb, lbs);
         }
     }
diff --git a/northd/northd.c b/northd/northd.c
index 93f126aa3..fad8ab0ec 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -4449,7 +4449,7 @@ sync_lbs(struct ovsdb_idl_txn *ovnsb_txn,
 
         /* Find or create datapath group for this load balancer. */
         lb->dpg = ovn_dp_group_get_or_create(ovnsb_txn, &dp_groups,
-                                             lb->slb->datapath_group,
+                                             lb->slb->ls_datapath_group,
                                              lb->n_nb_ls, lb->nb_ls_map,
                                              bitmap_len, true,
                                              ls_datapaths, NULL);
@@ -4485,7 +4485,7 @@ sync_lbs(struct ovsdb_idl_txn *ovnsb_txn,
         /* Find or create datapath group for this load balancer. */
         if (!lb->dpg) {
             lb->dpg = ovn_dp_group_get_or_create(ovnsb_txn, &dp_groups,
-                                                 lb->slb->datapath_group,
+                                                 lb->slb->ls_datapath_group,
                                                  lb->n_nb_ls, lb->nb_ls_map,
                                                  bitmap_len, true,
                                                  ls_datapaths, NULL);
@@ -4495,7 +4495,7 @@ sync_lbs(struct ovsdb_idl_txn *ovnsb_txn,
         sbrec_load_balancer_set_name(lb->slb, lb->nlb->name);
         sbrec_load_balancer_set_vips(lb->slb, ovn_northd_lb_get_vips(lb));
         sbrec_load_balancer_set_protocol(lb->slb, lb->nlb->protocol);
-        sbrec_load_balancer_set_datapath_group(lb->slb, lb->dpg->dp_group);
+        sbrec_load_balancer_set_ls_datapath_group(lb->slb, lb->dpg->dp_group);
         sbrec_load_balancer_set_options(lb->slb, &options);
         /* Clearing 'datapaths' column, since 'dp_group' is in use. */
         sbrec_load_balancer_set_datapaths(lb->slb, NULL, 0);
diff --git a/ovn-sb.ovsschema b/ovn-sb.ovsschema
index f59af8cc5..e02fbd884 100644
--- a/ovn-sb.ovsschema
+++ b/ovn-sb.ovsschema
@@ -1,7 +1,7 @@
 {
     "name": "OVN_Southbound",
     "version": "20.27.2",
-    "cksum": "1291808617 30462",
+    "cksum": "2970847454 30465",
     "tables": {
         "SB_Global": {
             "columns": {
@@ -530,7 +530,7 @@
                     "type": {"key": {"type": "uuid",
                                      "refTable": "Datapath_Binding"},
                              "min": 0, "max": "unlimited"}},
-                "datapath_group":
+                "ls_datapath_group":
                     {"type": {"key": {"type": "uuid",
                                       "refTable": "Logical_DP_Group"},
                               "min": 0, "max": 1}},
diff --git a/ovn-sb.xml b/ovn-sb.xml
index 0988cb1f8..5d11d059b 100644
--- a/ovn-sb.xml
+++ b/ovn-sb.xml
@@ -4879,9 +4879,10 @@ tcp.flags = RST;
       Datapaths to which this load balancer applies to.
     </column>
 
-    <column name="datapath_group">
-      The group of datapaths to which this load balancer applies to.  This
-      means that the same load balancer applies to all datapaths in a group.
+    <column name="ls_datapath_group">
+      The group of logical switches datapaths to which this load balancer
+      applies to. This means that the same load balancer applies to all
+      datapaths in a group.
     </column>
 
     <group title="Load_Balancer options">
diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index 6736429ae..63caf8d66 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -2774,7 +2774,7 @@ lbg0_uuid=$(fetch_column sb:load_balancer _uuid name=lbg0)
 echo
 echo "__file__:__line__: Check that SB lb0 has sw0 in datapaths column."
 
-lb0_dp_group=$(fetch_column sb:load_balancer datapath_group name=lb0)
+lb0_dp_group=$(fetch_column sb:load_balancer ls_datapath_group name=lb0)
 AT_CHECK_UNQUOTED([ovn-sbctl --bare --columns _uuid,datapaths find 
Logical_DP_Group dnl
                     | grep -A1 $lb0_dp_group | tail -1], [0], [dnl
 $sw0_sb_uuid
@@ -2785,7 +2785,7 @@ check_column "" sb:datapath_binding load_balancers 
external_ids:name=sw0
 echo
 echo "__file__:__line__: Check that SB lbg0 has sw0 in datapaths column."
 
-lbg0_dp_group=$(fetch_column sb:load_balancer datapath_group name=lbg0)
+lbg0_dp_group=$(fetch_column sb:load_balancer ls_datapath_group name=lbg0)
 AT_CHECK_UNQUOTED([ovn-sbctl --bare --columns _uuid,datapaths find 
Logical_DP_Group dnl
                     | grep -A1 $lbg0_dp_group | tail -1], [0], [dnl
 $sw0_sb_uuid
@@ -2873,7 +2873,7 @@ echo "__file__:__line__: Check that SB lbg1 has vips and 
protocol columns are se
 check_column "20.0.0.30:80=20.0.0.50:8080 udp" sb:load_balancer vips,protocol 
name=lbg1
 
 lb1_uuid=$(fetch_column sb:load_balancer _uuid name=lb1)
-lb1_dp_group=$(fetch_column sb:load_balancer datapath_group name=lb1)
+lb1_dp_group=$(fetch_column sb:load_balancer ls_datapath_group name=lb1)
 
 echo
 echo "__file__:__line__: Check that SB lb1 has sw1 in datapaths column."
@@ -2884,7 +2884,7 @@ $sw1_sb_uuid
 ])
 
 lbg1_uuid=$(fetch_column sb:load_balancer _uuid name=lbg1)
-lbg1_dp_group=$(fetch_column sb:load_balancer datapath_group name=lbg1)
+lbg1_dp_group=$(fetch_column sb:load_balancer ls_datapath_group name=lbg1)
 
 echo
 echo "__file__:__line__: Check that SB lbg1 has sw0 and sw1 in datapaths 
column."
@@ -5932,9 +5932,9 @@ ovn_start
 check ovn-nbctl ls-add ls -- lb-add lb1 10.0.0.1:80 10.0.0.2:80 -- ls-lb-add 
ls lb1
 check ovn-nbctl --wait=sb sync
 
-dps=$(fetch_column Load_Balancer datapath_group)
+dps=$(fetch_column Load_Balancer ls_datapath_group)
 nlb=$(fetch_column nb:Load_Balancer _uuid)
-AT_CHECK([ovn-sbctl create Load_Balancer name=lb1 datapath_group="$dps" 
external_ids="lb_id=$nlb"], [0], [ignore])
+AT_CHECK([ovn-sbctl create Load_Balancer name=lb1 ls_datapath_group="$dps" 
external_ids="lb_id=$nlb"], [0], [ignore])
 
 check ovn-nbctl --wait=sb sync
 check_row_count Load_Balancer 1
@@ -8603,7 +8603,7 @@ AT_CHECK([grep "ls_in_lb " S1flows | sed 
's/table=../table=??/' | sort], [0], [d
 
 ovn-sbctl get datapath S0 _uuid > dp_uuids
 ovn-sbctl get datapath S1 _uuid >> dp_uuids
-lb_dp_group=$(ovn-sbctl --bare --columns datapath_group find Load_Balancer 
name=lb0)
+lb_dp_group=$(ovn-sbctl --bare --columns ls_datapath_group find Load_Balancer 
name=lb0)
 AT_CHECK_UNQUOTED([ovn-sbctl --bare --columns _uuid,datapaths find 
Logical_DP_Group dnl
                     | grep -A1 $lb_dp_group | tail -1 | tr ' ' '\n' | sort], 
[0], [dnl
 $(cat dp_uuids | sort)
diff --git a/utilities/ovn-sbctl.c b/utilities/ovn-sbctl.c
index 3948cae3f..ddd9a9ca9 100644
--- a/utilities/ovn-sbctl.c
+++ b/utilities/ovn-sbctl.c
@@ -396,7 +396,7 @@ pre_get_info(struct ctl_context *ctx)
     ovsdb_idl_add_column(ctx->idl, &sbrec_mac_binding_col_mac);
 
     ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_datapaths);
-    ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_datapath_group);
+    ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_ls_datapath_group);
     ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_vips);
     ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_name);
     ovsdb_idl_add_column(ctx->idl, &sbrec_load_balancer_col_protocol);
@@ -932,9 +932,9 @@ cmd_lflow_list_load_balancers(struct ctl_context *ctx, 
struct vconn *vconn,
                     break;
                 }
             }
-            if (lb->datapath_group && !dp_found) {
-                dp_found = datapath_group_contains_datapath(lb->datapath_group,
-                                                            datapath);
+            if (lb->ls_datapath_group && !dp_found) {
+                dp_found = datapath_group_contains_datapath(
+                        lb->ls_datapath_group, datapath);
             }
             if (!dp_found) {
                 continue;
@@ -954,9 +954,10 @@ cmd_lflow_list_load_balancers(struct ctl_context *ctx, 
struct vconn *vconn,
                 print_vflow_datapath_name(lb->datapaths[i], true,
                                           &ctx->output);
             }
-            for (size_t i = 0; lb->datapath_group
-                               && i < lb->datapath_group->n_datapaths; i++) {
-                print_vflow_datapath_name(lb->datapath_group->datapaths[i],
+            for (size_t i = 0;
+                 lb->ls_datapath_group &&
+                 i < lb->ls_datapath_group->n_datapaths; i++) {
+                print_vflow_datapath_name(lb->ls_datapath_group->datapaths[i],
                                           true, &ctx->output);
             }
         }
-- 
2.40.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to