Fiber Gigabit Ethernet

 < Day Day Up > 

The first physical media available at 1 gigabit was the fiber media. This media allows Ethernet to stretch to the one-kilometer range using fiber-optic cable.

The first interface introduced to provide the 1-gigabit capability was the Sun Gigabit Ethernet adapter, vge. This was quickly followed by the ge interface, which was then followed by the high-performance ce interface. This section describes these interfaces in detail and explains how they can be best utilized to maximize the performance of the network that they drive or are simply part of.

Figure 5-30. Typical vge and ge MMF External Connectors


1000 vge Gigabit Ethernet

The vge gigabit interface exists only as a fiber interface 1000BASE-SX and is available for support of existing Sbus-capable systems or PCI bus systems.

The vge interface was also the first available interface to support VLAN capability.

1000 ge Gigabit Ethernet

The ge gigabit interface exists only as a fiber interface 1000BASE-SX and is available for support of existing Sbus-capable systems or PCI bus systems. The architecture is the same as the eri interface, with one transfer ring and one receive ring.

The ge interface employs the hardware checksumming capability described above to reduce the cost of the TCP/IP checksum calculation.

During its development, the interface was always challenging the limits of the SPARC systems, so it has many tunable features that can be set to provide the best system and application performance.

The ge interface also provides Layer 2 flow control capability. The physical layer and performance features of ge are fully configurable using the driver.conf file and ndd command.

Table 5-45. 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_1000fdx_cap

Read and Write

Operational mode parameters

adv_1000hdx_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

intr_blank_time

Read and Write

Receive interrupt blanking parameters

intr_blank_packets

Read and Write

Receive interrupt blanking parameters

autoneg_cap

Read only

Local transceiver auto-negotiation capability

1000fdx_cap

Read only

Local transceiver auto-negotiation capability

1000hdx_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

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_1000fdx_cap

Read only

Link partner capability

lp_1000hdx_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-46. 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-47. 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_1000fdx_cap

0-1

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

0 = Not 1000 Mbit/sec full-duplex capable

1 = 1000 Mbit/sec full-duplex capable

Default is set to the 1000fdx_cap parameter.

adv_1000hdx_cap

0-1

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

0 = Not 1000 Mbit/sec half-duplex capable

1 = 1000 Mbit/sec half-duplex capable

Default is set to the 1000hdx_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 ge 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 ge.

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. When the link speed is 1000 Mbit/sec, the total IPG is 0.096 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. If the link speed is 1000 Mbit/sec, the nibble time is 4 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-48. 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 ge.conf files. Details of the methods of setting these parameters are provided in "Configuring Driver Parameters" on page 238.

Receive Interrupt Blanking Parameters

The ge device introduces the receive interrupt blanking capability to 1-Gbit/sec ports. TABLE 5-49 lists and describes the parameters.

Table 5-49. 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. Note: Given that this time is linked to PCI clock, an adapter plugged into a 66-MHz PCI slot will have a shorter blanking time. Relative to one 33-MHz slot, it will be a multiple of two. (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)


Note

ge and ce fiber devices do not support 100 Mbit/sec capabilities. They support 1000 Mbit/sec only.


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-50. 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

1000fdx_cap

0-1

Local interface is capable of 1000 full-duplex operation.

0 = Not 1000 Mbit/sec full-duplex capable

1 = 1000 Mbit/sec full-duplex capable

1000hdx_cap

0-1

Local interface is capable of 1000 half-duplex operation.

0 = Not 1000 Mbit/sec half-duplex capable

1 = 1000 Mbit/sec half-duplex capable

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-51. 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_1000fdx_cap

0-1

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

0 = Not 1000 Mbit/sec full-duplex capable

1 = 1000 Mbit/sec full-duplex capable

lp_1000hdx_cap

0-1

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

0 = Not 1000 Mbit/sec half-duplex capable

1 = 1000 Mbit/sec half-duplex capable

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-52. 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 the interface being viewed is already initialized by virtue of the presence of open streams such as snoop -d ge0 or ifconfig hme0 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.

Performance Tunable Parameters

Gigabit Ethernet pushes systems to their limits, and in some cases it can overwhelm them. Therefore, much analysis has occurred and special system parameters are available that help in tuning the ge card for a particular system or application.

Note that just as the tunables can be used to enhance performance, they can also degrade performance.

Table 5-53. Performance Tunable Parameters

Parameter

Values

Description

ge_intr_mode

0-1

Enables the ge driver to send packets directly to the upper communication layers rather than queueing.

0 = Packets are not passed in the interrupt service routine but are placed in a streams service queue and passed to the protocol stack later, when the streams service routine runs. (default)

1 = Packets are passed directly to the protocol stack in the interrupt context.

Default = 0 (queue packets to upper layers)

ge_dmaburst_mode

0-1

Enables infinite burst mode for PCI DMA transactions rather than using cache-line size PCI DMA transfers. This feature is supported only on Sun platforms with the UltraSparc III CPU.

0 = Disabled (default)

1 = Enabled

ge_tx_fastdvma_min

59-1500

Minimum packet size to use fast dvma interfaces rather than standard dma interfaces.

Default = 1024

ge_nos_tmd

32-8192

Number of transmit descriptors used by the driver.

Default = 512

ge_tx_bcopy_max

60-256

Maximum packet size to use copy of buffer into premapped dma buffer rather than remapping.

Default = 256

ge_nos_txdvma

0-8192

Number of dvma buffers (for transmit) used in the driver.

Default = 256

ge_tx_onemblk

1-100

Number of fragments that must exist in any one packet before ge_tx_onemblk coalesces them into a fresh mblk.

Default = 2

ge_tx_stream_min

256-1000

For DMA, this parameter determines whether to use DDI_DMA_CONSISTENT or DDI_DMA_STREAMING. If the packet length is less than ge_tx_stream_min, then we use DDI_DMA_CONSISTENT.

Default = 512


The ge tunable parameters require that the /etc/system file be modified and the system rebooted to apply the changes. See "Using /etc/system to Tune Parameters" on page 244.

The tuning variables ge_use_rx_dvma and ge_do_fastdvma are of particular interest because they control whether the ge driver uses fast dvma or the regular ddi_dma interface. Currently the setting applied is fast dvma, but with every new operating system release the ddi_dma interface is being improved and the performance difference between the two interfaces might be eliminated.

The ge_nos_tmd can be used to adjust the size of the transmit descriptor ring. This might be required if the driver is experiencing a large number of notmd, as this indicates that the arrival rate of packets for the descriptor ring exceeds the rate that the hardware can transmit. In that case, increasing the descriptor ring might be a remedy.

The ge_put_cfg in conjunction with ge_intr_mode controls the receive packet delivery model. When the ge_intr_mode is 1, the interface passes packets to the protocol stack in the interrupt context. When set to 0, the delivery model is controlled by ge_put_cfg. When it is set to 0, the ge driver provides a special-case software load balancing where there's only one worker thread; when set to 1, it uses the regular streams service routine.

The transmit control tunables, ge_tx_bcopy_max, ge_tx_stream_min, and ge_tx_fastdvma_min, define the thresholds for the transmit buffer method.

The ge_tx_onemblk controls coalescing of multiple message blocks that make up a single packet into one message block. In many cases where system memory latency is high, it makes sense to avoid individually mapping packet fragments. Instead, you can have the driver create a new buffer, bring all the fragments together, and use only one DMA buffer. This feature is especially useful for HTTP server applications.

The ge_nos_txdvma controls the pool of fast dvma resources associated with a driver. Since fast dvma resources are finite within a system, it is possible for one device to monopolize all of those resources. The tunable is designed to avoid this scenario and allow the ge driver to allocate a limited number of resources that can be shared at runtime with instances switching to transmit packets using the dvma interface. A clearer description of this will be presented later based on kstat information feedback.

10/100/1000 ce GigaSwift Gigabit Ethernet

The Sun GigaSwift Ethernet adapter relieves congestion experienced at the backbone and server levels by today's networks, and provides a future upgrade path for high-end workstations that require more bandwidth than fast Ethernet can provide.

The Sun GigaSwift Ethernet MMF adapter is a single-port gigabit Ethernet fiber-optics PCI Bus card. It operates in 1000 Mbit/sec Ethernet networks only. The configuration capability of the GigaSwift Ethernet is exactly the same as that of the copper GigaSwift adapter except that it is unable to negotiate any speeds other than 1000 Mbit/sec. The detailed discussion of the copper GigaSwift adapter will cover any configuration details that apply to the MMF interface.

Figure 5-31. Sun GigaSwift Ethernet MMF Adapter Connectors


The Sun GigaSwift Ethernet UTP adapter is a single-port gigabit Ethernet copper-based PCI Bus card. It can be configured to operate in 10 Mbit/sec, 100 Mbit/sec, or 1000 Mbit/sec Ethernet networks.

Figure 5-32. Sun GigaSwift Ethernet UTP Adapter Connectors


There is also a Dual Fast Ethernet/Dual SCSI PCI adapter card that is supported by the GigaSwift Ethernet device driver yet is limited to 100BASE-TX capability.

The ce interface employs the hardware checksumming capability described above to reduce the cost of the TCP/IP checksum calculation.

The ce interface also provides Layer 2 flow control capability, RED, and Infinite Burst. The physical layer and performance features of ce are configurable using the driver.conf file and ndd command.

Table 5-54. 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-1000fdx-cap

Read and Write

Operational mode parameters

adv-1000hdx-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

adv-asmpause-cap

Read and Write

Flow control parameter

adv-pause-cap

Read and Write

Flow control parameter

master-cfg-enable

Read and Write

Gigabit link clock mastership controls

master-cfg-value

Read and Write

Gigabit link clock mastership controls

use-int-xcvr

Read and Write

Transceiver control parameter

enable-ipg0

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

rx-intr-pkts

Read and Write

Receive interrupt blanking parameters

rx-intr-time

Read and Write

Receive interrupt blanking parameters

red-dv4to6k

Read and Write

Random early detection and packet drop vectors

red-dv6to8k

Read and Write

Random early detection and packet drop vectors

red-dv8to10k

Read and Write

Random early detection and packet drop vectors

red-dv10to12k

Read and Write

Random early detection and packet drop vectors

tx-dma-weight

Read and Write

PCI interface parameters

rx-dma-weight

Read and Write

PCI interface parameters

infinite-burst

Read and Write

PCI interface parameters

disable-64bit

Read and Write

PCI interface parameters

accept-jumbo

Read and Write

Jumbo frames enable parameter


With the ce driver, any changes applied to the above parameters take effect immediately.

Current Device Instance in View for ndd

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

Table 5-55. Instance Parameter

Parameter

Values

Description

instance

0-1000

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


Before viewing or altering any of the other parameters, be sure to check of the value of instance to ensure that it is actually pointing to the device you want to configure.

Operational Mode Parameters

The following parameters adjust the MII capabilities which 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-56. Operational Mode Parameters

Parameter

Values

Description

adv-autoneg-cap

0-1

Local interface capability is advertised by the hardware.

0 = Forced mode

1 = Auto-negotiation (default)

adv-1000fdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 1000 Mbit/sec full-duplex capable

1 = 1000 Mbit/sec full-duplex capable (default)

adv-1000hdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 1000 Mbit/sec half-duplex capable

1 = 1000 Mbit/sec half-duplex capable (default)

adv-100T4-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 100-T4 capable (default)

1 = 100-T4 capable

adv-100fdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 100 Mbit/sec full-duplex capable

1 = 100 Mbit/sec full-duplex capable (default)

adv-100hdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 100 Mbit/sec half-duplex capable

1 = 100 Mbit/sec half-duplex capable (default)

adv-10fdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 10 Mbit/sec full-duplex capable

1 = 10 Mbit/sec full-duplex capable (default)

adv-10hdx-cap

0-1

Local interface capability is advertised by the hardware.

0 = Not 10 Mbit/sec half-duplex capable

1 = 10 Mbit/sec half-duplex capable (default)


Flow Control Parameters

The ce device is capable of sourcing (transmitting) and terminating (receiving) pause frames conforming to the IEEE 802.3x Frame Based Link Level Flow Control Protocol. In response to received flow control frames, the ce device can slow down its transmit rate. On the other hand, the ce device is capable of sourcing flow control frames, requesting the link partner to slow down, provided that the link partner supports this feature. By default, the driver advertises both transmit and receive pause capability during auto-negotiation.

TABLE 5-57 provides flow control keywords and describes their function.

Table 5-57. Read-Write Flow Control Keyword Descriptions

Keyword

Description

adv-asmpause-cap

The adapter supports asymmetric pause, which means it can pause only in one direction.

0 = Off (default)

1 = On

adv-pause-cap

This parameter has two meanings depending on the value of adv-asmpause-cap. (Default = 0)

If adv-asmpause-cap = 1 while adv-pause-cap = 1, pauses are received.

If adv-asmpause-cap = 1 while adv-pause-cap = 0, pauses are transmitted.

If adv-asmpause-cap = 0 while adv-pause-cap = 1, pauses are sent and received.

If adv-asmpause-cap = 0, then adv-pause-cap determines whether Pause capability is on or off.


Gigabit Link Clock Mastership Controls

The concept of link clock mastership was introduced with one-gigabit twisted-pair technology. This concept requires one side of the link to be the master that provides the link clock and the other to be the slave that uses the link clock. Once this relationship is established, the link is up and data can be communicated. Two physical layer parameters control whether a side is the master or the slave or whether mastership is negotiated with the link partner. Those parameters are as follows.

Table 5-58. Gigabit Link Clock Mastership Controls

Parameter

Description

master-cfg-enable

Determines whether or not during the auto-negotiation process the link clock mastership is set up automatically.

master-cfg-value

If the master-cfg-enable parameter is set, the mastership is not set up automatically but is dependant on the value of master-cfg-value. If the master-cfg-value is set, the physical layer expects the local device to be the link master. If it is not set, the physical layer expects the link partner to be the master.

If auto-negotiation is not enabled, the value of master-cfg-enable is ignored and the value of master-cfg-value is key to the link clock mastership. If the master-cfg-value is set, the physical layer expects the local device to be the link master. If it's not set, the physical layer expects the link partner to be the master.


Transceiver Control Parameter

The ce 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.

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 enable-ipg0 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, and for 1 Gbit/sec, it drops down to 0.096 microseconds.

The additional delay set by ipg0 helps to reduce collisions. Systems that have ipg0-enable set might not have enough time on the network. If ipg0 is disabled, the value of ipg0 is ignored and no additional delay is set. Only the delays set by ipg1 and ipg2 are used. Clear enable-ipg0 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 media byte time delay, from 0 to 255. 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. If the link speed is 1000 Mbit/sec and you set ipg0 to 30 nibble times, multiply 30 by 40 ns to get 1200 ns.

Table 5-59. Inter-Packet Gap Parameter

Parameter

Values

Description

enable-ipg0

0-1

Enables ipg0.

0 = ipg0 disabled

1 = ipg0 enabled

Default = 1

ipg0

0-255

Additional IPG before transmitting a packet

Default = 8

ipg1

0-255

First inter-packet gap parameter

Default = 8

ipg2

0-255

Second inter-packet gap parameter

Default = 4


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

Receive Interrupt Blanking Parameters

The ce device introduces the receive interrupt blanking capability to 1-Gbit/sec ports. TABLE 5-60 describes the receive interrupt blanking values.

Table 5-60. Receive Interrupt Blanking Parameters

Field Name

Values

Description

rx-intr-pkts

0 to 511

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

rx-intr-time

0 to 524287

Interrupt after 4.5 microsecond ticks have elapsed since the last packet was serviced. A value of zero indicates no time blanking. (Default = 3)


Random Early Drop Parameters

TABLE 5-61 describes the Rx random early detection 8-bit vectors, which allow you to enable random early drop (RED) thresholds. When received packets reach the RED range, packets are dropped according to the preset probability. The probability should increase when the FIFO level increases. Control packets are never dropped and are not counted in the statistics.

Table 5-61. Rx Random Early Detecting 8-Bit Vectors

Field Name

Values

Description

red-dv4to6k

0 to 255

Random early detection and packet drop vectors when FIFO threshold is greater than 4096 bytes and less than 6144 bytes. Probability of drop can be programmed on a 12.5 percent granularity. For example, if bit 0 is set, the first packet out of every eight will be dropped in this region. (Default = 0)

red-dv6to8k

0 to 255

Random early detection and packet drop vectors when FIFO threshold is greater than 6144 bytes and less than 8192 bytes. Probability of drop can be programmed on a 12.5 percent granularity. For example, if bit 0 is set, the first packet out of every eight will be dropped in this region. (Default = 0)

red-dv8to10k

0 to 255

Random early detection and packet drop vectors when FIFO threshold is greater than 8192 bytes and less than 10,240 bytes. Probability of drop can be programmed on a 12.5 percent granularity. For example, if bits 1 and 6 are set, the second and seventh packets out of every eight will be dropped in this region. (Default = 0)

red-dv10to12k

0 to 255

Random early detection and packet drop vectors when FIFO threshold is greater than 10,240 bytes and less than 12,288 bytes. Probability of drop can be programmed on a 12.5 percent granularity. If bits 2, 4, and 6 are set, then the third, fifth, and seventh packets out of every eight will be dropped in this region. (Default = 0)


PCI Bus Interface Parameters

These parameters allow you to modify PCI interface features to gain better PCI performance for a given application.

Table 5-62. PCI Bus Interface Parameters

Parameter

Values

Description

tx-dma-weight

0-3

Determines the multiplication factor for granting credit to the Tx side during a weighted round-robin arbitration. Values are 0 to 3. (Default = 0) Zero means no extra weighting. The other values are powers of 2 extra weighting, on that traffic. For example, if tx-dma-weight = 0 and rx-dma-weight = 3, then as long as Rx traffic is continuously arriving, its priority will be eight times greater than Tx to access the PCI.

rx-dma-weight

0-3

Determines the multiplication factor for granting credit to the Rx side during a weighted round-robin arbitration. Values are 0 to 3. (Default = 0)

infinite-burst

0-1

Allows the infinite burst capability to be utilized. When this is in effect and the system supports infinite burst, the adapter will not free the bus until complete packets are transferred across the bus. Values are 0 or 1. (Default = 0)

disable-64bit

0-1

Switches off 64-bit capability of the adapter. In some cases, it is useful to switch off this feature.

Values are 0 or 1. (Default = 0, which enables 64-bit capability)


Jumbo Frames Enable Parameter

This new feature, only recently added to the GigaSwift driver, allows the ce device to communicate with larger MTU frames.

Table 5-63. Jumbo Frames Enable Parameter

Parameter

Values

Description

accept-jumbo

0-1

0 = Jumbo frames are disabled

1 = Jumbo frames are enable

(Default = 0)


Once jumbo frames capability is enabled, the MTU can be controlled using ifconfig. The MTU can be raised to 9000 or reduced to the regular 1500-byte frames.

Performance Tunables

GigaSwift Ethernet pushes systems even further than ge did. Many lessons were learned from ge, leading to a collection of special system tunables that assist in tuning the ce card for a specific system or application. Note that just as the tunables can be used to enhance performance, they can also degrade performance. Handle with great care.

Table 5-64. Performance Tunable Parameters

Parameter

Values

Description

ce_taskq_disable

0-1

Disables the use of task queues and forces all packets to go up to Layer 3 in the interrupt context.

Default depends on whether the number of CPUs in the system exceeds the ce_cpu_threshold.

ce_inst_taskqs

0-64

Controls the number of taskqs set up per ce device instance. This value is only meaningful if ce_taskq_disable is false.

Any value less than 64 is meaningful.

(Default = 4).

ce_srv_fifo_depth

30-100000

The size of the service FIFO, in number of elements. This variable can be any integer value.

(Default = 2048)

ce_cpu_threshold

1-1000

The threshold for the number of CPUs required in the system and online before the taskqs are utilized to Rx packets.

(Default = 4)

ce_start_cfg

0-1

An enumerated type that can have a value of 0 or and 1.

0 = Transmit algorithm doesn't do serialization,

1 = Transmit algorithm does serialization.

(Default = 0)

ce_put_cfg

0-2

An enumerated type that can have a value of 0, 1, or 2.

0 = Receive processing occurs in the interrupt context.

1 = Receive processing occurs in the worker threads.

2 = Receive processing occurs in the streams service queues routine.

(Default = 0)

ce_reclaim_pending

1-4094

The threshold when reclaims start happening. Currently 32 for both ge and ce drivers.

Keep it less than ce_tx_ring_size/3.

(Default = 32)

ce_ring_size

32-8216

The size of the Rx buffer ring, a ring of buffer descriptors for Rx. One buffer = 8K. This value must be Modulo 2, and its maximum value is 8K.

(Default = 256)

ce_comp_ring_size

0-8216

The size of each Rx completion descriptor ring. It also is Modulo 2.

(Default = 2048)

ce_comp_ring_size

0-8216

The size of each Tx descriptor ring. It also is Modulo 2.

(Default = 2048)

ce_tx_ring_mask

0-3

A mask to control which Tx rings are used.

(Default = 3)

ce_no_tx_lb

0-1

Disables the Tx load balancing and forces all transmission to be posted to a single descriptor ring.

0 = Tx load balancing is enabled.

1 = Tx load balancing is disabled.

(Default = 1)

ce_bcopy_thresh

0-8216

The mblk size threshold used to decide when to copy a mblk into a pre-mapped buffer as opposed to using DMA or other methods.

(Default = 256)

ce_dvma_thresh

0-8216

The mblk size threshold used to decide when to use the fast path DVMA interface to transmit mblk.

(Default = 1024)

ce_dma_stream_thresh

0-8216

This global variable splits the ddi_dma mapping method further by providing Consistent mapping and Streaming mapping. In the Tx direction, Streaming is better for larger transmissions than Consistent mappings. The mblk size falls in the range greater than 256 bytes but less than 1024 bytes; then mblk fragment will be transmitted using ddi_dma methods.

(Default = 512)

ce_max_rx_pkts

32-1000000

The number of receive packets that can be processed in one interrupt before it must exit.

(Default = 512)


The performance tunables require an understanding of some key kernel statistics from the ce driver to be used successfully. There might also be an opportunity to use the RED features and interrupt blanking both configurable using the ndd commands. A clearer description of this will be presented later based on kstat information feedback.

10/100/1000 bge Broadcom BCM 5704 Gigabit Ethernet

The bge interface is a another Ethernet system interface applied to the UltraSPARC III rack-mounted Sun Blade V210 and Sun Blade V240 server systems. This interface is much like the others in that its architecture supports a single Tx and Rx descriptor ring.

The physical layer of bge is fully configurable using the bge.conf file and ndd commands.

Table 5-65. Driver Parameters and Status

Parameter

Type

Description

adv_autoneg_cap

Read and Write

Operational mode parameters

adv_1000fdx_cap

Read and Write

Operational mode parameters

adv_1000hdx_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

adv_asm_pause_cap

Read and Write

Operational mode parameters

adv_pause_cap

Read and Write

Operational mode 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

asm_pause_cap

Read and Write

Local transceiver auto-negotiation capability

pause_cap

Read and Write

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

lp_asm_pause_cap

Read only

Link partner capability

lp_pause_cap

Read only

Link partner capability

link_status

Read only

Current physical layer status

link_speed

Read only

Current physical layer status

link_mode

Read only

Current physical layer status


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-66. 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 advertised is 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.

adv_asm_pause_cap

0-1

The adapter supports asymmetric pause, which means it can pause only in one direction.

0 = Off

1 = On

(Default = 1)

adv_pause_cap

0-1

This parameter has two meanings, depending on the value of adv_asm_pause_cap.

If adv_asm_pause_cap = 1 while adv_pause_cap = 1, pauses are received and Transmit is limited.

If adv_asm_pause_cap = 1 while adv_pause_cap = 0, pauses are transmitted.

If adv_asm_pause_cap = 0 while adv_pause_cap = 1, pauses are sent and received.

If adv_asm_pause_cap = 0, adv_pause_cap determines whether pause capability is on or off.

(Default = 0)


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.

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 PHY that is currently in use.

Table 5-67. 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

Asm_pause_cap

0-1

The adapter supports asymmetric pause, which means it can pause only in one direction.

0 = Off

1 = On

(Default = 1)

pause_cap

0-1

This parameter has two meanings depending on the value of asm_pause_cap.

If asm_pause_cap = 1 while pause_cap = 1, pauses are received, and transmit is limited.

If asm_pause_cap = 1 while pause_cap = 0, pauses are transmitted.

If asm_pause_cap = 0 while pause_cap = 1, pauses are sent and received.

If asm_pause_cap = 0,

pause_cap determines whether pause capability is on or off.

(Default = 0)


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-68. 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

lp_asm_pause_cap

0-1

The adapter supports asymmetric pause, which means it can pause only in one direction.

0 = Off

1 = On

(Default = 1)

lp_pause_cap

0-1

This parameter has two meanings depending on the value of lp_asm_pause_cap.

If lp_asm_pause_cap = 1 while lp_pause_cap = 1, pauses are received, and Transmit is limited.

If lp_asm_pause_cap = 1 while lp_pause_cap = 0, pauses are transmitted.

If lp_asm_pause_cap = 0 while lp_pause_cap = 1, pauses are sent and received.

If lp_asm_pause_cap = 0, then lp_pause_cap determines whether pause capability is on or off.

(Default = 0)


Current Physical Layer Status

The current physical layer stadtus 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-69. Current Physical Layer Status Parameters

Parameter

Values

Description

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 = Full duplex


     < 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