On Fri, Oct 18, 2024 at 4:18 PM Mark Michelson <[email protected]> wrote: > > Acked-by: Mark Michelson <[email protected]> > > On 10/18/24 06:09, Ales Musil wrote: > > The NB Static_Mac_Binding has exactly one corresponding row in SB database. > > Use the NB UUID for the SB representation which makes the processing easier > > and the link between the rows is obvious at first glance. > > > > Signed-off-by: Ales Musil <[email protected]>
Acked-by: Numan Siddique <[email protected]> Numan > > --- > > lib/automake.mk | 2 -- > > lib/static-mac-binding-index.c | 43 ---------------------------------- > > lib/static-mac-binding-index.h | 27 --------------------- > > northd/en-northd.c | 4 ---- > > northd/inc-proc-northd.c | 6 ----- > > northd/northd.c | 34 ++++++--------------------- > > northd/northd.h | 1 - > > tests/ovn-northd.at | 2 ++ > > 8 files changed, 9 insertions(+), 110 deletions(-) > > delete mode 100644 lib/static-mac-binding-index.c > > delete mode 100644 lib/static-mac-binding-index.h > > > > diff --git a/lib/automake.mk b/lib/automake.mk > > index b69e854b0..25e516406 100644 > > --- a/lib/automake.mk > > +++ b/lib/automake.mk > > @@ -44,8 +44,6 @@ lib_libovn_la_SOURCES = \ > > lib/inc-proc-eng.h \ > > lib/lb.c \ > > lib/lb.h \ > > - lib/static-mac-binding-index.c \ > > - lib/static-mac-binding-index.h \ > > lib/stopwatch-names.h \ > > lib/vif-plug-provider.h \ > > lib/vif-plug-provider.c \ > > diff --git a/lib/static-mac-binding-index.c b/lib/static-mac-binding-index.c > > deleted file mode 100644 > > index fecc9b74f..000000000 > > --- a/lib/static-mac-binding-index.c > > +++ /dev/null > > @@ -1,43 +0,0 @@ > > -/* Copyright (c) 2021 > > - * > > - * Licensed under the Apache License, Version 2.0 (the "License"); > > - * you may not use this file except in compliance with the License. > > - * You may obtain a copy of the License at: > > - * > > - * http://www.apache.org/licenses/LICENSE-2.0 > > - * > > - * Unless required by applicable law or agreed to in writing, software > > - * distributed under the License is distributed on an "AS IS" BASIS, > > - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > - * See the License for the specific language governing permissions and > > - * limitations under the License. > > - */ > > - > > -#include <config.h> > > - > > -#include "lib/static-mac-binding-index.h" > > -#include "lib/ovn-sb-idl.h" > > - > > -struct ovsdb_idl_index * > > -static_mac_binding_index_create(struct ovsdb_idl *idl) > > -{ > > - return ovsdb_idl_index_create2(idl, > > - > > &sbrec_static_mac_binding_col_logical_port, > > - &sbrec_static_mac_binding_col_ip); > > -} > > - > > -const struct sbrec_static_mac_binding * > > -static_mac_binding_lookup(struct ovsdb_idl_index *smb_index, > > - const char *logical_port, const char *ip) > > -{ > > - struct sbrec_static_mac_binding *target = > > - sbrec_static_mac_binding_index_init_row(smb_index); > > - sbrec_static_mac_binding_index_set_logical_port(target, logical_port); > > - sbrec_static_mac_binding_index_set_ip(target, ip); > > - > > - struct sbrec_static_mac_binding *smb = > > - sbrec_static_mac_binding_index_find(smb_index, target); > > - sbrec_static_mac_binding_index_destroy_row(target); > > - > > - return smb; > > -} > > diff --git a/lib/static-mac-binding-index.h b/lib/static-mac-binding-index.h > > deleted file mode 100644 > > index 3d4ff06a2..000000000 > > --- a/lib/static-mac-binding-index.h > > +++ /dev/null > > @@ -1,27 +0,0 @@ > > -/* Copyright (c) 2021 > > - * > > - * Licensed under the Apache License, Version 2.0 (the "License"); > > - * you may not use this file except in compliance with the License. > > - * You may obtain a copy of the License at: > > - * > > - * http://www.apache.org/licenses/LICENSE-2.0 > > - * > > - * Unless required by applicable law or agreed to in writing, software > > - * distributed under the License is distributed on an "AS IS" BASIS, > > - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > - * See the License for the specific language governing permissions and > > - * limitations under the License. > > - */ > > - > > -#ifndef OVN_STATIC_MAC_BINDING_INDEX_H > > -#define OVN_STATIC_MAC_BINDING_INDEX_H 1 > > - > > -struct ovsdb_idl; > > - > > -struct ovsdb_idl_index *static_mac_binding_index_create(struct ovsdb_idl > > *); > > -const struct sbrec_static_mac_binding *static_mac_binding_lookup( > > - struct ovsdb_idl_index *smb_index, > > - const char *logical_port, > > - const char *ip); > > - > > -#endif /* lib/static-mac-binding-index.h */ > > diff --git a/northd/en-northd.c b/northd/en-northd.c > > index 24ed31517..97e90b832 100644 > > --- a/northd/en-northd.c > > +++ b/northd/en-northd.c > > @@ -57,10 +57,6 @@ northd_get_input_data(struct engine_node *node, > > engine_ovsdb_node_get_index( > > engine_get_input("SB_ip_multicast", node), > > "sbrec_ip_mcast_by_dp"); > > - input_data->sbrec_static_mac_binding_by_lport_ip = > > - engine_ovsdb_node_get_index( > > - engine_get_input("SB_static_mac_binding", node), > > - "sbrec_static_mac_binding_by_lport_ip"); > > input_data->sbrec_fdb_by_dp_and_port = > > engine_ovsdb_node_get_index( > > engine_get_input("SB_fdb", node), > > diff --git a/northd/inc-proc-northd.c b/northd/inc-proc-northd.c > > index 8c834facb..480100d3c 100644 > > --- a/northd/inc-proc-northd.c > > +++ b/northd/inc-proc-northd.c > > @@ -20,7 +20,6 @@ > > > > #include "chassis-index.h" > > #include "ip-mcast-index.h" > > -#include "static-mac-binding-index.h" > > #include "lib/inc-proc-eng.h" > > #include "lib/mac-binding-index.h" > > #include "lib/ovn-nb-idl.h" > > @@ -359,8 +358,6 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb, > > ip_mcast_index_create(sb->idl); > > struct ovsdb_idl_index *sbrec_chassis_by_hostname = > > chassis_hostname_index_create(sb->idl); > > - struct ovsdb_idl_index *sbrec_static_mac_binding_by_lport_ip > > - = static_mac_binding_index_create(sb->idl); > > struct ovsdb_idl_index *sbrec_mac_binding_by_datapath > > = mac_binding_by_datapath_index_create(sb->idl); > > struct ovsdb_idl_index *fdb_by_dp_key = > > @@ -383,9 +380,6 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb, > > engine_ovsdb_node_add_index(&en_sb_ip_multicast, > > "sbrec_ip_mcast_by_dp", > > sbrec_ip_mcast_by_dp); > > - engine_ovsdb_node_add_index(&en_sb_static_mac_binding, > > - "sbrec_static_mac_binding_by_lport_ip", > > - sbrec_static_mac_binding_by_lport_ip); > > engine_ovsdb_node_add_index(&en_sb_mac_binding, > > "sbrec_mac_binding_by_datapath", > > sbrec_mac_binding_by_datapath); > > diff --git a/northd/northd.c b/northd/northd.c > > index 0fe15ac59..fb34d0231 100644 > > --- a/northd/northd.c > > +++ b/northd/northd.c > > @@ -34,7 +34,6 @@ > > #include "lb.h" > > #include "lib/chassis-index.h" > > #include "lib/ip-mcast-index.h" > > -#include "lib/static-mac-binding-index.h" > > #include "lib/copp.h" > > #include "lib/mcast-group-index.h" > > #include "lib/ovn-l7.h" > > @@ -18560,29 +18559,11 @@ build_mcast_groups(const struct > > sbrec_igmp_group_table *sbrec_igmp_group_table, > > } > > } > > > > -static const struct nbrec_static_mac_binding * > > -static_mac_binding_by_port_ip( > > - const struct nbrec_static_mac_binding_table *nbrec_static_mb_table, > > - const char *logical_port, const char *ip) > > -{ > > - const struct nbrec_static_mac_binding *nb_smb = NULL; > > - > > - NBREC_STATIC_MAC_BINDING_TABLE_FOR_EACH (nb_smb, > > nbrec_static_mb_table) { > > - if (!strcmp(nb_smb->logical_port, logical_port) && > > - !strcmp(nb_smb->ip, ip)) { > > - break; > > - } > > - } > > - > > - return nb_smb; > > -} > > - > > static void > > build_static_mac_binding_table( > > struct ovsdb_idl_txn *ovnsb_txn, > > const struct nbrec_static_mac_binding_table *nbrec_static_mb_table, > > const struct sbrec_static_mac_binding_table *sbrec_static_mb_table, > > - struct ovsdb_idl_index *sbrec_static_mac_binding_by_lport_ip, > > struct hmap *lr_ports) > > { > > /* Cleanup SB Static_MAC_Binding entries which do not have > > corresponding > > @@ -18592,9 +18573,8 @@ build_static_mac_binding_table( > > const struct sbrec_static_mac_binding *sb_smb; > > SBREC_STATIC_MAC_BINDING_TABLE_FOR_EACH_SAFE (sb_smb, > > sbrec_static_mb_table) { > > - nb_smb = static_mac_binding_by_port_ip(nbrec_static_mb_table, > > - sb_smb->logical_port, > > - sb_smb->ip); > > + nb_smb = nbrec_static_mac_binding_table_get_for_uuid( > > + nbrec_static_mb_table, &sb_smb->header_.uuid); > > if (!nb_smb) { > > sbrec_static_mac_binding_delete(sb_smb); > > continue; > > @@ -18614,13 +18594,14 @@ build_static_mac_binding_table( > > if (op && op->nbrp) { > > struct ovn_datapath *od = op->od; > > if (od && od->sb) { > > + const struct uuid *nb_uuid = &nb_smb->header_.uuid; > > const struct sbrec_static_mac_binding *mb = > > - static_mac_binding_lookup( > > - sbrec_static_mac_binding_by_lport_ip, > > - nb_smb->logical_port, nb_smb->ip); > > + sbrec_static_mac_binding_table_get_for_uuid( > > + sbrec_static_mb_table, nb_uuid); > > if (!mb) { > > /* Create new entry */ > > - mb = sbrec_static_mac_binding_insert(ovnsb_txn); > > + mb = sbrec_static_mac_binding_insert_persist_uuid( > > + ovnsb_txn, nb_uuid); > > sbrec_static_mac_binding_set_logical_port( > > mb, nb_smb->logical_port); > > sbrec_static_mac_binding_set_ip(mb, nb_smb->ip); > > @@ -18900,7 +18881,6 @@ ovnnb_db_run(struct northd_input *input_data, > > build_static_mac_binding_table(ovnsb_txn, > > input_data->nbrec_static_mac_binding_table, > > input_data->sbrec_static_mac_binding_table, > > - input_data->sbrec_static_mac_binding_by_lport_ip, > > &data->lr_ports); > > stopwatch_stop(BUILD_LFLOWS_CTX_STOPWATCH_NAME, time_msec()); > > stopwatch_start(CLEAR_LFLOWS_CTX_STOPWATCH_NAME, time_msec()); > > diff --git a/northd/northd.h b/northd/northd.h > > index 8f76d642d..995af65bc 100644 > > --- a/northd/northd.h > > +++ b/northd/northd.h > > @@ -68,7 +68,6 @@ struct northd_input { > > struct ovsdb_idl_index *sbrec_chassis_by_hostname; > > struct ovsdb_idl_index *sbrec_ha_chassis_grp_by_name; > > struct ovsdb_idl_index *sbrec_ip_mcast_by_dp; > > - struct ovsdb_idl_index *sbrec_static_mac_binding_by_lport_ip; > > struct ovsdb_idl_index *sbrec_fdb_by_dp_and_port; > > }; > > > > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at > > index d6a8c4640..bcee2d231 100644 > > --- a/tests/ovn-northd.at > > +++ b/tests/ovn-northd.at > > @@ -8076,7 +8076,9 @@ ovn-nbctl static-mac-binding-add lr0-p0 > > 192.168.10.100 00:00:22:33:44:55 > > > > wait_row_count nb:Static_MAC_Binding 2 logical_port=lr0-p0 > > wait_row_count Static_MAC_Binding 1 logical_port=lr0-p0 ip=192.168.10.10 > > mac="00\:00\:11\:22\:33\:44" > > +check_column "$(fetch_column nb:Static_MAC_Binding _uuid > > logical_port=lr0-p0 ip=192.168.10.10)" sb:Static_MAC_Binding _uuid > > logical_port=lr0-p0 ip=192.168.10.10 > > wait_row_count Static_MAC_Binding 1 logical_port=lr0-p0 ip=192.168.10.100 > > mac="00\:00\:22\:33\:44\:55" > > +check_column "$(fetch_column nb:Static_MAC_Binding _uuid > > logical_port=lr0-p0 ip=192.168.10.100)" sb:Static_MAC_Binding _uuid > > logical_port=lr0-p0 ip=192.168.10.100 > > > > ovn-nbctl static-mac-binding-add lr0-p1 10.0.0.10 00:00:33:44:55:66 > > wait_row_count nb:Static_MAC_Binding 1 logical_port=lr0-p1 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
