C H A P T E R  5

Configuring the Driver Parameters

The e1000g (Solaris) and e1000 (Linux and Windows) device driver controls the Sun x4 PCI-Express Quad Gigabit Ethernet interfaces. You can manually set the e1000g or e1000 device driver parameters to customize each device in your system.

This chapter lists the available device driver parameters and describes how you can set these parameters.


Adapter Parameter Overview

Each of the four e1000 channels provides 10BASE-T, 100BASE-T, or 1000BASE-T networking interfaces. The device driver automatically sets the link speed to 10, 100, or 1000 Mbit/sec and conforms to the IEEE 802.3 Ethernet standard. The single MAC/PHY chip provides the PCI-E interface and media access control (MAC) functions.

The e1000 driver is capable of the following operating speeds and modes:


Driver Parameters for Solaris x86 Systems

TABLE 5-1 describes the functions of the e1000g driver parameters.


TABLE 5-1 e1000g Driver Parameters

Keyword

Description

AutoNegAdvertised

Valid Range: 0, 1, 2, 3, 4, 8, 12, 32, 47

Default Value: 0

Determines the speed/duplex options that will be advertised during auto-negotiation.

This is a bitmap with the following settings.

Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0

Setting: N/A | N/A | 1000F | N/A | 100F | 100H | 10F | 10H

The values are:

  • 1 = 10 Half only AutoNegAdvertised
  • 2 = 10 Full only AutoNegAdvertised
  • 3 = 10 Half/Full AutoNegAdvertised
  • 4 = 100 Half only AutoNegAdvertised
  • 8 = 100 Full only AutoNegAdvertised
  • 12 = 100 Half/Full AutoNegAdvertised
  • 32 = 1000 Full only AutoNegAdvertised
  • 47 = All speeds AutoNegAdvertised

ForceSpeedDuplex

Valid Range: 1, 2, 3, 4, 7

Default Value: 7

Specifies the speed and duplex mode for each instance.

If you set ForceSpeedDuplex=7,4, e1000g0 is set to autonegotiate and e1000g1 is set to 100 Mbps, full-duplex.

The values are:

  • 1 = 10 Mbps speed and Half Duplex mode.
  • 2 = 10 Mbps speed and Full Duplex mode.
  • 3 = 100 Mbps speed and half Duplex mode.
  • 4 = 100 Mbps speed and Full Duplex mode.
  • 7 = Autonegotiate speed and duplex. This is the default

 

MaxFrameSize

Valid Range: 0, 1, 2, 3

Default Value: 0

These are maximum frame limits, not the actual ethernet frame size. Your actual ethernet frame size is determined by protocol stack configuration (Refer to the ndd man pages for more information.)

  • 0 = Normal ethernet frames.
  • 1 = Maximum 4k size frames.
  • 2 = Maximum 8k size frames.
  • 3 = Maximum 9k size frames.

FlowControl

Valid Range: 0, 1, 2, 3, 4

Default Value: 3

These are maximum frame limits, not the actual ethernet frame size. Your actual ethernet frame size is determined by protocol stack configuration (Refer to the ndd man pages for more information.)

  • 0 = Flow control is completely disabled
  • 1 = Rx flow control is enabled
  • 2 = Tx flow control is enabled.
  • 3 = Both Rx and TX flow control (symmetric) is enabled.
  • 4 = No software override. The flow control configuration in the EEPROM is used.

TbiCompatibilityEnable

Valid Range: 0, 1

Default Value: 1

Some switches as Cisco 6500/Foundary still operate in TBI mode.

This setting will fix the problems seen with odd byte packets.

This setting is valid only for 82543GC based copper adapters.

  • 0 turns off the parameter.
  • 1 turns on the parameter.

SetMasterSlave

Valid Range: 0, 1, 2, 3

Default Value: 0

This setting controls the PHY master/slave setting. Manually forcing master or slave can help reduce time to link with some switches (Planex 08TX and IO Data switches). It is best for this setting remain at the hardware default.

  • 0 sets to hardware default
  • 1 forces master
  • 2 forces slave
  • 3 forces auto

You can view the driver parameter settings by using the e1000g.conf file:


"@(#)e1000g.conf	1.4	06/03/06 SMI"
ForceSpeedDuplex=7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7;
# This will force Speed and Duplex for following settings for a typical instance.
# 1 will set the
# 2 will set the 10 Mbps speed and Full Duplex mode.
# 3 will set the 100 Mbps speed and half Duplex mode.
# 4 will set the 100 Mbps speed and Full Duplex mode.
# 7 will let adapter autonegotiate.     
 
AutoNegAdvertised=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
# This parameter determines the speed/duplex options that will be
# advertised during auto-negotiation. This is a bitmap with the 
# following settings.
# Bit    |  7  |  6  |   5   |   4   |  3   |  2   |  1  |  0
# Setting| N/A | N/A | 1000F |  N/A  | 100F | 100H | 10F | 10H
 
        #
 
        # For example:
 
        # To advertise 10 Half only AutoNegAdvertised   =  1
# To advertise 10 Full only AutoNegAdvertised   =  2            
# To advertise 10 Half/Full AutoNegAdvertised   =  3
# To advertise 100 Half only AutoNegAdvertised  =  4
# To advertise 100 Full only AutoNegAdvertised  =  8
# To advertise 100 Half/Full AutoNegAdvertised  = 12
# To advertise 1000 Full only AutoNegAdvertised = 32    
# To advertise all speeds AutoNegAdvertised     = 47             
 
MaxFrameSize=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
# 0 is for normal ethernet frames.
# 1 is for upto 4k size frames.
# 2 is for upto 8k size frames.
# 3 is for upto 9k size frames.
# These are maximum frame limits, not the actual ethernet frame
# size. Your actual ethernet frame size would be determined by
# protocol stack configuration (please refer to ndd command man pages)
# For Jumbo Frame Support (9k ethernet packet) 
# use 3 (upto 9k size frames)
 
FlowControl=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;
# 0:  Flow control is completely disabled
# 1:  Rx flow control is enabled (we can receive pause frames
#     but not send pause frames).
# 2:  Tx flow control is enabled (we can send pause frames
#     but we do not receiving pause frames).
# 3:  Both Rx and TX flow control (symmetric) is enabled.
# 4:  No software override.  The flow control configuration 
#     in the EEPROM is used.
 
TbiCompatibilityEnable=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;
# 1 turns it on and 0 turns it off.
# Some switches as Cisco 6500/Foundary still operate in TBI mode. 
# This setting will fix the problems seen with odd byte packets.
# This setting is valid only for 82543GC based copper adapters.
 
SetMasterSlave=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
# 0 sets to hardware default
# 1 forces master
# 2 forces slave
# 3 forces auto
# This setting controls the PHY master/slave setting. Manually forcing master or slave can help reduce time to link with some switches	# (Planex 08TX and IO Data switches).  It is recommended that this # setting remain at the hardware default. 
 


Driver Parameters for Linux Systems

TABLE 5-2 lists the tunable e1000 driver parameters for Linux operating systems, and describes their function.


TABLE 5-2 Tunable e1000 Driver Parameters for Linux Operating Systems

Keyword

Description

FlowControl

Valid range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)

Default value: Read from the EEPROM

If EEPROM is not detected, default is 3.

This parameter controls the automatic generation (Tx) and response (Rx) to Ethernet PAUSE frames.

RxDescriptiors

Valid range: 80-4096

Default value: 256

This value is the number of receive descriptors allocated by the driver. Increasing this value allows the driver to buffer more incoming packets. Each descriptor is 16 bytes. A receive buffer is also allocated for each descriptor and can be either 2048, 4056, 8192, or 16384 bytes, depending on the MTU setting. When the MTU size is 1500 or less, the receive buffer size is 2048 bytes. When the MTU is greater than 1500 the receive buffer size will be either 4056, 8192, or 16384 bytes. The maximum MTU size is 16114.

RxIntDelay

Valid range: 0-65535 (0=off)

Default value: 128

This value delays the generation of receive interrupts in units of 0.8192 microseconds. Receive interrupt reduction can improve CPU efficiency if properly tuned for specific network traffic. Increasing this value adds extra latency to frame reception and can end up decreasing the throughput of TCP traffic. If the system is reporting dropped receives, this value might be set too high, causing the driver to run out of available receive descriptors.

TxDescriptors

Valid range: 80-4096

Default value: 256

This value is the number of transmit descriptors allocated by the driver. Increasing this value allows the driver to queue more transmits. Each descriptor is 16 bytes.

XsumRX

Valid range: 0-1

Default value: 1

A value of 1 indicates that the driver should enable IP checksum offload for received packets (both UDP and TCP) to the adapter hardware.



Setting e1000 Driver Parameters in Linux Systems

In a Linux operating system, the driver parameters can only be set at the time the driver is loaded. If you have already loaded the driver and have not set the parameters at the same time, remove the driver and reinstall it.

single-step bullet  Use ethtool to change operating speeds and modes.

For example:


ethtool -s eth14 speed 1000 duplex full autoneg on
ethtool -s eth15 speed 100 duplex full autoneg on
ethtool -s eth16 speed 100 duplex half autoneg on
ethtool -s eth17 speed 10 duplex full autoneg on


procedure icon  To Configure Jumbo Frames

single-step bullet  Use the ifconfig command to increase MTUs to allow transmission of Jumbo Frames.

For example:


ifconfig eth4 192.1.1.45 mtu 8000  up
ifconfig eth5 194.1.1.45 mtu 4000  up