On Thu, Mar 5, 2026 at 8:04 PM Mark Michelson via dev <
[email protected]> wrote:
> OpenStack Neutron may set specific external_ids on logical switches and
> logical routers in order to propagate those values into the
> corresponding southbound Datapath_Bindings. Specifically, OVN looks for
>
> * external-ids:neutron:network_name on logical switches, and
> * external-ids:neutron:router_name on logical routers.
>
> When refactoring datapath syncing in OVN 25.09, we mistakenly started
> reading these values from the wrong column. Specifically, we were
> reading:
>
> * other_config:neutron:network_name on logical switches, and
> * options:neutron:router_name on logical routers.
>
> This commit fixes the issue by reading from the external_ids column on
> both logical switches and logical routers.
>
> Fixes: 7bb513bcfda3 ("northd: Refactor datapath syncing.")
> Reported-at: https://issues.redhat.com/browse/FDP-3286
> Signed-off-by: Mark Michelson <[email protected]>
> ---
>
Hi Mark,
thank you for the fix. Should we take this opportunity and add
a simple test in ovn-northd.at? To prevent future regressions.
The test should cover all neutron options:
LS - neutron:network_name
LSP - neutron:port_name
LR - neutron:router_name
northd/en-datapath-logical-router.c | 2 +-
> northd/en-datapath-logical-switch.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/northd/en-datapath-logical-router.c
> b/northd/en-datapath-logical-router.c
> index ae44ddaf5..34c8b9c5a 100644
> --- a/northd/en-datapath-logical-router.c
> +++ b/northd/en-datapath-logical-router.c
> @@ -43,7 +43,7 @@ gather_external_ids(const struct nbrec_logical_router
> *nbr,
> struct smap *external_ids)
> {
> smap_add(external_ids, "name", nbr->name);
> - const char *neutron_router = smap_get(&nbr->options,
> + const char *neutron_router = smap_get(&nbr->external_ids,
> "neutron:router_name");
> if (neutron_router && neutron_router[0]) {
> smap_add(external_ids, "name2", neutron_router);
> diff --git a/northd/en-datapath-logical-switch.c
> b/northd/en-datapath-logical-switch.c
> index afe72003d..ad6d042bc 100644
> --- a/northd/en-datapath-logical-switch.c
> +++ b/northd/en-datapath-logical-switch.c
> @@ -111,7 +111,7 @@ gather_external_ids(const struct nbrec_logical_switch
> *nbs,
> struct smap *external_ids)
> {
> smap_add(external_ids, "name", nbs->name);
> - const char *neutron_network = smap_get(&nbs->other_config,
> + const char *neutron_network = smap_get(&nbs->external_ids,
> "neutron:network_name");
> if (neutron_network && neutron_network[0]) {
> smap_add(external_ids, "name2", neutron_network);
> --
> 2.52.0
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
Regards,
Ales
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev