Driver Installation and Configuration
|
This chapter explains how to download and install the nxge driver used to operate certain ports on the Netra CP32x0 10GbE Ethernet Advanced Rear Transition Module, Dual Port (ARTM-10G). More specifically, the nxge driver facilitates use of SFP ports 1, 2, 3 and 4.
This chapter contains the following topics:
3.1 Installing the nxge Driver
The nxge driver is the Gigabit Ethernet driver that operates the Netra CP32x0 ARTM-10G in a Solaris or Linux environment. The nxge driver is managed by the dladm command-line utility, which allows VLANs to be defined on top of nxge instances and for nxge instances to be aggregated. See the dladm(1M) man page for more details on configuring the data-link interfaces and link aggregations.
A driver must be loaded on your system to operate the ARTM-10G. All OS’s use a variant of a driver design called nxge. New versions of this driver must be used to recognize and operate the new ARTM-10G hardware.
The nxge device driver automatically negotiates maximum link speed up to 10 Gbit/sec and conforms to the IEEE 802.3 Ethernet standard. Each interface is allocated eight receive DMA channels and twelve transmit DMA channels to enable parallel processing of the packets.
Ports 5 and 6 of the ARTM-10G are direct pass-through connections to the Zone 3 connector, and require no additional drivers for the ARTM installation. However, by default, these ports are off (disabled), and will not pass traffic unless the front ATCA blade is configured to redirect traffic to these ports.
Note - At this time, there is not a command or process available to route traffic to these ports. Refer to the Netra CP32x0 Advanced Rear Transition Module Product Notes Notes (820-3261).
|
3.1.1 Download and Install for Solaris Operating Systems
The nxge device driver is required for systems using the SPARC-based or x86-based Solaris Operating System.
To Download and Install the Driver for Solaris Operating Systems
|
1. Locate and download the patch with the nxge device driver software from the following web site:
http://www.sun.com/download
Refer to the README file and the Netra CP32x0 Advanced Rear Transition Module Product Notes (820-3261) for the most current information.
2. Install the driver onto your system.
a. Uncompress or unzip the patch into the target directory.
b. Type the following commands to install the patch into the target directory:
% cd <patch dir>
% patchadd .
|
3. Verify that the nxge driver is installed on the system.
Sun x8 10G/1G Ethernet Adapter Driver(i386)
1.0,REV=2006.12.05.10.0 Copyright 2006 Sun Microsystems,
Inc. All rights reserved. Use is subject to license terms.
## Executing checkinstall script. Using as the package base directory.
## Processing package information.
## Processing system information.
4 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs. This package contains
scripts which will be executed with super-user permission
during the process of installing this package.
Do you want to continue with the installation of [y,n,?] y
Installing Sun x8 10G/1G Ethernet Adapter Driver as
## Installing part 1 of 1.
/kernel/drv/amd64/nxge [ verifying class ]
# Executing postinstall script.
# Installation of was successful.
|
3.1.2 Download and Install for Linux Operating Systems
The nxge device driver is required for systems using the Linux operating system.
To Download and Install the Driver for Linux Operating Systems
|
1. Locate and download the patch with the nxge device driver software from the following web site:
http://www.sun.com/download
Refer to the README file and the Netra CP32x0 Advanced Rear Transition Module Product Notes (820-3261) for the most current information.
2. Choose the rpm that matches your OS distribution, for example:
Where x.x-x is the version number.
3. List the network interfaces that exist prior to adding the driver package:
# ifconfig -a |grep eth
eth0 Link encap:Ethernet HWaddr 00:14:4F:91:94:6E
eth1 Link encap:Ethernet HWaddr 00:14:4F:91:94:6F
eth2 Link encap:Ethernet HWaddr 00:14:4F:91:94:70
eth3 Link encap:Ethernet HWaddr 00:14:4F:91:94:71
|
4. Install the driver on Linux.
Where x is the most current version available.
# rpm -ivh nxge-x.x-x.rpm
Preparing... ######################################
1:nxge-2.6.21-bigsmp ######################################
|
5. List the network interfaces again, and note the new network interface instances corresponding to the Netra CP32x0 ARTM-10G:
# ifconfig -a |grep eth
eth0 Link encap:Ethernet HWaddr 00:14:4F:91:94:6E
eth1 Link encap:Ethernet HWaddr 00:14:4F:91:94:6F
eth2 Link encap:Ethernet HWaddr 00:14:4F:91:94:70
eth3 Link encap:Ethernet HWaddr 00:14:4F:91:94:71
eth4 Link encap:Ethernet HWaddr 00:14:4F:91:94:72
eth5 Link encap:Ethernet HWaddr 00:14:4F:91:94:73
eth6 Link encap:Ethernet HWaddr 00:14:4F:91:94:74
eth7 Link encap:Ethernet HWaddr 00:14:4F:91:94:75
eth9 Link encap:Ethernet HWaddr 00:11:0D:D0:04:C0
eth10 Link encap:Ethernet HWaddr 00:11:0D:D0:04:C2
eth11 Link encap:Ethernet HWaddr 00:11:0D:D0:04:C3
eth12 Link encap:Ethernet HWaddr 00:11:0D:D0:04:C1
|
The additional Netra CP32x0 ARTM-10G instances, eth9 through eth12, are shown. The MAC address of the ARTM resource is easily identified as 00:11:0d:xx:xx:xx.
6. Add the nxge interfaces to the /etc/modules.conf file to automatically load the driver after system reboot:
alias eth9 nxge
alias eth10 nxge
alias eth11 nxge
alias eth12 nxge
|
7. Check the parameter configurations that apply to the nxge driver.
# ethtool -i eth9
driver: nxge
version: 2.1.0
firmware-version: ARTM PXE1.4? FCode 3.14
bus-info: 0000:02:00.0
# ethtool eth9
Settings for eth9:
Supported ports: [ FIBRE ]
Supported link modes:
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised auto-negotiation: No
Speed: Unknown! (10000)
Duplex: Full
Port: FIBRE
PHYAD: 16
Transceiver: internal
Auto-negotiation: off
Current message level: 0x000000ff (255)
Link detected: yes
|
3.2 Configuring the nxge Driver
The Netra CP32x0 ARTM-10G includes six ports, which are controlled by the nxge driver:
- Two 1-Gigabit full duplex networking interfaces (ports 1 and 2)
- Two 10-Gigabit full-duplex network interfaces (ports 3 and 4)
- Two 10-Gigabit full-duplex network interfaces driven by ATCA front board resource (ports 5 and 6)
This section provides procedures for configuring nxge driver attributes and parameters, based on your OS.
3.2.1 Configuring nxge Driver Parameters on a Solaris Platform
You can configure and modify nxge device driver parameters in two ways:
- Using the ndd utility
- Using the nxge.conf file
If you use the ndd utility, the parameters are valid only until you reboot the system. This method is good for testing parameter settings.
3.2.1.1 Modifying Parameters Using the ndd Utility
Use the ndd utility to configure parameters that are valid until you reboot the system (non-persistent configurations).
The following sections describe how to use the ndd utility to modify (with the -set option) or display (without the -set option) parameters for each nxge device.
The ndd utility can be invoked in either of two modes:
- Interactive menu mode. In this mode, the utility displays a menu of commands, and prompts you for each input value. You can set and get multiple parameters before exiting the utility.
- Non-interactive mode. In this mode, invoke the utility to execute a single command. Once the command is executed, the utility exits and returns to the command prompt.
Refer to the ndd(1M) man page for more information.
To Specify Device Instances
|
Before you use the ndd utility to get or set a parameter for an nxge device, you must specify the device instance for the utility.
Check the /etc/path_to_inst file to identify the instance associated with a device.
# grep nxge /etc/path_to_inst
"/pci@7c0/pci@0/pci@9/network@0" 0 "nxge"
"/pci@7c0/pci@0/pci@9/network@0,1" 1 "nxge"
"/pci@0/pci@0/pci@8/network@0" 2 "nxge"
"/pci@0/pci@0/pci@8/network@0,1" 3 "nxge"
"/pci@0/pci@0/pci@8/network@0,2" 4 "nxge"
"/pci@0/pci@0/pci@8/network@0,3" 5 "nxge"
"/pci@0/pci@0/pci@8/ethernet@0" 6 "nxge"
"/pci@0/pci@0/pci@8/ethernet@0,1" 7 "nxge"
"/pci@0/pci@0/pci@8/ethernet@0,2" 8 "nxge"
"/pci@0/pci@0/pci@8/ethernet@0,3" 9 "nxge"
"/niu@80/network@0" 0 "nxge"
"/niu@80/network@1" 1 "nxge"
|
To Modify Parameters in Interactive Mode
|
1. Type ? to see all the parameters supported by the nxge driver.
# ndd /dev/nxge0
name to get/set ? ?
? (read only)
function_number (read only)
fw_version (read only)
adv_autoneg_cap (read and write)
adv_10gfdx_cap (read and write)
adv_1000fdx_cap (read and write)
adv_100fdx_cap (read and write)
adv_10fdx_cap (read and write)
adv_pause_cap (read and write)
accept_jumbo (read and write)
rxdma_intr_time (read and write)
rxdma_intr_pkts (read and write)
class_opt_ipv4_tcp (read and write)
class_opt_ipv4_udp (read and write)
class_opt_ipv4_ah (read and write)
class_opt_ipv4_sctp (read and write)
class_opt_ipv6_tcp (read and write)
class_opt_ipv6_udp (read and write)
class_opt_ipv6_ah (read and write)
class_opt_ipv6_sctp (read and write)
|
2. Modify a parameter value by specifying ndd /dev/nxge<x>, such as the following example.
# ndd /dev/nxge0
name to get/set?
|
3. Enter the parameter name.
After you enter the parameter name, the ndd utility prompts you for the parameter value.
4. Enter the parameter value or ? for more information.
Refer to the ndd(1M) man page for more information.
To Modify Parameter Values in Non-Interactive Mode
|
1. Invoke the ndd utility with or without the -set option.
- When you invoke the ndd utility with the -set option, the utility passes value, which must be specified, down to the named /dev/nxgedriver-instance, and assigns the value to the parameter:
# ndd -set /dev/nxge<x> <parameter-value>
|
Where x is the driver instance, for example /dev/nxge0, /dev/nxge1, and parameter-value is a valid input or option.
- When you omit the -set option, the utility queries the named driver instance, retrieves the value associated with the specified parameter, and prints the value:
Where x is the driver instance.
2. Display the value of a parameter by specifying the parameter name and omitting the value.
3. Modify a parameter value.
Refer to the ndd(1M) man page for more information.
3.2.1.2 Modifying Parameters Using the nxge.conf File
Use an nxge.conf file when you want to establish persistent parameter values for a device in the system.
For more information, refer to the prtconf(1M) and driver.conf(4) man pages.
To Modify Parameters Using nxge.conf File
|
1. Obtain the hardware path names for the nxge devices in the device tree.
2. Check the /etc/driver_aliases file to identify the name associated with a device.
# grep nxge /etc/driver_aliases
nxge "pciex108e,abcd"
|
3. Locate the path names and the associated instance numbers in the /etc/path_to_inst file.
# grep nxge/etc/path_to_inst
"/pci@780/pci@0/pci@8/network@0" 0 "nxge"
"/pci@780/pci@0/pci@8/network@0,1" 1 "nxge"
|
This command returns two nxge interfaces, and for each, includes three descriptive parameters:
- Instance pathname in quotes
- Instance Number (integer, no quotes)
- Instance driver name in quotes
The nxge.conf will likely contain information for several nxge interfaces. The output from steps 1 and 2 is used to specify the nxge interface, if needed. In this example:
name = "pciex108e,abcd"
parent = "/pci@780/pci@0/pci@8/network@0"
unit-address = "0"
|
4. Edit the /kernel/drv/nxge.conf file to set nxge parameters.
For an output of all the parameters you can modify, see CODE EXAMPLE 3-1.
5. To set persistence for all parameters, specify the driver parameter properties for each device by creating an nxge.conf file located in the following directory:
- For SPARC-based host, /platform/sunv4/kernel/drv/nxge.conf
- For x86-based host, /kernel/drv/nxge.conf
Edits to /kernel/drv/nxge.conf file may be made with any ASCII, text editor.
To apply an edit to all ports, entries are listed with no specific node prefix. In this example, all modules are being set for load balancing RX traffic based on the IP source address. The default value is F80, indicating RX load balancing based on IP 5-tuple. Notice the semicolon at the end of the last parameter.
class-opt-ipv4-tcp = 100;
class-opt-ipv4-udp = 100;
|
6. To set persistence for a specific parameter, edit the nxge.conf file to add the specific parameter values.
These parameters are reloaded at each reboot.
To apply an edit to specific ports, an entry is prefixed with the node/interface specific information as shown:
name = "pciex108e,abcd" parent = "/pci@780/pci@0/pci@8/" unitaddress = "0" class-opt-ipv4-tcp = 0x100;
name = "pciex108e,abcd" parent = "/pci@7c0/pci@0/pci@9/" unitaddress = "0" class-opt-ipv4-tcp = 0x40;
|
7. Save the nxge.conf file.
The following CODE EXAMPLE 3-1 provides an output of all the parameters modifiable via the nxge.conf file. See also Chapter 4 for instructions on how to configure the network settings.
CODE EXAMPLE 3-1 Driver Parameters Modifiable via nxge.conf File
#
#---------------Link Configuration ----------------------
# The link parameters depend on the type of the card
# and the port.
# 10-Gigabit related parameters ( i.e adv_10gfdx_cap)
# apply only to 10gigabit ports.
# Half duplex is not supported on any NIU card.
#
# adv-autoneg-cap
# Advertise auto-negotiation capability.
# default is 1
# adv-autoneg-cap = 1;
#
# adv_10gfdx_cap
# Advertise 10gbps Full duplex capability.
# default is 1
# adv_10gfdx_cap = 1;
#
# adv_1000fdx_cap
# Advertise 1gbps Full duplex capability.
# default is 1
# adv_1000fdx_cap = 1;
#
# adv_100fdx_cap
# Advertise 100mbps Full duplex capability.
# default is 1
# adv_100fdx_cap = 1;
#
# adv_10fdx_cap
# Advertise 10mbps Full duplex capability.
# default is 1
# adv_10fdx_cap = 1;
#
# adv_asmpause_cap
# Advertise Asymmetric pause capability.
# default is 0
# adv_asmpause_cap = 0;
#
# adv_pause_cap
# Advertise pause capability.
# default is 1
# adv_pause_cap = 1;
#
#
#------- Jumbo frame support ---------------------------------
# To enable jumbo support for all nxge interfaces,
# accept_jumbo = 1;
#
# To disable jumbo support for all nxge interfaces,
# accept_jumbo = 0;
#
# Default is 0. See the example at the end of this file for
# enabling or disabling jumbo for a particular nxge interface.
#
#
#------- Receive DMA Configuration ----------------------------
#
# rxdma-intr-time
# Interrupts after this number of NIU hardware ticks have
# elapsed since the last packet was received.
# A value of zero means no time blanking (Default = 8).
#
# rxdma-intr-pkts
# Interrupt after this number of packets have arrived since
# the last packet was serviced. A value of zero indicates
# no packet blanking (Default = 20).
#
# Default Interrupt Blanking parameters.
#
# rxdma-intr-time = 8;
# rxdma-intr-pkts = 20;
#
#
#------- Classification and Load Distribution Configuration ------
#
# class-opt-****-***
# These variables define how each IP class is configured.
# Configuration options range from whether TCAM lookup ie
# is enabled to flow hash generation.
# This parameters also control how the flow template is
# constructed and how packet is distributed within RDC
# groups.
#
# supported classes:
# class-opt-ipv4-tcp class-opt-ipv4-udp class-opt-ipv4-sctp
# class-opt-ipv4-ah class-opt-ipv6-tcp class-opt-ipv6-udp
# class-opt-ipv6-sctp class-opt-ipv6-ah
#
# Configuration bits (The following bits will be decoded
# by the driver as hex format).
#
# 0010: use MAC Port (for flow key)
# 0020: use L2DA (for flow key)
# 0040: use VLAN (for flow key)
# 0080: use proto (for flow key)
# 0100: use IP src addr (for flow key)
# 0200: use IP dest addr (for flow key)
# 0400: use Src Port (for flow key)
# 0800: use Dest Port (for flow key)
#
# class-opt-ipv4-tcp = fe0;
The following parameters operate on a per port basis and can be set using the /kernel/drv/nxge.conf file.
#
# ------- How to set parameters for a particular interface --------
# The example below shows how to locate the device path and set a
# parameter for a particular nxge interface. (Using jumbo support as
# an example)
#
# Use the following command to find out the device paths for nxge,
# more /etc/path_to_inst | grep nxge
#
# For example, if you see,
# "/pci@7c0/pci@0/pci@8/network@0" 0 "nxge"
# "/pci@7c0/pci@0/pci@8/network@0,1" 1 "nxge"
# "/pci@7c0/pci@0/pci@8/network@0,2" 2 "nxge"
# "/pci@7c0/pci@0/pci@8/network@0,3" 3 "nxge"
#
# then you can enable jumbo for ports 0 and 1 and disable jumbo for ports 2
# and 3 as follows,
#
# name = "pciex108e,abcd" parent = "/pci@7c0/pci@0/pci@8/" unit-address
= "0"
# accept_jumbo = 1;
# name = "pciex108e,abcd" parent = "/pci@7c0/pci@0/pci@8/" unit-address
= "0,1"
# accept_jumbo = 1;
# name = "pciex108e,abcd" parent = "/pci@7c0/pci@0/pci@8/" unit-address
= "0,2"
# accept_jumbo = 0;
# name = "pciex108e,abcd" parent = "/pci@7c0/pci@0/pci@8/" unit-address
= "0,3"
# accept_jumbo = 0;
|
3.2.2 Configuring Driver Parameters on a Linux Platform
Use the ethtool utility or the configtool utility to modify nxge driver parameters on a Linux platform.
3.2.2.1 Modifying Parameters Using the ethtool Utility
This section describes ethtool commands for modifying driver parameters. Refer to the ethtool(1M) man page for more information and detailed usage examples.
To Determine Modifiable Parameters
|
Use the ethtool utility to list all driver parameters that can be modified.
CODE EXAMPLE 3-2 Listing Modifiable Driver Parameters on a Linux Platform
# ethtool -help eth4
ethtool version 3
Usage:
ethtool DEVNAME
ethtool -a DEVNAME
ethtool -A DEVNAME \
[ autoneg on|off ] \
[ rx on|off ] \
[ tx on|off ]
ethtool -c DEVNAME
ethtool -C DEVNAME \
[adaptive-rx on|off] \
[adaptive-tx on|off] \
[rx-usecs N] \
[rx-frames N] \
[rx-usecs-irq N] \
[rx-frames-irq N] \
[tx-usecs N] \
[tx-frames N] \
[tx-usecs-irq N] \
[tx-frames-irq N] \
[stats-block-usecs N] \
[pkt-rate-low N] \
[rx-usecs-low N] \
[rx-frames-low N] \
[tx-usecs-low N] \
[tx-frames-low N] \
[pkt-rate-high N] \
[rx-usecs-high N] \
[rx-frames-high N] \
[tx-usecs-high N] \
[tx-frames-high N] \
[sample-interval N]
ethtool -g DEVNAME
ethtool -G DEVNAME \
[ rx N ] \
[ rx-mini N ] \
[ rx-jumbo N ] \
[ tx N ]
ethtool -i DEVNAME
ethtool -d DEVNAME
ethtool -e DEVNAME \
[ raw on|off ] \
[ offset N ] \
[ length N ]
ethtool -E DEVNAME \
[ magic N ] \
[ offset N ] \
[ value N ]
ethtool -k DEVNAME
ethtool -K DEVNAME \
[ rx on|off ] \
[ tx on|off ] \
[ sg on|off ] \
[ tso on|off ]
ethtool -r DEVNAME
ethtool -p DEVNAME [ %d ]
ethtool -t DEVNAME [online|(offline)]
ethtool -s DEVNAME \
[ speed 10|100|1000 ] \
[ duplex half|full ] \
[ port tp|aui|bnc|mii|fibre ] \
[ autoneg on|off ] \
[ phyad %d ] \
[ xcvr internal|external ] \
[ wol p|u|m|b|a|g|s|d... ] \
[ sopass %x:%x:%x:%x:%x:%x ] \
[ msglvl %d ]
ethtool -S DEVNAME
|
Following are common parameters that can be changed:
CODE EXAMPLE 3-3 Common Parameters That are Modifiable on a Linux Platform
# ethtool -c eth8
Coalesce parameters for eth8:
Adaptive RX: off TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 8
rx-frames: 512
rx-usecs-irq: 0
rx-frames-irq: 512
tx-usecs: 0
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame--high: 0
|
The parameters rx-usecs and rx-frames control the RX interrupt rate per RX DMA channel. RX interrupt will be generated after rx-frames have been received or after rxusecs time interval, if fewer than rx-frames have been received within the interval.
- For low latency applications, set rx-usecs to a smaller value.
- For bulk traffic, use larger values of rx-usecs and control the rate with rx-frames.
The rx-frames-irq controls the maximum number of RX packets processed with a single RX interrupt.
To Change RX Coalesce Parameters
|
Use the ethtool -C command.
CODE EXAMPLE 3-4 Changing RX Coalesce Parameters
# ethtool -C eth4 rx-usecs 20
# ethtool -c eth4
Coalesce parameters for eth4:
Adaptive RX: off TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 20
rx-frames: 512
rx-usecs-irq: 0
rx-frames-irq: 512
tx-usecs: 0
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
|
To Obtain the Status of L4 Hardware
|
Use the ethtool -k command.
CODE EXAMPLE 3-5 Obtaining Status of L4 Hardware
# ethtool -k eth4
Offload parameters for eth4:
Cannot get device tcp segmentation offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: on
scatter-gather: off
tcp segmentation offload: off
|
3.2.2.2 Modifying Parameters Using configtool Utility
This section describes how to use the configtool utility to modify driver parameters.
To Obtain a List of Modifiable Parameters
|
Use the nxge_config if-name get command.
CODE EXAMPLE 3-6 Obtaining a List of Tunable Driver Parameters on a Linux Platform
# /usr/local/bin/nxge_config eth4 get
The tunable parameters exported by this device are:
class_opt_ipv4_tcp Read-Write
class_opt_ipv4_udp Read-Write
class_opt_ipv4_ah Read-Write
class_opt_ipv4_sctp Read-Write
class_opt_ipv6_tcp Read-Write
class_opt_ipv6_udp Read-Write
class_opt_ipv6_ah Read-Write
class_opt_ipv6_sctp Read-Write
|
These classification variables define how each IP class is configured. These parameters also control how the flow template is constructed and how packets are distributed within RDC groups.
Configuration bits:
0x0010: use MAC Port (for flow key)
0x0020: use L2DA (for flow key)
0x0040: use VLAN (for flow key)
0x0080: use proto (for flow key)
0x0100: use IP src addr (for flow key)
0x0200: use IP dest addr (for flow key)
0x0400: use Src Port (for flow key)
0x0800: use Dest Port (for flow key)
|
Note - The classification variables are modified on an ARTM basis. That is, if any of these variables is modified for one port, the change carries over to all other ports of the ARTM.
|
To Display a Parameter
|
Use the nxge_config <if-name get param-name> command.
# /usr/local/bin/nxge_config eth4 get class_opt_ipv4_udp
class_opt_ipv4_udp 0xfe3
|
To Modify a Specific Parameter
|
Use the /usr/local/bin/nxge_config <if_name set param_name> command.
# /usr/local/bin/nxge_config eth4 set class_opt_ipv4_tcp 0xfe0
|
3.3 Tuning Performance on a Linux Platform
The following procedure improves the performance of the Netra CP32x0 ARTM-10G ports on a system running the Linux OS.
To Tune Ethernet Port Performance
|
1. Using any ASCII text editor, create a new .conf file that will be passed to the sysctl utility.
For example, sysctl_e1000.conf
CODE EXAMPLE 3-7 Sample .conf File for Tuning Ethernet Ports on a Linux Platform
### IPV4 specific settings
# turns TCP timestamp support off, default 1, reduces CPU use
net.ipv4.tcp_timestamps = 0
# turn SACK support off, default on systems with a VERY fast bus ->
# memory interface this is the big gainer
net.ipv4.tcp_sack = 0
# sets min/default/max TCP read buffer, default 4096 87380 174760
net.ipv4.tcp_rmem = 10000000 10000000 10000000
# sets min/pressure/max TCP write buffer, default 4096 16384 131072
net.ipv4.tcp_wmem = 10000000 10000000 10000000
# sets min/pressure/max TCP buffer space, default 31744 32256 32768
net.ipv4.tcp_mem = 10000000 10000000 10000000
### CORE settings (mostly for socket and UDP effect)
# maximum receive socket buffer size, default 131071
net.core.rmem_max = 524287
# maximum send socket buffer size, default 131071
net.core.wmem_max = 524287
# default receive socket buffer size, default 65535
net.core.rmem_default = 524287
# default send socket buffer size, default 65535
net.core.wmem_default = 524287
# maximum amount of option memory buffers, default 10240
net.core.optmem_max = 524287
# number of unprocessed input packets before kernel starts dropping
# them, default 300
net.core.netdev_max_backlog = 300000
|
2. To apply your settings, invoke the sysctl utility, including the configuration file as follows:
# sysctl -p /etc/sysctl_nxge.conf
|
3.4 Enabling Host Board PCI-Express Communication
Presently, only the Sun Netra CP3260 blade server can be configured to use PCI-express signals to communicate with the Netra CP32x0 ARTM-10G. By default, the host blade server is usually shipped with these signals disabled. The following procedure enables PCI-express signals.
To Enable PCI-Express Signals
|
1. Do one of the following:
- If using a SPARC-based host board, skip to Step 2.
- If using an x86-based host board, perform the following:
a. At boot, invoke the BIOS menu (ESC 2, F2, Ctrl-C, or Ctrl-E).
b. Under the Chipset menu/Southbridge menu, disable Spread Spectrum clocking for PCI-E.
c. Save and Exit the BIOS.
2. Establish a console connection with the shelf manager.
3. Type the shelf command clia to determine the slot location of the host board that will connect to the Netra CP32x0 ARTM-10G.
The shelf manager will show a Device ID String indicating the host board.
4. Enter the clia sendcmd xx 2e 8b 00 00 2a 9 1c command.
Where xx is the board address.
5. At the shelf manager, type clia board to find the correct number for your host board installation.
6. Type the shelf clia boardreset 2 command.
3.5 Removing the nxge Driver
If you want to remove the nxge driver from your system, perform the following procedure, based on your OS.
To Remove the Driver From a Solaris Platform
|
1. Determine the driver packages:
# pkginfo | grep nxge
SUNWnxge Sun x8 10G/1G Ethernet Adapter Driver
|
2. Remove the driver packages:
To Remove the Driver From a Linux Platform
|
Type the following:
Netra CP32x0 10GbE Advanced Rear Transition Module, Dual Port User’s Guide
|
820-3150-10
|
  
|
Copyright © 2008 Sun Microsystems, Inc. All Rights Reserved.