]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - Documentation/networking/e1000.rst
Documentation: e1000: Use correct heading adornment
[mirror_ubuntu-jammy-kernel.git] / Documentation / networking / e1000.rst
CommitLineData
3be40e54 1===========================================================
d7064f4c
JK
2Linux* Base Driver for Intel(R) Ethernet Network Connection
3===========================================================
1da177e4 4
2bff89c3 5Intel Gigabit Linux driver.
d7064f4c 6Copyright(c) 1999 - 2013 Intel Corporation.
1da177e4
LT
7
8Contents
9========
10
1da177e4
LT
11- Identifying Your Adapter
12- Command Line Parameters
13- Speed and Duplex Configuration
14- Additional Configurations
1da177e4
LT
15- Support
16
1da177e4
LT
17Identifying Your Adapter
18========================
19
55be062d 20For more information on how to identify your adapter, go to the Adapter &
1da177e4
LT
21Driver ID Guide at:
22
2bff89c3 23 http://support.intel.com/support/go/network/adapter/idguide.htm
1da177e4 24
55be062d 25For the latest Intel network drivers for Linux, refer to the following
de3edab4 26website. In the search field, enter your adapter name or type, or use the
1da177e4
LT
27networking link on the left to search for your adapter:
28
2bff89c3 29 http://support.intel.com/support/go/network/adapter/home.htm
1da177e4 30
de3edab4
AK
31Command Line Parameters
32=======================
55be062d 33
1da177e4 34The default value for each parameter is generally the recommended setting,
55be062d
JB
35unless otherwise noted.
36
37NOTES: For more information about the AutoNeg, Duplex, and Speed
38 parameters, see the "Speed and Duplex Configuration" section in
39 this document.
1da177e4 40
55be062d
JB
41 For more information about the InterruptThrottleRate,
42 RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay
43 parameters, see the application note at:
44 http://www.intel.com/design/network/applnots/ap450.htm
1da177e4 45
55be062d
JB
46AutoNeg
47-------
48(Supported only on adapters with copper connections)
49Valid Range: 0x01-0x0F, 0x20-0x2F
1da177e4 50Default Value: 0x2F
55be062d 51
de3edab4
AK
52This parameter is a bit-mask that specifies the speed and duplex settings
53advertised by the adapter. When this parameter is used, the Speed and
54Duplex parameters must not be specified.
55be062d
JB
55
56NOTE: Refer to the Speed and Duplex section of this readme for more
57 information on the AutoNeg parameter.
58
55be062d
JB
59Duplex
60------
61(Supported only on adapters with copper connections)
62Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
1da177e4 63Default Value: 0
55be062d 64
de3edab4
AK
65This defines the direction in which data is allowed to flow. Can be
66either one or two-directional. If both Duplex and the link partner are
67set to auto-negotiate, the board auto-detects the correct duplex. If the
68link partner is forced (either full or half), Duplex defaults to half-
69duplex.
55be062d 70
1da177e4 71FlowControl
de3edab4 72-----------
55be062d
JB
73Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
74Default Value: Reads flow control settings from the EEPROM
75
76This parameter controls the automatic generation(Tx) and response(Rx)
77to Ethernet PAUSE frames.
78
1da177e4 79InterruptThrottleRate
55be062d 80---------------------
de3edab4 81(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
2bff89c3 82Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
96c3c033 83 4=simplified balancing)
de3edab4
AK
84Default Value: 3
85
86The driver can limit the amount of interrupts per second that the adapter
2bff89c3
JK
87will generate for incoming packets. It does this by writing a value to the
88adapter that is based on the maximum amount of interrupts that the adapter
de3edab4
AK
89will generate per second.
90
91Setting InterruptThrottleRate to a value greater or equal to 100
92will program the adapter to send out a maximum of that many interrupts
93per second, even if more packets have come in. This reduces interrupt
94load on the system and can lower CPU utilization under heavy load,
95but will increase latency as packets are not processed as quickly.
96
2bff89c3
JK
97The default behaviour of the driver previously assumed a static
98InterruptThrottleRate value of 8000, providing a good fallback value for
99all traffic types,but lacking in small packet performance and latency.
100The hardware can handle many more small packets per second however, and
de3edab4
AK
101for this reason an adaptive interrupt moderation algorithm was implemented.
102
103Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which
2bff89c3 104it dynamically adjusts the InterruptThrottleRate value based on the traffic
de3edab4 105that it receives. After determining the type of incoming traffic in the last
2bff89c3 106timeframe, it will adjust the InterruptThrottleRate to an appropriate value
de3edab4
AK
107for that traffic.
108
109The algorithm classifies the incoming traffic every interval into
2bff89c3
JK
110classes. Once the class is determined, the InterruptThrottleRate value is
111adjusted to suit that traffic type the best. There are three classes defined:
de3edab4
AK
112"Bulk traffic", for large amounts of packets of normal size; "Low latency",
113for small amounts of traffic and/or a significant percentage of small
2bff89c3 114packets; and "Lowest latency", for almost completely small packets or
de3edab4
AK
115minimal traffic.
116
2bff89c3
JK
117In dynamic conservative mode, the InterruptThrottleRate value is set to 4000
118for traffic that falls in class "Bulk traffic". If traffic falls in the "Low
119latency" or "Lowest latency" class, the InterruptThrottleRate is increased
de3edab4
AK
120stepwise to 20000. This default mode is suitable for most applications.
121
122For situations where low latency is vital such as cluster or
123grid computing, the algorithm can reduce latency even more when
124InterruptThrottleRate is set to mode 1. In this mode, which operates
2bff89c3 125the same as mode 3, the InterruptThrottleRate will be increased stepwise to
de3edab4
AK
12670000 for traffic in class "Lowest latency".
127
96c3c033
JK
128In simplified mode the interrupt rate is based on the ratio of TX and
129RX traffic. If the bytes per second rate is approximately equal, the
2bff89c3
JK
130interrupt rate will drop as low as 2000 interrupts per second. If the
131traffic is mostly transmit or mostly receive, the interrupt rate could
132be as high as 8000.
133
de3edab4
AK
134Setting InterruptThrottleRate to 0 turns off any interrupt moderation
135and may improve small packet latency, but is generally not suitable
136for bulk throughput traffic.
55be062d
JB
137
138NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
de3edab4 139 RxAbsIntDelay parameters. In other words, minimizing the receive
55be062d
JB
140 and/or transmit absolute delays does not force the controller to
141 generate more interrupts than what the Interrupt Throttle Rate
142 allows.
143
de3edab4 144CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection
55be062d
JB
145 (controller 82547), setting InterruptThrottleRate to a value
146 greater than 75,000, may hang (stop transmitting) adapters
de3edab4
AK
147 under certain network conditions. If this occurs a NETDEV
148 WATCHDOG message is logged in the system event log. In
55be062d 149 addition, the controller is automatically reset, restoring
de3edab4 150 the network connection. To eliminate the potential for the
55be062d
JB
151 hang, ensure that InterruptThrottleRate is set no greater
152 than 75,000 and is not set to 0.
153
154NOTE: When e1000 is loaded with default settings and multiple adapters
155 are in use simultaneously, the CPU utilization may increase non-
de3edab4 156 linearly. In order to limit the CPU utilization without impacting
55be062d 157 the overall throughput, we recommend that you load the driver as
228046e7 158 follows::
55be062d 159
de3edab4 160 modprobe e1000 InterruptThrottleRate=3000,3000,3000
55be062d
JB
161
162 This sets the InterruptThrottleRate to 3000 interrupts/sec for
de3edab4 163 the first, second, and third instances of the driver. The range
55be062d
JB
164 of 2000 to 3000 interrupts per second works on a majority of
165 systems and is a good starting point, but the optimal value will
de3edab4 166 be platform-specific. If CPU utilization is not a concern, use
55be062d
JB
167 RX_POLLING (NAPI) and default driver settings.
168
1da177e4 169RxDescriptors
55be062d 170-------------
228046e7
JK
171Valid Range: 48-256 for 82542 and 82543-based adapters
172 48-4096 for all other supported adapters
1da177e4 173Default Value: 256
1da177e4 174
de3edab4
AK
175This value specifies the number of receive buffer descriptors allocated
176by the driver. Increasing this value allows the driver to buffer more
177incoming packets, at the expense of increased system memory utilization.
178
179Each descriptor is 16 bytes. A receive buffer is also allocated for each
2bff89c3 180descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending
de3edab4
AK
181on the MTU setting. The maximum MTU size is 16110.
182
2bff89c3
JK
183NOTE: MTU designates the frame size. It only needs to be set for Jumbo
184 Frames. Depending on the available system resources, the request
185 for a higher number of receive descriptors may be denied. In this
de3edab4 186 case, use a lower number.
1da177e4 187
1da177e4 188RxIntDelay
55be062d
JB
189----------
190Valid Range: 0-65535 (0=off)
1da177e4 191Default Value: 0
55be062d
JB
192
193This value delays the generation of receive interrupts in units of 1.024
194microseconds. Receive interrupt reduction can improve CPU efficiency if
de3edab4 195properly tuned for specific network traffic. Increasing this value adds
55be062d 196extra latency to frame reception and can end up decreasing the throughput
de3edab4 197of TCP traffic. If the system is reporting dropped receives, this value
55be062d
JB
198may be set too high, causing the driver to run out of available receive
199descriptors.
200
201CAUTION: When setting RxIntDelay to a value other than 0, adapters may
de3edab4 202 hang (stop transmitting) under certain network conditions. If
55be062d 203 this occurs a NETDEV WATCHDOG message is logged in the system
de3edab4
AK
204 event log. In addition, the controller is automatically reset,
205 restoring the network connection. To eliminate the potential
55be062d
JB
206 for the hang ensure that RxIntDelay is set to 0.
207
55be062d
JB
208RxAbsIntDelay
209-------------
210(This parameter is supported only on 82540, 82545 and later adapters.)
211Valid Range: 0-65535 (0=off)
1da177e4 212Default Value: 128
55be062d
JB
213
214This value, in units of 1.024 microseconds, limits the delay in which a
de3edab4 215receive interrupt is generated. Useful only if RxIntDelay is non-zero,
55be062d
JB
216this value ensures that an interrupt is generated after the initial
217packet is received within the set amount of time. Proper tuning,
218along with RxIntDelay, may improve traffic throughput in specific network
219conditions.
220
55be062d
JB
221Speed
222-----
223(This parameter is supported only on adapters with copper connections.)
1da177e4 224Valid Settings: 0, 10, 100, 1000
55be062d
JB
225Default Value: 0 (auto-negotiate at all supported speeds)
226
227Speed forces the line speed to the specified value in megabits per second
de3edab4 228(Mbps). If this parameter is not specified or is set to 0 and the link
55be062d 229partner is set to auto-negotiate, the board will auto-detect the correct
de3edab4 230speed. Duplex should also be set when Speed is set to either 10 or 100.
55be062d 231
1da177e4 232TxDescriptors
55be062d 233-------------
228046e7
JK
234Valid Range: 48-256 for 82542 and 82543-based adapters
235 48-4096 for all other supported adapters
1da177e4 236Default Value: 256
1da177e4 237
55be062d 238This value is the number of transmit descriptors allocated by the driver.
de3edab4 239Increasing this value allows the driver to queue more transmits. Each
55be062d
JB
240descriptor is 16 bytes.
241
242NOTE: Depending on the available system resources, the request for a
243 higher number of transmit descriptors may be denied. In this case,
244 use a lower number.
245
1da177e4 246TxIntDelay
55be062d
JB
247----------
248Valid Range: 0-65535 (0=off)
228046e7 249Default Value: 8
55be062d
JB
250
251This value delays the generation of transmit interrupts in units of
de3edab4
AK
2521.024 microseconds. Transmit interrupt reduction can improve CPU
253efficiency if properly tuned for specific network traffic. If the
55be062d
JB
254system is reporting dropped transmits, this value may be set too high
255causing the driver to run out of available transmit descriptors.
256
55be062d
JB
257TxAbsIntDelay
258-------------
259(This parameter is supported only on 82540, 82545 and later adapters.)
260Valid Range: 0-65535 (0=off)
228046e7 261Default Value: 32
55be062d
JB
262
263This value, in units of 1.024 microseconds, limits the delay in which a
de3edab4 264transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
55be062d
JB
265this value ensures that an interrupt is generated after the initial
266packet is sent on the wire within the set amount of time. Proper tuning,
267along with TxIntDelay, may improve traffic throughput in specific
268network conditions.
269
270XsumRX
271------
272(This parameter is NOT supported on the 82542-based adapter.)
273Valid Range: 0-1
1da177e4 274Default Value: 1
55be062d
JB
275
276A value of '1' indicates that the driver should enable IP checksum
277offload for received packets (both UDP and TCP) to the adapter hardware.
278
2bff89c3
JK
279Copybreak
280---------
281Valid Range: 0-xxxxxxx (0=off)
282Default Value: 256
228046e7 283Usage: modprobe e1000.ko copybreak=128
2bff89c3 284
96c3c033 285Driver copies all packets below or equaling this size to a fresh RX
2bff89c3
JK
286buffer before handing it up the stack.
287
288This parameter is different than other parameters, in that it is a
289single (not 1,1,1 etc.) parameter applied to all driver instances and
290it is also available during runtime at
291/sys/module/e1000/parameters/copybreak
292
293SmartPowerDownEnable
294--------------------
295Valid Range: 0-1
296Default Value: 0 (disabled)
297
298Allows PHY to turn off in lower power states. The user can turn off
299this parameter in supported chipsets.
300
1da177e4
LT
301Speed and Duplex Configuration
302==============================
303
55be062d
JB
304Three keywords are used to control the speed and duplex configuration.
305These keywords are Speed, Duplex, and AutoNeg.
1da177e4 306
55be062d 307If the board uses a fiber interface, these keywords are ignored, and the
1da177e4
LT
308fiber interface board only links at 1000 Mbps full-duplex.
309
310For copper-based boards, the keywords interact as follows:
311
de3edab4 312 The default operation is auto-negotiate. The board advertises all
55be062d
JB
313 supported speed and duplex combinations, and it links at the highest
314 common speed and duplex mode IF the link partner is set to auto-negotiate.
1da177e4 315
55be062d
JB
316 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
317 is advertised (The 1000BaseT spec requires auto-negotiation.)
1da177e4 318
de3edab4
AK
319 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
320 negotiation is disabled, and the AutoNeg parameter is ignored. Partner
55be062d
JB
321 SHOULD also be forced.
322
323The AutoNeg parameter is used when more control is required over the
324auto-negotiation process. It should be used when you wish to control which
325speed and duplex combinations are advertised during the auto-negotiation
326process.
327
de3edab4 328The parameter may be specified as either a decimal or hexadecimal value as
55be062d 329determined by the bitmap below.
1da177e4 330
55be062d
JB
331Bit position 7 6 5 4 3 2 1 0
332Decimal Value 128 64 32 16 8 4 2 1
333Hex value 80 40 20 10 8 4 2 1
334Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
335Duplex Full Full Half Full Half
1da177e4 336
55be062d 337Some examples of using AutoNeg:
1da177e4 338
55be062d
JB
339 modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
340 modprobe e1000 AutoNeg=1 (Same as above)
341 modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full)
342 modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full)
343 modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half)
344 modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100
345 Half)
346 modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full)
347 modprobe e1000 AutoNeg=32 (Same as above)
1da177e4 348
55be062d
JB
349Note that when this parameter is used, Speed and Duplex must not be specified.
350
351If the link partner is forced to a specific speed and duplex, then this
352parameter should not be used. Instead, use the Speed and Duplex parameters
353previously mentioned to force the adapter to the same speed and duplex.
1da177e4 354
1da177e4
LT
355Additional Configurations
356=========================
357
1da177e4
LT
358 Jumbo Frames
359 ------------
de3edab4
AK
360 Jumbo Frames support is enabled by changing the MTU to a value larger than
361 the default of 1500. Use the ifconfig command to increase the MTU size.
228046e7 362 For example::
55be062d
JB
363
364 ifconfig eth<x> mtu 9000 up
365
366 This setting is not saved across reboots. It can be made permanent if
228046e7 367 you add::
55be062d
JB
368
369 MTU=9000
1da177e4 370
55be062d
JB
371 to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
372 applies to the Red Hat distributions; other distributions may store this
373 setting in a different location.
1da177e4 374
55be062d 375 Notes:
2bff89c3
JK
376 Degradation in throughput performance may be observed in some Jumbo frames
377 environments. If this is observed, increasing the application's socket buffer
378 size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help.
379 See the specific application manual and /usr/src/linux*/Documentation/
380 networking/ip-sysctl.txt for more details.
de3edab4
AK
381
382 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
55be062d 383 with the maximum Jumbo Frames size of 16128.
de3edab4 384
d7064f4c
JK
385 - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
386 poor performance or loss of link.
de3edab4 387
de3edab4
AK
388 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
389 support Jumbo Frames. These correspond to the following product names:
390 Intel(R) PRO/1000 Gigabit Server Adapter
391 Intel(R) PRO/1000 PM Network Connection
392
d7064f4c 393 ethtool
1da177e4 394 -------
1da177e4 395 The driver utilizes the ethtool interface for driver configuration and
68f20d94 396 diagnostics, as well as displaying statistical information. The ethtool
1da177e4
LT
397 version 1.6 or later is required for this functionality.
398
399 The latest release of ethtool can be found from
3bdadc86 400 https://www.kernel.org/pub/software/network/ethtool/
1da177e4 401
1da177e4
LT
402 Enabling Wake on LAN* (WoL)
403 ---------------------------
68f20d94 404 WoL is configured through the ethtool* utility.
1da177e4 405
55be062d
JB
406 WoL will be enabled on the system during the next shut down or reboot.
407 For this driver version, in order to enable WoL, the e1000 driver must be
1da177e4
LT
408 loaded when shutting down or rebooting the system.
409
1da177e4
LT
410Support
411=======
412
413For general information, go to the Intel support website at:
414
415 http://support.intel.com
416
de3edab4 417or the Intel Wired Networking project hosted by Sourceforge at:
55be062d
JB
418
419 http://sourceforge.net/projects/e1000
420
1da177e4 421If an issue is identified with the released source code on the supported
55be062d 422kernel with a supported adapter, email the specific information related
de3edab4 423to the issue to e1000-devel@lists.sf.net