1132db935SJakub Kicinski.. SPDX-License-Identifier: GPL-2.0+ 2132db935SJakub Kicinski 3132db935SJakub Kicinski=========================================================================== 4132db935SJakub KicinskiLinux Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Adapters 5132db935SJakub Kicinski=========================================================================== 6132db935SJakub Kicinski 7132db935SJakub KicinskiIntel 10 Gigabit Linux driver. 8132db935SJakub KicinskiCopyright(c) 1999-2018 Intel Corporation. 9132db935SJakub Kicinski 10132db935SJakub KicinskiContents 11132db935SJakub Kicinski======== 12132db935SJakub Kicinski 13132db935SJakub Kicinski- Identifying Your Adapter 14132db935SJakub Kicinski- Command Line Parameters 15132db935SJakub Kicinski- Additional Configurations 16132db935SJakub Kicinski- Known Issues 17132db935SJakub Kicinski- Support 18132db935SJakub Kicinski 19132db935SJakub KicinskiIdentifying Your Adapter 20132db935SJakub Kicinski======================== 21132db935SJakub KicinskiThe driver is compatible with devices based on the following: 22132db935SJakub Kicinski 23132db935SJakub Kicinski * Intel(R) Ethernet Controller 82598 24132db935SJakub Kicinski * Intel(R) Ethernet Controller 82599 25132db935SJakub Kicinski * Intel(R) Ethernet Controller X520 26132db935SJakub Kicinski * Intel(R) Ethernet Controller X540 27132db935SJakub Kicinski * Intel(R) Ethernet Controller x550 28132db935SJakub Kicinski * Intel(R) Ethernet Controller X552 29132db935SJakub Kicinski * Intel(R) Ethernet Controller X553 30132db935SJakub Kicinski 31132db935SJakub KicinskiFor information on how to identify your adapter, and for the latest Intel 32132db935SJakub Kicinskinetwork drivers, refer to the Intel Support website: 33132db935SJakub Kicinskihttps://www.intel.com/support 34132db935SJakub Kicinski 35132db935SJakub KicinskiSFP+ Devices with Pluggable Optics 36132db935SJakub Kicinski---------------------------------- 37132db935SJakub Kicinski 38132db935SJakub Kicinski82599-BASED ADAPTERS 39132db935SJakub Kicinski~~~~~~~~~~~~~~~~~~~~ 40132db935SJakub KicinskiNOTES: 41132db935SJakub Kicinski- If your 82599-based Intel(R) Network Adapter came with Intel optics or is an 42132db935SJakub KicinskiIntel(R) Ethernet Server Adapter X520-2, then it only supports Intel optics 43132db935SJakub Kicinskiand/or the direct attach cables listed below. 44132db935SJakub Kicinski- When 82599-based SFP+ devices are connected back to back, they should be set 45132db935SJakub Kicinskito the same Speed setting via ethtool. Results may vary if you mix speed 46132db935SJakub Kicinskisettings. 47132db935SJakub Kicinski 48132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 49132db935SJakub Kicinski| Supplier | Type | Part Numbers | 50132db935SJakub Kicinski+===============+=======================================+==================+ 51132db935SJakub Kicinski| SR Modules | 52132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 53132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ SR (bailed) | FTLX8571D3BCV-IT | 54132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 55132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ SR (bailed) | AFBR-703SDZ-IN2 | 56132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 57132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ SR (bailed) | AFBR-703SDDZ-IN1 | 58132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 59132db935SJakub Kicinski| LR Modules | 60132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 61132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ LR (bailed) | FTLX1471D3BCV-IT | 62132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 63132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ LR (bailed) | AFCT-701SDZ-IN2 | 64132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 65132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G SFP+ LR (bailed) | AFCT-701SDDZ-IN1 | 66132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 67132db935SJakub Kicinski 68132db935SJakub KicinskiThe following is a list of 3rd party SFP+ modules that have received some 69132db935SJakub Kicinskitesting. Not all modules are applicable to all devices. 70132db935SJakub Kicinski 71132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 72132db935SJakub Kicinski| Supplier | Type | Part Numbers | 73132db935SJakub Kicinski+===============+=======================================+==================+ 74132db935SJakub Kicinski| Finisar | SFP+ SR bailed, 10g single rate | FTLX8571D3BCL | 75132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 76132db935SJakub Kicinski| Avago | SFP+ SR bailed, 10g single rate | AFBR-700SDZ | 77132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 78132db935SJakub Kicinski| Finisar | SFP+ LR bailed, 10g single rate | FTLX1471D3BCL | 79132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 80132db935SJakub Kicinski| Finisar | DUAL RATE 1G/10G SFP+ SR (No Bail) | FTLX8571D3QCV-IT | 81132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 82132db935SJakub Kicinski| Avago | DUAL RATE 1G/10G SFP+ SR (No Bail) | AFBR-703SDZ-IN1 | 83132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 84132db935SJakub Kicinski| Finisar | DUAL RATE 1G/10G SFP+ LR (No Bail) | FTLX1471D3QCV-IT | 85132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 86132db935SJakub Kicinski| Avago | DUAL RATE 1G/10G SFP+ LR (No Bail) | AFCT-701SDZ-IN1 | 87132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 88132db935SJakub Kicinski| Finisar | 1000BASE-T SFP | FCLF8522P2BTL | 89132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 90132db935SJakub Kicinski| Avago | 1000BASE-T | ABCU-5710RZ | 91132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 92132db935SJakub Kicinski| HP | 1000BASE-SX SFP | 453153-001 | 93132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 94132db935SJakub Kicinski 95132db935SJakub Kicinski82599-based adapters support all passive and active limiting direct attach 96132db935SJakub Kicinskicables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. 97132db935SJakub Kicinski 98132db935SJakub KicinskiLaser turns off for SFP+ when ifconfig ethX down 99132db935SJakub Kicinski~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100132db935SJakub Kicinski"ifconfig ethX down" turns off the laser for 82599-based SFP+ fiber adapters. 101132db935SJakub Kicinski"ifconfig ethX up" turns on the laser. 102132db935SJakub KicinskiAlternatively, you can use "ip link set [down/up] dev ethX" to turn the 103132db935SJakub Kicinskilaser off and on. 104132db935SJakub Kicinski 105132db935SJakub Kicinski 106132db935SJakub Kicinski82599-based QSFP+ Adapters 107132db935SJakub Kicinski~~~~~~~~~~~~~~~~~~~~~~~~~~ 108132db935SJakub KicinskiNOTES: 109132db935SJakub Kicinski- If your 82599-based Intel(R) Network Adapter came with Intel optics, it only 110132db935SJakub Kicinskisupports Intel optics. 111132db935SJakub Kicinski- 82599-based QSFP+ adapters only support 4x10 Gbps connections. 1x40 Gbps 112132db935SJakub Kicinskiconnections are not supported. QSFP+ link partners must be configured for 113132db935SJakub Kicinski4x10 Gbps. 114132db935SJakub Kicinski- 82599-based QSFP+ adapters do not support automatic link speed detection. 115132db935SJakub KicinskiThe link speed must be configured to either 10 Gbps or 1 Gbps to match the link 116132db935SJakub Kicinskipartners speed capabilities. Incorrect speed configurations will result in 117132db935SJakub Kicinskifailure to link. 118132db935SJakub Kicinski- Intel(R) Ethernet Converged Network Adapter X520-Q1 only supports the optics 119132db935SJakub Kicinskiand direct attach cables listed below. 120132db935SJakub Kicinski 121132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 122132db935SJakub Kicinski| Supplier | Type | Part Numbers | 123132db935SJakub Kicinski+===============+=======================================+==================+ 124132db935SJakub Kicinski| Intel | DUAL RATE 1G/10G QSFP+ SRL (bailed) | E10GQSFPSR | 125132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 126132db935SJakub Kicinski 127132db935SJakub Kicinski82599-based QSFP+ adapters support all passive and active limiting QSFP+ 128132db935SJakub Kicinskidirect attach cables that comply with SFF-8436 v4.1 specifications. 129132db935SJakub Kicinski 130132db935SJakub Kicinski82598-BASED ADAPTERS 131132db935SJakub Kicinski~~~~~~~~~~~~~~~~~~~~ 132132db935SJakub KicinskiNOTES: 133132db935SJakub Kicinski- Intel(r) Ethernet Network Adapters that support removable optical modules 134132db935SJakub Kicinskionly support their original module type (for example, the Intel(R) 10 Gigabit 135132db935SJakub KicinskiSR Dual Port Express Module only supports SR optical modules). If you plug in 136132db935SJakub Kicinskia different type of module, the driver will not load. 137132db935SJakub Kicinski- Hot Swapping/hot plugging optical modules is not supported. 138132db935SJakub Kicinski- Only single speed, 10 gigabit modules are supported. 139132db935SJakub Kicinski- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module 140132db935SJakub Kicinskitypes are not supported. Please see your system documentation for details. 141132db935SJakub Kicinski 142132db935SJakub KicinskiThe following is a list of SFP+ modules and direct attach cables that have 143132db935SJakub Kicinskireceived some testing. Not all modules are applicable to all devices. 144132db935SJakub Kicinski 145132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 146132db935SJakub Kicinski| Supplier | Type | Part Numbers | 147132db935SJakub Kicinski+===============+=======================================+==================+ 148132db935SJakub Kicinski| Finisar | SFP+ SR bailed, 10g single rate | FTLX8571D3BCL | 149132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 150132db935SJakub Kicinski| Avago | SFP+ SR bailed, 10g single rate | AFBR-700SDZ | 151132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 152132db935SJakub Kicinski| Finisar | SFP+ LR bailed, 10g single rate | FTLX1471D3BCL | 153132db935SJakub Kicinski+---------------+---------------------------------------+------------------+ 154132db935SJakub Kicinski 155132db935SJakub Kicinski82598-based adapters support all passive direct attach cables that comply with 156132db935SJakub KicinskiSFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach cables 157132db935SJakub Kicinskiare not supported. 158132db935SJakub Kicinski 159132db935SJakub KicinskiThird party optic modules and cables referred to above are listed only for the 160132db935SJakub Kicinskipurpose of highlighting third party specifications and potential 161132db935SJakub Kicinskicompatibility, and are not recommendations or endorsements or sponsorship of 162132db935SJakub Kicinskiany third party's product by Intel. Intel is not endorsing or promoting 163132db935SJakub Kicinskiproducts made by any third party and the third party reference is provided 164132db935SJakub Kicinskionly to share information regarding certain optic modules and cables with the 165132db935SJakub Kicinskiabove specifications. There may be other manufacturers or suppliers, producing 166132db935SJakub Kicinskior supplying optic modules and cables with similar or matching descriptions. 167132db935SJakub KicinskiCustomers must use their own discretion and diligence to purchase optic 168132db935SJakub Kicinskimodules and cables from any third party of their choice. Customers are solely 169132db935SJakub Kicinskiresponsible for assessing the suitability of the product and/or devices and 170132db935SJakub Kicinskifor the selection of the vendor for purchasing any product. THE OPTIC MODULES 171132db935SJakub KicinskiAND CABLES REFERRED TO ABOVE ARE NOT WARRANTED OR SUPPORTED BY INTEL. INTEL 172132db935SJakub KicinskiASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED 173132db935SJakub KicinskiWARRANTY, RELATING TO SALE AND/OR USE OF SUCH THIRD PARTY PRODUCTS OR 174132db935SJakub KicinskiSELECTION OF VENDOR BY CUSTOMERS. 175132db935SJakub Kicinski 176132db935SJakub KicinskiCommand Line Parameters 177132db935SJakub Kicinski======================= 178132db935SJakub Kicinski 179132db935SJakub Kicinskimax_vfs 180132db935SJakub Kicinski------- 181132db935SJakub Kicinski:Valid Range: 1-63 182132db935SJakub Kicinski 183132db935SJakub KicinskiThis parameter adds support for SR-IOV. It causes the driver to spawn up to 184132db935SJakub Kicinskimax_vfs worth of virtual functions. 185132db935SJakub KicinskiIf the value is greater than 0 it will also force the VMDq parameter to be 1 or 186132db935SJakub Kicinskimore. 187132db935SJakub Kicinski 188132db935SJakub KicinskiNOTE: This parameter is only used on kernel 3.7.x and below. On kernel 3.8.x 189132db935SJakub Kicinskiand above, use sysfs to enable VFs. Also, for Red Hat distributions, this 190132db935SJakub Kicinskiparameter is only used on version 6.6 and older. For version 6.7 and newer, use 191132db935SJakub Kicinskisysfs. For example:: 192132db935SJakub Kicinski 193132db935SJakub Kicinski #echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs // enable VFs 194132db935SJakub Kicinski #echo 0 > /sys/class/net/$dev/device/sriov_numvfs //disable VFs 195132db935SJakub Kicinski 196132db935SJakub KicinskiThe parameters for the driver are referenced by position. Thus, if you have a 197132db935SJakub Kicinskidual port adapter, or more than one adapter in your system, and want N virtual 198132db935SJakub Kicinskifunctions per port, you must specify a number for each port with each parameter 199132db935SJakub Kicinskiseparated by a comma. For example:: 200132db935SJakub Kicinski 201132db935SJakub Kicinski modprobe ixgbe max_vfs=4 202132db935SJakub Kicinski 203132db935SJakub KicinskiThis will spawn 4 VFs on the first port. 204132db935SJakub Kicinski 205132db935SJakub Kicinski:: 206132db935SJakub Kicinski 207132db935SJakub Kicinski modprobe ixgbe max_vfs=2,4 208132db935SJakub Kicinski 209132db935SJakub KicinskiThis will spawn 2 VFs on the first port and 4 VFs on the second port. 210132db935SJakub Kicinski 211132db935SJakub KicinskiNOTE: Caution must be used in loading the driver with these parameters. 212132db935SJakub KicinskiDepending on your system configuration, number of slots, etc., it is impossible 213132db935SJakub Kicinskito predict in all cases where the positions would be on the command line. 214132db935SJakub Kicinski 215132db935SJakub KicinskiNOTE: Neither the device nor the driver control how VFs are mapped into config 216132db935SJakub Kicinskispace. Bus layout will vary by operating system. On operating systems that 217132db935SJakub Kicinskisupport it, you can check sysfs to find the mapping. 218132db935SJakub Kicinski 219132db935SJakub KicinskiNOTE: When either SR-IOV mode or VMDq mode is enabled, hardware VLAN filtering 220132db935SJakub Kicinskiand VLAN tag stripping/insertion will remain enabled. Please remove the old 221132db935SJakub KicinskiVLAN filter before the new VLAN filter is added. For example, 222132db935SJakub Kicinski 223132db935SJakub Kicinski:: 224132db935SJakub Kicinski 225132db935SJakub Kicinski ip link set eth0 vf 0 vlan 100 // set VLAN 100 for VF 0 226132db935SJakub Kicinski ip link set eth0 vf 0 vlan 0 // Delete VLAN 100 227132db935SJakub Kicinski ip link set eth0 vf 0 vlan 200 // set a new VLAN 200 for VF 0 228132db935SJakub Kicinski 229132db935SJakub KicinskiWith kernel 3.6, the driver supports the simultaneous usage of max_vfs and DCB 230132db935SJakub Kicinskifeatures, subject to the constraints described below. Prior to kernel 3.6, the 231132db935SJakub Kicinskidriver did not support the simultaneous operation of max_vfs greater than 0 and 232132db935SJakub Kicinskithe DCB features (multiple traffic classes utilizing Priority Flow Control and 233132db935SJakub KicinskiExtended Transmission Selection). 234132db935SJakub Kicinski 235132db935SJakub KicinskiWhen DCB is enabled, network traffic is transmitted and received through 236132db935SJakub Kicinskimultiple traffic classes (packet buffers in the NIC). The traffic is associated 237132db935SJakub Kicinskiwith a specific class based on priority, which has a value of 0 through 7 used 238132db935SJakub Kicinskiin the VLAN tag. When SR-IOV is not enabled, each traffic class is associated 239132db935SJakub Kicinskiwith a set of receive/transmit descriptor queue pairs. The number of queue 240132db935SJakub Kicinskipairs for a given traffic class depends on the hardware configuration. When 241132db935SJakub KicinskiSR-IOV is enabled, the descriptor queue pairs are grouped into pools. The 242132db935SJakub KicinskiPhysical Function (PF) and each Virtual Function (VF) is allocated a pool of 243132db935SJakub Kicinskireceive/transmit descriptor queue pairs. When multiple traffic classes are 244132db935SJakub Kicinskiconfigured (for example, DCB is enabled), each pool contains a queue pair from 245132db935SJakub Kicinskieach traffic class. When a single traffic class is configured in the hardware, 246132db935SJakub Kicinskithe pools contain multiple queue pairs from the single traffic class. 247132db935SJakub Kicinski 248132db935SJakub KicinskiThe number of VFs that can be allocated depends on the number of traffic 249132db935SJakub Kicinskiclasses that can be enabled. The configurable number of traffic classes for 250132db935SJakub Kicinskieach enabled VF is as follows: 251132db935SJakub Kicinski0 - 15 VFs = Up to 8 traffic classes, depending on device support 252132db935SJakub Kicinski16 - 31 VFs = Up to 4 traffic classes 253132db935SJakub Kicinski32 - 63 VFs = 1 traffic class 254132db935SJakub Kicinski 255132db935SJakub KicinskiWhen VFs are configured, the PF is allocated one pool as well. The PF supports 256132db935SJakub Kicinskithe DCB features with the constraint that each traffic class will only use a 257132db935SJakub Kicinskisingle queue pair. When zero VFs are configured, the PF can support multiple 258132db935SJakub Kicinskiqueue pairs per traffic class. 259132db935SJakub Kicinski 260132db935SJakub Kicinskiallow_unsupported_sfp 261132db935SJakub Kicinski--------------------- 262132db935SJakub Kicinski:Valid Range: 0,1 263132db935SJakub Kicinski:Default Value: 0 (disabled) 264132db935SJakub Kicinski 265132db935SJakub KicinskiThis parameter allows unsupported and untested SFP+ modules on 82599-based 266132db935SJakub Kicinskiadapters, as long as the type of module is known to the driver. 267132db935SJakub Kicinski 268132db935SJakub Kicinskidebug 269132db935SJakub Kicinski----- 270132db935SJakub Kicinski:Valid Range: 0-16 (0=none,...,16=all) 271132db935SJakub Kicinski:Default Value: 0 272132db935SJakub Kicinski 273132db935SJakub KicinskiThis parameter adjusts the level of debug messages displayed in the system 274132db935SJakub Kicinskilogs. 275132db935SJakub Kicinski 276132db935SJakub Kicinski 277132db935SJakub KicinskiAdditional Features and Configurations 278132db935SJakub Kicinski====================================== 279132db935SJakub Kicinski 280132db935SJakub KicinskiFlow Control 281132db935SJakub Kicinski------------ 282132db935SJakub KicinskiEthernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable 283132db935SJakub Kicinskireceiving and transmitting pause frames for ixgbe. When transmit is enabled, 284132db935SJakub Kicinskipause frames are generated when the receive packet buffer crosses a predefined 285132db935SJakub Kicinskithreshold. When receive is enabled, the transmit unit will halt for the time 286132db935SJakub Kicinskidelay specified when a pause frame is received. 287132db935SJakub Kicinski 288132db935SJakub KicinskiNOTE: You must have a flow control capable link partner. 289132db935SJakub Kicinski 290132db935SJakub KicinskiFlow Control is enabled by default. 291132db935SJakub Kicinski 292132db935SJakub KicinskiUse ethtool to change the flow control settings. To enable or disable Rx or 293132db935SJakub KicinskiTx Flow Control:: 294132db935SJakub Kicinski 295132db935SJakub Kicinski ethtool -A eth? rx <on|off> tx <on|off> 296132db935SJakub Kicinski 297132db935SJakub KicinskiNote: This command only enables or disables Flow Control if auto-negotiation is 298132db935SJakub Kicinskidisabled. If auto-negotiation is enabled, this command changes the parameters 299132db935SJakub Kicinskiused for auto-negotiation with the link partner. 300132db935SJakub Kicinski 301132db935SJakub KicinskiTo enable or disable auto-negotiation:: 302132db935SJakub Kicinski 303132db935SJakub Kicinski ethtool -s eth? autoneg <on|off> 304132db935SJakub Kicinski 305132db935SJakub KicinskiNote: Flow Control auto-negotiation is part of link auto-negotiation. Depending 306132db935SJakub Kicinskion your device, you may not be able to change the auto-negotiation setting. 307132db935SJakub Kicinski 308132db935SJakub KicinskiNOTE: For 82598 backplane cards entering 1 gigabit mode, flow control default 309132db935SJakub Kicinskibehavior is changed to off. Flow control in 1 gigabit mode on these devices can 310132db935SJakub Kicinskilead to transmit hangs. 311132db935SJakub Kicinski 312132db935SJakub KicinskiIntel(R) Ethernet Flow Director 313132db935SJakub Kicinski------------------------------- 314132db935SJakub KicinskiThe Intel Ethernet Flow Director performs the following tasks: 315132db935SJakub Kicinski 316132db935SJakub Kicinski- Directs receive packets according to their flows to different queues. 317132db935SJakub Kicinski- Enables tight control on routing a flow in the platform. 318132db935SJakub Kicinski- Matches flows and CPU cores for flow affinity. 319132db935SJakub Kicinski- Supports multiple parameters for flexible flow classification and load 320132db935SJakub Kicinski balancing (in SFP mode only). 321132db935SJakub Kicinski 322132db935SJakub KicinskiNOTE: Intel Ethernet Flow Director masking works in the opposite manner from 323132db935SJakub Kicinskisubnet masking. In the following command:: 324132db935SJakub Kicinski 325132db935SJakub Kicinski #ethtool -N eth11 flow-type ip4 src-ip 172.4.1.2 m 255.0.0.0 dst-ip \ 326132db935SJakub Kicinski 172.21.1.1 m 255.128.0.0 action 31 327132db935SJakub Kicinski 328132db935SJakub KicinskiThe src-ip value that is written to the filter will be 0.4.1.2, not 172.0.0.0 329132db935SJakub Kicinskias might be expected. Similarly, the dst-ip value written to the filter will be 330132db935SJakub Kicinski0.21.1.1, not 172.0.0.0. 331132db935SJakub Kicinski 332132db935SJakub KicinskiTo enable or disable the Intel Ethernet Flow Director:: 333132db935SJakub Kicinski 334132db935SJakub Kicinski # ethtool -K ethX ntuple <on|off> 335132db935SJakub Kicinski 336132db935SJakub KicinskiWhen disabling ntuple filters, all the user programmed filters are flushed from 337132db935SJakub Kicinskithe driver cache and hardware. All needed filters must be re-added when ntuple 338132db935SJakub Kicinskiis re-enabled. 339132db935SJakub Kicinski 340132db935SJakub KicinskiTo add a filter that directs packet to queue 2, use -U or -N switch:: 341132db935SJakub Kicinski 342132db935SJakub Kicinski # ethtool -N ethX flow-type tcp4 src-ip 192.168.10.1 dst-ip \ 343132db935SJakub Kicinski 192.168.10.2 src-port 2000 dst-port 2001 action 2 [loc 1] 344132db935SJakub Kicinski 345132db935SJakub KicinskiTo see the list of filters currently present:: 346132db935SJakub Kicinski 347132db935SJakub Kicinski # ethtool <-u|-n> ethX 348132db935SJakub Kicinski 349132db935SJakub KicinskiSideband Perfect Filters 350132db935SJakub Kicinski------------------------ 351132db935SJakub KicinskiSideband Perfect Filters are used to direct traffic that matches specified 352132db935SJakub Kicinskicharacteristics. They are enabled through ethtool's ntuple interface. To add a 353132db935SJakub Kicinskinew filter use the following command:: 354132db935SJakub Kicinski 355132db935SJakub Kicinski ethtool -U <device> flow-type <type> src-ip <ip> dst-ip <ip> src-port <port> \ 356132db935SJakub Kicinski dst-port <port> action <queue> 357132db935SJakub Kicinski 358132db935SJakub KicinskiWhere: 359132db935SJakub Kicinski <device> - the ethernet device to program 360132db935SJakub Kicinski <type> - can be ip4, tcp4, udp4, or sctp4 361132db935SJakub Kicinski <ip> - the IP address to match on 362132db935SJakub Kicinski <port> - the port number to match on 363132db935SJakub Kicinski <queue> - the queue to direct traffic towards (-1 discards the matched traffic) 364132db935SJakub Kicinski 365132db935SJakub KicinskiUse the following command to delete a filter:: 366132db935SJakub Kicinski 367132db935SJakub Kicinski ethtool -U <device> delete <N> 368132db935SJakub Kicinski 369132db935SJakub KicinskiWhere <N> is the filter id displayed when printing all the active filters, and 370132db935SJakub Kicinskimay also have been specified using "loc <N>" when adding the filter. 371132db935SJakub Kicinski 372132db935SJakub KicinskiThe following example matches TCP traffic sent from 192.168.0.1, port 5300, 373132db935SJakub Kicinskidirected to 192.168.0.5, port 80, and sends it to queue 7:: 374132db935SJakub Kicinski 375132db935SJakub Kicinski ethtool -U enp130s0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5 \ 376132db935SJakub Kicinski src-port 5300 dst-port 80 action 7 377132db935SJakub Kicinski 378132db935SJakub KicinskiFor each flow-type, the programmed filters must all have the same matching 379132db935SJakub Kicinskiinput set. For example, issuing the following two commands is acceptable:: 380132db935SJakub Kicinski 381132db935SJakub Kicinski ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7 382132db935SJakub Kicinski ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.5 src-port 55 action 10 383132db935SJakub Kicinski 384132db935SJakub KicinskiIssuing the next two commands, however, is not acceptable, since the first 385132db935SJakub Kicinskispecifies src-ip and the second specifies dst-ip:: 386132db935SJakub Kicinski 387132db935SJakub Kicinski ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7 388132db935SJakub Kicinski ethtool -U enp130s0 flow-type ip4 dst-ip 192.168.0.5 src-port 55 action 10 389132db935SJakub Kicinski 390132db935SJakub KicinskiThe second command will fail with an error. You may program multiple filters 391132db935SJakub Kicinskiwith the same fields, using different values, but, on one device, you may not 392132db935SJakub Kicinskiprogram two TCP4 filters with different matching fields. 393132db935SJakub Kicinski 394132db935SJakub KicinskiMatching on a sub-portion of a field is not supported by the ixgbe driver, thus 395132db935SJakub Kicinskipartial mask fields are not supported. 396132db935SJakub Kicinski 397132db935SJakub KicinskiTo create filters that direct traffic to a specific Virtual Function, use the 398132db935SJakub Kicinski"user-def" parameter. Specify the user-def as a 64 bit value, where the lower 32 399132db935SJakub Kicinskibits represents the queue number, while the next 8 bits represent which VF. 400132db935SJakub KicinskiNote that 0 is the PF, so the VF identifier is offset by 1. For example:: 401132db935SJakub Kicinski 402132db935SJakub Kicinski ... user-def 0x800000002 ... 403132db935SJakub Kicinski 404132db935SJakub Kicinskispecifies to direct traffic to Virtual Function 7 (8 minus 1) into queue 2 of 405132db935SJakub Kicinskithat VF. 406132db935SJakub Kicinski 407132db935SJakub KicinskiNote that these filters will not break internal routing rules, and will not 408132db935SJakub Kicinskiroute traffic that otherwise would not have been sent to the specified Virtual 409132db935SJakub KicinskiFunction. 410132db935SJakub Kicinski 411132db935SJakub KicinskiJumbo Frames 412132db935SJakub Kicinski------------ 413132db935SJakub KicinskiJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) 414132db935SJakub Kicinskito a value larger than the default value of 1500. 415132db935SJakub Kicinski 416132db935SJakub KicinskiUse the ifconfig command to increase the MTU size. For example, enter the 417132db935SJakub Kicinskifollowing where <x> is the interface number:: 418132db935SJakub Kicinski 419132db935SJakub Kicinski ifconfig eth<x> mtu 9000 up 420132db935SJakub Kicinski 421132db935SJakub KicinskiAlternatively, you can use the ip command as follows:: 422132db935SJakub Kicinski 423132db935SJakub Kicinski ip link set mtu 9000 dev eth<x> 424132db935SJakub Kicinski ip link set up dev eth<x> 425132db935SJakub Kicinski 426132db935SJakub KicinskiThis setting is not saved across reboots. The setting change can be made 427132db935SJakub Kicinskipermanent by adding 'MTU=9000' to the file:: 428132db935SJakub Kicinski 429132db935SJakub Kicinski /etc/sysconfig/network-scripts/ifcfg-eth<x> // for RHEL 430132db935SJakub Kicinski /etc/sysconfig/network/<config_file> // for SLES 431132db935SJakub Kicinski 432132db935SJakub KicinskiNOTE: The maximum MTU setting for Jumbo Frames is 9710. This value coincides 433132db935SJakub Kicinskiwith the maximum Jumbo Frames size of 9728 bytes. 434132db935SJakub Kicinski 435132db935SJakub KicinskiNOTE: This driver will attempt to use multiple page sized buffers to receive 436132db935SJakub Kicinskieach jumbo packet. This should help to avoid buffer starvation issues when 437132db935SJakub Kicinskiallocating receive packets. 438132db935SJakub Kicinski 439132db935SJakub KicinskiNOTE: For 82599-based network connections, if you are enabling jumbo frames in 440132db935SJakub Kicinskia virtual function (VF), jumbo frames must first be enabled in the physical 441132db935SJakub Kicinskifunction (PF). The VF MTU setting cannot be larger than the PF MTU. 442132db935SJakub Kicinski 443271225fdSRobert SchlabbachNBASE-T Support 444271225fdSRobert Schlabbach--------------- 445271225fdSRobert SchlabbachThe ixgbe driver supports NBASE-T on some devices. However, the advertisement 446271225fdSRobert Schlabbachof NBASE-T speeds is suppressed by default, to accommodate broken network 447271225fdSRobert Schlabbachswitches which cannot cope with advertised NBASE-T speeds. Use the ethtool 448271225fdSRobert Schlabbachcommand to enable advertising NBASE-T speeds on devices which support it:: 449271225fdSRobert Schlabbach 450271225fdSRobert Schlabbach ethtool -s eth? advertise 0x1800000001028 451271225fdSRobert Schlabbach 452271225fdSRobert SchlabbachOn Linux systems with INTERFACES(5), this can be specified as a pre-up command 453271225fdSRobert Schlabbachin /etc/network/interfaces so that the interface is always brought up with 454271225fdSRobert SchlabbachNBASE-T support, e.g.:: 455271225fdSRobert Schlabbach 456271225fdSRobert Schlabbach iface eth? inet dhcp 457271225fdSRobert Schlabbach pre-up ethtool -s eth? advertise 0x1800000001028 || true 458271225fdSRobert Schlabbach 459132db935SJakub KicinskiGeneric Receive Offload, aka GRO 460132db935SJakub Kicinski-------------------------------- 461132db935SJakub KicinskiThe driver supports the in-kernel software implementation of GRO. GRO has 462132db935SJakub Kicinskishown that by coalescing Rx traffic into larger chunks of data, CPU 463132db935SJakub Kicinskiutilization can be significantly reduced when under large Rx load. GRO is an 464132db935SJakub Kicinskievolution of the previously-used LRO interface. GRO is able to coalesce 465132db935SJakub Kicinskiother protocols besides TCP. It's also safe to use with configurations that 466132db935SJakub Kicinskiare problematic for LRO, namely bridging and iSCSI. 467132db935SJakub Kicinski 468132db935SJakub KicinskiData Center Bridging (DCB) 469132db935SJakub Kicinski-------------------------- 470132db935SJakub KicinskiNOTE: 471132db935SJakub KicinskiThe kernel assumes that TC0 is available, and will disable Priority Flow 472132db935SJakub KicinskiControl (PFC) on the device if TC0 is not available. To fix this, ensure TC0 is 473132db935SJakub Kicinskienabled when setting up DCB on your switch. 474132db935SJakub Kicinski 475132db935SJakub KicinskiDCB is a configuration Quality of Service implementation in hardware. It uses 476132db935SJakub Kicinskithe VLAN priority tag (802.1p) to filter traffic. That means that there are 8 477132db935SJakub Kicinskidifferent priorities that traffic can be filtered into. It also enables 478132db935SJakub Kicinskipriority flow control (802.1Qbb) which can limit or eliminate the number of 479132db935SJakub Kicinskidropped packets during network stress. Bandwidth can be allocated to each of 480132db935SJakub Kicinskithese priorities, which is enforced at the hardware level (802.1Qaz). 481132db935SJakub Kicinski 482132db935SJakub KicinskiAdapter firmware implements LLDP and DCBX protocol agents as per 802.1AB and 483132db935SJakub Kicinski802.1Qaz respectively. The firmware based DCBX agent runs in willing mode only 484132db935SJakub Kicinskiand can accept settings from a DCBX capable peer. Software configuration of 485132db935SJakub KicinskiDCBX parameters via dcbtool/lldptool are not supported. 486132db935SJakub Kicinski 487132db935SJakub KicinskiThe ixgbe driver implements the DCB netlink interface layer to allow user-space 488132db935SJakub Kicinskito communicate with the driver and query DCB configuration for the port. 489132db935SJakub Kicinski 490132db935SJakub Kicinskiethtool 491132db935SJakub Kicinski------- 492132db935SJakub KicinskiThe driver utilizes the ethtool interface for driver configuration and 493132db935SJakub Kicinskidiagnostics, as well as displaying statistical information. The latest ethtool 494132db935SJakub Kicinskiversion is required for this functionality. Download it at: 495132db935SJakub Kicinskihttps://www.kernel.org/pub/software/network/ethtool/ 496132db935SJakub Kicinski 497132db935SJakub KicinskiFCoE 498132db935SJakub Kicinski---- 499132db935SJakub KicinskiThe ixgbe driver supports Fiber Channel over Ethernet (FCoE) and Data Center 500132db935SJakub KicinskiBridging (DCB). This code has no default effect on the regular driver 501132db935SJakub Kicinskioperation. Configuring DCB and FCoE is outside the scope of this README. Refer 502132db935SJakub Kicinskito http://www.open-fcoe.org/ for FCoE project information and contact 503132db935SJakub Kicinskiixgbe-eedc@lists.sourceforge.net for DCB information. 504132db935SJakub Kicinski 505132db935SJakub KicinskiMAC and VLAN anti-spoofing feature 506132db935SJakub Kicinski---------------------------------- 507132db935SJakub KicinskiWhen a malicious driver attempts to send a spoofed packet, it is dropped by the 508132db935SJakub Kicinskihardware and not transmitted. 509132db935SJakub Kicinski 510132db935SJakub KicinskiAn interrupt is sent to the PF driver notifying it of the spoof attempt. When a 511132db935SJakub Kicinskispoofed packet is detected, the PF driver will send the following message to 512132db935SJakub Kicinskithe system log (displayed by the "dmesg" command):: 513132db935SJakub Kicinski 514132db935SJakub Kicinski ixgbe ethX: ixgbe_spoof_check: n spoofed packets detected 515132db935SJakub Kicinski 516132db935SJakub Kicinskiwhere "x" is the PF interface number; and "n" is number of spoofed packets. 517132db935SJakub KicinskiNOTE: This feature can be disabled for a specific Virtual Function (VF):: 518132db935SJakub Kicinski 519132db935SJakub Kicinski ip link set <pf dev> vf <vf id> spoofchk {off|on} 520132db935SJakub Kicinski 521132db935SJakub KicinskiIPsec Offload 522132db935SJakub Kicinski------------- 523132db935SJakub KicinskiThe ixgbe driver supports IPsec Hardware Offload. When creating Security 524132db935SJakub KicinskiAssociations with "ip xfrm ..." the 'offload' tag option can be used to 525132db935SJakub Kicinskiregister the IPsec SA with the driver in order to get higher throughput in 526132db935SJakub Kicinskithe secure communications. 527132db935SJakub Kicinski 528132db935SJakub KicinskiThe offload is also supported for ixgbe's VFs, but the VF must be set as 529132db935SJakub Kicinski'trusted' and the support must be enabled with:: 530132db935SJakub Kicinski 531132db935SJakub Kicinski ethtool --set-priv-flags eth<x> vf-ipsec on 532132db935SJakub Kicinski ip link set eth<x> vf <y> trust on 533132db935SJakub Kicinski 534132db935SJakub Kicinski 535132db935SJakub KicinskiKnown Issues/Troubleshooting 536132db935SJakub Kicinski============================ 537132db935SJakub Kicinski 538132db935SJakub KicinskiEnabling SR-IOV in a 64-bit Microsoft Windows Server 2012/R2 guest OS 539132db935SJakub Kicinski--------------------------------------------------------------------- 540132db935SJakub KicinskiLinux KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. 541132db935SJakub KicinskiThis includes traditional PCIe devices, as well as SR-IOV-capable devices based 542132db935SJakub Kicinskion the Intel Ethernet Controller XL710. 543132db935SJakub Kicinski 544132db935SJakub Kicinski 545132db935SJakub KicinskiSupport 546132db935SJakub Kicinski======= 547132db935SJakub KicinskiFor general information, go to the Intel support website at: 548132db935SJakub Kicinskihttps://www.intel.com/support/ 549132db935SJakub Kicinski 550132db935SJakub KicinskiIf an issue is identified with the released source code on a supported kernel 551132db935SJakub Kicinskiwith a supported adapter, email the specific information related to the issue 552*8ba732beSTony Nguyento intel-wired-lan@lists.osuosl.org. 553