| Linux* Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of | |
| Adapters | |
| ============================================================================= | |
| Intel 10 Gigabit Linux driver. | |
| Copyright(c) 1999 - 2013 Intel Corporation. | |
| Contents | |
| ======== | |
| - Identifying Your Adapter | |
| - Additional Configurations | |
| - Performance Tuning | |
| - Known Issues | |
| - Support | |
| Identifying Your Adapter | |
| ======================== | |
| The driver in this release is compatible with 82598, 82599 and X540-based | |
| Intel Network Connections. | |
| For more information on how to identify your adapter, go to the Adapter & | |
| Driver ID Guide at: | |
| http://support.intel.com/support/network/sb/CS-012904.htm | |
| SFP+ Devices with Pluggable Optics | |
| ---------------------------------- | |
| 82599-BASED ADAPTERS | |
| NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or | |
| is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel | |
| optics and/or the direct attach cables listed below. | |
| When 82599-based SFP+ devices are connected back to back, they should be set to | |
| the same Speed setting via ethtool. Results may vary if you mix speed settings. | |
| 82598-based adapters support all passive direct attach cables that comply | |
| with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach | |
| cables are not supported. | |
| Supplier Type Part Numbers | |
| SR Modules | |
| Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT | |
| Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1 | |
| Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2 | |
| LR Modules | |
| Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT | |
| Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1 | |
| Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2 | |
| The following is a list of 3rd party SFP+ modules and direct attach cables that | |
| have received some testing. Not all modules are applicable to all devices. | |
| Supplier Type Part Numbers | |
| Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL | |
| Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ | |
| Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL | |
| Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT | |
| Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1 | |
| Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT | |
| Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1 | |
| Finistar 1000BASE-T SFP FCLF8522P2BTL | |
| Avago 1000BASE-T SFP ABCU-5710RZ | |
| 82599-based adapters support all passive and active limiting direct attach | |
| cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. | |
| Laser turns off for SFP+ when ifconfig down | |
| ------------------------------------------- | |
| "ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters. | |
| "ifconfig up" turns on the laser. | |
| 82598-BASED ADAPTERS | |
| NOTES for 82598-Based Adapters: | |
| - Intel(R) Network Adapters that support removable optical modules only support | |
| their original module type (i.e., the Intel(R) 10 Gigabit SR Dual Port | |
| Express Module only supports SR optical modules). If you plug in a different | |
| type of module, the driver will not load. | |
| - Hot Swapping/hot plugging optical modules is not supported. | |
| - Only single speed, 10 gigabit modules are supported. | |
| - LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module | |
| types are not supported. Please see your system documentation for details. | |
| The following is a list of 3rd party SFP+ modules and direct attach cables that | |
| have received some testing. Not all modules are applicable to all devices. | |
| Supplier Type Part Numbers | |
| Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL | |
| Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ | |
| Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL | |
| 82598-based adapters support all passive direct attach cables that comply | |
| with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach | |
| cables are not supported. | |
| Flow Control | |
| ------------ | |
| Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable | |
| receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE | |
| frames are generated when the receive packet buffer crosses a predefined | |
| threshold. When rx is enabled, the transmit unit will halt for the time delay | |
| specified when a PAUSE frame is received. | |
| Flow Control is enabled by default. If you want to disable a flow control | |
| capable link partner, use ethtool: | |
| ethtool -A eth? autoneg off RX off TX off | |
| NOTE: For 82598 backplane cards entering 1 gig mode, flow control default | |
| behavior is changed to off. Flow control in 1 gig mode on these devices can | |
| lead to Tx hangs. | |
| Intel(R) Ethernet Flow Director | |
| ------------------------------- | |
| Supports advanced filters that direct receive packets by their flows to | |
| different queues. Enables tight control on routing a flow in the platform. | |
| Matches flows and CPU cores for flow affinity. Supports multiple parameters | |
| for flexible flow classification and load balancing. | |
| Flow director is enabled only if the kernel is multiple TX queue capable. | |
| An included script (set_irq_affinity.sh) automates setting the IRQ to CPU | |
| affinity. | |
| You can verify that the driver is using Flow Director by looking at the counter | |
| in ethtool: fdir_miss and fdir_match. | |
| Other ethtool Commands: | |
| To enable Flow Director | |
| ethtool -K ethX ntuple on | |
| To add a filter | |
| Use -U switch. e.g., ethtool -U ethX flow-type tcp4 src-ip 0x178000a | |
| action 1 | |
| To see the list of filters currently present: | |
| ethtool -u ethX | |
| Perfect Filter: Perfect filter is an interface to load the filter table that | |
| funnels all flow into queue_0 unless an alternative queue is specified using | |
| "action". In that case, any flow that matches the filter criteria will be | |
| directed to the appropriate queue. | |
| If the queue is defined as -1, filter will drop matching packets. | |
| To account for filter matches and misses, there are two stats in ethtool: | |
| fdir_match and fdir_miss. In addition, rx_queue_N_packets shows the number of | |
| packets processed by the Nth queue. | |
| NOTE: Receive Packet Steering (RPS) and Receive Flow Steering (RFS) are not | |
| compatible with Flow Director. IF Flow Director is enabled, these will be | |
| disabled. | |
| The following three parameters impact Flow Director. | |
| FdirMode | |
| -------- | |
| Valid Range: 0-2 (0=off, 1=ATR, 2=Perfect filter mode) | |
| Default Value: 1 | |
| Flow Director filtering modes. | |
| FdirPballoc | |
| ----------- | |
| Valid Range: 0-2 (0=64k, 1=128k, 2=256k) | |
| Default Value: 0 | |
| Flow Director allocated packet buffer size. | |
| AtrSampleRate | |
| -------------- | |
| Valid Range: 1-100 | |
| Default Value: 20 | |
| Software ATR Tx packet sample rate. For example, when set to 20, every 20th | |
| packet, looks to see if the packet will create a new flow. | |
| Node | |
| ---- | |
| Valid Range: 0-n | |
| Default Value: 1 (off) | |
| 0 - n: where n is the number of NUMA nodes (i.e. 0 - 3) currently online in | |
| your system | |
| 1: turns this option off | |
| The Node parameter will allow you to pick which NUMA node you want to have | |
| the adapter allocate memory on. | |
| max_vfs | |
| ------- | |
| Valid Range: 1-63 | |
| Default Value: 0 | |
| If the value is greater than 0 it will also force the VMDq parameter to be 1 | |
| or more. | |
| This parameter adds support for SR-IOV. It causes the driver to spawn up to | |
| max_vfs worth of virtual function. | |
| Additional Configurations | |
| ========================= | |
| 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. | |
| 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. The latest | |
| ethtool version is required for this functionality. | |
| The latest release of ethtool can be found from | |
| http://ftp.kernel.org/pub/software/network/ethtool/ | |
| FCoE | |
| ---- | |
| This release of the ixgbe driver contains new code to enable users to use | |
| Fiber Channel over Ethernet (FCoE) and Data Center Bridging (DCB) | |
| functionality that is supported by the 82598-based hardware. This code has | |
| no default effect on the regular driver operation, and configuring DCB and | |
| FCoE is outside the scope of this driver README. Refer to | |
| http://www.open-fcoe.org/ for FCoE project information and contact | |
| e1000-eedc@lists.sourceforge.net for DCB information. | |
| MAC and VLAN anti-spoofing feature | |
| ---------------------------------- | |
| When a malicious driver attempts to send a spoofed packet, it is dropped by | |
| the hardware and not transmitted. An interrupt is sent to the PF driver | |
| notifying it of the spoof attempt. | |
| When a spoofed packet is detected the PF driver will send the following | |
| message to the system log (displayed by the "dmesg" command): | |
| Spoof event(s) detected on VF (n) | |
| Where n=the VF that attempted to do the spoofing. | |
| Performance Tuning | |
| ================== | |
| An excellent article on performance tuning can be found at: | |
| http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf | |
| Known Issues | |
| ============ | |
| Enabling SR-IOV in a 32-bit or 64-bit Microsoft* Windows* Server 2008/R2 | |
| Guest OS using Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE | |
| controller under KVM | |
| ------------------------------------------------------------------------ | |
| KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This | |
| includes traditional PCIe devices, as well as SR-IOV-capable devices using | |
| Intel 82576-based and 82599-based controllers. | |
| While direct assignment of a PCIe device or an SR-IOV Virtual Function (VF) | |
| to a Linux-based VM running 2.6.32 or later kernel works fine, there is a | |
| known issue with Microsoft Windows Server 2008 VM that results in a "yellow | |
| bang" error. This problem is within the KVM VMM itself, not the Intel driver, | |
| or the SR-IOV logic of the VMM, but rather that KVM emulates an older CPU | |
| model for the guests, and this older CPU model does not support MSI-X | |
| interrupts, which is a requirement for Intel SR-IOV. | |
| If you wish to use the Intel 82576 or 82599-based controllers in SR-IOV mode | |
| with KVM and a Microsoft Windows Server 2008 guest try the following | |
| workaround. The workaround is to tell KVM to emulate a different model of CPU | |
| when using qemu to create the KVM guest: | |
| "-cpu qemu64,model=13" | |
| 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 |