On Thu, Jan 20, 2022 at 11:09 AM Lorenzo Bianconi
<[email protected]> wrote:
>
> Report logical router port addresses running lsp-get-addresses if the
> logical switch port address is set to "router".
>
> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2028040
> Signed-off-by: Lorenzo Bianconi <[email protected]>
> ---
> Changes since v1:
> - rely on lrp_by_name_or_uuid
Thanks for v2. I applied this patch to the main branch.
Numan
> ---
> tests/ovn-nbctl.at | 10 ++++++++++
> utilities/ovn-nbctl.c | 29 +++++++++++++++++++++++++----
> 2 files changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/tests/ovn-nbctl.at b/tests/ovn-nbctl.at
> index a43a1ce8f..539a121c0 100644
> --- a/tests/ovn-nbctl.at
> +++ b/tests/ovn-nbctl.at
> @@ -181,6 +181,16 @@ unknown
>
> AT_CHECK([ovn-nbctl lsp-set-addresses lp0])
> AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
> +])
> +
> +AT_CHECK([ovn-nbctl lr-add lr0])
> +AT_CHECK([ovn-nbctl lrp-add lr0 rp-ls0 aa:bb:bb:00:00:01 192.168.0.1/24])
> +AT_CHECK([ovn-nbctl lsp-add ls0 ls0-rp])
> +AT_CHECK([ovn-nbctl lsp-set-addresses ls0-rp router])
> +AT_CHECK([ovn-nbctl lsp-set-type ls0-rp router])
> +AT_CHECK([ovn-nbctl lsp-set-options ls0-rp router-port=rp-ls0])
> +AT_CHECK([ovn-nbctl lsp-get-addresses ls0-rp], [0], [dnl
> +aa:bb:bb:00:00:01 192.168.0.1/24
> ])])
>
> dnl ---------------------------------------------------------------------
> diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c
> index 55b0f5124..f3209417a 100644
> --- a/utilities/ovn-nbctl.c
> +++ b/utilities/ovn-nbctl.c
> @@ -1494,8 +1494,18 @@ nbctl_pre_lsp_get_addresses(struct ctl_context *ctx)
> {
> ovsdb_idl_add_column(ctx->idl, &nbrec_logical_switch_port_col_name);
> ovsdb_idl_add_column(ctx->idl, &nbrec_logical_switch_port_col_addresses);
> + ovsdb_idl_add_column(ctx->idl, &nbrec_logical_switch_port_col_options);
> +
> + ovsdb_idl_add_column(ctx->idl, &nbrec_logical_router_col_ports);
> + ovsdb_idl_add_column(ctx->idl, &nbrec_logical_router_port_col_name);
> + ovsdb_idl_add_column(ctx->idl, &nbrec_logical_router_port_col_mac);
> + ovsdb_idl_add_column(ctx->idl, &nbrec_logical_router_port_col_networks);
> }
>
> +static char * OVS_WARN_UNUSED_RESULT
> +lrp_by_name_or_uuid(struct ctl_context *ctx, const char *id, bool must_exist,
> + const struct nbrec_logical_router_port **lrp_p);
> +
> static void
> nbctl_lsp_get_addresses(struct ctl_context *ctx)
> {
> @@ -1511,6 +1521,21 @@ nbctl_lsp_get_addresses(struct ctl_context *ctx)
> return;
> }
>
> + const char *router_port = smap_get(&lsp->options, "router-port");
> + if (lsp->n_addresses == 1 && !strcmp(lsp->addresses[0], "router") &&
> + router_port) {
> + const struct nbrec_logical_router_port *lrp;
> + error = lrp_by_name_or_uuid(ctx, router_port, false, &lrp);
> + if (lrp) {
> + ds_put_format(&ctx->output, "%s", lrp->mac);
> + for (size_t j = 0; j < lrp->n_networks; j++) {
> + ds_put_format(&ctx->output, " %s", lrp->networks[j]);
> + }
> + ds_put_cstr(&ctx->output, "\n");
> + return;
> + }
> + }
> +
> svec_init(&addresses);
> for (i = 0; i < lsp->n_addresses; i++) {
> svec_add(&addresses, lsp->addresses[i]);
> @@ -4108,10 +4133,6 @@ nbctl_pre_lr_route_add(struct ctl_context *ctx)
>
> &nbrec_logical_router_static_route_col_external_ids);
> }
>
> -static char * OVS_WARN_UNUSED_RESULT
> -lrp_by_name_or_uuid(struct ctl_context *ctx, const char *id, bool must_exist,
> - const struct nbrec_logical_router_port **lrp_p);
> -
> static void
> nbctl_lr_route_add(struct ctl_context *ctx)
> {
> --
> 2.34.1
>
> _______________________________________________
> 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