aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking/e1000.txt
diff options
context:
space:
mode:
authorJesse Brandeburg <jesse.brandeburg@intel.com>2006-03-15 15:18:13 -0500
committerJesse Brandeburg <jesse.brandeburg@intel.com>2006-03-15 15:18:13 -0500
commit55be062d2d6397e6f24f3b91608917e9e84206d7 (patch)
treedd996b25f1a9d21dd4c775ab3a8adb0fe85034d5 /Documentation/networking/e1000.txt
parent823f8dd17778ba0993c56173505eea921b7859b4 (diff)
e1000: update the readme with the latest text
The text of the e1000.txt file is a little stale, lets freshen it up. (update) removed some non-kernel specific text Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Diffstat (limited to 'Documentation/networking/e1000.txt')
-rw-r--r--Documentation/networking/e1000.txt620
1 files changed, 395 insertions, 225 deletions
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index 2ebd4058d46d..71fe15af356c 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -1,7 +1,7 @@
1Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters 1Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters
2=============================================================== 2===============================================================
3 3
4November 17, 2004 4November 15, 2005
5 5
6 6
7Contents 7Contents
@@ -20,254 +20,316 @@ In This Release
20=============== 20===============
21 21
22This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family 22This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family
23of Adapters, version 5.x.x. 23of Adapters. This driver includes support for Itanium(R)2-based systems.
24 24
25For questions related to hardware requirements, refer to the documentation 25For questions related to hardware requirements, refer to the documentation
26supplied with your Intel PRO/1000 adapter. All hardware requirements listed 26supplied with your Intel PRO/1000 adapter. All hardware requirements listed
27apply to use with Linux. 27apply to use with Linux.
28 28
29Native VLANs are now available with supported kernels. 29The following features are now available in supported kernels:
30 - Native VLANs
31 - Channel Bonding (teaming)
32 - SNMP
33
34Channel Bonding documentation can be found in the Linux kernel source:
35/Documentation/networking/bonding.txt
36
37The driver information previously displayed in the /proc filesystem is not
38supported in this release. Alternatively, you can use ethtool (version 1.6
39or later), lspci, and ifconfig to obtain the same information.
40
41Instructions on updating ethtool can be found in the section "Additional
42Configurations" later in this document.
43
30 44
31Identifying Your Adapter 45Identifying Your Adapter
32======================== 46========================
33 47
34For more information on how to identify your adapter, go to the Adapter & 48For more information on how to identify your adapter, go to the Adapter &
35Driver ID Guide at: 49Driver ID Guide at:
36 50
37 http://support.intel.com/support/network/adapter/pro100/21397.htm 51 http://support.intel.com/support/network/adapter/pro100/21397.htm
38 52
39For the latest Intel network drivers for Linux, refer to the following 53For the latest Intel network drivers for Linux, refer to the following
40website. In the search field, enter your adapter name or type, or use the 54website. In the search field, enter your adapter name or type, or use the
41networking link on the left to search for your adapter: 55networking link on the left to search for your adapter:
42 56
43 http://downloadfinder.intel.com/scripts-df/support_intel.asp 57 http://downloadfinder.intel.com/scripts-df/support_intel.asp
44 58
45Command Line Parameters
46=======================
47 59
48If the driver is built as a module, the following optional parameters are 60Command Line Parameters =======================
49used by entering them on the command line with the modprobe or insmod command 61
50using this syntax: 62If the driver is built as a module, the following optional parameters
63are used by entering them on the command line with the modprobe or insmod
64command using this syntax:
51 65
52 modprobe e1000 [<option>=<VAL1>,<VAL2>,...] 66 modprobe e1000 [<option>=<VAL1>,<VAL2>,...]
53 67
54 insmod e1000 [<option>=<VAL1>,<VAL2>,...] 68 insmod e1000 [<option>=<VAL1>,<VAL2>,...]
55 69
56For example, with two PRO/1000 PCI adapters, entering: 70For example, with two PRO/1000 PCI adapters, entering:
57 71
58 insmod e1000 TxDescriptors=80,128 72 insmod e1000 TxDescriptors=80,128
59 73
60loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX 74loads the e1000 driver with 80 TX descriptors for the first adapter and 128
61descriptors for the second adapter. 75TX descriptors for the second adapter.
62 76
63The default value for each parameter is generally the recommended setting, 77The default value for each parameter is generally the recommended setting,
64unless otherwise noted. Also, if the driver is statically built into the 78unless otherwise noted.
65kernel, the driver is loaded with the default values for all the parameters. 79
66Ethtool can be used to change some of the parameters at runtime. 80NOTES: For more information about the AutoNeg, Duplex, and Speed
81 parameters, see the "Speed and Duplex Configuration" section in
82 this document.
67 83
68 NOTES: For more information about the AutoNeg, Duplex, and Speed 84 For more information about the InterruptThrottleRate,
69 parameters, see the "Speed and Duplex Configuration" section in 85 RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay
70 this document. 86 parameters, see the application note at:
87 http://www.intel.com/design/network/applnots/ap450.htm
71 88
72 For more information about the InterruptThrottleRate, RxIntDelay, 89 A descriptor describes a data buffer and attributes related to
73 TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay parameters, see the 90 the data buffer. This information is accessed by the hardware.
74 application note at:
75 http://www.intel.com/design/network/applnots/ap450.htm
76 91
77 A descriptor describes a data buffer and attributes related to the
78 data buffer. This information is accessed by the hardware.
79 92
80AutoNeg (adapters using copper connections only) 93AutoNeg
81Valid Range: 0x01-0x0F, 0x20-0x2F 94-------
95(Supported only on adapters with copper connections)
96Valid Range: 0x01-0x0F, 0x20-0x2F
82Default Value: 0x2F 97Default Value: 0x2F
83 This parameter is a bit mask that specifies which speed and duplex 98
84 settings the board advertises. When this parameter is used, the Speed and 99This parameter is a bit mask that specifies which speed and duplex
85 Duplex parameters must not be specified. 100settings the board advertises. When this parameter is used, the Speed
86 NOTE: Refer to the Speed and Duplex section of this readme for more 101and Duplex parameters must not be specified.
87 information on the AutoNeg parameter. 102
88 103NOTE: Refer to the Speed and Duplex section of this readme for more
89Duplex (adapters using copper connections only) 104 information on the AutoNeg parameter.
90Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) 105
106
107Duplex
108------
109(Supported only on adapters with copper connections)
110Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
91Default Value: 0 111Default Value: 0
92 Defines the direction in which data is allowed to flow. Can be either one 112
93 or two-directional. If both Duplex and the link partner are set to auto- 113Defines the direction in which data is allowed to flow. Can be either
94 negotiate, the board auto-detects the correct duplex. If the link partner 114one or two-directional. If both Duplex and the link partner are set to
95 is forced (either full or half), Duplex defaults to half-duplex. 115auto-negotiate, the board auto-detects the correct duplex. If the link
116partner is forced (either full or half), Duplex defaults to half-duplex.
117
96 118
97FlowControl 119FlowControl
98Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) 120----------
99Default: Read flow control settings from the EEPROM 121Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
100 This parameter controls the automatic generation(Tx) and response(Rx) to 122Default Value: Reads flow control settings from the EEPROM
101 Ethernet PAUSE frames. 123
124This parameter controls the automatic generation(Tx) and response(Rx)
125to Ethernet PAUSE frames.
126
102 127
103InterruptThrottleRate 128InterruptThrottleRate
104Valid Range: 100-100000 (0=off, 1=dynamic) 129---------------------
130(not supported on Intel 82542, 82543 or 82544-based adapters)
131Valid Range: 100-100000 (0=off, 1=dynamic)
105Default Value: 8000 132Default Value: 8000
106 This value represents the maximum number of interrupts per second the 133
107 controller generates. InterruptThrottleRate is another setting used in 134This value represents the maximum number of interrupts per second the
108 interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust 135controller generates. InterruptThrottleRate is another setting used in
109 InterruptThrottleRate based on the current traffic load. 136interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust
110Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 137InterruptThrottleRate based on the current traffic load.
111 or 82544-based adapters. 138
112 139NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
113 NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and 140 RxAbsIntDelay parameters. In other words, minimizing the receive
114 RxAbsIntDelay parameters. In other words, minimizing the receive 141 and/or transmit absolute delays does not force the controller to
115 and/or transmit absolute delays does not force the controller to 142 generate more interrupts than what the Interrupt Throttle Rate
116 generate more interrupts than what the Interrupt Throttle Rate 143 allows.
117 allows. 144
118 CAUTION: If you are using the Intel PRO/1000 CT Network Connection 145CAUTION: If you are using the Intel PRO/1000 CT Network Connection
119 (controller 82547), setting InterruptThrottleRate to a value 146 (controller 82547), setting InterruptThrottleRate to a value
120 greater than 75,000, may hang (stop transmitting) adapters under 147 greater than 75,000, may hang (stop transmitting) adapters
121 certain network conditions. If this occurs a NETDEV WATCHDOG 148 under certain network conditions. If this occurs a NETDEV
122 message is logged in the system event log. In addition, the 149 WATCHDOG message is logged in the system event log. In
123 controller is automatically reset, restoring the network 150 addition, the controller is automatically reset, restoring
124 connection. To eliminate the potential for the hang, ensure 151 the network connection. To eliminate the potential for the
125 that InterruptThrottleRate is set no greater than 75,000 and is 152 hang, ensure that InterruptThrottleRate is set no greater
126 not set to 0. 153 than 75,000 and is not set to 0.
127 NOTE: When e1000 is loaded with default settings and multiple adapters are 154
128 in use simultaneously, the CPU utilization may increase non-linearly. 155NOTE: When e1000 is loaded with default settings and multiple adapters
129 In order to limit the CPU utilization without impacting the overall 156 are in use simultaneously, the CPU utilization may increase non-
130 throughput, we recommend that you load the driver as follows: 157 linearly. In order to limit the CPU utilization without impacting
131 158 the overall throughput, we recommend that you load the driver as
132 insmod e1000.o InterruptThrottleRate=3000,3000,3000 159 follows:
133 160
134 This sets the InterruptThrottleRate to 3000 interrupts/sec for the 161 insmod e1000.o InterruptThrottleRate=3000,3000,3000
135 first, second, and third instances of the driver. The range of 2000 to 162
136 3000 interrupts per second works on a majority of systems and is a 163 This sets the InterruptThrottleRate to 3000 interrupts/sec for
137 good starting point, but the optimal value will be platform-specific. 164 the first, second, and third instances of the driver. The range
138 If CPU utilization is not a concern, use RX_POLLING (NAPI) and default 165 of 2000 to 3000 interrupts per second works on a majority of
139 driver settings. 166 systems and is a good starting point, but the optimal value will
167 be platform-specific. If CPU utilization is not a concern, use
168 RX_POLLING (NAPI) and default driver settings.
169
140 170
141RxDescriptors 171RxDescriptors
142Valid Range: 80-256 for 82542 and 82543-based adapters 172-------------
143 80-4096 for all other supported adapters 173Valid Range: 80-256 for 82542 and 82543-based adapters
174 80-4096 for all other supported adapters
144Default Value: 256 175Default Value: 256
145 This value is the number of receive descriptors allocated by the driver.
146 Increasing this value allows the driver to buffer more incoming packets.
147 Each descriptor is 16 bytes. A receive buffer is allocated for each
148 descriptor and can either be 2048 or 4096 bytes long, depending on the MTU
149 176
150 setting. An incoming packet can span one or more receive descriptors. 177This value specifies the number of receive descriptors allocated by the
151 The maximum MTU size is 16110. 178driver. Increasing this value allows the driver to buffer more incoming
179packets. Each descriptor is 16 bytes. A receive buffer is also
180allocated for each descriptor and is 2048.
152 181
153 NOTE: MTU designates the frame size. It only needs to be set for Jumbo
154 Frames.
155 NOTE: Depending on the available system resources, the request for a
156 higher number of receive descriptors may be denied. In this case,
157 use a lower number.
158 182
159RxIntDelay 183RxIntDelay
160Valid Range: 0-65535 (0=off) 184----------
185Valid Range: 0-65535 (0=off)
161Default Value: 0 186Default Value: 0
162 This value delays the generation of receive interrupts in units of 1.024 187
163 microseconds. Receive interrupt reduction can improve CPU efficiency if 188This value delays the generation of receive interrupts in units of 1.024
164 properly tuned for specific network traffic. Increasing this value adds 189microseconds. Receive interrupt reduction can improve CPU efficiency if
165 extra latency to frame reception and can end up decreasing the throughput 190properly tuned for specific network traffic. Increasing this value adds
166 of TCP traffic. If the system is reporting dropped receives, this value 191extra latency to frame reception and can end up decreasing the throughput
167 may be set too high, causing the driver to run out of available receive 192of TCP traffic. If the system is reporting dropped receives, this value
168 descriptors. 193may be set too high, causing the driver to run out of available receive
169 194descriptors.
170 CAUTION: When setting RxIntDelay to a value other than 0, adapters may 195
171 hang (stop transmitting) under certain network conditions. If 196CAUTION: When setting RxIntDelay to a value other than 0, adapters may
172 this occurs a NETDEV WATCHDOG message is logged in the system 197 hang (stop transmitting) under certain network conditions. If
173 event log. In addition, the controller is automatically reset, 198 this occurs a NETDEV WATCHDOG message is logged in the system
174 restoring the network connection. To eliminate the potential for 199 event log. In addition, the controller is automatically reset,
175 the hang ensure that RxIntDelay is set to 0. 200 restoring the network connection. To eliminate the potential
176 201 for the hang ensure that RxIntDelay is set to 0.
177RxAbsIntDelay (82540, 82545 and later adapters only) 202
178Valid Range: 0-65535 (0=off) 203
204RxAbsIntDelay
205-------------
206(This parameter is supported only on 82540, 82545 and later adapters.)
207Valid Range: 0-65535 (0=off)
179Default Value: 128 208Default Value: 128
180 This value, in units of 1.024 microseconds, limits the delay in which a 209
181 receive interrupt is generated. Useful only if RxIntDelay is non-zero, 210This value, in units of 1.024 microseconds, limits the delay in which a
182 this value ensures that an interrupt is generated after the initial 211receive interrupt is generated. Useful only if RxIntDelay is non-zero,
183 packet is received within the set amount of time. Proper tuning, 212this value ensures that an interrupt is generated after the initial
184 along with RxIntDelay, may improve traffic throughput in specific network 213packet is received within the set amount of time. Proper tuning,
185 conditions. 214along with RxIntDelay, may improve traffic throughput in specific network
186 215conditions.
187Speed (adapters using copper connections only) 216
217
218Speed
219-----
220(This parameter is supported only on adapters with copper connections.)
188Valid Settings: 0, 10, 100, 1000 221Valid Settings: 0, 10, 100, 1000
189Default Value: 0 (auto-negotiate at all supported speeds) 222Default Value: 0 (auto-negotiate at all supported speeds)
190 Speed forces the line speed to the specified value in megabits per second 223
191 (Mbps). If this parameter is not specified or is set to 0 and the link 224Speed forces the line speed to the specified value in megabits per second
192 partner is set to auto-negotiate, the board will auto-detect the correct 225(Mbps). If this parameter is not specified or is set to 0 and the link
193 speed. Duplex should also be set when Speed is set to either 10 or 100. 226partner is set to auto-negotiate, the board will auto-detect the correct
227speed. Duplex should also be set when Speed is set to either 10 or 100.
228
194 229
195TxDescriptors 230TxDescriptors
196Valid Range: 80-256 for 82542 and 82543-based adapters 231-------------
197 80-4096 for all other supported adapters 232Valid Range: 80-256 for 82542 and 82543-based adapters
233 80-4096 for all other supported adapters
198Default Value: 256 234Default Value: 256
199 This value is the number of transmit descriptors allocated by the driver.
200 Increasing this value allows the driver to queue more transmits. Each
201 descriptor is 16 bytes.
202 235
203 NOTE: Depending on the available system resources, the request for a 236This value is the number of transmit descriptors allocated by the driver.
204 higher number of transmit descriptors may be denied. In this case, 237Increasing this value allows the driver to queue more transmits. Each
205 use a lower number. 238descriptor is 16 bytes.
239
240NOTE: Depending on the available system resources, the request for a
241 higher number of transmit descriptors may be denied. In this case,
242 use a lower number.
243
206 244
207TxIntDelay 245TxIntDelay
208Valid Range: 0-65535 (0=off) 246----------
247Valid Range: 0-65535 (0=off)
209Default Value: 64 248Default Value: 64
210 This value delays the generation of transmit interrupts in units of 249
211 1.024 microseconds. Transmit interrupt reduction can improve CPU 250This value delays the generation of transmit interrupts in units of
212 efficiency if properly tuned for specific network traffic. If the 2511.024 microseconds. Transmit interrupt reduction can improve CPU
213 system is reporting dropped transmits, this value may be set too high 252efficiency if properly tuned for specific network traffic. If the
214 causing the driver to run out of available transmit descriptors. 253system is reporting dropped transmits, this value may be set too high
215 254causing the driver to run out of available transmit descriptors.
216TxAbsIntDelay (82540, 82545 and later adapters only) 255
217Valid Range: 0-65535 (0=off) 256
257TxAbsIntDelay
258-------------
259(This parameter is supported only on 82540, 82545 and later adapters.)
260Valid Range: 0-65535 (0=off)
218Default Value: 64 261Default Value: 64
219 This value, in units of 1.024 microseconds, limits the delay in which a 262
220 transmit interrupt is generated. Useful only if TxIntDelay is non-zero, 263This value, in units of 1.024 microseconds, limits the delay in which a
221 this value ensures that an interrupt is generated after the initial 264transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
222 packet is sent on the wire within the set amount of time. Proper tuning, 265this value ensures that an interrupt is generated after the initial
223 along with TxIntDelay, may improve traffic throughput in specific 266packet is sent on the wire within the set amount of time. Proper tuning,
224 network conditions. 267along with TxIntDelay, may improve traffic throughput in specific
225 268network conditions.
226XsumRX (not available on the 82542-based adapter) 269
227Valid Range: 0-1 270XsumRX
271------
272(This parameter is NOT supported on the 82542-based adapter.)
273Valid Range: 0-1
228Default Value: 1 274Default Value: 1
229 A value of '1' indicates that the driver should enable IP checksum 275
230 offload for received packets (both UDP and TCP) to the adapter hardware. 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
231 279
232Speed and Duplex Configuration 280Speed and Duplex Configuration
233============================== 281==============================
234 282
235Three keywords are used to control the speed and duplex configuration. These 283Three keywords are used to control the speed and duplex configuration.
236keywords are Speed, Duplex, and AutoNeg. 284These keywords are Speed, Duplex, and AutoNeg.
237 285
238If the board uses a fiber interface, these keywords are ignored, and the 286If the board uses a fiber interface, these keywords are ignored, and the
239fiber interface board only links at 1000 Mbps full-duplex. 287fiber interface board only links at 1000 Mbps full-duplex.
240 288
241For copper-based boards, the keywords interact as follows: 289For copper-based boards, the keywords interact as follows:
242 290
243 The default operation is auto-negotiate. The board advertises all supported 291 The default operation is auto-negotiate. The board advertises all
244 speed and duplex combinations, and it links at the highest common speed and 292 supported speed and duplex combinations, and it links at the highest
245 duplex mode IF the link partner is set to auto-negotiate. 293 common speed and duplex mode IF the link partner is set to auto-negotiate.
246 294
247 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is 295 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
248 advertised (The 1000BaseT spec requires auto-negotiation.) 296 is advertised (The 1000BaseT spec requires auto-negotiation.)
249 297
250 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- 298 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
251 negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD 299 negotiation is disabled, and the AutoNeg parameter is ignored. Partner
252 also be forced. 300 SHOULD also be forced.
301
302The AutoNeg parameter is used when more control is required over the
303auto-negotiation process. It should be used when you wish to control which
304speed and duplex combinations are advertised during the auto-negotiation
305process.
306
307The parameter may be specified as either a decimal or hexidecimal value as
308determined by the bitmap below.
253 309
254The AutoNeg parameter is used when more control is required over the auto- 310Bit position 7 6 5 4 3 2 1 0
255negotiation process. When this parameter is used, Speed and Duplex parameters 311Decimal Value 128 64 32 16 8 4 2 1
256must not be specified. The following table describes supported values for the 312Hex value 80 40 20 10 8 4 2 1
257AutoNeg parameter: 313Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
314Duplex Full Full Half Full Half
258 315
259Speed (Mbps) 1000 100 100 10 10 316Some examples of using AutoNeg:
260Duplex Full Full Half Full Half
261Value (in base 16) 0x20 0x08 0x04 0x02 0x01
262 317
263Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex, 318 modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
26410 half duplex) for negotiation with the peer. 319 modprobe e1000 AutoNeg=1 (Same as above)
320 modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full)
321 modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full)
322 modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half)
323 modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100
324 Half)
325 modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full)
326 modprobe e1000 AutoNeg=32 (Same as above)
265 327
266Note that setting AutoNeg does not guarantee that the board will link at the 328Note that when this parameter is used, Speed and Duplex must not be specified.
267highest specified speed or duplex mode, but the board will link at the 329
268highest possible speed/duplex of the link partner IF the link partner is also 330If the link partner is forced to a specific speed and duplex, then this
269set to auto-negotiate. If the link partner is forced speed/duplex, the 331parameter should not be used. Instead, use the Speed and Duplex parameters
270adapter MUST be forced to the same speed/duplex. 332previously mentioned to force the adapter to the same speed and duplex.
271 333
272 334
273Additional Configurations 335Additional Configurations
@@ -276,19 +338,19 @@ Additional Configurations
276 Configuring the Driver on Different Distributions 338 Configuring the Driver on Different Distributions
277 ------------------------------------------------- 339 -------------------------------------------------
278 340
279 Configuring a network driver to load properly when the system is started is 341 Configuring a network driver to load properly when the system is started
280 distribution dependent. Typically, the configuration process involves adding 342 is distribution dependent. Typically, the configuration process involves
281 an alias line to /etc/modules.conf as well as editing other system startup 343 adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well
282 scripts and/or configuration files. Many popular Linux distributions ship 344 as editing other system startup scripts and/or configuration files. Many
283 with tools to make these changes for you. To learn the proper way to 345 popular Linux distributions ship with tools to make these changes for you.
284 configure a network device for your system, refer to your distribution 346 To learn the proper way to configure a network device for your system,
285 documentation. If during this process you are asked for the driver or module 347 refer to your distribution documentation. If during this process you are
286 name, the name for the Linux Base Driver for the Intel PRO/1000 Family of 348 asked for the driver or module name, the name for the Linux Base Driver
287 Adapters is e1000. 349 for the Intel PRO/1000 Family of Adapters is e1000.
288 350
289 As an example, if you install the e1000 driver for two PRO/1000 adapters 351 As an example, if you install the e1000 driver for two PRO/1000 adapters
290 (eth0 and eth1) and set the speed and duplex to 10full and 100half, add the 352 (eth0 and eth1) and set the speed and duplex to 10full and 100half, add
291 following to modules.conf: 353 the following to modules.conf or or modprobe.conf:
292 354
293 alias eth0 e1000 355 alias eth0 e1000
294 alias eth1 e1000 356 alias eth1 e1000
@@ -297,9 +359,9 @@ Additional Configurations
297 Viewing Link Messages 359 Viewing Link Messages
298 --------------------- 360 ---------------------
299 361
300 Link messages will not be displayed to the console if the distribution is 362 Link messages will not be displayed to the console if the distribution is
301 restricting system messages. In order to see network driver link messages on 363 restricting system messages. In order to see network driver link messages
302 your console, set dmesg to eight by entering the following: 364 on your console, set dmesg to eight by entering the following:
303 365
304 dmesg -n 8 366 dmesg -n 8
305 367
@@ -308,22 +370,42 @@ Additional Configurations
308 Jumbo Frames 370 Jumbo Frames
309 ------------ 371 ------------
310 372
311 The driver supports Jumbo Frames for all adapters except 82542-based 373 The driver supports Jumbo Frames for all adapters except 82542 and
312 adapters. Jumbo Frames support is enabled by changing the MTU to a value 374 82573-based adapters. Jumbo Frames support is enabled by changing the
313 larger than the default of 1500. Use the ifconfig command to increase the 375 MTU to a value larger than the default of 1500. Use the ifconfig command
314 MTU size. For example: 376 to increase the MTU size. For example:
377
378 ifconfig eth<x> mtu 9000 up
379
380 This setting is not saved across reboots. It can be made permanent if
381 you add:
382
383 MTU=9000
315 384
316 ifconfig ethx mtu 9000 up 385 to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
386 applies to the Red Hat distributions; other distributions may store this
387 setting in a different location.
317 388
318 The maximum MTU setting for Jumbo Frames is 16110. This value coincides 389 Notes:
319 with the maximum Jumbo Frames size of 16128.
320 390
321 NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at 391 - To enable Jumbo Frames, increase the MTU size on the interface beyond
322 10 or 100 Mbps may result in poor performance or loss of link. 392 1500.
393 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
394 with the maximum Jumbo Frames size of 16128.
395 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
396 loss of link.
397 - Some Intel gigabit adapters that support Jumbo Frames have a frame size
398 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
399 The adapters with this limitation are based on the Intel 82571EB and
400 82572EI controllers, which correspond to these product names:
401 Intel® PRO/1000 PT Dual Port Server Adapter
402 Intel® PRO/1000 PF Dual Port Server Adapter
403 Intel® PRO/1000 PT Server Adapter
404 Intel® PRO/1000 PT Desktop Adapter
405 Intel® PRO/1000 PF Server Adapter
323 406
407 - The Intel PRO/1000 PM Network Connection does not support jumbo frames.
324 408
325 NOTE: MTU designates the frame size. To enable Jumbo Frames, increase the
326 MTU size on the interface beyond 1500.
327 409
328 Ethtool 410 Ethtool
329 ------- 411 -------
@@ -333,32 +415,41 @@ Additional Configurations
333 version 1.6 or later is required for this functionality. 415 version 1.6 or later is required for this functionality.
334 416
335 The latest release of ethtool can be found from 417 The latest release of ethtool can be found from
336 http://sf.net/projects/gkernel. 418 http://sourceforge.net/projects/gkernel.
337 419
338 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support 420 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
339 for a more complete ethtool feature set can be enabled by upgrading 421 for a more complete ethtool feature set can be enabled by upgrading
340 ethtool to ethtool-1.8.1. 422 ethtool to ethtool-1.8.1.
341 423
342 Enabling Wake on LAN* (WoL) 424 Enabling Wake on LAN* (WoL)
343 --------------------------- 425 ---------------------------
344 426
345 WoL is configured through the Ethtool* utility. Ethtool is included with 427 WoL is configured through the Ethtool* utility. Ethtool is included with
346 all versions of Red Hat after Red Hat 7.2. For other Linux distributions, 428 all versions of Red Hat after Red Hat 7.2. For other Linux distributions,
347 download and install Ethtool from the following website: 429 download and install Ethtool from the following website:
348 http://sourceforge.net/projects/gkernel. 430 http://sourceforge.net/projects/gkernel.
349 431
350 For instructions on enabling WoL with Ethtool, refer to the website listed 432 For instructions on enabling WoL with Ethtool, refer to the website listed
351 above. 433 above.
352 434
353 WoL will be enabled on the system during the next shut down or reboot. 435 WoL will be enabled on the system during the next shut down or reboot.
354 For this driver version, in order to enable WoL, the e1000 driver must be 436 For this driver version, in order to enable WoL, the e1000 driver must be
355 loaded when shutting down or rebooting the system. 437 loaded when shutting down or rebooting the system.
356 438
357 NAPI 439 NAPI
358 ---- 440 ----
359 441
360 NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled 442 NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled
361 or disabled based on the configuration of the kernel. 443 or disabled based on the configuration of the kernel. To override
444 the default, use the following compile-time flags.
445
446 To enable NAPI, compile the driver module, passing in a configuration option:
447
448 make CFLAGS_EXTRA=-DE1000_NAPI install
449
450 To disable NAPI, compile the driver module, passing in a configuration option:
451
452 make CFLAGS_EXTRA=-DE1000_NO_NAPI install
362 453
363 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. 454 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
364 455
@@ -369,10 +460,85 @@ Known Issues
369 Jumbo Frames System Requirement 460 Jumbo Frames System Requirement
370 ------------------------------- 461 -------------------------------
371 462
372 Memory allocation failures have been observed on Linux systems with 64 MB 463 Memory allocation failures have been observed on Linux systems with 64 MB
373 of RAM or less that are running Jumbo Frames. If you are using Jumbo Frames, 464 of RAM or less that are running Jumbo Frames. If you are using Jumbo
374 your system may require more than the advertised minimum requirement of 64 MB 465 Frames, your system may require more than the advertised minimum
375 of system memory. 466 requirement of 64 MB of system memory.
467
468 Performance Degradation with Jumbo Frames
469 -----------------------------------------
470
471 Degradation in throughput performance may be observed in some Jumbo frames
472 environments. If this is observed, increasing the application's socket
473 buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values
474 may help. See the specific application manual and
475 /usr/src/linux*/Documentation/
476 networking/ip-sysctl.txt for more details.
477
478 Jumbo frames on Foundry BigIron 8000 switch
479 -------------------------------------------
480 There is a known issue using Jumbo frames when connected to a Foundry
481 BigIron 8000 switch. This is a 3rd party limitation. If you experience
482 loss of packets, lower the MTU size.
483
484 Multiple Interfaces on Same Ethernet Broadcast Network
485 ------------------------------------------------------
486
487 Due to the default ARP behavior on Linux, it is not possible to have
488 one system on two IP networks in the same Ethernet broadcast domain
489 (non-partitioned switch) behave as expected. All Ethernet interfaces
490 will respond to IP traffic for any IP address assigned to the system.
491 This results in unbalanced receive traffic.
492
493 If you have multiple interfaces in a server, either turn on ARP
494 filtering by entering:
495
496 echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
497 (this only works if your kernel's version is higher than 2.4.5),
498
499 NOTE: This setting is not saved across reboots. The configuration
500 change can be made permanent by adding the line:
501 net.ipv4.conf.all.arp_filter = 1
502 to the file /etc/sysctl.conf
503
504 or,
505
506 install the interfaces in separate broadcast domains (either in
507 different switches or in a switch partitioned to VLANs).
508
509 82541/82547 can't link or are slow to link with some link partners
510 -----------------------------------------------------------------
511
512 There is a known compatibility issue with 82541/82547 and some
513 low-end switches where the link will not be established, or will
514 be slow to establish. In particular, these switches are known to
515 be incompatible with 82541/82547:
516
517 Planex FXG-08TE
518 I-O Data ETG-SH8
519
520 To workaround this issue, the driver can be compiled with an override
521 of the PHY's master/slave setting. Forcing master or forcing slave
522 mode will improve time-to-link.
523
524 # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n>
525
526 Where <n> is:
527
528 0 = Hardware default
529 1 = Master mode
530 2 = Slave mode
531 3 = Auto master/slave
532
533 Disable rx flow control with ethtool
534 ------------------------------------
535
536 In order to disable receive flow control using ethtool, you must turn
537 off auto-negotiation on the same command line.
538
539 For example:
540
541 ethtool -A eth? autoneg off rx off
376 542
377 543
378Support 544Support
@@ -382,20 +548,24 @@ For general information, go to the Intel support website at:
382 548
383 http://support.intel.com 549 http://support.intel.com
384 550
551 or the Intel Wired Networking project hosted by Sourceforge at:
552
553 http://sourceforge.net/projects/e1000
554
385If an issue is identified with the released source code on the supported 555If an issue is identified with the released source code on the supported
386kernel with a supported adapter, email the specific information related to 556kernel with a supported adapter, email the specific information related
387the issue to linux.nics@intel.com. 557to the issue to e1000-devel@lists.sourceforge.net
388 558
389 559
390License 560License
391======= 561=======
392 562
393This software program is released under the terms of a license agreement 563This software program is released under the terms of a license agreement
394between you ('Licensee') and Intel. Do not use or load this software or any 564between you ('Licensee') and Intel. Do not use or load this software or any
395associated materials (collectively, the 'Software') until you have carefully 565associated materials (collectively, the 'Software') until you have carefully
396read the full terms and conditions of the LICENSE located in this software 566read the full terms and conditions of the file COPYING located in this software
397package. By loading or using the Software, you agree to the terms of this 567package. By loading or using the Software, you agree to the terms of this
398Agreement. If you do not agree with the terms of this Agreement, do not 568Agreement. If you do not agree with the terms of this Agreement, do not
399install or use the Software. 569install or use the Software.
400 570
401* Other names and brands may be claimed as the property of others. 571* Other names and brands may be claimed as the property of others.