|
Description
|
The ieee802.3(5) man page (see "man ieee802.3") documents various statistics and
configuration parameters that may be used ot monitor and configure the Ethernet
physical layer.
Unfortunately these parameters are not uniformly implemented across drivers
causing a lot of confusion to customers.
For example, some drivers use "link_mode" while others use "link_duplex".
Some nics use link_mode 0=hdx 1=fdx, others use link_duplex 1=hdx 2=fdx.
Most drivers implement the ndd parameter "adv_autoneg_cap" even though the
ieee802.3 man page documents this as adv_cap_autoneg.
Since ndd syntax is Unstable by definition, we should get the code to conform
to the man page in the Nevada release.
The situation with flow control also exemplifies the mess that exists in the
ieee802.3(5) man page:
Drivers implements flowcontrol differently, mostly in below categories:
1. Using a "flowcontrl" in driver.conf, like bnx, e1000g, and some outside
drivers
Typically, like this:
FlowControl=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;
# 0: Flow control is completely disabled
# 1: Rx flow control is enabled (we can receive pause frames
# but not send pause frames).
# 2: Tx flow control is enabled (we can send pause frames
# but we do not receiving pause frames).
# 3: Both Rx and TX flow control (symmetric) is enabled.
# 4: No software override. The flow control configuration
# in the EEPROM is used.
2. Using ndd to tune adv_cap_asmpause and adv_cap_pause,
like bge/nge/rge etc. For example,
ndd -set /dev/bge0 adv_cap_asmpause 1
Why it mess:
Different driver's using different ways, sometimes driver.conf
and sometimes ndd. Even using ndd, the same parameters are possibly
different, some uses adv_cap_asmpause and some adv_cap_asym_pause.
User are completely confused by this and make pause setting tricky.
here's what is available on a few commonly encountered drivers:
ieee802.3(5) bge e1000g nge
pause_cap pause_cap pause_cap pause_cap
adv_asmpause_cap adv_asym_pause_cap adv_asym_pause_cap adv_asym_pause_cap
asmpause_cap asym_pause_cap asym_pause_cap asym_pause_cap
adv_pause_cap adv_pause_cap adv_pause_cap adv_pause_cap
lp_pause_cap lp_pause_cap lp_pause_cap lp_pause_cap
lp_asmpause_cap lp_asym_pause_cap lp_asym_pause_cap lp_asym_pause_cap
link_rx_pause link_rx_pause -- link_rx_pause
link_tx_pause link_tx_pause -- link_tx_pause
link_pause -- -- --
link_asmpause -- -- --
|