Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection ======================================================================== March 10, 2009 Contents ======== - In This Release - Identifying Your Adapter - Building and Installation - Additional Configurations - Support In This Release =============== This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI Express Intel(R) Network Connection. This driver includes support for Itanium(R)2-based systems. For questions related to hardware requirements, refer to the documentation supplied with your 10 Gigabit adapter. All hardware requirements listed apply to use with Linux. The following features are available in this kernel: - Native VLANs - Channel Bonding (teaming) - SNMP - Generic Receive Offload - Data Center Bridging Channel Bonding documentation can be found in the Linux kernel source: /Documentation/networking/bonding.txt Ethtool, lspci, and ifconfig can be used to display device and driver specific information. Identifying Your Adapter ======================== This driver supports devices based on the 82598 controller and the 82599 controller. For specific information on identifying which adapter you have, please visit: http://support.intel.com/support/network/sb/CS-008441.htm Building and Installation ========================= select m for "Intel(R) 10GbE PCI Express adapters support" located at: Location: -> Device Drivers -> Network device support (NETDEVICES [=y]) -> Ethernet (10000 Mbit) (NETDEV_10000 [=y]) 1. make modules & make modules_install 2. Load the module: # modprobe ixgbe The insmod command can be used if the full path to the driver module is specified. For example: insmod /lib/modules//kernel/drivers/net/ixgbe/ixgbe.ko With 2.6 based kernels also make sure that older ixgbe drivers are removed from the kernel, before loading the new module: rmmod ixgbe; modprobe ixgbe 3. Assign an IP address to the interface by entering the following, where x is the interface number: ifconfig ethx 4. Verify that the interface works. Enter the following, where is the IP address for another machine on the same subnet as the interface that is being tested: ping Additional Configurations ========================= 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 ------------ The driver supports Jumbo Frames for all adapters. Jumbo Frames support is enabled by changing the MTU to a value larger than the default of 1500. The maximum value for the MTU is 16110. Use the ifconfig command to increase the MTU size. For example: ifconfig ethx mtu 9000 up The maximum MTU setting for Jumbo Frames is 16110. This value coincides with the maximum Jumbo Frames size of 16128. Generic Receive Offload, aka GRO -------------------------------- The driver supports the in-kernel software implementation of GRO. GRO has shown that by coalescing Rx traffic into larger chunks of data, CPU utilization can be significantly reduced when under large Rx load. GRO is an evolution of the previously-used LRO interface. GRO is able to coalesce other protocols besides TCP. It's also safe to use with configurations that are problematic for LRO, namely bridging and iSCSI. GRO is enabled by default in the driver. Future versions of ethtool will support disabling and re-enabling GRO on the fly. Data Center Bridging, aka DCB ----------------------------- DCB is a configuration Quality of Service implementation in hardware. It uses the VLAN priority tag (802.1p) to filter traffic. That means that there are 8 different priorities that traffic can be filtered into. It also enables priority flow control which can limit or eliminate the number of dropped packets during network stress. Bandwidth can be allocated to each of these priorities, which is enforced at the hardware level. To enable DCB support in ixgbe, you must enable the DCB netlink layer to allow the userspace tools (see below) to communicate with the driver. This can be found in the kernel configuration here: -> Networking support -> Networking options -> Data Center Bridging support Once this is selected, DCB support must be selected for ixgbe. This can be found here: -> Device Drivers -> Network device support (NETDEVICES [=y]) -> Ethernet (10000 Mbit) (NETDEV_10000 [=y]) -> Intel(R) 10GbE PCI Express adapters support -> Data Center Bridging (DCB) Support After these options are selected, you must rebuild your kernel and your modules. In order to use DCB, userspace tools must be downloaded and installed. The dcbd tools can be found at: http://e1000.sf.net Ethtool ------- The driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. Ethtool version 3.0 or later is required for this functionality. The latest release of ethtool can be found from http://sourceforge.net/projects/gkernel. NAPI ---- NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled by default in the driver. See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. Support ======= For general information, go to the Intel support website at: http://support.intel.com or the Intel Wired Networking project hosted by Sourceforge at: http://e1000.sourceforge.net If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to e1000-devel@lists.sf.net