[Bug 262316] em(4) does not autonegotiate when fixed media is set

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 04 Mar 2022 21:45:00 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262316

--- Comment #6 from J.R. Oldroyd <fbsd@opal.com> ---
(In reply to Stefan Eßer from comment #4)

To be clear, I would also oppose any commit that violates the Ethernet
standard.

I do now have the latest standard here, the 2018 version, in addition to my
2008 version.

The standard does say that auto-negotiation is optional.  And it defines
half-duplex mode as the choice for when a peer does not respond to autoneg. 
This was to allow very old devices that did not have autoneg support to still
work with newer devices that do have autoneg.

But the statements:

> the standard required a device to either participate in auto-negotiation or to be manually configured.

>  A manually configured Ethernet device must ignore the auto-negotiation request.

are not correct by my reading.  I do not see such statements.

As I read it, a manually configured device may (in fact, it is highly
recommended to) still participate in auto-negotiaton but it should limit what
capabilities it advertizes to just those that have been configured.  That way,
the other end can match the configured capability if it has them.  If not,
autoneg will fail and the non-manually configured end is required to go to
half-duplex which may result in a duplex mismatch.

The standard requires participation in autoneg when manually configured for
1000base and that is already implemented in the em(4) driver.  It is optional
but not prohibited for 100base and 10base.  By my reading, it is "highly
recommended" that a device participate in autoneg if it has the capability.

-- 
You are receiving this mail because:
You are the assignee for the bug.