On 16.09.2026 01:11, Dumitru Ceara wrote:
> 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?

Hi! Sorry I didn't add the test right away; I sent it in a separate patch.

Thanks!

>
> Thanks,
> Dumitru


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

Reply via email to