xref: /linux/Documentation/networking/device_drivers/ethernet/intel/igb.rst (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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