Manuals

Manuals
Red Hat Linux* Driver for the Intel PRO/1000 Family of Adapters: Intel Network Adapters User Guide

Back

Linux* Driver for the Intel® 10GbE Server Adapters: Intel Network Adapters User Guide

Overview
Supported Adapters
Supported Linux Versions
Building and Installation
Command Line Parameters
Additional Configurations
Known Issues


Overview

This file describes the Linux* Base Driver for the 10-gigabit Intel® Network Connection. This driver supports the 2.6.x kernels.

This driver is only supported as a loadable module. Intel is not supplying patches against the kernel source to allow for static linking of the driver. For questions related to hardware requirements, refer to System Requirements. All hardware requirements listed apply to use with Linux.

Use Ethtool (version 1.6 or later), lspci, or ifconfig to obtain driver information. Instructions on updating the ethtool can be found in the Additional Configurations section later in this page.


Supported Adapters

The following Intel network adapters are compatible with the Linux driver in this release:

Controller Adapter Name Board IDs
82598EB Intel® 10 Gigabit XF SR Server Adapter 99083-xxx

To verify your adapter is supported, find the board ID number on the adapter. Look for a label that has a barcode and a number in the format 123456-001 (six digits hyphen three digits). Match this to the list of numbers above.

For more information on how to identify your adapter or for the latest network drivers for Linux, see Customer Support.


Supported Linux Versions

Linux drivers are provided for the following versions:

Red Hat Enterprise Linux (RHEL):

  • RHEL 5-x86 (Gold)
  • RHEL 5-x86_64

SUSE Linux Enterprise Server (SUSE):

  • SLES 10 x86_64

Building and Installation

There are two methods for installing the Linux driver:

  • Install from Source Code
  • Install from a DKMS RPM

Install from Source Code

To build a binary RPM* package of this driver, run 'rpmbuild -tb <filename.tar.gz>'. Replace <filename.tar.gz> with the specific filename of the driver.

NOTE: For the build to work properly it is important that the currently running kernel MATCH the version and configuration of the installed kernel source. If you have just recompiled your kernel, reboot the system.
NOTE: RPM functionality has only been tested in Red Hat distributions.
  1. Copy the base driver tar file from 'Linux/Source/base_driver/ixgbe-<x.x.x>tar.gz' on the driver CD, where <x.x.x> is the version number for the driver tar file, to the directory of your choice. For example, use '/home/username/ixgbe' or '/usr/local/src/ixgbe'.
     
  2. Untar/unzip the archive, where <x.x.x> is the version number for the driver tar:
       tar zxf ixgbe-<x.x.x>.tar.gz
     
  3. Change to the driver src directory, where <x.x.x> is the version number for the driver tar:
       cd ixgbe-<x.x.x>/src/
     
  4. Compile the driver module:
       make install
    The binary will be installed as:
       /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko
    The install locations listed above are the default locations. They might not be correct for certain Linux distributions. For more information, see the ldistrib.txt file included in the driver tar.
     
  5. Install the module using the insmod or modprobe command:
       modprobe ixgbe
       insmod ixgbe
    NOTE: For 2.6 kernels, the insmod command can be used if the full path to the driver module is specified. For example:
    insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko

    For 2.6 based kernels, make sure that the older ixgbe drivers are removed from the kernel, before loading the new module:
       rmmod ixgbe; modprobe ixgbe
     
  6. Assign an IP address to and activate the Ethernet interface by entering the following, where <x> is the interface number:
       ifconfig eth<x> <IP_address> netmask <netmask>
     
  7. Verify that the interface works. Enter the following, where <IP_address> is the IP address for another machine on the same subnet as the interface that is being tested:
       ping <IP_address>

Install from a DKMS RPM

On the installation CD, the DKMS RPM is located at: /Linux/DKMS/base_driver/. Otherwise, navigate to the directory containing the RPM that you wish to install. See the table below to determine the RPM to use for your Red Hat distribution. To install or uninstall the RPMs, follow the instructions below.

NOTE: The DKMS (2.0 or higher) framework must be installed before attempting to install a DKMS RPM. DKMS can be acquired at: http://linux.dell.com/dkms/

DKMS RPMs are provided for supported Linux distributions and are named ixgbe-<driver_version>-<type>.noarch.rpm

<driver_version> and <type> are specific to the driver version you are using:

  • <driver_version> is the driver version number; e.g., 6.2.xy.
  • <type> is either "sb_dkms" for packages that contain both source and binaries, or "bo_dkms" for packages that contain binary-only modules.

The naming convention for the included DKMS RPMs is:

<component name>-<component version>-<type>.noarch.rpm

For example, ixgbe-x.y.z-sb_dkms.noarch.rpm: ixgbe is the component name; x.y.z is the component version; and sb_dkms is the type.

NOTE: If you have a previous RPM installed, it must be uninstalled before installing the new RPM. To determine whether or not a previous RPM is installed, enter rpm -q ixgbe.

To install the DKMS RPM, use this command:

rpm -i <filename>

To uninstall the RPM, use this command:

rpm -e <package>

Command Line Parameters

If the driver is built as a module, the following optional parameters are used by entering them on the command line with the modprobe or insmod command using this syntax:

modprobe ixgbe [<option>=<VAL1>,<VAL2>,...]

For example, with two Intel 10GbE adapters, enter:

modprobe ixgbe TxDescriptors=80,128

This loads the ixgbe driver with 80 TX resources for the first adapter and 128 TX resources for the second adapter.

The default value for each parameter is generally the recommended setting, unless otherwise noted. 

The following table contains parameters and possible values for insmod and modprobe commands:

Parameter Name Valid Range/Settings Default Description
RxQueues 1, 2, 4, 8 8 Number of receive queues.
RxFCHighThresh 1,536 - 262,136 (0x600 - 0x3FFF8, 8 byte granularity) 196,608 (0x30000) Receive flow control high threshold (when we send a pause frame).
RxFCLowThresh 64 - 262,136 (0x40 - 0x3FFF8, 8 byte granularity)

Must be less than high threshold by at least 8 bytes.

163,840 (0x28000) Receive flow control low threshold (when we send a resume frame).
RxBufferMode 0 - 2 2 Receive buffer mode.

0 = Driver will use single buffer for Rx packets.

1 = Driver will use packet split mode for Rx. Packet header will be received in header buffer and payload will be received in data buffer.

2 = Optimal mode. Driver will use single buffer mode for non-Jumbo configurations and packet split mode for Jumbo configurations.

InterruptType 0 - 2 2 Interrupt type.

0 = Legacy interrupt

1 = MSI

2 = MSIX

FCReqTimeout 1 - 65535 65535 (0xFFFF) Flow control request timeout (how long to pause the link partner's transmit).
InterruptThrottleRate 100 - 100000 (0=off, 1=dynamic) 8000 Interrupt Throttle Rate (interrupts/second).
FlowControl 0 - 3 (0=none, 1=Rx only, 2=Tx only, 3=Rx & Tx) 3 (Rx & Tx) User specified Flow Control Override.

0 = No Flow Control
1 = Rx only, respond to pause frames but do not generate them
2 = Tx only, generate pause frames but ignore them on receive
3 = Full Flow Control support

LLIPort 0 - 65535 0 (disabled) LLI is configured with the LLIPort command-line parameter, which specifies which TCP should generate Low Latency Interrupts.

For example, using LLIPort=80 would cause the board to generate an immediate interrupt upon receipt of any packet sent to TCP port 80 on the local machine.

WARNING: Enabling LLI can result in an excessive number of interrupts/second that may cause problems with the system and in some cases may cause a kernel panic.
LLIPush 0 - 1 0 (disabled) LLIPush can be set to be enabled or disabled (default). It is most effective in an environment with many small transactions.
 
NOTE: Enabling LLIPush may allow a denial of service attack.
LLISize 0 - 1500 0 (disabled) LLISize causes an immediate interrupt if the board receives a packet smaller than the specified size.

Additional Configurations

Configuring the Driver on Different Distributions

Configuring a network driver to load properly when the system is started is distribution dependent. Typically, the configuration process involves adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing other system startup scripts and/or configuration files. Many Linux distributions ship with tools to make these changes for you. To learn the proper way to configure a network device for your system, refer to your distribution documentation. If during this process you are asked for the driver or module name, the name for the Linux Base Driver for the Intel® 10 Gigabit XF SR Server Adapter is ixgbe.

Viewing Link Messages

Link messages will not be displayed to the console if the distribution is restricting system messages. In order to see network driver link messages on your console, set dmesg to eight by entering the following:

dmesg -n 8
NOTE: This setting is not saved across reboots.

Jumbo Frames

Jumbo Frames support is enabled by changing the MTU to a value larger than the default of 1500 bytes. The maximum value for the MTU is 16110. Use the ifconfig command to increase the MTU size. For example, enter the following where <x> is the interface number:

ifconfig eth<x> mtu 9000 up

This setting is not saved across reboots. The setting change can be made permanent by adding:

MTU = 9000

to the file /etc/sysconfig/network-scripts/ifcfg-eth<x> for RHEL or to the file /etc/sysconfig/network/<config_file> for SLES.

Ethtool

The driver uses the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. Ethtool version 1.6 or later is required for this functionality.

The latest release of Ethtool can be found at: http://sourceforge.net/projects/gkernel

NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support for a more complete ethtool feature set can be enabled by upgrading to the latest version.

Known Issues

Compiling the Driver

When trying to compile the driver by running make install, the following error may occur: 

"Linux kernel source not configured - missing version.h"

To solve this issue, create the version.h file by going to the Linux Kernel source tree and entering:

make include/linux/version.h

Performance Degradation with Jumbo Frames

Degradation in throughput performance may be observed in some Jumbo frames environments. If this is observed, increasing the application's socket buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help. For more details, see the specific application documentation and in the text file ip-sysctl.txt in your kernel documentation.

Multiple Interfaces on Same Ethernet Broadcast Network

Due to the default ARP behavior on Linux, it is not possible to have one system on two IP networks in the same Ethernet broadcast domain (non-partitioned switch) behave as expected. All Ethernet interfaces will respond to IP traffic for any IP address assigned to the system. This results in unbalanced receive traffic.

If you have multiple interfaces in a server, turn on ARP filtering by entering:

        echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

(this only works if your kernel's version is higher than 2.4.5), or install the interfaces in separate broadcast domains.

UDP Stress Test Dropped Packet Issue

Under small packets UDP stress test with the 10GbE driver, the Linux system may drop UDP packets due to the fullness of socket buffers. You may want to change the driver's Flow Control variables to the minimum value for controlling packet reception.


Please read all restrictions and disclaimers.


Back to Contents Page

Laptops | Desktops | Business Laptops | Business Desktops | Workstations | Servers | Storage | Services | Monitors | Printers | LCD TVs | Electronics
© 2012 Dell | About Dell | Terms & Conditions | Unresolved Issues | Privacy Statement | Ads and Emails | Dell Recycling | Contact | Site Map | Feedback
AT | AU | BE | BR | CA | CH | CL | CN | CO | DE | DK | ES | FR | HK | IE | IN | IT | JP | KR | ME | MX | MY | NL | NO | PA | PR | RU | SE | SG | UK | VE | ALL

snEB14