It seems that IT professionals have different views on auto-negotiation, some recommend using it others prefer to not use it at all. What’s the reason behind this variation ?
The whole stigma around auto-negotiation is the result of open interpretation, at the time(90s) vendors agreed that auto-negotiation was a neat idea, but like always each vendor had its own interpretation of auto-negotiation. This lead to auto-negotiation being unable to work between vendor A and vendor B. Rather than have a malfunctioning link the solution at the time was to manually set the speed and duplex, this meant that adapters and switches from different vendors would be able to work with each other.
Despite the improvements and ratifications over the years auto-negotiation still enjoys a not so favorable reputation in the IT community, To summarize, the problem was that auto-negotiation back then was not the same standard we have today.
In the early years…
- 1995 IEEE802.3u released.
- 1998 Open / different interpretations of IEEE802.3 were ended after being ratified that year.
- 1999 IEEE802.3ab brought gigabit Ethernet and mandated auto-negotiation on 1000BASE-T aka gigabit Ethernet over copper.
As you can see with every sequential release auto-negotiation went from being loosely mandated to required on gigabit Ethernet.
All 1000BASE-T PHYs shall provide support for Auto-Negotiation (Clause 28) and shall be capable of operating as MASTER or SLAVE. Auto-Negotiation is performed as part of the initial set-up of the link, and allows the PHYs at each end to advertise their capabilities (speed, PHY type, half or full duplex) and to automatically select the operating mode for communication on the link.
Auto-negotiation signaling is used for the following two primary purposes for 1000BASE-T:
To negotiate that the PHY is capable of supporting 1000BASE-T half duplex or full duplex transmission.
To determine the MASTER-SLAVE relationship between the PHYs at each end of the link. 1000BASE-T MASTER PHY is c from a local source. The SLAVE PHY uses loop timing where the clock is recovered from the received data stream.
Clause 40.5.1 IEEE 802.3 standard.
The rule of thumb should be to let auto-negotiation happen unless for some reason you still have legacy equipment in the network.