On Mon, Nov 02, 2026 at 05:26:24PM +0100, Stephen Hemminger wrote: > why is auto negotiation disable a devarg rather than extending relevant > part of ethdev? my opinion is every time a devarg like this gets added > it means the ethdev abstraction is the real issue > Yes, it could well be.
Digging more into the ethdev API and drivers, it may just be that the limitation is simply one of documentation clarity and testpmd's use of the APIS. Specifically, what does it mean to specify the RTE_ETH_LINK_SPEED_FIXED flag, and what does it mean to specify a particular speed without the flag being given. From what I see we have 3 options: 1. autonegotiate speed setting, e.g. choose highest supported of 10G, 2.5G or 1G for a given 10G NIC 2. allow only one particular speed but leave negotiation still enabled, e.g. set speed to 1G but leave AN37 enabled. This allows setting to 1G when other side has auto-negotiation enabled 3. set to a single speed and disable negotiation, e.g. set 1G fixed with AN37 disabled. This would be for compatibility with links not supporting negotiation, or where both sides explicitly set the speed. Setting #1 is default and well understood. However, the difference between settings #2 and #3 doesn't seem to be called out anywhere explicitly in our docs for ethdev. I would imagine that #2 is where we specify a given link speed (or maybe speeds), but without RTE_LINK_SPEED_FIXED set in the bitmap. That would mean that #3 would be a single speed setting passed and RTE_LINK_SPEED_FIXED set. Unfortunately, though, testpmd always sets the FIXED flag when we specify a link speed, meaning that scenarios #2 and #3 are indistinguishable. Asking AI to do a quick scan of the drivers indicates that some will leave negotiation on with a fixed speed, others keep it off. Some ignore the fixed flag and never check for it, and some just don't support disabling autonegotiation completely. Would a good solution be to extend the testpmd command to allow the FIXED flag setting to be configurable rather than assumed as part of the speed setting? That would at least clarify the behaviour and allow testing the various options /Bruce

