09 July 2009

Autonegotiation

Autonegotiation is an Ethernet procedure by which two connected devices choose common transmission parameters, such as speed and duplex mode.

In the OSI model, autonegotiation resides in the physical layer.
It is defined in the IEEE standard 802.3ab.

Fast link pulse (FLP) burst
The FLP signals are generated automatically at power-up; it is used to send information about device capabilities.
The pulse is transmitted with a repeating sequence of a 16 ± 8-ms.

The FLP burst is made as follows:
There are 17 pulses at distance 125 µs. In the middle between each set of two consecutive pulses, another pulse may or may not be present. The presence of a pulse represents a logical 1, the absence a logical 0.
As a result, every burst represents a logical word of 16 bits called link code word (LCW).



A link is considered down if neither a packet nor the pulses are received for 50-150 ms.

If a dual-speed 10/100 Ethernet interface with Auto-Negotiation is connected to a 10BASE-T hub that does not have Auto-Negotiation, the interface will generate FLPs but will only receive NLPs from the 10BASE-T hub. The Auto-Negotiation protocol in the interface will detect the presence of Normal Link Pulses and automatically place the interface in 10BASE-T mode.

When an Auto-Negotiation hub with multiple capabilities in its ports is connected to an interface that only supports 100BASE-TX and is not equipped with Auto-Negotiation, the Auto-Negotiation protocol will set the hub port to operate in 100BASE-TX mode.


For copper-based boards, the keywords interact as follows:
The default operation is auto-negotiate. The board advertises all supported speed and duplex combinations, and it links at the highest common speed and duplex mode IF the link partner is set to auto-negotiate.
If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is advertised.
If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD also be forced.

-------------------------------------------------
ethtool is a Linux net driver diagnostic and tuning tool for the Linux 2.4.x (or later) series of kernels.

ethtool eth0
ethtool –s eth0 speed 100 duplex full autoneg off
ethtool –s eth0 autoneg on

Reference:
http://en.wikipedia.org/wiki/Autonegotiation
http://www.foundrynet.com/ss/resource-center/ethernet-auto.html

No comments:

Post a Comment