You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
349 lines
13 KiB
349 lines
13 KiB
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
|
|
|