Name | Description | See Also | Notes
This page describes the kernel statistics and the ndd(1M) configuration parameters used to monitor and configure the Ethernet physical layer.
The cap_* parameters exist in the kernel statistics for an Ethernet device. The parameters describe the maximum capability of a device. When the value of a statistic is 1, the device has the capability described. When the value is 0, the device does not have the capability.
The exceptions to this rule are the cap_asmpause and cap_pause parameters which are explained later in the page.
Capable of auto-negotiation
Capable of 1000 full duplex operation
Capable of 1000 half duplex operation
Capable of 100 full duplex operation
Capable of 100 half duplex operation
Capable of 10 full duplex operation
Capable of 10 half duplex operation
Capable of reporting locally detected faults to link partner
The adv_cap_* parameters exist in the kernel statistics and represent a mirror image of the ndd adv_*_cap parameter list for an Ethernet device. The ndd adv_*_cap tuning parameters allow fine grain control of the Ethernet device physical layer. The parameters are also a subset of the cap_* statistics. If the cap_* value is 0, the corresponding adv_cap_* must also be 0. The exceptions to this rule are the adv_cap_asmpause and adv_cap_pause parameters.
When auto-negotiation is enabled, the adv_*_cap statistics show which capabilities are advertised to the link partner. When auto-negotiation is disabled in forced mode, the statistics precisely show how a link should function and that it must be matched on the link partner to achieve a valid link up.
Statistics with values other than 0 and 1 are also described in the following.
Advertise auto-negotiation capability
Advertise 1000 full duplex capability
Advertise 1000 half duplex capability
Advertise 100 full duplex capability
Advertise 100 half duplex capability
Advertise 10 full duplex capability
Advertise 10 half duplex capability
Fault value reported by the local system to the peer
Link is good
Off line
Link failure
Auto-negotiation failure
The lp_cap_* parameters exist as kernel statistics for an Ethernet device. The statistics are the advertised capabilities provided by the link partner on completion of auto-negotiation. If the capabilities match the capabilities provided in the local advertisement, the link can proceed to a link up state. If no match is found, the link remains down. In two other instances, lp_cap_* values might all be zero: when a cable is not present, when forced mode is enabled.
Link partner advertises auto-negotiation capability
Link partner advertises 1000 full duplex capability
Link partner advertises 1000 half duplex capability
Link partner advertises 100 full duplex capability
Link partner advertises 100 half duplex capability
Link partner advertises 10 full duplex capability
Link partner advertises 10 half duplex capability
Fault value the remote system reports
Link is good
Off line
Link failure
Auto-negotiation failure
The xcvr_* kernel statistics provide information about the physical layer device that is in use.
MII address in the 0 to 31 range of the physical layer device in use for a given Ethernet device
MII transceiver manufacturer and device ID
MII transceiver type, based on the following list:
Undefined
MII present, but nothing connected
10Mb/s Manchester encoding
100 Mb/s 8B/6T
100 Mb/s 4B/5B
100 Mb/s PAM5X5
1000 Mb/s 8B/10B
1000 Mb/s 4D-PAM5
The above values define maximum capability. In many cases, lower speeds can occur. The cap_* statistics must be viewed to establish the range of capability.
The link_* kernel statistics show the link state at the local end of the connection.
link_up |
1 |
Link is up |
0 |
Link is down |
|
link_duplex |
2 |
Full duplex link |
1 |
Half duplex link |
|
0 |
Unknown |
The cap_asmpause, cap_pause, adv_cap_asmpause, and adv_cap_pause parameters do not follow the rules of other cap_* and adv_cap_* kstats or parameters.
The meaning of this statistic depends on the value provided by cap_asmpause.
if cap_asmpause = 1, pause one direction
Send pause frames when there is receive congestion.
Pause transmission when a pause frame is received.
if cap_asmpause = 0, pause in either direction
Send pause frames when there is receive congestion, and pause transmission when a pause frame is received.
Pause capability is not available in either direction.
Asymmetric pause capability
The adv_cap_pause and adv_cap_asmpause statistics are limited by the available settings for cap_pause and cap_asmpause. For a device that is fully capable of pausing both Rx (receive) and Tx (transmit) operations, the settings available are defined in the truth table that follows the adv_cap_pause and adv_cap_asmpause parameter descriptions below.
The meaning of this statistic depends on the value provided by adv_cap_asmpause.
if adv_cap_asmpause = 1
Send pause frames when there is receive congestion.
Pause transmission when a pause frame is received.
if adv_cap_asmpause = 0
Send pause frames when there is receive congestion, and pause transmission when a pause frame is received.
Pause capability is not available in either direction.
Asymmetric pause capability
The cap_asmpause and cap_pause statistics show the capability of a device and also limit the legal setting for adv_cap_asmpause and adv_cap_pause. The following truth table describes the available adv_cap_asmpause and adv_cap_pause settings limited by cap_asmpause and cap_pause statistics. The abbreviations below are used in the table.
cap_asmpause
cap_pause
adv_cap_asmpause
adv_cap_pause
CP |
CA |
AP |
AA |
Description |
0 |
0 |
0 |
0 |
No pause in use |
0 |
0 |
x |
x |
Device not pause capable, cannot set |
0 |
1 |
0 |
0 |
Asymmetric Rx pause capable, but not advertised |
0 |
1 |
0 |
1 |
Asymmetric Rx pause capable and advertised |
0 |
1 |
1 |
0 |
Asymmetric Rx pause capable, making it impossible advertise symmetric pause |
0 |
1 |
1 |
1 |
Asymmetric Rx pause capable, making it impossible advertise asymmetric Tx pause |
1 |
0 |
0 |
0 |
Symmetric pause capable, but not advertised |
1 |
0 |
0 |
1 |
Symmetric pause capable, advertising asymmetric Rx pause only |
1 |
0 |
1 |
0 |
Symmetric pause capable, advertising symmetric Rx and Tx pause capability |
1 |
0 |
1 |
1 |
Symmetric pause capable, advertising asymmetric Tx pause only |
1 |
1 |
0 |
0 |
Asymmetric Tx pause capable, but not advertised |
1 |
1 |
0 |
1 |
Asymmetric Tx pause capable, making it impossible to advertise Asymmetric Rx pause |
1 |
1 |
1 |
0 |
Asymmetric Tx pause capable, making it impossible advertise symmetric pause |
1 |
1 |
1 |
1 |
Asymmetric Tx pause capable and advertised |
In the cases above, an error is posted when a device driver cannot advertise. A new setting is ignored and values revert to the previous setting.
The lp_cap_pause and the lp_cap_asmpause provide the advertised capabilities of the link partners.
The meaning of this statistic depends on the value provided by lp_cap_asmpause.
if lp_cap_asmpause = 1
Send pause frames when there is receive congestion.
Pause transmission when a pause frame is received.
if lp_cap_asmpause = 0
Send pause frames when there is receive congestion, and pause transmission when a pause frame is received.
Pause capability is not available in either direction.
Asymmetric pause capability
When adv_*pause_cap and lp_*pause_cap are compared on completion of auto-negotiation, the chosen flow control mechanism for the link depends on what is most meaningful.
1 indicates flow control in one direction.
0 indicates flow control in both directions when link_pause is set to one.
if link_asmpause = 0
Flow control in both Rx and Tx directions is available.
No flow control available on the link.
if link_asmpause = 1
The local station will honor received pause frames by temporarily suspending transmit of further frames.
In the event of receive congestion, the local station will transmit a pause frame to the peer.
Asymmetric pause capability
The following truth table illustrates the meaningful flow control combinations related to local and link partner configurations. The abbreviations below are used in the table.
adv_cap_asmpause
adv_cap_pause
lp_cap_asmpause
lp_cap_pause
link_asmpause
link_pause
AA |
AP |
LAC |
LPC |
LA |
LP |
Description |
1 |
0 |
1 |
1 |
1 |
0 |
Local station will Tx a pause when Rx is congested. |
0 |
1 |
0 |
1 |
0 |
1 |
Flow control in both Rx and Tx directions. |
x |
1 |
1 |
0 |
1 |
1 |
Local station will honor received Pause frames by temporarily suspending Transmit. |
x |
x |
x |
x |
0 |
0 |
All other combinations: Flow control not avilable on the link |
When forced mode is enabled, the current setting of adv_cap_asmpause and adv_cap_pause are used for the link. The link_asmpause and link_pause become equal to the current adv_cap_asmpause and adv_cap_pause settings. The above table also applies in forced mode, but the link partner configuration must be checked to verify that flow control is operating on the link.
When adv_cap_autoneg is set to 0, the highest priority speed and duplex is used for forced mode.
The highest priority is the highest speed at full duplex. The lowest priority is the lowest speed at half duplex.
MII transceivers can exist internally to a system or can be connected to an external MII connector. Typically, an internal transceiver has an xcvr_addr of 1, while an external connection has an xcvr_addr of 0.
Name | Description | See Also | Notes