On Tue, Oct 19, 2021 at 3:14 AM Frode Nordahl <[email protected]> wrote: > > Add port by interfaces index - To be able to effectively remove > ports previously plugged by us we need to look up ports by > interface records. > > Add `enable-dummy-plug` option - To enable testing of the plugging > infrastructure without building OVN with an external plugging > library we include a dummy implementation which can be enabled > using this command line option. > > Signed-off-by: Frode Nordahl <[email protected]>
Acked-by: Han Zhou <[email protected]> > --- > controller/ovn-controller.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c > index c015f936c..ef2bdadc8 100644 > --- a/controller/ovn-controller.c > +++ b/controller/ovn-controller.c > @@ -56,6 +56,8 @@ > #include "lib/ovn-sb-idl.h" > #include "lib/ovn-util.h" > #include "patch.h" > +#include "plug.h" > +#include "plug-provider.h" > #include "physical.h" > #include "pinctrl.h" > #include "openvswitch/poll-loop.h" > @@ -3082,11 +3084,17 @@ main(int argc, char *argv[]) > patch_init(); > pinctrl_init(); > lflow_init(); > + plug_provider_initialize(); > > /* Connect to OVS OVSDB instance. */ > struct ovsdb_idl_loop ovs_idl_loop = OVSDB_IDL_LOOP_INITIALIZER( > ovsdb_idl_create(ovs_remote, &ovsrec_idl_class, false, true)); > ctrl_register_ovs_idl(ovs_idl_loop.idl); > + > + struct ovsdb_idl_index *ovsrec_port_by_interfaces > + = ovsdb_idl_index_create1(ovs_idl_loop.idl, > + &ovsrec_port_col_interfaces); > + > ovsdb_idl_get_initial_snapshot(ovs_idl_loop.idl); > > /* Configure OVN SB database. */ > @@ -3350,6 +3358,8 @@ main(int argc, char *argv[]) > sbrec_port_binding_by_datapath); > engine_ovsdb_node_add_index(&en_sb_datapath_binding, "key", > sbrec_datapath_binding_by_key); > + engine_ovsdb_node_add_index(&en_ovs_port, "interfaces", > + ovsrec_port_by_interfaces); > > struct ed_type_lflow_output *lflow_output_data = > engine_get_internal_data(&en_lflow_output); > @@ -3878,6 +3888,7 @@ loop_done: > pinctrl_destroy(); > patch_destroy(); > if_status_mgr_destroy(if_mgr); > + plug_provider_destroy_all(); > > ovsdb_idl_loop_destroy(&ovs_idl_loop); > ovsdb_idl_loop_destroy(&ovnsb_idl_loop); > @@ -3898,6 +3909,7 @@ parse_options(int argc, char *argv[]) > VLOG_OPTION_ENUMS, > OVN_DAEMON_OPTION_ENUMS, > SSL_OPTION_ENUMS, > + OPT_ENABLE_DUMMY_PLUG, > }; > > static struct option long_options[] = { > @@ -3908,6 +3920,7 @@ parse_options(int argc, char *argv[]) > STREAM_SSL_LONG_OPTIONS, > {"peer-ca-cert", required_argument, NULL, OPT_PEER_CA_CERT}, > {"bootstrap-ca-cert", required_argument, NULL, OPT_BOOTSTRAP_CA_CERT}, > + {"enable-dummy-plug", no_argument, NULL, OPT_ENABLE_DUMMY_PLUG}, > {NULL, 0, NULL, 0} > }; > char *short_options = ovs_cmdl_long_options_to_short_options(long_options); > @@ -3953,6 +3966,10 @@ parse_options(int argc, char *argv[]) > stream_ssl_set_ca_cert_file(optarg, true); > break; > > + case OPT_ENABLE_DUMMY_PLUG: > + plug_dummy_enable(); > + break; > + > case '?': > exit(EXIT_FAILURE); > > -- > 2.32.0 > > _______________________________________________ > 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
