ixgbe Linux* Base Driver for Intel(R) Ethernet Network Connections ================================================================== ================================================================================ July 12, 2019 ================================================================================ Contents -------- - Important Note - Overview - Building and Installation - Command Line Parameters - Additional Configurations - Known Issues/Troubleshooting - Support - License Important Notes =============== Disable LRO if enabling ip forwarding or bridging ------------------------------------------------- WARNING: The ixgbe driver supports the Large Receive Offload (LRO) feature. This option offers the lowest CPU utilization for receives but is completely incompatible with *routing/ip forwarding* and *bridging*. If enabling ip forwarding or bridging is a requirement, it is necessary to disable LRO using compile time options as noted in the LRO section later in this document. The result of not disabling LRO when combined with ip forwarding or bridging can be low throughput or even a kernel panic. Do not unload port driver if VF with active VM is bound to it ------------------------------------------------------------- Do not unload a port's driver if a Virtual Function (VF) with an active Virtual Machine (VM) is bound to it. Doing so will cause the port to appear to hang. Once the VM shuts down, or otherwise releases the VF, the command will complete. Configuring SR-IOV for improved network security ------------------------------------------------ In a virtualized environment, on Intel(R) Ethernet Server Adapters that support SR-IOV, the virtual function (VF) may be subject to malicious behavior. Software-generated layer two frames, like IEEE 802.3x (link flow control), IEEE 802.1Qbb (priority based flow-control), and others of this type, are not expected and can throttle traffic between the host and the virtual switch, reducing performance. To resolve this issue, and to ensure isolation from unintended traffic streams, configure all SR-IOV enabled ports for VLAN tagging from the administrative interface on the PF. This configuration allows unexpected, and potentially malicious, frames to be dropped. Overview ======== This driver supports kernel versions 2.6.x and newer. Driver information can be obtained using ethtool, lspci, and ifconfig. Instructions on updating ethtool can be found in the section Additional Configurations later in this document. This driver is only supported as a loadable module at this time. Intel is not supplying patches against the kernel source to allow for static linking of the drivers. For questions related to hardware requirements, refer to the documentation supplied with your Intel adapter. All hardware requirements listed apply to use with Linux. This driver supports XDP (Express Data Path) on kernel 4.14 and later. Note that XDP is blocked for frame sizes larger than 3KB. This driver supports AF_XDP zero-copy on kernel 4.18 and later. The driver information previously displayed in the /proc file system is not supported in this release. NOTE: Devices based on the Intel(R) Ethernet Connection X552 and Intel(R) Ethernet Connection X553 do not support the following features: * Energy Efficient Ethernet (EEE) * Intel PROSet for Windows Device Manager * Intel ANS teams or VLANs (LBFO is supported) * Fibre Channel over Ethernet (FCoE) * Data Center Bridging (DCB) * IPSec Offloading * MACSec Offloading In addition, SFP+ devices based on the Intel(R) Ethernet Connection X552 and Intel(R) Ethernet Connection X553 do not support the following features: * Speed and duplex auto-negotiation. * Wake on LAN * 1000BASE-T SFP Modules This driver no longer supports Itanium(R)-based systems. Identifying Your Adapter ======================== The driver is compatible with devices based on the following: * Intel(R) Ethernet Controller 82598 * Intel(R) Ethernet Controller 82599 * Intel(R) Ethernet Controller X520 * Intel(R) Ethernet Controller X540 * Intel(R) Ethernet Controller x550 * Intel(R) Ethernet Controller X552 * Intel(R) Ethernet Controller X553 For information on how to identify your adapter, and for the latest Intel network drivers, refer to the Intel Support website: http://www.intel.com/support 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. 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-703SDZ-IN2 Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1 LR Modules Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2 Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1 The following is a list of 3rd party SFP+ modules 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 Finisar 1000BASE-T SFP FCLF8522P2BTL Avago 1000BASE-T ABCU-5710RZ HP 1000BASE-SX SFP 453153-001 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 ethX down ------------------------------------------------ "ifconfig ethX down" turns off the laser for 82599-based SFP+ fiber adapters. "ifconfig ethX up" turns on the laser. Alternatively, you can use "ip link set [down/up] dev ethX" to turn the laser off and on. 82599-based QSFP+ Adapters -------------------------- NOTES: - If your 82599-based Intel(R) Network Adapter came with Intel optics, it only supports Intel optics. - 82599-based QSFP+ adapters only support 4x10 Gbps connections. 1x40 Gbps connections are not supported. QSFP+ link partners must be configured for 4x10 Gbps. - 82599-based QSFP+ adapters do not support automatic link speed detection. The link speed must be configured to either 10 Gbps or 1 Gbps to match the link partners speed capabilities. Incorrect speed configurations will result in failure to link. - Intel(R) Ethernet Converged Network Adapter X520-Q1 only supports the optics and direct attach cables listed below. Supplier Type Part Numbers -------- ---- ------------ Intel DUAL RATE 1G/10G QSFP+ SRL (bailed) E10GQSFPSR 82599-based QSFP+ adapters support all passive and active limiting QSFP+ direct attach cables that comply with SFF-8436 v4.1 specifications. 82598-BASED ADAPTERS -------------------- NOTES: - Intel(r) Ethernet Network Adapters that support removable optical modules only support their original module type (for example, 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 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. Third party optic modules and cables referred to above are listed only for the purpose of highlighting third party specifications and potential compatibility, and are not recommendations or endorsements or sponsorship of any third party's product by Intel. Intel is not endorsing or promoting products made by any third party and the third party reference is provided only to share information regarding certain optic modules and cables with the above specifications. There may be other manufacturers or suppliers, producing or supplying optic modules and cables with similar or matching descriptions. Customers must use their own discretion and diligence to purchase optic modules and cables from any third party of their choice. Customers are solely responsible for assessing the suitability of the product and/or devices and for the selection of the vendor for purchasing any product. THE OPTIC MODULES AND CABLES REFERRED TO ABOVE ARE NOT WARRANTED OR SUPPORTED BY INTEL. INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF SUCH THIRD PARTY PRODUCTS OR SELECTION OF VENDOR BY CUSTOMERS. Building and Installation ========================= To build a binary RPM* package of this driver, run 'rpmbuild -tb ixgbe-.tar.gz', where is the version number for the driver tar file. Note: For the build to work properly, the currently running kernel MUST match the version and configuration of the installed kernel sources. If you have just recompiled the kernel reboot the system before building. - To compile the driver on some kernel/arch combinations, a package with the development version of libelf (e.g. libelf-dev, libelf-devel, elfutilsl-libelf-devel) may need to be installed. Note: RPM functionality has only been tested in Red Hat distributions. 1. Move the base 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 is the version number for the driver tar file: tar zxf ixgbe-.tar.gz 3. Change to the driver src directory, where is the version number for the driver tar: cd ixgbe-/src/ 4. Compile the driver module: # make install The binary will be installed as: /lib/modules//updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko The install location listed above is the default location. This may differ for various Linux distributions. 5. Load the module using the modprobe command: modprobe [parameter=port1_value,port2_value] Make sure that any older ixgbe drivers are removed from the kernel before loading the new module: rmmod ixgbe; modprobe ixgbe 6. Assign an IP address to the interface by entering the following, where ethX is the interface name that was shown in dmesg after modprobe: ip address add / dev ethX 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 To build ixgbe driver with DCA ------------------------------ If your kernel supports DCA, the driver will build by default with DCA enabled. Note: DCA is not supported on X550-based adapters. Note: For certain distributions like (but not limited to) RedHat Enterprise Linux 7 and Ubuntu, once the driver is installed the initrd/initramfs file may need to be updated to prevent the OS loading old versions of the ixgbe driver. The dracut utility may be used on RedHat distributions: # dracut --force For Ubuntu: # update-initramfs -u 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 command using this syntax: modprobe ixgbe [