1132db935SJakub Kicinski.. SPDX-License-Identifier: GPL-2.0+ 2132db935SJakub Kicinski 3132db935SJakub Kicinski========================================================== 4132db935SJakub KicinskiLinux Base Driver for Intel(R) Ethernet Network Connection 5132db935SJakub Kicinski========================================================== 6132db935SJakub Kicinski 7132db935SJakub KicinskiIntel 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- Support 17132db935SJakub Kicinski 18132db935SJakub Kicinski 19132db935SJakub KicinskiIdentifying Your Adapter 20132db935SJakub Kicinski======================== 21132db935SJakub KicinskiFor information on how to identify your adapter, and for the latest Intel 22132db935SJakub Kicinskinetwork drivers, refer to the Intel Support website: 2309a071f5SAlexander A. Klimovhttps://www.intel.com/support 24132db935SJakub Kicinski 25132db935SJakub Kicinski 26132db935SJakub KicinskiCommand Line Parameters 27132db935SJakub Kicinski======================== 28132db935SJakub KicinskiIf the driver is built as a module, the following optional parameters are used 29132db935SJakub Kicinskiby entering them on the command line with the modprobe command using this 30132db935SJakub Kicinskisyntax:: 31132db935SJakub Kicinski 32132db935SJakub Kicinski modprobe igb [<option>=<VAL1>,<VAL2>,...] 33132db935SJakub Kicinski 34132db935SJakub KicinskiThere needs to be a <VAL#> for each network port in the system supported by 35132db935SJakub Kicinskithis driver. The values will be applied to each instance, in function order. 36132db935SJakub KicinskiFor example:: 37132db935SJakub Kicinski 38132db935SJakub Kicinski modprobe igb max_vfs=2,4 39132db935SJakub Kicinski 40132db935SJakub KicinskiIn this case, there are two network ports supported by igb in the system. 41132db935SJakub Kicinski 42132db935SJakub KicinskiNOTE: A descriptor describes a data buffer and attributes related to the data 43132db935SJakub Kicinskibuffer. This information is accessed by the hardware. 44132db935SJakub Kicinski 45132db935SJakub Kicinskimax_vfs 46132db935SJakub Kicinski------- 47132db935SJakub Kicinski:Valid Range: 0-7 48132db935SJakub Kicinski 49132db935SJakub KicinskiThis parameter adds support for SR-IOV. It causes the driver to spawn up to 50132db935SJakub Kicinskimax_vfs worth of virtual functions. If the value is greater than 0 it will 51132db935SJakub Kicinskialso force the VMDq parameter to be 1 or more. 52132db935SJakub Kicinski 53132db935SJakub KicinskiThe parameters for the driver are referenced by position. Thus, if you have a 54132db935SJakub Kicinskidual port adapter, or more than one adapter in your system, and want N virtual 55132db935SJakub Kicinskifunctions per port, you must specify a number for each port with each parameter 56132db935SJakub Kicinskiseparated by a comma. For example:: 57132db935SJakub Kicinski 58132db935SJakub Kicinski modprobe igb max_vfs=4 59132db935SJakub Kicinski 60132db935SJakub KicinskiThis will spawn 4 VFs on the first port. 61132db935SJakub Kicinski 62132db935SJakub Kicinski:: 63132db935SJakub Kicinski 64132db935SJakub Kicinski modprobe igb max_vfs=2,4 65132db935SJakub Kicinski 66132db935SJakub KicinskiThis will spawn 2 VFs on the first port and 4 VFs on the second port. 67132db935SJakub Kicinski 68132db935SJakub KicinskiNOTE: Caution must be used in loading the driver with these parameters. 69132db935SJakub KicinskiDepending on your system configuration, number of slots, etc., it is impossible 70132db935SJakub Kicinskito predict in all cases where the positions would be on the command line. 71132db935SJakub Kicinski 72132db935SJakub KicinskiNOTE: Neither the device nor the driver control how VFs are mapped into config 73132db935SJakub Kicinskispace. Bus layout will vary by operating system. On operating systems that 74132db935SJakub Kicinskisupport it, you can check sysfs to find the mapping. 75132db935SJakub Kicinski 76132db935SJakub KicinskiNOTE: When either SR-IOV mode or VMDq mode is enabled, hardware VLAN filtering 77132db935SJakub Kicinskiand VLAN tag stripping/insertion will remain enabled. Please remove the old 78132db935SJakub KicinskiVLAN filter before the new VLAN filter is added. For example:: 79132db935SJakub Kicinski 80132db935SJakub Kicinski ip link set eth0 vf 0 vlan 100 // set vlan 100 for VF 0 81132db935SJakub Kicinski ip link set eth0 vf 0 vlan 0 // Delete vlan 100 82132db935SJakub Kicinski ip link set eth0 vf 0 vlan 200 // set a new vlan 200 for VF 0 83132db935SJakub Kicinski 84132db935SJakub KicinskiDebug 85132db935SJakub Kicinski----- 86132db935SJakub Kicinski:Valid Range: 0-16 (0=none,...,16=all) 87132db935SJakub Kicinski:Default Value: 0 88132db935SJakub Kicinski 89132db935SJakub KicinskiThis parameter adjusts the level debug messages displayed in the system logs. 90132db935SJakub Kicinski 91132db935SJakub Kicinski 92132db935SJakub KicinskiAdditional Features and Configurations 93132db935SJakub Kicinski====================================== 94132db935SJakub Kicinski 95132db935SJakub KicinskiJumbo Frames 96132db935SJakub Kicinski------------ 97132db935SJakub KicinskiJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) 98132db935SJakub Kicinskito a value larger than the default value of 1500. 99132db935SJakub Kicinski 100132db935SJakub KicinskiUse the ifconfig command to increase the MTU size. For example, enter the 101132db935SJakub Kicinskifollowing where <x> is the interface number:: 102132db935SJakub Kicinski 103132db935SJakub Kicinski ifconfig eth<x> mtu 9000 up 104132db935SJakub Kicinski 105132db935SJakub KicinskiAlternatively, you can use the ip command as follows:: 106132db935SJakub Kicinski 107132db935SJakub Kicinski ip link set mtu 9000 dev eth<x> 108132db935SJakub Kicinski ip link set up dev eth<x> 109132db935SJakub Kicinski 110132db935SJakub KicinskiThis setting is not saved across reboots. The setting change can be made 111132db935SJakub Kicinskipermanent by adding 'MTU=9000' to the file: 112132db935SJakub Kicinski 113132db935SJakub Kicinski- For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x> 114132db935SJakub Kicinski- For SLES: /etc/sysconfig/network/<config_file> 115132db935SJakub Kicinski 116132db935SJakub KicinskiNOTE: The maximum MTU setting for Jumbo Frames is 9216. This value coincides 117132db935SJakub Kicinskiwith the maximum Jumbo Frames size of 9234 bytes. 118132db935SJakub Kicinski 119132db935SJakub KicinskiNOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in 120132db935SJakub Kicinskipoor performance or loss of link. 121132db935SJakub Kicinski 122132db935SJakub Kicinski 123132db935SJakub Kicinskiethtool 124132db935SJakub Kicinski------- 125132db935SJakub KicinskiThe driver utilizes the ethtool interface for driver configuration and 126132db935SJakub Kicinskidiagnostics, as well as displaying statistical information. The latest ethtool 127132db935SJakub Kicinskiversion is required for this functionality. Download it at: 128132db935SJakub Kicinski 129132db935SJakub Kicinskihttps://www.kernel.org/pub/software/network/ethtool/ 130132db935SJakub Kicinski 131132db935SJakub Kicinski 132132db935SJakub KicinskiEnabling Wake on LAN (WoL) 133132db935SJakub Kicinski-------------------------- 134132db935SJakub KicinskiWoL is configured through the ethtool utility. 135132db935SJakub Kicinski 136132db935SJakub KicinskiWoL will be enabled on the system during the next shut down or reboot. For 137132db935SJakub Kicinskithis driver version, in order to enable WoL, the igb driver must be loaded 138132db935SJakub Kicinskiprior to shutting down or suspending the system. 139132db935SJakub Kicinski 140132db935SJakub KicinskiNOTE: Wake on LAN is only supported on port A of multi-port devices. Also 141132db935SJakub KicinskiWake On LAN is not supported for the following device: 142132db935SJakub Kicinski- Intel(R) Gigabit VT Quad Port Server Adapter 143132db935SJakub Kicinski 144132db935SJakub Kicinski 145132db935SJakub KicinskiMultiqueue 146132db935SJakub Kicinski---------- 147132db935SJakub KicinskiIn this mode, a separate MSI-X vector is allocated for each queue and one for 148132db935SJakub Kicinski"other" interrupts such as link status change and errors. All interrupts are 149132db935SJakub Kicinskithrottled via interrupt moderation. Interrupt moderation must be used to avoid 150132db935SJakub Kicinskiinterrupt storms while the driver is processing one interrupt. The moderation 151132db935SJakub Kicinskivalue should be at least as large as the expected time for the driver to 152132db935SJakub Kicinskiprocess an interrupt. Multiqueue is off by default. 153132db935SJakub Kicinski 154132db935SJakub KicinskiREQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not found, 155132db935SJakub Kicinskithe system will fallback to MSI or to Legacy interrupts. This driver supports 156132db935SJakub Kicinskireceive multiqueue on all kernels that support MSI-X. 157132db935SJakub Kicinski 158132db935SJakub KicinskiNOTE: On some kernels a reboot is required to switch between single queue mode 159132db935SJakub Kicinskiand multiqueue mode or vice-versa. 160132db935SJakub Kicinski 161132db935SJakub Kicinski 162132db935SJakub KicinskiMAC and VLAN anti-spoofing feature 163132db935SJakub Kicinski---------------------------------- 164132db935SJakub KicinskiWhen a malicious driver attempts to send a spoofed packet, it is dropped by the 165132db935SJakub Kicinskihardware and not transmitted. 166132db935SJakub Kicinski 167132db935SJakub KicinskiAn interrupt is sent to the PF driver notifying it of the spoof attempt. When a 168132db935SJakub Kicinskispoofed packet is detected, the PF driver will send the following message to 169132db935SJakub Kicinskithe system log (displayed by the "dmesg" command): 170132db935SJakub KicinskiSpoof event(s) detected on VF(n), where n = the VF that attempted to do the 171132db935SJakub Kicinskispoofing 172132db935SJakub Kicinski 173132db935SJakub Kicinski 174132db935SJakub KicinskiSetting MAC Address, VLAN and Rate Limit Using IProute2 Tool 175132db935SJakub Kicinski------------------------------------------------------------ 176132db935SJakub KicinskiYou can set a MAC address of a Virtual Function (VF), a default VLAN and the 177132db935SJakub Kicinskirate limit using the IProute2 tool. Download the latest version of the 178132db935SJakub KicinskiIProute2 tool from Sourceforge if your version does not have all the features 179132db935SJakub Kicinskiyou require. 180132db935SJakub Kicinski 181132db935SJakub KicinskiCredit Based Shaper (Qav Mode) 182132db935SJakub Kicinski------------------------------ 183132db935SJakub KicinskiWhen enabling the CBS qdisc in the hardware offload mode, traffic shaping using 184132db935SJakub Kicinskithe CBS (described in the IEEE 802.1Q-2018 Section 8.6.8.2 and discussed in the 185132db935SJakub KicinskiAnnex L) algorithm will run in the i210 controller, so it's more accurate and 186132db935SJakub Kicinskiuses less CPU. 187132db935SJakub Kicinski 188132db935SJakub KicinskiWhen using offloaded CBS, and the traffic rate obeys the configured rate 189132db935SJakub Kicinski(doesn't go above it), CBS should have little to no effect in the latency. 190132db935SJakub Kicinski 191132db935SJakub KicinskiThe offloaded version of the algorithm has some limits, caused by how the idle 192132db935SJakub Kicinskislope is expressed in the adapter's registers. It can only represent idle slopes 193132db935SJakub Kicinskiin 16.38431 kbps units, which means that if a idle slope of 2576kbps is 194132db935SJakub Kicinskirequested, the controller will be configured to use a idle slope of ~2589 kbps, 195132db935SJakub Kicinskibecause the driver rounds the value up. For more details, see the comments on 196132db935SJakub Kicinski:c:func:`igb_config_tx_modes()`. 197132db935SJakub Kicinski 198132db935SJakub KicinskiNOTE: This feature is exclusive to i210 models. 199132db935SJakub Kicinski 200132db935SJakub Kicinski 201132db935SJakub KicinskiSupport 202132db935SJakub Kicinski======= 203132db935SJakub KicinskiFor general information, go to the Intel support website at: 204132db935SJakub Kicinskihttps://www.intel.com/support/ 205132db935SJakub Kicinski 206132db935SJakub KicinskiIf an issue is identified with the released source code on a supported kernel 207132db935SJakub Kicinskiwith a supported adapter, email the specific information related to the issue 208*8ba732beSTony Nguyento intel-wired-lan@lists.osuosl.org. 209