Page MenuHomePhabricator

Nokia: how to approach schema differences in SR-Linux versions
Open, LowPublic

Description

The Nokia switches in codfw are now running SR-Linux v25.10.1, which we understand is not susceptible to the ARP bug (T409178) we have hit on v24.10.

Schema diff

This has led to a problem running Homer, as the produced device configuration for the switches won't apply. For example the first problem that is being reported is how prefix-lists are referenced in a routing policy.

Version 24.10.4:

match {
    prefix-set overlay_loopback4
}

Version 25.10.1:

match {
    prefix {
        prefix-set overlay_loopback4
    }
}

The actual difference is fairly minor but we need to have a strategy to deal with these things.

Options

Get version from the device

The best approach may be for Homer to initially connect to the device and retrieve its OS version, and then we can use this to adjust the generated config to the required schema for one or other version. The downside of that approach is it would mean "generate" requires a network connection, access to the device, an online device etc. So that may not be ideal.

Store version in Netbox

We could store the version in Netbox, in the platform attribute or something. But this seems like a big commitment to maintain (current OS/software version stored in Netbox)

YAML vars

Another approach may be to use our YAML vars to store the version a device is running. Particularly we could just add the var for "non standard" releases here, and hopefully keep most of the estate on the same major release.

This might be the simplest short-term fix to allow for usage of the devices in codfw/ulsfo, but may not be a great strategy long term.

Event Timeline

cmooney triaged this task as High priority.

Change #1216869 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Nokia: add support for SR-Linux v25 or v24

https://gerrit.wikimedia.org/r/1216869

I think the ideal would be to store all the OS versions (Debian, Juniper, Nokia) in Netbox, to for example not have to set the --os parameter in the reimage cookbook, or drive the ZTP process. But we're far from it, so +1 for using a YAML variable.

I think the ideal would be to store all the OS versions (Debian, Juniper, Nokia) in Netbox, to for example not have to set the --os parameter in the reimage cookbook, or drive the ZTP process. But we're far from it, so +1 for using a YAML variable.

Ok thanks for the input. Yeah I've no objection to that, I don't think it would be that hard for us to maintain - at least for the network gear.

Change #1216869 merged by jenkins-bot:

[operations/homer/public@master] Nokia: add support for SR-Linux v25 or v24

https://gerrit.wikimedia.org/r/1216869

Change #1219809 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Nokia: set FEC mode explicity for all 100G links on v25

https://gerrit.wikimedia.org/r/1219809

Change #1219809 merged by jenkins-bot:

[operations/homer/public@master] Nokia: set FEC mode explicity for all 100G links on v25

https://gerrit.wikimedia.org/r/1219809

cmooney lowered the priority of this task from High to Low.Dec 19 2025, 10:39 AM