On Thu, Sep 30, 2021 at 8:32 AM Frode Nordahl
<frode.nord...@canonical.com> wrote:
>
> On Mon, Sep 27, 2021 at 2:05 PM Benjamin Reichel <b.reic...@syseleven.de> 
> wrote:
> >
> > Hi everyone,
> >
> > We are using OVN together with Openstack(Ussuri) with one of the late 
> > master versions of ovn (83296a42e) and we see the following issue. After 
> > booting a VM it is not possible to reach the metadata service in the 
> > corresponding network namespace of the neutron-ovn-metadata-agent.service.
> >
> > It also turned out that a recompute of the rules on the ovn-controller 
> > fixes the issue. After more debugging we could identify the change that 
> > introduced this situation:
> >
> > commit d4bca93c0851c2f0b739411cd49ce32e3b8263bb "controller: Don't allocate 
> > zone ids for non-VIF port bindings."
> >
> > diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
> > index 678419ab3..739048cf8 100644
> > --- a/controller/ovn-controller.c
> > +++ b/controller/ovn-controller.c
> > @@ -1919,6 +1919,11 @@ ct_zones_runtime_data_handler(struct engine_node 
> > *node, void *data)
> >          struct shash_node *shash_node;
> >          SHASH_FOR_EACH (shash_node, &tdp->lports) {
> >              struct tracked_lport *t_lport = shash_node->data;
> > +            if (strcmp(t_lport->pb->type, "")) {
> > +                /* We allocate zone-id's only to VIF lports. */
> > +                continue;
> > +            }
> > +
> >              if (t_lport->tracked_type == TRACKED_RESOURCE_NEW) {
> >                  if (!simap_contains(&ct_zones_data->current,
> >                                      t_lport->pb->logical_port)) {
> >
> > Anyone has an idea how to fix it?
>
> Thank you for reporting this issue, I see the same thing here. Adding
> "localport" to the approved list of lport types in the above mentioned
> check resolves this specific issue:
>
> diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
> index a719beb0e..4202f32cc 100644
> --- a/controller/ovn-controller.c
> +++ b/controller/ovn-controller.c
> @@ -1919,8 +1919,9 @@ ct_zones_runtime_data_handler(struct engine_node
> *node, void *data)
>          struct shash_node *shash_node;
>          SHASH_FOR_EACH (shash_node, &tdp->lports) {
>              struct tracked_lport *t_lport = shash_node->data;
> -            if (strcmp(t_lport->pb->type, "")) {
> -                /* We allocate zone-id's only to VIF lports. */
> +            if (strcmp(t_lport->pb->type, "")
> +                && strcmp(t_lport->pb->type, "localport")) {
> +                /* We allocate zone-id's only to VIF and localport lports. */
>                  continue;
>              }
>
> But it makes me wonder if other types should be on that list as well,
> I added the authors of the two last changes in this area to Cc to see
> if they have any insights and will also have a look at comparing the
> output of the old and new implementation.

Posted a formal patch here:
https://mail.openvswitch.org/pipermail/ovs-dev/2021-September/388199.html

-- 
Frode Nordahl

> --
> Frode Nordahl
>
> > Regards,
> > Benjamin
> >
> > _______________________________________________
> > discuss mailing list
> > disc...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to