@@ -884,8 +884,7 @@ join_datapaths(const struct nbrec_logical_switch_table *nbrec_ls_table,
884884 const struct sbrec_datapath_binding_table *sbrec_dp_table,
885885 struct ovsdb_idl_txn *ovnsb_txn,
886886 struct hmap *datapaths, struct ovs_list *sb_only,
887- struct ovs_list *nb_only, struct ovs_list *both,
888- struct ovs_list *lr_list)
887+ struct ovs_list *nb_only, struct ovs_list *both)
889888{
890889 ovs_list_init(sb_only);
891890 ovs_list_init(nb_only);
@@ -986,7 +985,6 @@ join_datapaths(const struct nbrec_logical_switch_table *nbrec_ls_table,
986985 od->dynamic_routing_redistribute =
987986 parse_dynamic_routing_redistribute(&od->nbr->options, DRRM_NONE,
988987 od->nbr->name);
989- ovs_list_push_back(lr_list, &od->lr_list);
990988 }
991989}
992990
@@ -1079,14 +1077,13 @@ build_datapaths(struct ovsdb_idl_txn *ovnsb_txn,
10791077 const struct nbrec_logical_router_table *nbrec_lr_table,
10801078 const struct sbrec_datapath_binding_table *sbrec_dp_table,
10811079 struct ovn_datapaths *ls_datapaths,
1082- struct ovn_datapaths *lr_datapaths,
1083- struct ovs_list *lr_list)
1080+ struct ovn_datapaths *lr_datapaths)
10841081{
10851082 struct ovs_list sb_only, nb_only, both;
10861083
10871084 struct hmap *datapaths = &ls_datapaths->datapaths;
10881085 join_datapaths(nbrec_ls_table, nbrec_lr_table, sbrec_dp_table, ovnsb_txn,
1089- datapaths, &sb_only, &nb_only, &both, lr_list );
1086+ datapaths, &sb_only, &nb_only, &both);
10901087
10911088 /* Assign explicitly requested tunnel ids first. */
10921089 struct hmap dp_tnlids = HMAP_INITIALIZER(&dp_tnlids);
@@ -8922,7 +8919,7 @@ build_lrouter_groups__(struct hmap *lr_ports, struct ovn_datapath *od)
89228919 * each other either directly or indirectly (via transit logical switches
89238920 * in between).
89248921 *
8925- * Suppose if 'lr_list ' has lr0, lr1, lr2, lr3, lr4, lr5
8922+ * Suppose if 'lr_datapaths ' has lr0, lr1, lr2, lr3, lr4, lr5
89268923 * and the topology is like
89278924 * sw0 <-> lr0 <-> sw1 <-> lr1 <->sw2 <-> lr2
89288925 * sw3 <-> lr3 <-> lr4 <-> sw5
@@ -8939,12 +8936,12 @@ build_lrouter_groups__(struct hmap *lr_ports, struct ovn_datapath *od)
89398936 * Each logical router can belong to only one group.
89408937 */
89418938static void
8942- build_lrouter_groups(struct hmap *lr_ports, struct ovs_list *lr_list )
8939+ build_lrouter_groups(struct hmap *lr_ports, struct ovn_datapaths *lr_datapaths )
89438940{
89448941 struct ovn_datapath *od;
8945- size_t n_router_dps = ovs_list_size(lr_list );
8942+ size_t n_router_dps = hmap_count(&lr_datapaths->datapaths );
89468943
8947- LIST_FOR_EACH (od, lr_list, lr_list ) {
8944+ HMAP_FOR_EACH (od, key_node, &lr_datapaths->datapaths ) {
89488945 if (!od->lr_group) {
89498946 od->lr_group = xzalloc(sizeof *od->lr_group);
89508947 /* Each logical router group can have max
@@ -19184,11 +19181,10 @@ ovn_datapaths_destroy(struct ovn_datapaths *datapaths)
1918419181static void
1918519182destroy_datapaths_and_ports(struct ovn_datapaths *ls_datapaths,
1918619183 struct ovn_datapaths *lr_datapaths,
19187- struct hmap *ls_ports, struct hmap *lr_ports,
19188- struct ovs_list *lr_list)
19184+ struct hmap *ls_ports, struct hmap *lr_ports)
1918919185{
1919019186 struct ovn_datapath *router_dp;
19191- LIST_FOR_EACH_POP (router_dp, lr_list, lr_list ) {
19187+ HMAP_FOR_EACH (router_dp, key_node, &lr_datapaths->datapaths ) {
1919219188 if (router_dp->lr_group) {
1919319189 struct lrouter_group *lr_group = router_dp->lr_group;
1919419190
@@ -19227,7 +19223,6 @@ northd_init(struct northd_data *data)
1922719223 hmap_init(&data->lr_ports);
1922819224 hmap_init(&data->lb_datapaths_map);
1922919225 hmap_init(&data->lb_group_datapaths_map);
19230- ovs_list_init(&data->lr_list);
1923119226 sset_init(&data->svc_monitor_lsps);
1923219227 hmap_init(&data->svc_monitor_map);
1923319228 init_northd_tracked_data(data);
@@ -19293,8 +19288,7 @@ northd_destroy(struct northd_data *data)
1929319288 cleanup_macam();
1929419289
1929519290 destroy_datapaths_and_ports(&data->ls_datapaths, &data->lr_datapaths,
19296- &data->ls_ports, &data->lr_ports,
19297- &data->lr_list);
19291+ &data->ls_ports, &data->lr_ports);
1929819292
1929919293 sset_destroy(&data->svc_monitor_lsps);
1930019294 destroy_northd_tracked_data(data);
@@ -19384,7 +19378,7 @@ ovnnb_db_run(struct northd_input *input_data,
1938419378 input_data->nbrec_logical_router_table,
1938519379 input_data->sbrec_datapath_binding_table,
1938619380 &data->ls_datapaths,
19387- &data->lr_datapaths, &data->lr_list );
19381+ &data->lr_datapaths);
1938819382 build_lb_datapaths(input_data->lbs, input_data->lbgrps,
1938919383 &data->ls_datapaths, &data->lr_datapaths,
1939019384 &data->lb_datapaths_map, &data->lb_group_datapaths_map);
@@ -19411,7 +19405,7 @@ ovnnb_db_run(struct northd_input *input_data,
1941119405 ods_size(&data->ls_datapaths),
1941219406 ods_size(&data->lr_datapaths));
1941319407 build_ipam(&data->ls_datapaths.datapaths, &data->ls_ports);
19414- build_lrouter_groups(&data->lr_ports, &data->lr_list );
19408+ build_lrouter_groups(&data->lr_ports, &data->lr_datapaths );
1941519409 build_ip_mcast(ovnsb_txn, input_data->sbrec_ip_multicast_table,
1941619410 input_data->sbrec_ip_mcast_by_dp,
1941719411 &data->ls_datapaths.datapaths);
0 commit comments