<div dir="auto">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 </div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Nov 2, 2026, 16:37 Bruce Richardson <<a href="mailto:bruce.richardson@intel.com">bruce.richardson@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Nov 02, 2026 at 10:55:43AM +0000, Loftus, Ciara wrote:<br>
> > Subject: [PATCH] net/ice: add explicit control of link auto-negotiation<br>
> > <br>
> > When selecting a fixed speed of the link, whether or not<br>
> > autonegotiation (e.g. AN Clause 37, etc.), needs to be enabled depends<br>
> > on the peer link. While commit 3dc2933866d9 ("net/ice: disable link<br>
> > negotiation for fixed speed selection") would allow link setup when the<br>
> > remote side also has a fixed link without AN37 auto-negotiation, it<br>
> > causes the link to flap up and down when e.g. two ports are connected<br>
> > back to back and only one is set to a fixed speed.<br>
> > <br>
> > Support both scenarios of auto-negotiation supported or unsupported on<br>
> > the remote end by adding an explicit driver option for disabling<br>
> > auto-negotiation when a fixed speed is selected. If no fixed speed<br>
> > setting, then new option does nothing.<br>
> > <br>
> > Fixes: 3dc2933866d9 ("net/ice: disable link negotiation for fixed speed<br>
> > selection")<br>
> > <br>
> > Signed-off-by: Bruce Richardson <<a href="mailto:bruce.richardson@intel.com" target="_blank" rel="noreferrer">bruce.richardson@intel.com</a>><br>
> > ---<br>
> > doc/guides/nics/ice.rst | 10 ++++++++++<br>
> > doc/guides/rel_notes/release_26_11.rst | 2 ++<br>
> > drivers/net/intel/ice/ice_ethdev.c | 12 +++++++++++-<br>
> > drivers/net/intel/ice/ice_ethdev.h | 1 +<br>
> > 4 files changed, 24 insertions(+), 1 deletion(-)<br>
> > <br>
> > diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst<br>
> > index ca3a94655b..af36341c9a 100644<br>
> > --- a/doc/guides/nics/ice.rst<br>
> > +++ b/doc/guides/nics/ice.rst<br>
> > @@ -107,6 +107,16 @@ Configuration<br>
> > Runtime Configuration<br>
> > ~~~~~~~~~~~~~~~~~~~~~<br>
> > <br>
> > +``auto_neg_disable`` (default ``0``)<br>
> > + Control hardware link negotiation when a fixed speed is requested with<br>
> > ``RTE_ETH_LINK_SPEED_FIXED``.<br>
> > + By default, the firmware's negotiation settings are preserved,<br>
> > + allowing a fixed-speed link to use negotiation such as Clause 37 when<br>
> > required by its peer.<br>
> > + Set ``auto_neg_disable=1`` to disable Clause 28, Clause 37 and Clause 73<br>
> > negotiation.<br>
> > + This option has no effect when automatic speed selection is requested.<br>
> > + For example::<br>
> > +<br>
> > + -a 80:00.0,auto_neg_disable=1<br>
> > +<br>
> <br>
> The approach looks good to me.<br>
> Something my AI review flagged was the setting of "link.link_autoneg"<br>
> in ice_link_update() - your patch doesn't update that setting, and it's still<br>
> just based off the dev_conf.link_speeds value, and doesn't take into account<br>
> the value of the devarg (unlike ice_apply_link_speed() which accounts for<br>
> both). Perhaps it's not necessary, just something to check.<br>
> Once that is addressed or ruled out:<br>
> <br>
> Acked-by: Ciara Loftus <<a href="mailto:ciara.loftus@intel.com" target="_blank" rel="noreferrer">ciara.loftus@intel.com</a>><br>
<br>
Yes, good catch. That is fixed in v2, but I've dropped your ack as some of<br>
the logic has been moved to a subfunction to avoid copy-pasting too much.<br>
</blockquote></div>