Re: [PATCH 2/2] net: sfp: support 25G long-range modules (extended compliance code 0x3)

From: Josua Mayer

Date: Wed Jan 21 2026 - 04:54:58 EST


On 19/01/2026 21:30, Jakub Kicinski wrote:
> On Sun, 18 Jan 2026 16:07:38 +0200 Josua Mayer wrote:
>> @@ -247,6 +247,7 @@ static void sfp_module_parse_support(struct sfp_bus *bus,
>> case SFF8024_ECC_100GBASE_LR4_25GBASE_LR:
>> case SFF8024_ECC_100GBASE_ER4_25GBASE_ER:
>> phylink_set(modes, 100000baseLR4_ER4_Full);
>> + phylink_set(modes, 25000baseLR_Full);
> I _think_ the discussion here concluded that the patch is insufficient
> / DoA? Either way, I wanted to relay that AI code review points out
> we may also want to set __set_bit(PHY_INTERFACE_MODE_25GBASER,
> interfaces) here:
>
> https://netdev-ai.bots.linux.dev/ai-review.html?id=c91c0f54-56d5-4356-89cd-b57cbb289495
>
I concluded the following:

1. there is no confusion with qsfp / 4 serdes lanes

2. 25GBASER is indeed missing, because this case does not fallthrough.

Something open for discussion is whether to handle
SFF8024_ECC_100GBASE_LR4_25GBASE_LR/_ER differently, e.g.:

    case SFF8024_ECC_100GBASE_LR4_25GBASE_LR:
        phylink_set(modes, 25000baseLR_Full);
        fallthrough;
    case SFF8024_ECC_100GBASE_ER4_25GBASE_ER:
        phylink_set(modes, 100000baseLR4_ER4_Full);
        __set_bit(PHY_INTERFACE_MODE_25GBASER, interfaces);
        break;

I.e. should the ER variant support 25000baseLR_Full?