Acked-by: Lucas Vargas Dias <[email protected]>
Em qua., 2 de set. de 2026 às 18:18, Paulo Guilherme Silva
<[email protected]> escreveu:
> en-global-config.c decided IC VXLAN mode (and therefore the datapath
> tunnel-id range) using smap_get(), which is true whenever the key EXISTS.
> ovn-ic stamps other_config:ic-vxlan_mode on every transit switch,
> including the literal value "false". As a result northd treated plain
> Geneve deployments as VXLAN-IC and capped max_dp_tunnel_id at
> OVN_MAX_DP_VXLAN_KEY_LOCAL (1023); past ~1023 local datapaths northd
> fails datapath tunnel-id allocation and the SB never converges.
>
> Read the boolean value with smap_get_bool() instead.
>
> Fixes: 059763e8683d ("ic: Fix vxlan encap mode.")
> Assisted-by: Claude Opus 4.8, Claude Code
> Signed-off-by: Paulo Guilherme Silva <[email protected]>
> ---
> northd/en-global-config.c | 4 ++--
> tests/ovn-northd.at | 18 ++++++++++++++++++
> 2 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/northd/en-global-config.c b/northd/en-global-config.c
> index 4e6b07ebe..f31e7d3f2 100644
> --- a/northd/en-global-config.c
> +++ b/northd/en-global-config.c
> @@ -187,7 +187,7 @@ en_global_config_run(struct engine_node *node , void
> *data)
> bool ic_vxlan_mode = false;
> const struct nbrec_logical_switch *nbs;
> NBREC_LOGICAL_SWITCH_TABLE_FOR_EACH (nbs, nbrec_ls_table) {
> - if (smap_get(&nbs->other_config, "ic-vxlan_mode")) {
> + if (smap_get_bool(&nbs->other_config, "ic-vxlan_mode", false)) {
> ic_vxlan_mode = true;
> break;
> }
> @@ -478,7 +478,7 @@ global_config_nb_logical_switch_handler(struct
> engine_node *node,
> bool ic_vxlan_mode = false;
> const struct nbrec_logical_switch *nbs;
> NBREC_LOGICAL_SWITCH_TABLE_FOR_EACH (nbs, nbrec_ls_table) {
> - if (smap_get(&nbs->other_config, "ic-vxlan_mode")) {
> + if (smap_get_bool(&nbs->other_config, "ic-vxlan_mode", false)) {
> ic_vxlan_mode = true;
> break;
> }
> diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> index 1e567704d..48dac8512 100644
> --- a/tests/ovn-northd.at
> +++ b/tests/ovn-northd.at
> @@ -3392,6 +3392,24 @@ check ovn-nbctl --wait=sb set logical-switch LS
> other-config:interconn-ts=LS
> check ovn-nbctl --wait=sb set logical-switch LS
> other-config:ic-vxlan_mode=true
> AT_CHECK([test "$(get_max_tunid)" -eq 1023])
>
> +dnl ovn-ic stamps ic-vxlan_mode on every transit switch, including with
> the
> +dnl value "false". Only a true value must restrict the tunnel key range.
> +check ovn-nbctl --wait=sb set logical-switch LS
> other-config:ic-vxlan_mode=false
> +AT_CHECK([test "$(get_max_tunid)" -eq 4095])
> +
> +dnl Anything that is not a boolean true is treated as false.
> +check ovn-nbctl --wait=sb set logical-switch LS
> other-config:ic-vxlan_mode=foo
> +AT_CHECK([test "$(get_max_tunid)" -eq 4095])
> +
> +dnl The same must hold on a full recompute, not only on the incremental
> path.
> +check ovn-appctl -t northd/ovn-northd inc-engine/recompute
> +check ovn-nbctl --wait=sb sync
> +AT_CHECK([test "$(get_max_tunid)" -eq 4095])
> +
> +dnl Setting it back to true restricts the range again.
> +check ovn-nbctl --wait=sb set logical-switch LS
> other-config:ic-vxlan_mode=true
> +AT_CHECK([test "$(get_max_tunid)" -eq 1023])
> +
> check ovn-nbctl --wait=sb clear logical-switch LS other-config
> AT_CHECK([test "$(get_max_tunid)" -eq 4095])
>
> --
> 2.34.1
>
>
> --
>
>
>
>
> _'Esta mensagem é direcionada apenas para os endereços constantes no
> cabeçalho inicial. Se você não está listado nos endereços constantes no
> cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa
> mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas
> estão
> imediatamente anuladas e proibidas'._
>
>
> * **'Apesar do Magazine Luiza tomar
> todas as precauções razoáveis para assegurar que nenhum vírus esteja
> presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por
> quaisquer perdas ou danos causados por esse e-mail ou por seus anexos'.*
>
>
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
--
_‘Esta mensagem é direcionada apenas para os endereços constantes no
cabeçalho inicial. Se você não está listado nos endereços constantes no
cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa
mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão
imediatamente anuladas e proibidas’._
* **‘Apesar do Magazine Luiza tomar
todas as precauções razoáveis para assegurar que nenhum vírus esteja
presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por
quaisquer perdas ou danos causados por esse e-mail ou por seus anexos’.*
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev