Fast Ethernet Interfaces

 < Day Day Up > 

Sun supports four Fast Ethernet drivers for its range of SPARC platforms:

  • 10/100 hme Fast Ethernet

  • 10/100 qfe Quad Fast Ethernet

  • 10/100 eri Fast Ethernet

  • 10/100 dmfe Fast Ethernet

The following sections describe the details of these interfaces.

10/100 hme Fast Ethernet

The hme interface is available for Sbus systems and PCI bus systems. In both cases, they share the same device driver.

The interface at the lowest level provides an RJ-45 twisted-pair Ethernet physical layer that supports auto-negotiation. There are also motherboard implementations using hme that provide a MII connection. This allows an external transceiver to be attached and alternative physical layer interfaces like 100BASE-T4 or 100BASE-SX to be made available.

Figure 5-28. Typical hme External Connectors


At a MAC level, the interface stages packets for transmission using a single 256-element descriptor ring array. Once that ring is exhausted, other packets get queued waiting in the stream's queue. When the hardware completes transmission of packets currently occupying space on the ring, the packets waiting on the stream's queue are moved to the descriptor ring.

The Rx side of the descriptor ring is again a maximum of 256 elements. Once those elements are exhausted, no further buffering is available for incoming packets and overflows begin to occur.

When hme was introduced to the market, 256 descriptors to Tx and Rx were reasonable because the CPU frequencies for that time were around 100 Mhz to 300 Mhz, so the arrival rate of transmission packets posted to the descriptor rings closely matched the transmission capability of the physical media.

As time progressed, CPUs became faster and this number of descriptors became inadequate. Often the interface began to exhaust the elements in the transmit ring and incurred more scheduling overhead for transmission.

On the Rx side, as CPUs became faster, the ability to receive packets became simpler because less time was required to service each packet. The occupancy on the Rx ring of packets needing to be serviced diminished.

The hme interface is limited in tuning capability. If you experience low performance because of overflows or the transmit ring being constantly full, no corrective action is possible.

The physical layer of hme is fully configurable using the driver.conf file and ndd command.

Table 5-17. Driver Parameters and Status

Parameter

Type

Description

instance

Read and Write

Current device instance in view for ndd

adv_autoneg_cap

Read and Write

Operational mode parameters

adv_100T4_cap

Read and Write

Operational mode parameters

adv_100fdx_cap

Read and Write

Operational mode parameters

adv_100hdx_cap

Read and Write

Operational mode parameters

adv_10fdx_cap

Read and Write

Operational mode parameters

adv_10hdx_cap

Read and Write

Operational mode parameters

use_int_xcvr

Read and Write

Transceiver control parameter

lance_mode

Read and Write

Inter-packet gap parameters

ipg0

Read and Write

Inter-packet gap parameters

ipg1

Read and Write

Inter-packet gap parameters

ipg2

Read and Write

Inter-packet gap parameters

autoneg_cap

Read only

Local transceiver auto-negotiation capability

100T4_cap

Read only

Local transceiver auto-negotiation capability

100fdx_cap

Read only

Local transceiver auto-negotiation capability

100hdx_cap

Read only

Local transceiver auto-negotiation capability

10fdx_cap

Read only

Local transceiver auto-negotiation capability

10hdx_cap

Read only

Local transceiver auto-negotiation capability

lp_autoneg_cap

Read only

Link partner capability

lp_100T4_cap

Read only

Link partner capability

lp_100fdx_cap

Read only

Link partner capability

lp_100hdx_cap

Read only

Link partner capability

lp_10fdx_cap

Read only

Link partner capability

lp_10hdx_cap

Read only

Link partner capability

transceiver_inuse

Read only

Current physical layer status

link_status

Read only

Current physical layer status

link_speed

Read only

Current physical layer status

link_mode

Read only

Current physical layer status


Current Device Instance in View for ndd

The current device instance in view allows you to point ndd to a specific device instance that needs configuration. This must be done prior to altering or viewing any of the other parameters or you might not be viewing or altering the correct parameters.

Table 5-18. Instance Parameter

Parameter

Values

Description

instance

0-1000

Current device instance in view for the rest of the ndd configuration variables


Before you view or alter any of the other parameters, make a quick check of the value of instance to ensure that it is actually pointing to the device you want to view or alter.

Operational Mode Parameters

The operational mode parameters adjust the MII capabilities that are used for auto-negotiation. When auto-negotiation is disabled, the highest priority value is taken as the mode of operation. See "Ethernet Physical Layer" on page 152 regarding MII.

Table 5-19. Operational Mode Parameters

Parameter

Values

Description

adv_autoneg_cap

0-1

Local interface capability of auto-negotiation signaling advertised by the hardware.

0 = Forced mode

1 = Auto-negotiation

Default is set to the autoneg_cap parameter.

adv_100T4_cap

0-1

Local interface capability of 100-T4 advertised by the hardware.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

Default is set to the 100T4_cap parameter.

adv_100fdx_cap

0-1

Local interface capability of 100 full duplex is advertised by the hardware.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

Default is set based on the 100fdx_cap parameter.

adv_100hdx_cap

0-1

Local interface capability of 100 half duplex is advertised by the hardware.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

Default is set based on the 100hdx_cap parameter.

adv_10fdx_cap

0-1

Local interface capability of 10 full duplex is advertised by the hardware.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

Default is set based on the 10fdx_cap parameter.

adv_10hdx_cap

0-1

Local interface capability of 10 half duplex is advertised by the hardware.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable

Default is set based on the 10hdx_cap parameter.


If you are using the interactive mode of ndd with this device to alter the adv_100fdx_cap parameter to adv_10hdx_cap, the changes applied to those parameters are not actually applied to the hardware until adv_autoneg_cap is changed to its alternative value and then back again.

Transceiver Control Parameter

The hme driver can have an external MII physical layer device connected though the MII interface. In this case, the driver has two choices of physical layer connection to the network. Either connection is valid. Therefore a policy is implemented that assumes that if an external physical layer is attached, it's because the given internal physical layer device doesn't provide the required media, so the driver assumes that the external physical layer device is the one to use.

In some cases it might be necessary to override that policy. Therefore the ndd parameter use_int_xcvr is provided.

Table 5-20. Transceiver Control Parameter

Parameter

Values

Description

use_int_xcvr

0-1

Override for the policy that the external XCVR takes priority over the internal transceiver.

0 = If an external transceiver is present, use it instead of the internal (default).

1 = If an external transceiver is present, ignore it and continue to use the internal.


Inter-Packet Gap Parameters

The Inter-Packet Gap (IPG) parameters are ipg0, ipg1, and ipg2. The total IPG is the sum of ipg1 and ipg2 plus an optional ipg0 that will only be present when the lance_mode parameter is set. The total default IPG is 9.6 microseconds when the link speed set by the auto-negotiation protocol is 10 Mbit/sec. When the link speed is 100 Mbit/sec, the total IPG is 0.96 microseconds.

The additional delay set by ipg0 helps to reduce collisions. Systems that have lance_mode enabled might not have enough time on the network. If lance_mode is disabled, the value of ipg0 is ignored and no additional delay is set. Only the delays set by ipg1 and ipg2 are used. Disable lance_mode if other systems keep sending a large number of back-to-back packets.

You can add the additional delay by setting the ipg0 parameter, which is the nibble time delay from 0 to 31. Note that nibble time is the time it takes to transfer four bits on the link. If the link speed is 10 Mbit/sec, nibble time is equal to 400 ns. If the link speed is 100 Mbit/sec, nibble time is equal to 40 ns.

Note

IPG is sometimes increased on older systems using slower NICs, where newer NICs and systems are hogging the network. When a server dominates a half-duplex network it's known as server capture effect.


For example, if the link speed is 10 Mbit/sec and you set ipg0 to 20 nibble times, multiply 20 by 400 ns to get 8000 ns. If the link speed is 100 Mbit/sec and you set ipg0 to 30 nibble times, multiply 30 by 40 ns to get 1200 ns.

Table 5-21. Inter-Packet Gap Parameter

Parameter

Values

Description

lance_mode

0

lance_mode disabled

1

lance_mode enabled (default)

ipg0

0-31

Additional IPG before transmitting a packet

Default = 4

ipg1

0-255

First inter-packet gap parameter

Default = 8

ipg2

0-255

Second inter-packet gap parameter

Default = 8


All of the IPG parameters can be set using ndd or can be hard-coded into the hme.conf files. Details of the methods of setting these parameters are provided in "Configuring Driver Parameters" on page 238.

Local Transceiver Auto-negotiation Capability

The local transceiver auto-negotiation capability parameters are read-only parameters and represent the fixed set of capabilities associated with the current PHY that is in use. This allows an external MII PHY device to be attached to the external MII port. Therefore the capabilities presented in these statistics might vary according to the capabilities of the external MII physical layer device that is attached.

Table 5-22. Local Transceiver Auto-negotiation Capability Parameters

Parameter

Values

Description

autoneg_cap

0-1

Local interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

100T4_cap

0-1

Local interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

100fdx_cap

0-1

Local interface is capable of 100 full duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

100hdx_cap

0-1

Local interface is capable of 100 half-duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

10fdx_cap

0-1

Local interface is capable of 10 full-duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

10hdx_cap

0-1

Local interface is capable of 10 half-duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Link Partner Capability

The link partner capability parameters are read-only parameters and represent the fixed set of capabilities associated with the attached link partner set of advertised auto-negotiation parameters. These parameters are only meaningful when auto-negotiation is enabled and can be used in conjunction with the operation parameters to establish why there might be problems bringing up the link.

Table 5-23. Link Partner Capability Parameters

Parameter

Values

Description

lp_autoneg_cap

0-1

Link partner interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

lp_100T4_cap

0-1

Link partner interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

lp_100fdx_cap

0-1

Link partner interface is capable of 100 full-duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

lp_100hdx_cap

0-1

Link partner interface is capable of 100 half-duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

lp_10fdx_cap

0-1

Link partner interface is capable of 10 full-duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

lp_10hdx_cap

0-1

Link partner interface is capable of 10 half-duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Current Physical Layer Status

The current physical layer status gives an indication of the state of the link, whether it's up or down, or what speed and duplex it's operating at. These parameters are derived based on the result of establishing the highest priority shared speed and duplex capability when auto-negotiation is enabled. They can be preconfigured with Forced mode.

Table 5-24. Current Physical Layer Status Parameters

Parameter

Values

Description

transceiver_inuse

0-1

This parameter indicates which transceiver is currently in use.

0 = Internal transceiver is in use.

1 = External transceiver is in use.

link_status

0-1

Current link status

0 = Link down

1 = Link up

link_speed

0-1

This parameter provides the link speed and is only valid if the link is up.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

link_mode

0-1

This parameter provides the link duplex and is only valid if the link is up.

0 = Half duplex

1 = Half duplex


Note that the physical layer status parameters are only meaningful while ndd is running in interactive mode or while the interface being viewed is already initialized by virtue of the presence of open streams such as snoop -d hme0 or ifconfig hme0 plumb inet up. If these streams don't exist, then the device is uninitialized and the state gets set up when you probe these parameters with ndd. As a result, the parameters are subject to a race between the user viewing them and the link reaching a steady state. This makes these parameters unreliable unless an existing stream is associated with an instance prior to checking. A good rule to follow is to only trust these parameters if the interface is configured up using the ifconfig command.

10/100 qfe Quad Fast Ethernet

The qfe interface was developed based on the same ASIC as the hme, and the driver is very similar in terms of capabilities and limitations. One key difference is that there's no external MII connector and therefore no possibility to use any physical media other than 100BASE-T.

Figure 5-29. Typical qfe External Connectors


With the introduction of qfe came the introduction of trunking technology, which will be discussed later.

The physical layer of qfe is fully configurable using the driver.conf file and ndd command.

Table 5-25. Driver Parameters and Status

Parameter

Type

Description

instance

Read and Write

Current device instance in view for ndd

adv_autoneg_cap

Read and Write

Operational mode parameters

adv_100T4_cap

Read and Write

Operational mode parameters

adv_100fdx_cap

Read and Write

Operational mode parameters

adv_100hdx_cap

Read and Write

Operational mode parameters

adv_10fdx_cap

Read and Write

Operational mode parameters

adv_10hdx_cap

Read and Write

Operational mode parameters

use_int_xcvr

Read and Write

Transceiver control parameter

lance_mode

Read and Write

Inter-packet gap parameters

ipg0

Read and Write

Inter-packet gap parameters

ipg1

Read and Write

Inter-packet gap parameters

ipg2

Read and Write

Inter-packet gap parameters

autoneg_cap

Read only

Local transceiver auto-negotiation capability

100T4_cap

Read only

Local transceiver auto-negotiation capability

100fdx_cap

Read only

Local transceiver auto-negotiation capability

100hdx_cap

Read only

Local transceiver auto-negotiation capability

10fdx_cap

Read only

Local transceiver auto-negotiation capability

10hdx_cap

Read only

Local transceiver auto-negotiation capability

lp_autoneg_cap

Read only

Link partner capability

lp_100T4_cap

Read only

Link partner capability

lp_100fdx_cap

Read only

Link partner capability

lp_100hdx_cap

Read only

Link partner capability

lp_10fdx_cap

Read only

Link partner capability

lp_10hdx_cap

Read only

Link partner capability

transceiver_inuse

Read only

Current physical layer status

link_status

Read only

Current physical layer status

link_speed

Read only

Current physical layer status

link_mode

Read only

Current physical layer status


Current Device Instance in View for ndd

The current device instance in view allows you to point ndd to a particular device instance that needs configuration. This must be applied prior to altering or viewing any of the other parameters or you might not be viewing or altering the correct parameters.

Table 5-26. Instance Parameter

Parameter

Values

Description

instance

0-1000

Current device instance in view for the rest of the ndd configuration variables


Before you view or alter any of the other parameters, make a quick check of the value of instance to ensure that it is actually pointing to the device you want to view or alter.

Operational Mode Parameters

The operational mode parameters adjust the MII capabilities that are used for auto-negotiation. When auto-negotiation is disabled, the highest priority value is taken as the mode of operation. See "Fast Ethernet Interfaces" on page 165 regarding MII.

Table 5-27. Operational Mode Parameters

Parameter

Values

Description

adv_autoneg_cap

0-1

Local interface capability of auto-negotiation signaling is advertised by the hardware.

0 = Forced mode

1 = Auto-negotiation

Default is set to the autoneg_cap parameter.

adv_100T4_cap

0-1

Local interface capability of 100-T4 is advertised by the hardware.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

Default is set to the 100T4_cap parameter.

adv_100fdx_cap

0-1

Local interface capability of 100 full duplex is advertised by the hardware.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

Default is set based on the 100fdx_cap parameter.

adv_100hdx_cap

0-1

Local interface capability of 100 half duplex is advertised by the hardware.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

Default is set based on the 100hdx_cap parameter.

adv_10fdx_cap

0-1

Local interface capability of 10 full duplex is advertised by the hardware.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

Default is set based on the 10fdx_cap parameter.

adv_10hdx_cap

0-1

Local interface capability of 10 half duplex is advertised by the hardware.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable

Default is set based on the 10hdx_cap parameter.


If you are using the interactive mode of ndd with this device to alter the adv_100fdx_cap parameter to adv_10hdx_cap, the changes applied to those parameters are not actually applied to the hardware until adv_autoneg_cap is changed to its alternative value and then back again.

Transceiver Control Parameter

The qfe driver has the capability to have an external MII physical layer device connected, but there's no implemented hardware to allow this feature to be utilized. The use_int_xcvr parameter should never be altered in the case of qfe.

Inter-Packet Gap Parameters

The Inter-Packet Gap (IPG) parameters are ipg0, ipg1, and ipg2. The total IPG is the sum of ipg1 and ipg2 plus an optional ipg0 that will only be present when the lance_mode parameter is set. The total default IPG is 9.6 microseconds when the link speed set by the auto-negotiation protocol is 10 Mbit/sec. When the link speed is 100 Mbit/sec, the total IPG is 0.96 microseconds.

The additional delay set by ipg0 helps to reduce collisions. Systems that have lance_mode enabled might not have enough time on the network. If lance_mode is disabled, the value of ipg0 is ignored and no additional delay is set. Only the delays set by ipg1 and ipg2 are used. Disable lance_mode if other systems keep sending a large number of back-to-back packets.

You can add the additional delay by setting the ipg0 parameter, which is the nibble time delay, from 0 to 31. Note that nibble time is the time it takes to transfer four bits on the link. If the link speed is 10 Mbit/sec, nibble time is equal to 400 ns. If the link speed is 100 Mbit/sec, nibble time is equal to 40 ns.

For example, if the link speed is 10 Mbit/sec and you set ipg0 to 20 nibble times, multiply 20 by 400 ns to get 800 ns. If the link speed is 100 Mbit/sec, and you set ipg0 to 30 nibble times, multiply 30 by 40 ns to get 120 ns.

Table 5-28. Inter-Packet Gap Parameter

Parameter

Values

Description

lance_mode

0

lance_mode disabled

1

lance_mode enabled (default)

ipg0

0-31

Additional IPG before transmitting a packet

Default = 4

ipg1

0-255

First IPG parameter

Default = 8

ipg2

0-255

Second IPG parameter

Default = 8


All of the IPG parameters can be set using ndd or can be hard-coded into the qfe.conf files. Details about setting these parameters are provided in "Reboot Persistence Using driver.conf" on page 242.

Local Transceiver Auto-negotiation Capability

The local transceiver auto-negotiation capability parameters are read-only parameters and represent the fixed set of capabilities associated with the current PHY that is in use. This device allows an external MII PHY device to be attached to the external MII port. Therefore the capabilities presented in these statistics might vary according to the capabilities of the external MII physical layer device that is attached.

Table 5-29. Local Transceiver Auto-negotiation Capability Parameters

Parameter

Values

Description

autoneg_cap

0-1

Local interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

100T4_cap

0-1

Local interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

100fdx_cap

0-1

Local interface is capable of 100 full duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

100hdx_cap

0-1

Local interface is capable of 100 half duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

10fdx_cap

0-1

Local interface is capable of 10 full duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

10hdx_cap

0-1

Local interface is capable of 10 half duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Link Partner Capability

The link partner capability parameters are read-only parameters and represent the fixed set of capabilities associated with the attached link partner set of advertised auto-negotiation parameters. These parameters are only meaningful when auto-negotiation is enabled and can be used in conjunction with the operation parameters to establish why there might be problems bringing up the link.

Table 5-30. Link Partner Capability Parameters

Parameter

Values

Description

lp_autoneg_cap

0-1

Link partner interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

lp_100T4_cap

0-1

Link partner interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

lp_100fdx_cap

0-1

Link partner interface is capable of 100 full-duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

lp_100hdx_cap

0-1

Link partner interface is capable of 100 half-duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

lp_10fdx_cap

0-1

Link partner interface is capable of 10 full-duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

lp_10hdx_cap

0-1

Link partner interface is capable of 10 half-duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Current Physical Layer Status

The current physical layer status gives an indication of the state of the link, whether it's up or down, or what speed and duplex it's operating at. These parameters are derived based on the result of establishing the highest priority shared speed and duplex capability when auto-negotiation is enabled or can be pre-configured with Forced mode.

Table 5-31. Current Physical Layer Status Parameters

Parameter

Values

Description

transceiver_inuse

0-1

Indicates which transceiver is currently in use.

0 = Internal transceiver is in use.

1 = External transceiver is in use.

link_status

0-1

Current link status

0 = Link down

1 = Link up

link_speed

0-1

This parameter provides the link speed and is only valid if the link is up.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

link_mode

0-1

This parameter provides the link duplex and is only valid if the link is up.

0 = Half duplex

1 = Half duplex


Note that the physical layer status parameters are only meaningful while ndd is running in interactive mode or the interface being viewed is already initialized by virtue of the presence of open streams such as snoop -d qfe0 or ifconfig qfe0 plumb inet up. If these streams don't exist, the device is uninitialized and the state gets set up when you probe these parameters with ndd. As a result, the parameters are subject to a race between the user viewing them and the link reaching a steady state. This makes these parameters unreliable unless an existing stream is associated with an instance prior to checking. A good rule to follow is to only trust these parameters if the interface is configured up using the ifconfig command.

10/100 eri Fast Ethernet

When the eri interface was applied to the UltraSPARC III desktop systems, it addressed many of the shortcomings of the hme interface and also eliminated the external MII interface.

The detailed architecture of the eri interface is made up again of a single transmit descriptor ring and a single receive descriptor ring. However, with eri, the maximum size of the descriptor ring was increased to 8-Kbyte elements. So the opportunity to store packets for transmission is much larger and the probability of not having a descriptor element when attempting to transmit is reduced along with the need to use the streams queue behind the transmit descriptor ring. Overall, the scheduling overhead described as a problem with hme and qfe is vastly reduced with eri.

The eri interface is also the first interface capable of supporting the hardware checksumming capability, allowing it to be more efficient in bulk transfer applications.

The physical layer and performance features of eri are fully configurable using the driver.conf file and ndd command.

Table 5-32. Driver Parameters and Status

Parameter

Type

Description

instance

Read and Write

Current device instance in view for ndd

adv_autoneg_cap

Read and Write

Operational mode parameters

adv_100T4_cap

Read and Write

Operational mode parameters

adv_100fdx_cap

Read and Write

Operational mode parameters

adv_100hdx_cap

Read and Write

Operational mode parameters

adv_10fdx_cap

Read and Write

Operational mode parameters

adv_10hdx_cap

Read and Write

Operational mode parameters

use_int_xcvr

Read and Write

Transceiver control parameter

lance_mode

Read and Write

Inter-packet gap parameters

ipg0

Read and Write

Inter-packet gap parameters

ipg1

Read and Write

Inter-packet gap parameters

ipg2

Read and Write

Inter-packet gap parameters

autoneg_cap

Read only

Local transceiver auto-negotiation capability

100T4_cap

Read only

Local transceiver auto-negotiation capability

100fdx_cap

Read only

Local transceiver auto-negotiation capability

100hdx_cap

Read only

Local transceiver auto-negotiation capability

10fdx_cap

Read only

Local transceiver auto-negotiation capability

10hdx_cap

Read only

Local transceiver auto-negotiation capability

lp_autoneg_cap

Read only

Link partner capability

lp_100T4_cap

Read only

Link partner capability

lp_100fdx_cap

Read only

Link partner capability

lp_100hdx_cap

Read only

Link partner capability

lp_10fdx_cap

Read only

Link partner capability

lp_10hdx_cap

Read only

Link partner capability

transceiver_inuse

Read only

Current physical layer status

link_status

Read only

Current physical layer status

link_speed

Read only

Current physical layer status

link_mode

Read only

Current physical layer status


Current Device Instance in View for ndd

The current device instance in view allows you to point ndd to a particular device instance that needs configuration. This must be applied prior to altering or viewing any of the other parameters or you might not be viewing or altering the correct parameters.

Table 5-33. Instance Parameter

Parameter

Values

Description

instance

0-1000

Current device instance in view for the rest of the ndd configuration variables


Before you view or alter any of the other parameters, make a quick check of the value of instance to ensure that it is actually pointing to the device you want to view or alter.

Operational Mode Parameters

The operational mode parameters adjust the MII capabilities that are used for auto-negotiation. When auto-negotiation is disabled, the highest priority value is taken as the mode of operation. See "Ethernet Physical Layer" on page 152 regarding MII.

Table 5-34. Operational Mode Parameters

Parameter

Values

Description

adv_autoneg_cap

0-1

Local interface capability of auto-negotiation signaling is advertised by the hardware.

0 = Forced mode

1 = Auto-negotiation

Default is set to the autoneg_cap parameter.

adv_100T4_cap

0-1

Local interface capability of 100-T4 is advertised by the hardware.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

Default is set to the 100T4_cap parameter.

adv_100fdx_cap

0-1

Local interface capability of 100 full duplex is advertised by the hardware.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

Default is set based on the 100fdx_cap parameter.

adv_100hdx_cap

0-1

Local interface capability of 100 half duplex is advertised by the hardware.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

Default is set based on the 100hdx_cap parameter.

adv_10fdx_cap

0-1

Local interface capability of 10 full duplex is advertised by the hardware.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

Default is set based on the 10fdx_cap parameter.

adv_10hdx_cap

0-1

Local interface capability of 10 half duplex is advertised by the hardware.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable

Default is set based on the 10hdx_cap parameter.


If you are using the interactive mode of ndd with this device to alter the adv_100fdx_cap parameter to adv_10hdx_cap, the changes applied to those parameters are not actually applied to the hardware until the adv_autoneg_cap is changed to its alternative value and then back again.

Transceiver Control Parameter

The eri driver is capable of having an external MII physical layer device connected, but there's no implemented hardware to allow this feature to be utilized. The use_int_xcvr parameter should never be altered in the case of eri.

Inter-Packet Gap Parameters

The Inter-Packet Gap (IPG) parameters are ipg0, ipg1, and ipg2. The total IPG is the sum of ipg1 and ipg2 plus an optional ipg0 that will only be present when the lance_mode parameter is set. The total default IPG is 9.6 microseconds when the link speed set by the auto-negotiation protocol is 10 Mbit/sec. When the link speed is 100 Mbit/sec, the total IPG is 0.96 microseconds.

The additional delay set by ipg0 helps to reduce collisions. Systems that have lance_mode enabled might not have enough time on the network. If lance_mode is disabled, the value of ipg0 is ignored and no additional delay is set. Only the delays set by ipg1 and ipg2 are used. Disable lance_mode if other systems keep sending a large number of back-to-back packets.

You can add the additional delay by setting the ipg0 parameter, which is the nibble time delay, from 0 to 31. Note that nibble time is the time it takes to transfer four bits on the link. If the link speed is 10 Mbit/sec, nibble time is equal to 400 ns. If the link speed is 100 Mbit/sec, nibble time is equal to 40 ns.

For example, if the link speed is 10 Mbit/sec and you set ipg0 to 20 nibble times, multiply 20 by 400 ns to get 800 ns. If the link speed is 100 Mbit/sec and you set ipg0 to 30 nibble times, multiply 30 by 40 ns to get 120 ns.

Table 5-35. Inter-Packet Gap Parameters

Parameter

Values

Description

lance_mode

0

lance_mode disabled

 

1

lance_mode enabled (default)

ipg0

0-31

Additional IPG before transmitting a packet

Default = 4

ipg1

0-255

First Inter-packet gap parameter

Default = 8

ipg2

0-255

Second Inter-packet gap parameter

Default = 8


All of the IPG parameters can be set using ndd or can be hard-coded into the eri.conf files. Details of the methods of setting these parameters are provided in "Configuring Driver Parameters" on page 238.

Receive Interrupt Blanking Parameters

The eri device introduces the receive interrupt blanking capability to 10/100 Mbit/sec ports on the UltraSPARC III desktop systems. The following table provides the parameter names, value range, and given defaults.

Table 5-36. Receive Interrupt Blanking Parameters

Parameter

Values

Description

intr_blank_time

0-127

Interrupt after this number of clock cycles has passed and the packets pending have not reached the number of intr_blank_packets. One clock cycle equals 2048 PCI clock cycles. (Default = 6)

intr_blank_packets

0-255

Interrupt after this number of packets has arrived since the last packet was serviced. A value of zero indicates no packet blanking. (Default = 8)


Local Transceiver Auto-negotiation Capability

The local transceiver auto-negotiation capability parameters are read-only parameters and represent the fixed set of capabilities associated with the current PHY that is in use.

Table 5-37. Local Transceiver Auto-negotiation Capability Parameters

Parameter

Values

Description

autoneg_cap

0-1

Local interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

100T4_cap

0-1

Local interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

100fdx_cap

0-1

Local interface is capable of 100 full-duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

100hdx_cap

0-1

Local interface is capable of 100 half-duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

10fdx_cap

0-1

Local interface is capable of 10 full-duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

10hdx_cap

0-1

Local interface is capable of 10 half-duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Link Partner Capability

The link partner capability parameters are read-only parameters and represent the fixed set of capabilities associated with the attached link partner set of advertised auto-negotiation parameters. These parameters are only meaningful when auto-negotiation is enabled and can be used in conjunction with the operation parameters to establish why there might be problems bringing up the link.

Table 5-38. Link Partner Capability Parameters

Parameter

Values

Description

lp_autoneg_cap

0-1

Link partner interface is capable of auto-negotiation signaling.

0 = Can only operate in forced mode

1 = Capable of auto-negotiation

lp_100T4_cap

0-1

Link partner interface is capable of 100-T4 operation.

0 = Not 100 Mbit/sec T4 capable

1 = 100 Mbit/sec T4 capable

lp_100fdx_cap

0-1

Link partner interface is capable of 100 full-duplex operation.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable

lp_100hdx_cap

0-1

Link partner interface is capable of 100 half-duplex operation.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

lp_10fdx_cap

0-1

Link partner interface is capable of 10 full-duplex operation.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable

lp_10hdx_cap

0-1

Link partner interface is capable of 10 half-duplex operation.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable


Current Physical Layer Status

The current physical layer status gives an indication of the state of the link, whether it's up or down, or what speed and duplex it's operating at. These parameters are derived based on the result of establishing the highest priority shared speed and duplex capability when auto-negotiation is enabled or can be pre-configured with Forced mode.

Table 5-39. Current Physical Layer Status Parameters

Parameter

Values

Description

transceiver_inuse

0-1

Indicates which transceiver is currently in use.

0 = Internal transceiver is in use.

1 = External transceiver is in use.

link_status

0-1

Current link status

0 = Link down

1 = Link up

link_speed

0-1

This parameter provides the link speed and is only valid if the link is up.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable

link_mode

0-1

This parameter provides the link duplex and is only valid if the link is up.

0 = Half duplex

1 = Half duplex


Note that the physical layer status parameters are only meaningful while ndd is running in interactive mode or the interface being viewed is already initialized by virtue of the presence of open streams such as snoop -d eri0 or ifconfig eri0 plumb inet up. If these streams don't exist, the device is uninitialized and the state gets set up when you probe these parameters with ndd. As a result, the parameters are subject to a race between the user viewing them and the link reaching a steady state. This makes these parameters unreliable unless an existing stream is associated with an instance prior to checking. A good rule to follow is to only trust these parameters if the interface is configured up using the ifconfig command.

     < Day Day Up > 


    Networking Concepts and Technology. A Designer's Resource
    Networking Concepts and Technology: A Designers Resource
    ISBN: 0131482076
    EAN: 2147483647
    Year: 2003
    Pages: 116

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net