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

Reply via email to