On Mon, Sep 27, 2021 at 2:05 PM Benjamin Reichel <[email protected]> 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.
--
Frode Nordahl
> Regards,
> Benjamin
>
> _______________________________________________
> discuss mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss