On 8/29/26 8:14 PM, Alexandra Rukomoinikova via dev wrote:
> Chassis rows for VTEP physical switches are created by
> ovn-controller-vtep, which never processes logical flows and therefore
> never advertises any feature in other_config. northd code only
> skipped remote chassis, so a single VTEP chassis disabled every
> feature for the whole deployment.
> 
> The most visible effect is ct_no_masked_label being turned off, which
> makes northd emit "ct_label.blocked" matches. That symbol was removed
> in f1f5c34f1acf ("northd: Assume all chassis support the
> "ct-no-masked-label" feature."), so any newer ovn-controller fails to
> parse ct_label actions during a rolling upgrade from version < 24.09.
> Skip VTEP chassis the same way remote ones are skipped.
> 

Hi Alexandra,

Thanks for the fix!

> [1] 
> https://github.com/ovn-org/ovn/commit/f1f5c34f1acfc01d625984e3b4ceeb840fb234b1
> Fixes: 40fe94bd4d4c ("northd: Use ct_mark.blocked and ecmp_reply_port only 
> when all chassis support it.")

Something happened with the SHA here, it should be:

Fixes: 40fe94bd42fd ("northd: Use ct_mark.blocked and ecmp_reply_port
only when all chassis support it.")

> Signed-off-by: Alexandra Rukomoinikova <[email protected]>
> ---
>  northd/en-global-config.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/northd/en-global-config.c b/northd/en-global-config.c
> index 4e6b07ebe..6dd5e0977 100644
> --- a/northd/en-global-config.c
> +++ b/northd/en-global-config.c
> @@ -532,8 +532,14 @@ build_chassis_features(const struct sbrec_chassis_table 
> *sbrec_chassis_table,
>      SBREC_CHASSIS_TABLE_FOR_EACH (chassis, sbrec_chassis_table) {
>          /* Only consider local AZ chassis.  Remote ones don't install
>           * flows generated by the local northd.
> +         *
> +         * Skip VTEP chassis too. Those are created by ovn-controller-vtep
> +         * (which doesn't process logical flows at all) and therefore never
> +         * advertise any feature in other_config. Taking them into account
> +         * would disable features for the whole deployment.
>           */
> -        if (smap_get_bool(&chassis->other_config, "is-remote", false)) {
> +        if (smap_get_bool(&chassis->other_config, "is-remote", false) ||
> +            smap_get_bool(&chassis->other_config, "is-vtep", false)) {
>              continue;
>          }
>  

I amended the "Fixes" tag and pushed this patch to main, 26.09, 26.03
and 25.09.

It might be good to add a small unit test for this scenario.  Would you
have time to post a patch with that as a follow up?

Thanks,
Dumitru


_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to