On Tue, Aug 2, 2022 at 5:00 PM Dumitru Ceara <dce...@redhat.com> wrote:

> On 8/2/22 15:56, Mohammad Heib wrote:
> > HI Dumitru,
> > thank you for reviewing the patch,
> >
> >
> > On Tue, Aug 2, 2022 at 1:27 PM Dumitru Ceara <dce...@redhat.com> wrote:
> >
> >> On 7/19/22 15:33, Mohammad Heib wrote:
> >>> ovn-northd re-create sbrec row for lport of type
> >>> virtual when the type explicitly updated in NBDB.
> >>>
> >>> This approach was applied to handle container lport
> >>> type updates and avoid handling issues in the ovn-controller,
> >>> this patch expanded that approach to handle lport of type
> >>> virtual in the same way.
> >>>
> >>> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2099288
> >>> Fixes: cd3b685043fa (northd: handle container lport type update)
> >>> Signed-off-by: Mohammad Heib <mh...@redhat.com>
> >>> ---
> >>
> >> Hi Mohammad,
> >>
> >> Just a small comment below; with that addressed feel free to add my ack
> >> to v2:
> >>
> >> Acked-by: Dumitru Ceara <dce...@redhat.com>
> >>
> >>>  northd/northd.c | 31 ++++++++++++++++++-------------
> >>>  1 file changed, 18 insertions(+), 13 deletions(-)
> >>>
> >>> diff --git a/northd/northd.c b/northd/northd.c
> >>> index d31cb1688..d587bc98d 100644
> >>> --- a/northd/northd.c
> >>> +++ b/northd/northd.c
> >>> @@ -1856,9 +1856,9 @@ localnet_can_learn_mac(const struct
> >> nbrec_logical_switch_port *nbsp)
> >>>  static bool
> >>>  lsp_is_type_changed(const struct sbrec_port_binding *sb,
> >>>                  const struct nbrec_logical_switch_port *nbsp,
> >>> -                bool *is_old_container_lport)
> >>> +                bool *update_sbrec)
> >>>  {
> >>> -    *is_old_container_lport = false;
> >>> +    *update_sbrec = false;
> >>>      if (!sb || !nbsp) {
> >>>          return false;
> >>>      }
> >>> @@ -1870,13 +1870,19 @@ lsp_is_type_changed(const struct
> >> sbrec_port_binding *sb,
> >>>           */
> >>>          if ((!sb->parent_port && nbsp->parent_name) ||
> >>>                          (sb->parent_port && !nbsp->parent_name)) {
> >>> -            *is_old_container_lport = true;
> >>> +            *update_sbrec = true;
> >>>              return true;
> >>>          } else {
> >>>              return false;
> >>>          }
> >>>      }
> >>>
> >>> +    /* Cover cases where port changed to/from virtual port */
> >>> +    if ((sb->type[0] && !strcmp(sb->type, "virtual"))||
> >>> +            (nbsp->type[0] && !strcmp(nbsp->type, "virtual"))) {
> >>
> >> There's no need to check for sb->type[0] and nbsp->type[0].
> >>
> > actually, i want to make sure that I'm not doing strcmp with VIF
> port(null
> > type) that will lead to undefined behavior in strcmp.
> >
>
> Well, "sb->type[0]" is still undefined behavior if sb->type is NULL.  In
> any case, sb->type and nbsp->type can never be NULL.  The IDL code
> ensures the default to be "".
>
 yes you are right  sb->type[0] will be indeed undefined behavior if
sb->type is NULL,
i submitted v2 that addresses the comments above,
thank you.

>
> >>
> >> Also, there's a missing space before "||".
> >>
> > i added space to V2
> >
>
> Thanks!
>
>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to