The loose SONiC-name breakout path treats any four consecutive
EthernetN interfaces at <=50G as a 4xNG breakout without consulting
the port_config topology. Unifying breakout mode selection widened
this path to also emit 4x10G (via BREAKOUT_MODE_BY_SPEED), so a switch
whose native low-speed ports happen to be named Ethernet0..3 is now
misdetected as a breakout -- e.g. AS5835-54T (native 10G) or
DellEMC-S5212f / AS7326-56X (native 25G) fabricate a 4x10G/4x25G cage
that does not exist.
Add a topology gate on this path: accept the group as a breakout only
when the port_config confirms a single multi-lane master (Ethernet
{base}) whose intermediate lanes Ethernet{base+1..base+3} are absent
-- they materialize only when the cage is actually broken out. Four
separate single-lane entries are native ports and are now skipped.
Unlike the EthX/Y/Z path, a bare EthernetN name carries no explicit
breakout signal, so the port_config is the only local evidence.
This is a necessary-not-sufficient negative filter: it removes the
known native-port false positives but cannot by itself prove breakout
intent. A follow-up will add an explicit per-port breakout_mode
declaration as the authoritative signal.
Add a regression test covering four native single-lane 25G ports.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Roger Luethi <luethi@osism.tech>