[Bug 262316] em(4) does not autonegotiate when fixed media is set
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 262316] em(4) does not autonegotiate when fixed media is set"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 04 Mar 2022 20:56:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262316 --- Comment #4 from Stefan Eßer <se@FreeBSD.org> --- (In reply to J.R. Oldroyd from comment #2) Quoting the Duplex_mismatch article: ------------------------------------------------------------------- Duplex mismatch due to autonegotiation When a device set to autonegotiation is connected to a device that is not using autonegotiation, the autonegotiation process fails. The autonegotiating end of the connection is still able to correctly detect the speed of the other end, but cannot correctly detect the duplex mode. For backward compatibility with Ethernet hubs, the standard requires the autonegotiating device to use half duplex in these conditions. Therefore, the autonegotiating end of the connection uses half duplex while the non-negotiating peer is locked at full duplex, and this is a duplex mismatch. ------------------------------------------------------------------- I do not have access to a current version of the standard (802.3-2018), but when I last worked on an Ethernet driver the standard required a device to either participate in auto-negotiation or to be manually configured. In the latter case it does not respond to the auto-negotiation bursts from the other device, and therefore there is no mechanism that could let the other device detect wether the manually configured device is set to half-duplex or full-duplex. The standard does therefore require the device set to perform the auto-negotiation to select half-duplex mode. This mode offers less performance than full-duplex on both ends, but prevents an extreme amount of collisions to impact the network at large. There are not any hubs left, today, but AFAIK the above cited text is still part of the standard. A manually configured Ethernet device must ignore the auto-negotiation request. And half-duplex has been specified as the safe default mode. Use auto-negotiation on all interfaces. It has been specified more than 20 years ago, and if really should not work correctly, then manually configure *all* affected interfaces. I'm not going to close the PR again at this time - but I'll oppose any commit that violates the Ethernet standard. Please cite the IEEE-802.3 clause that changed the previously specified behavior in case of one auto-negotiating and one manually configured device, if this has actually been changed in a later version of the standard than I had access to. -- You are receiving this mail because: You are the assignee for the bug.