This structure is redundant since we already have the lr_datapaths that
store the same set of ovn_datapaths.

Signed-off-by: Mark Michelson <mmich...@redhat.com>
Acked-by: Lorenzo Bianconi <lorenzo.bianc...@redhat.com>
Acked-by: Dumitru Ceara <dce...@redhat.com>
---
* v3 -> v4:
  * Rebased.

* v2 -> v3:
  * Rebased, but no other changes made.

* v1 -> v2:
  * Added Lorenzo's and Dumitru's acks.
---
 northd/northd.c | 30 ++++++++++++------------------
 northd/northd.h |  2 --
 2 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/northd/northd.c b/northd/northd.c
index c08d3b1d3..cd5af4b1c 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -900,8 +900,7 @@ join_datapaths(const struct nbrec_logical_switch_table 
*nbrec_ls_table,
                const struct sbrec_datapath_binding_table *sbrec_dp_table,
                struct ovsdb_idl_txn *ovnsb_txn,
                struct hmap *datapaths, struct ovs_list *sb_only,
-               struct ovs_list *nb_only, struct ovs_list *both,
-               struct ovs_list *lr_list)
+               struct ovs_list *nb_only, struct ovs_list *both)
 {
     ovs_list_init(sb_only);
     ovs_list_init(nb_only);
@@ -997,7 +996,6 @@ join_datapaths(const struct nbrec_logical_switch_table 
*nbrec_ls_table,
         od->dynamic_routing_redistribute =
             parse_dynamic_routing_redistribute(&od->nbr->options, DRRM_NONE,
                                                od->nbr->name);
-        ovs_list_push_back(lr_list, &od->lr_list);
     }
 }
 
@@ -1090,14 +1088,13 @@ build_datapaths(struct ovsdb_idl_txn *ovnsb_txn,
                 const struct nbrec_logical_router_table *nbrec_lr_table,
                 const struct sbrec_datapath_binding_table *sbrec_dp_table,
                 struct ovn_datapaths *ls_datapaths,
-                struct ovn_datapaths *lr_datapaths,
-                struct ovs_list *lr_list)
+                struct ovn_datapaths *lr_datapaths)
 {
     struct ovs_list sb_only, nb_only, both;
 
     struct hmap *datapaths = &ls_datapaths->datapaths;
     join_datapaths(nbrec_ls_table, nbrec_lr_table, sbrec_dp_table, ovnsb_txn,
-                   datapaths, &sb_only, &nb_only, &both, lr_list);
+                   datapaths, &sb_only, &nb_only, &both);
 
     /* Assign explicitly requested tunnel ids first. */
     struct hmap dp_tnlids = HMAP_INITIALIZER(&dp_tnlids);
@@ -8867,7 +8864,7 @@ build_lrouter_groups__(struct hmap *lr_ports, struct 
ovn_datapath *od)
  * each other either directly or indirectly (via transit logical switches
  * in between).
  *
- * Suppose if 'lr_list' has lr0, lr1, lr2, lr3, lr4, lr5
+ * Suppose if 'lr_datapaths' has lr0, lr1, lr2, lr3, lr4, lr5
  * and the topology is like
  *  sw0 <-> lr0 <-> sw1 <-> lr1 <->sw2 <-> lr2
  *  sw3 <-> lr3 <-> lr4 <-> sw5
@@ -8884,12 +8881,12 @@ build_lrouter_groups__(struct hmap *lr_ports, struct 
ovn_datapath *od)
  * Each logical router can belong to only one group.
  */
 static void
-build_lrouter_groups(struct hmap *lr_ports, struct ovs_list *lr_list)
+build_lrouter_groups(struct hmap *lr_ports, struct ovn_datapaths *lr_datapaths)
 {
     struct ovn_datapath *od;
-    size_t n_router_dps = ovs_list_size(lr_list);
+    size_t n_router_dps = hmap_count(&lr_datapaths->datapaths);
 
-    LIST_FOR_EACH (od, lr_list, lr_list) {
+    HMAP_FOR_EACH (od, key_node, &lr_datapaths->datapaths) {
         if (!od->lr_group) {
             od->lr_group = xzalloc(sizeof *od->lr_group);
             /* Each logical router group can have max
@@ -19126,11 +19123,10 @@ ovn_datapaths_destroy(struct ovn_datapaths *datapaths)
 static void
 destroy_datapaths_and_ports(struct ovn_datapaths *ls_datapaths,
                             struct ovn_datapaths *lr_datapaths,
-                            struct hmap *ls_ports, struct hmap *lr_ports,
-                            struct ovs_list *lr_list)
+                            struct hmap *ls_ports, struct hmap *lr_ports)
 {
     struct ovn_datapath *router_dp;
-    LIST_FOR_EACH_POP (router_dp, lr_list, lr_list) {
+    HMAP_FOR_EACH (router_dp, key_node, &lr_datapaths->datapaths) {
         if (router_dp->lr_group) {
             struct lrouter_group *lr_group = router_dp->lr_group;
 
@@ -19169,7 +19165,6 @@ northd_init(struct northd_data *data)
     hmap_init(&data->lr_ports);
     hmap_init(&data->lb_datapaths_map);
     hmap_init(&data->lb_group_datapaths_map);
-    ovs_list_init(&data->lr_list);
     sset_init(&data->svc_monitor_lsps);
     hmap_init(&data->svc_monitor_map);
     init_northd_tracked_data(data);
@@ -19235,8 +19230,7 @@ northd_destroy(struct northd_data *data)
     cleanup_macam();
 
     destroy_datapaths_and_ports(&data->ls_datapaths, &data->lr_datapaths,
-                                &data->ls_ports, &data->lr_ports,
-                                &data->lr_list);
+                                &data->ls_ports, &data->lr_ports);
 
     sset_destroy(&data->svc_monitor_lsps);
     destroy_northd_tracked_data(data);
@@ -19326,7 +19320,7 @@ ovnnb_db_run(struct northd_input *input_data,
                     input_data->nbrec_logical_router_table,
                     input_data->sbrec_datapath_binding_table,
                     &data->ls_datapaths,
-                    &data->lr_datapaths, &data->lr_list);
+                    &data->lr_datapaths);
     build_lb_datapaths(input_data->lbs, input_data->lbgrps,
                        &data->ls_datapaths, &data->lr_datapaths,
                        &data->lb_datapaths_map, &data->lb_group_datapaths_map);
@@ -19353,7 +19347,7 @@ ovnnb_db_run(struct northd_input *input_data,
                        ods_size(&data->ls_datapaths),
                        ods_size(&data->lr_datapaths));
     build_ipam(&data->ls_datapaths.datapaths, &data->ls_ports);
-    build_lrouter_groups(&data->lr_ports, &data->lr_list);
+    build_lrouter_groups(&data->lr_ports, &data->lr_datapaths);
     build_ip_mcast(ovnsb_txn, input_data->sbrec_ip_multicast_table,
                    input_data->sbrec_ip_mcast_by_dp,
                    &data->ls_datapaths.datapaths);
diff --git a/northd/northd.h b/northd/northd.h
index e6ab00390..af7280fde 100644
--- a/northd/northd.h
+++ b/northd/northd.h
@@ -169,7 +169,6 @@ struct northd_data {
     struct hmap lr_ports;
     struct hmap lb_datapaths_map;
     struct hmap lb_group_datapaths_map;
-    struct ovs_list lr_list;
     struct sset svc_monitor_lsps;
     struct hmap svc_monitor_map;
 
@@ -418,7 +417,6 @@ struct ovn_datapath {
     size_t n_localnet_ports;
     size_t n_allocated_localnet_ports;
 
-    struct ovs_list lr_list; /* In list of logical router datapaths. */
     /* The logical router group to which this datapath belongs.
      * Valid only if it is logical router datapath. NULL otherwise. */
     struct lrouter_group *lr_group;
-- 
2.47.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to