Merge tag 'stackleak-v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / Documentation / networking / igb.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 Linux* Base Driver for Intel(R) Ethernet Network Connection
4 ===========================================================
5
6 Intel Gigabit Linux driver.
7 Copyright(c) 1999-2018 Intel Corporation.
8
9 Contents
10 ========
11
12 - Identifying Your Adapter
13 - Command Line Parameters
14 - Additional Configurations
15 - Support
16
17
18 Identifying Your Adapter
19 ========================
20 For information on how to identify your adapter, and for the latest Intel
21 network drivers, refer to the Intel Support website:
22 http://www.intel.com/support
23
24
25 Command Line Parameters
26 ========================
27 If the driver is built as a module, the following optional parameters are used
28 by entering them on the command line with the modprobe command using this
29 syntax::
30
31     modprobe igb [<option>=<VAL1>,<VAL2>,...]
32
33 There needs to be a <VAL#> for each network port in the system supported by
34 this driver. The values will be applied to each instance, in function order.
35 For example::
36
37     modprobe igb max_vfs=2,4
38
39 In this case, there are two network ports supported by igb in the system.
40
41 NOTE: A descriptor describes a data buffer and attributes related to the data
42 buffer. This information is accessed by the hardware.
43
44 max_vfs
45 -------
46 :Valid Range: 0-7
47
48 This parameter adds support for SR-IOV. It causes the driver to spawn up to
49 max_vfs worth of virtual functions.  If the value is greater than 0 it will
50 also force the VMDq parameter to be 1 or more.
51
52 The parameters for the driver are referenced by position. Thus, if you have a
53 dual port adapter, or more than one adapter in your system, and want N virtual
54 functions per port, you must specify a number for each port with each parameter
55 separated by a comma. For example::
56
57     modprobe igb max_vfs=4
58
59 This will spawn 4 VFs on the first port.
60
61 ::
62
63     modprobe igb max_vfs=2,4
64
65 This will spawn 2 VFs on the first port and 4 VFs on the second port.
66
67 NOTE: Caution must be used in loading the driver with these parameters.
68 Depending on your system configuration, number of slots, etc., it is impossible
69 to predict in all cases where the positions would be on the command line.
70
71 NOTE: Neither the device nor the driver control how VFs are mapped into config
72 space. Bus layout will vary by operating system. On operating systems that
73 support it, you can check sysfs to find the mapping.
74
75 NOTE: When either SR-IOV mode or VMDq mode is enabled, hardware VLAN filtering
76 and VLAN tag stripping/insertion will remain enabled. Please remove the old
77 VLAN filter before the new VLAN filter is added. For example::
78
79     ip link set eth0 vf 0 vlan 100      // set vlan 100 for VF 0
80     ip link set eth0 vf 0 vlan 0        // Delete vlan 100
81     ip link set eth0 vf 0 vlan 200      // set a new vlan 200 for VF 0
82
83 Debug
84 -----
85 :Valid Range: 0-16 (0=none,...,16=all)
86 :Default Value: 0
87
88 This parameter adjusts the level debug messages displayed in the system logs.
89
90
91 Additional Features and Configurations
92 ======================================
93
94 Jumbo Frames
95 ------------
96 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
97 to a value larger than the default value of 1500.
98
99 Use the ifconfig command to increase the MTU size. For example, enter the
100 following where <x> is the interface number::
101
102     ifconfig eth<x> mtu 9000 up
103
104 Alternatively, you can use the ip command as follows::
105
106     ip link set mtu 9000 dev eth<x>
107     ip link set up dev eth<x>
108
109 This setting is not saved across reboots. The setting change can be made
110 permanent by adding 'MTU=9000' to the file:
111
112 - For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
113 - For SLES: /etc/sysconfig/network/<config_file>
114
115 NOTE: The maximum MTU setting for Jumbo Frames is 9216. This value coincides
116 with the maximum Jumbo Frames size of 9234 bytes.
117
118 NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
119 poor performance or loss of link.
120
121
122 ethtool
123 -------
124 The driver utilizes the ethtool interface for driver configuration and
125 diagnostics, as well as displaying statistical information. The latest ethtool
126 version is required for this functionality. Download it at:
127
128 https://www.kernel.org/pub/software/network/ethtool/
129
130
131 Enabling Wake on LAN* (WoL)
132 ---------------------------
133 WoL is configured through the ethtool* utility.
134
135 WoL will be enabled on the system during the next shut down or reboot. For
136 this driver version, in order to enable WoL, the igb driver must be loaded
137 prior to shutting down or suspending the system.
138
139 NOTE: Wake on LAN is only supported on port A of multi-port devices.  Also
140 Wake On LAN is not supported for the following device:
141 - Intel(R) Gigabit VT Quad Port Server Adapter
142
143
144 Multiqueue
145 ----------
146 In this mode, a separate MSI-X vector is allocated for each queue and one for
147 "other" interrupts such as link status change and errors. All interrupts are
148 throttled via interrupt moderation. Interrupt moderation must be used to avoid
149 interrupt storms while the driver is processing one interrupt. The moderation
150 value should be at least as large as the expected time for the driver to
151 process an interrupt. Multiqueue is off by default.
152
153 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not found,
154 the system will fallback to MSI or to Legacy interrupts. This driver supports
155 receive multiqueue on all kernels that support MSI-X.
156
157 NOTE: On some kernels a reboot is required to switch between single queue mode
158 and multiqueue mode or vice-versa.
159
160
161 MAC and VLAN anti-spoofing feature
162 ----------------------------------
163 When a malicious driver attempts to send a spoofed packet, it is dropped by the
164 hardware and not transmitted.
165
166 An interrupt is sent to the PF driver notifying it of the spoof attempt. When a
167 spoofed packet is detected, the PF driver will send the following message to
168 the system log (displayed by the "dmesg" command):
169 Spoof event(s) detected on VF(n), where n = the VF that attempted to do the
170 spoofing
171
172
173 Setting MAC Address, VLAN and Rate Limit Using IProute2 Tool
174 ------------------------------------------------------------
175 You can set a MAC address of a Virtual Function (VF), a default VLAN and the
176 rate limit using the IProute2 tool. Download the latest version of the
177 IProute2 tool from Sourceforge if your version does not have all the features
178 you require.
179
180
181 Support
182 =======
183 For general information, go to the Intel support website at:
184
185 https://www.intel.com/support/
186
187 or the Intel Wired Networking project hosted by Sourceforge at:
188
189 https://sourceforge.net/projects/e1000
190
191 If an issue is identified with the released source code on a supported kernel
192 with a supported adapter, email the specific information related to the issue
193 to e1000-devel@lists.sf.net.