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