On Tue, May 10, 2022 at 4:22 PM Mark Michelson <[email protected]> wrote:

> Thanks for this, Lorenzo.
>
> Acked-by: Mark Michelson <[email protected]>
>

Thanks.  I applied this patch to the main branch.

Numan

>
> On 4/27/22 06:47, Lorenzo Bianconi wrote:
> > Dump load balancers belonging to the load_balancer groups attached to the
> > specified logical switch/logical router running ls-lb-list/lr-lb-list.
> >
> > Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2059261
> > Signed-off-by: Lorenzo Bianconi <[email protected]>
> > ---
> >   tests/ovn-nbctl.at    | 70 +++++++++++++++++++++++++++++++++++++++++--
> >   utilities/ovn-nbctl.c | 54 +++++++++++++++++++++++++++++++++
> >   2 files changed, 122 insertions(+), 2 deletions(-)
> >
> > diff --git a/tests/ovn-nbctl.at b/tests/ovn-nbctl.at
> > index f9b9defd0..2388eba2e 100644
> > --- a/tests/ovn-nbctl.at
> > +++ b/tests/ovn-nbctl.at
> > @@ -997,6 +997,30 @@ AT_CHECK([ovn-nbctl ls-lb-del ls0 lb3])
> >   AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
> >   AT_CHECK([ovn-nbctl --if-exists ls-lb-del ls0 lb1])
> >
> > +AT_CHECK([ovn-nbctl lb-add lb4 40.0.0.10 162.168.10.10,162.168.10.20])
> > +AT_CHECK([ovn-nbctl lb-add lb5 50.0.0.10 172.168.10.10,172.168.10.20])
> > +AT_CHECK([ovn-nbctl lb-add lb6 60.0.0.10 182.168.10.10,182.168.10.20])
> > +
> > +lb4=$(fetch_column nb:load_balancer _uuid name=lb4)
> > +lb5=$(fetch_column nb:load_balancer _uuid name=lb5)
> > +lb6=$(fetch_column nb:load_balancer _uuid name=lb6)
> > +
> > +lbg=$(ovn-nbctl create load_balancer_group name=lbg -- \
> > +  add load_balancer_group lbg load_balancer $lb4 -- \
> > +  add load_balancer_group lbg load_balancer $lb5 -- \
> > +  add load_balancer_group lbg load_balancer $lb6)
> > +
> > +AT_CHECK([ovn-nbctl add logical_switch ls0 load_balancer_group $lbg])
> > +
> > +AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
> > +UUID                                    LB                  PROTO
> VIP          IPs
> > +<0>    lb4                 tcp        40.0.0.10
> 162.168.10.10,162.168.10.20
> > +<1>    lb5                 tcp        50.0.0.10
> 172.168.10.10,172.168.10.20
> > +<2>    lb6                 tcp        60.0.0.10
> 182.168.10.10,182.168.10.20
> > +])
> > +
> > +AT_CHECK([ovn-nbctl remove logical_switch ls0 load_balancer_group $lbg])
> > +
> >   dnl Remove all load balancers from logical switch.
> >   AT_CHECK([ovn-nbctl ls-lb-add ls0 lb0])
> >   AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
> > @@ -1046,7 +1070,16 @@ AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
> >   AT_CHECK([ovn-nbctl lb-del lb0])
> >   AT_CHECK([ovn-nbctl lb-del lb1])
> >   AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
> > -AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])])
> > +AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
> > +
> > +AT_CHECK([ovn-nbctl add logical_router lr0 load_balancer_group $lbg])
> > +
> > +AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
> > +UUID                                    LB                  PROTO
> VIP          IPs
> > +<0>    lb4                 tcp        40.0.0.10
> 162.168.10.10,162.168.10.20
> > +<1>    lb5                 tcp        50.0.0.10
> 172.168.10.10,172.168.10.20
> > +<2>    lb6                 tcp        60.0.0.10
> 182.168.10.10,182.168.10.20
> > +])])
> >
> >   dnl
> ---------------------------------------------------------------------
> >
> > @@ -1271,6 +1304,30 @@ AT_CHECK([ovn-nbctl ls-lb-add ls0 lb3])
> >   AT_CHECK([ovn-nbctl ls-lb-del ls0])
> >   AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
> >
> > +AT_CHECK([ovn-nbctl lb-add lb4 [[ae07::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80])
> > +AT_CHECK([ovn-nbctl lb-add lb5 [[ae08::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80 udp])
> > +AT_CHECK([ovn-nbctl lb-add lb6 ae09::10 fd0f::10,fd0f::20])
> > +
> > +lb4=$(fetch_column nb:load_balancer _uuid name=lb4)
> > +lb5=$(fetch_column nb:load_balancer _uuid name=lb5)
> > +lb6=$(fetch_column nb:load_balancer _uuid name=lb6)
> > +
> > +lbg=$(ovn-nbctl create load_balancer_group name=lbg -- \
> > +  add load_balancer_group lbg load_balancer $lb4 -- \
> > +  add load_balancer_group lbg load_balancer $lb5 -- \
> > +  add load_balancer_group lbg load_balancer $lb6)
> > +
> > +AT_CHECK([ovn-nbctl add logical_switch ls0 load_balancer_group $lbg])
> > +
> > +AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
> > +UUID                                    LB                  PROTO
> VIP              IPs
> > +<0>    lb4                 tcp        [[ae07::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80
> > +<1>    lb5                 udp        [[ae08::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80
> > +<2>    lb6                 tcp        ae09::10         fd0f::10,fd0f::20
> > +])
> > +
> > +AT_CHECK([ovn-nbctl remove logical_switch ls0 load_balancer_group $lbg])
> > +
> >   dnl Add load balancer to logical router.
> >   AT_CHECK([ovn-nbctl lr-add lr0])
> >   AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
> > @@ -1305,7 +1362,16 @@ AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
> >   AT_CHECK([ovn-nbctl lr-lb-add lr0 lb1])
> >   AT_CHECK([ovn-nbctl lr-lb-add lr0 lb3])
> >   AT_CHECK([ovn-nbctl lr-lb-del lr0])
> > -AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])])
> > +AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
> > +
> > +AT_CHECK([ovn-nbctl add logical_router lr0 load_balancer_group $lbg])
> > +
> > +AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
> > +UUID                                    LB                  PROTO
> VIP              IPs
> > +<0>    lb4                 tcp        [[ae07::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80
> > +<1>    lb5                 udp        [[ae08::10]]:80
> [[fd0f::10]]:80,[[fd0f::20]]:80
> > +<2>    lb6                 tcp        ae09::10         fd0f::10,fd0f::20
> > +])])
> >
> >   dnl
> ---------------------------------------------------------------------
> >
> > diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c
> > index e747f6933..d09fd5963 100644
> > --- a/utilities/ovn-nbctl.c
> > +++ b/utilities/ovn-nbctl.c
> > @@ -3233,10 +3233,16 @@ nbctl_pre_lr_lb_list(struct ctl_context *ctx)
> >   {
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_logical_router_col_name);
> >       ovsdb_idl_add_column(ctx->idl,
> &nbrec_logical_router_col_load_balancer);
> > +    ovsdb_idl_add_column(ctx->idl,
> > +                         &nbrec_logical_router_col_load_balancer_group);
> >
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_name);
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_protocol);
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_vips);
> > +
> > +    ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_group_col_name);
> > +    ovsdb_idl_add_column(ctx->idl,
> > +                         &nbrec_load_balancer_group_col_load_balancer);
> >   }
> >
> >   static void
> > @@ -3252,16 +3258,37 @@ nbctl_lr_lb_list(struct ctl_context *ctx)
> >           ctx->error = error;
> >           return;
> >       }
> > +
> >       for (int i = 0; i < lr->n_load_balancer; i++) {
> >           const struct nbrec_load_balancer *lb
> >               = lr->load_balancer[i];
> >           vip_width = lb_get_max_vip_length(lb, vip_width);
> >       }
> > +    for (int i = 0; i < lr->n_load_balancer_group; i++) {
> > +        const struct nbrec_load_balancer_group *lbg
> > +            = lr->load_balancer_group[i];
> > +        for (int j = 0; j < lbg->n_load_balancer; j++) {
> > +            const struct nbrec_load_balancer *lb
> > +                = lbg->load_balancer[j];
> > +            vip_width = lb_get_max_vip_length(lb, vip_width);
> > +        }
> > +    }
> > +
> >       for (int i = 0; i < lr->n_load_balancer; i++) {
> >           const struct nbrec_load_balancer *lb
> >               = lr->load_balancer[i];
> >           lb_info_add_smap(lb, &lbs, vip_width);
> >       }
> > +    /* Add load balancer groups. */
> > +    for (int i = 0; i < lr->n_load_balancer_group; i++) {
> > +        const struct nbrec_load_balancer_group *lbg
> > +            = lr->load_balancer_group[i];
> > +        for (int j = 0; j < lbg->n_load_balancer; j++) {
> > +            const struct nbrec_load_balancer *lb
> > +                = lbg->load_balancer[j];
> > +            lb_info_add_smap(lb, &lbs, vip_width);
> > +        }
> > +    }
> >
> >       lb_info_print(ctx, &lbs, vip_width);
> >       smap_destroy(&lbs);
> > @@ -3369,10 +3396,16 @@ nbctl_pre_ls_lb_list(struct ctl_context *ctx)
> >   {
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_logical_switch_col_name);
> >       ovsdb_idl_add_column(ctx->idl,
> &nbrec_logical_switch_col_load_balancer);
> > +    ovsdb_idl_add_column(ctx->idl,
> > +                         &nbrec_logical_switch_col_load_balancer_group);
> >
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_name);
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_protocol);
> >       ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_col_vips);
> > +
> > +    ovsdb_idl_add_column(ctx->idl, &nbrec_load_balancer_group_col_name);
> > +    ovsdb_idl_add_column(ctx->idl,
> > +                         &nbrec_load_balancer_group_col_load_balancer);
> >   }
> >
> >   static void
> > @@ -3388,16 +3421,37 @@ nbctl_ls_lb_list(struct ctl_context *ctx)
> >           ctx->error = error;
> >           return;
> >       }
> > +
> >       for (int i = 0; i < ls->n_load_balancer; i++) {
> >           const struct nbrec_load_balancer *lb
> >               = ls->load_balancer[i];
> >           vip_width = lb_get_max_vip_length(lb, vip_width);
> >       }
> > +    for (int i = 0; i < ls->n_load_balancer_group; i++) {
> > +        const struct nbrec_load_balancer_group *lbg
> > +            = ls->load_balancer_group[i];
> > +        for (int j = 0; j < lbg->n_load_balancer; j++) {
> > +            const struct nbrec_load_balancer *lb
> > +                = lbg->load_balancer[j];
> > +            vip_width = lb_get_max_vip_length(lb, vip_width);
> > +        }
> > +    }
> > +
> >       for (int i = 0; i < ls->n_load_balancer; i++) {
> >           const struct nbrec_load_balancer *lb
> >               = ls->load_balancer[i];
> >           lb_info_add_smap(lb, &lbs, vip_width);
> >       }
> > +    /* Add load balancer groups. */
> > +    for (int i = 0; i < ls->n_load_balancer_group; i++) {
> > +        const struct nbrec_load_balancer_group *lbg
> > +            = ls->load_balancer_group[i];
> > +        for (int j = 0; j < lbg->n_load_balancer; j++) {
> > +            const struct nbrec_load_balancer *lb
> > +                = lbg->load_balancer[j];
> > +            lb_info_add_smap(lb, &lbs, vip_width);
> > +        }
> > +    }
> >
> >       lb_info_print(ctx, &lbs, vip_width);
> >       smap_destroy(&lbs);
> >
>
> _______________________________________________
> 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