diff options
author | Dave Jones <davej@redhat.com> | 2006-12-12 17:41:41 -0500 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2006-12-12 17:41:41 -0500 |
commit | c4366889dda8110247be59ca41fddb82951a8c26 (patch) | |
tree | 705c1a996bed8fd48ce94ff33ec9fd00f9b94875 /Documentation/networking/e1000.txt | |
parent | db2fb9db5735cc532fd4fc55e94b9a3c3750378e (diff) | |
parent | e1036502e5263851259d147771226161e5ccc85a (diff) |
Merge ../linus
Conflicts:
drivers/cpufreq/cpufreq.c
Diffstat (limited to 'Documentation/networking/e1000.txt')
-rw-r--r-- | Documentation/networking/e1000.txt | 451 |
1 files changed, 266 insertions, 185 deletions
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 5c0a5cc03998..61b171cf5313 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters |
2 | =============================================================== | 2 | =============================================================== |
3 | 3 | ||
4 | November 15, 2005 | 4 | September 26, 2006 |
5 | 5 | ||
6 | 6 | ||
7 | Contents | 7 | Contents |
@@ -9,6 +9,7 @@ Contents | |||
9 | 9 | ||
10 | - In This Release | 10 | - In This Release |
11 | - Identifying Your Adapter | 11 | - Identifying Your Adapter |
12 | - Building and Installation | ||
12 | - Command Line Parameters | 13 | - Command Line Parameters |
13 | - Speed and Duplex Configuration | 14 | - Speed and Duplex Configuration |
14 | - Additional Configurations | 15 | - Additional Configurations |
@@ -41,6 +42,9 @@ or later), lspci, and ifconfig to obtain the same information. | |||
41 | Instructions on updating ethtool can be found in the section "Additional | 42 | Instructions on updating ethtool can be found in the section "Additional |
42 | Configurations" later in this document. | 43 | Configurations" later in this document. |
43 | 44 | ||
45 | NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 | ||
46 | support. | ||
47 | |||
44 | 48 | ||
45 | Identifying Your Adapter | 49 | Identifying Your Adapter |
46 | ======================== | 50 | ======================== |
@@ -51,28 +55,27 @@ Driver ID Guide at: | |||
51 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 55 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
52 | 56 | ||
53 | For the latest Intel network drivers for Linux, refer to the following | 57 | For the latest Intel network drivers for Linux, refer to the following |
54 | website. In the search field, enter your adapter name or type, or use the | 58 | website. In the search field, enter your adapter name or type, or use the |
55 | networking link on the left to search for your adapter: | 59 | networking link on the left to search for your adapter: |
56 | 60 | ||
57 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 61 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
58 | 62 | ||
59 | 63 | ||
60 | Command Line Parameters ======================= | 64 | Command Line Parameters |
65 | ======================= | ||
61 | 66 | ||
62 | If the driver is built as a module, the following optional parameters | 67 | If the driver is built as a module, the following optional parameters |
63 | are used by entering them on the command line with the modprobe or insmod | 68 | are used by entering them on the command line with the modprobe command |
64 | command using this syntax: | 69 | using this syntax: |
65 | 70 | ||
66 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] | 71 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] |
67 | 72 | ||
68 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] | ||
69 | |||
70 | For example, with two PRO/1000 PCI adapters, entering: | 73 | For example, with two PRO/1000 PCI adapters, entering: |
71 | 74 | ||
72 | insmod e1000 TxDescriptors=80,128 | 75 | modprobe e1000 TxDescriptors=80,128 |
73 | 76 | ||
74 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 | 77 | loads the e1000 driver with 80 TX descriptors for the first adapter and |
75 | TX descriptors for the second adapter. | 78 | 128 TX descriptors for the second adapter. |
76 | 79 | ||
77 | The default value for each parameter is generally the recommended setting, | 80 | The default value for each parameter is generally the recommended setting, |
78 | unless otherwise noted. | 81 | unless otherwise noted. |
@@ -87,7 +90,7 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed | |||
87 | http://www.intel.com/design/network/applnots/ap450.htm | 90 | http://www.intel.com/design/network/applnots/ap450.htm |
88 | 91 | ||
89 | A descriptor describes a data buffer and attributes related to | 92 | A descriptor describes a data buffer and attributes related to |
90 | the data buffer. This information is accessed by the hardware. | 93 | the data buffer. This information is accessed by the hardware. |
91 | 94 | ||
92 | 95 | ||
93 | AutoNeg | 96 | AutoNeg |
@@ -96,9 +99,9 @@ AutoNeg | |||
96 | Valid Range: 0x01-0x0F, 0x20-0x2F | 99 | Valid Range: 0x01-0x0F, 0x20-0x2F |
97 | Default Value: 0x2F | 100 | Default Value: 0x2F |
98 | 101 | ||
99 | This parameter is a bit mask that specifies which speed and duplex | 102 | This parameter is a bit-mask that specifies the speed and duplex settings |
100 | settings the board advertises. When this parameter is used, the Speed | 103 | advertised by the adapter. When this parameter is used, the Speed and |
101 | and Duplex parameters must not be specified. | 104 | Duplex parameters must not be specified. |
102 | 105 | ||
103 | NOTE: Refer to the Speed and Duplex section of this readme for more | 106 | NOTE: Refer to the Speed and Duplex section of this readme for more |
104 | information on the AutoNeg parameter. | 107 | information on the AutoNeg parameter. |
@@ -110,14 +113,15 @@ Duplex | |||
110 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 113 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) |
111 | Default Value: 0 | 114 | Default Value: 0 |
112 | 115 | ||
113 | Defines the direction in which data is allowed to flow. Can be either | 116 | This defines the direction in which data is allowed to flow. Can be |
114 | one or two-directional. If both Duplex and the link partner are set to | 117 | either one or two-directional. If both Duplex and the link partner are |
115 | auto-negotiate, the board auto-detects the correct duplex. If the link | 118 | set to auto-negotiate, the board auto-detects the correct duplex. If the |
116 | partner is forced (either full or half), Duplex defaults to half-duplex. | 119 | link partner is forced (either full or half), Duplex defaults to half- |
120 | duplex. | ||
117 | 121 | ||
118 | 122 | ||
119 | FlowControl | 123 | FlowControl |
120 | ---------- | 124 | ----------- |
121 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 125 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
122 | Default Value: Reads flow control settings from the EEPROM | 126 | Default Value: Reads flow control settings from the EEPROM |
123 | 127 | ||
@@ -127,57 +131,107 @@ to Ethernet PAUSE frames. | |||
127 | 131 | ||
128 | InterruptThrottleRate | 132 | InterruptThrottleRate |
129 | --------------------- | 133 | --------------------- |
130 | (not supported on Intel 82542, 82543 or 82544-based adapters) | 134 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) |
131 | Valid Range: 100-100000 (0=off, 1=dynamic) | 135 | Valid Range: 0,1,3,100-100000 (0=off, 1=dynamic, 3=dynamic conservative) |
132 | Default Value: 8000 | 136 | Default Value: 3 |
133 | 137 | ||
134 | This value represents the maximum number of interrupts per second the | 138 | The driver can limit the amount of interrupts per second that the adapter |
135 | controller generates. InterruptThrottleRate is another setting used in | 139 | will generate for incoming packets. It does this by writing a value to the |
136 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust | 140 | adapter that is based on the maximum amount of interrupts that the adapter |
137 | InterruptThrottleRate based on the current traffic load. | 141 | will generate per second. |
142 | |||
143 | Setting InterruptThrottleRate to a value greater or equal to 100 | ||
144 | will program the adapter to send out a maximum of that many interrupts | ||
145 | per second, even if more packets have come in. This reduces interrupt | ||
146 | load on the system and can lower CPU utilization under heavy load, | ||
147 | but will increase latency as packets are not processed as quickly. | ||
148 | |||
149 | The default behaviour of the driver previously assumed a static | ||
150 | InterruptThrottleRate value of 8000, providing a good fallback value for | ||
151 | all traffic types,but lacking in small packet performance and latency. | ||
152 | The hardware can handle many more small packets per second however, and | ||
153 | for this reason an adaptive interrupt moderation algorithm was implemented. | ||
154 | |||
155 | Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which | ||
156 | it dynamically adjusts the InterruptThrottleRate value based on the traffic | ||
157 | that it receives. After determining the type of incoming traffic in the last | ||
158 | timeframe, it will adjust the InterruptThrottleRate to an appropriate value | ||
159 | for that traffic. | ||
160 | |||
161 | The algorithm classifies the incoming traffic every interval into | ||
162 | classes. Once the class is determined, the InterruptThrottleRate value is | ||
163 | adjusted to suit that traffic type the best. There are three classes defined: | ||
164 | "Bulk traffic", for large amounts of packets of normal size; "Low latency", | ||
165 | for small amounts of traffic and/or a significant percentage of small | ||
166 | packets; and "Lowest latency", for almost completely small packets or | ||
167 | minimal traffic. | ||
168 | |||
169 | In dynamic conservative mode, the InterruptThrottleRate value is set to 4000 | ||
170 | for traffic that falls in class "Bulk traffic". If traffic falls in the "Low | ||
171 | latency" or "Lowest latency" class, the InterruptThrottleRate is increased | ||
172 | stepwise to 20000. This default mode is suitable for most applications. | ||
173 | |||
174 | For situations where low latency is vital such as cluster or | ||
175 | grid computing, the algorithm can reduce latency even more when | ||
176 | InterruptThrottleRate is set to mode 1. In this mode, which operates | ||
177 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to | ||
178 | 70000 for traffic in class "Lowest latency". | ||
179 | |||
180 | Setting InterruptThrottleRate to 0 turns off any interrupt moderation | ||
181 | and may improve small packet latency, but is generally not suitable | ||
182 | for bulk throughput traffic. | ||
138 | 183 | ||
139 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | 184 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and |
140 | RxAbsIntDelay parameters. In other words, minimizing the receive | 185 | RxAbsIntDelay parameters. In other words, minimizing the receive |
141 | and/or transmit absolute delays does not force the controller to | 186 | and/or transmit absolute delays does not force the controller to |
142 | generate more interrupts than what the Interrupt Throttle Rate | 187 | generate more interrupts than what the Interrupt Throttle Rate |
143 | allows. | 188 | allows. |
144 | 189 | ||
145 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection | 190 | CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection |
146 | (controller 82547), setting InterruptThrottleRate to a value | 191 | (controller 82547), setting InterruptThrottleRate to a value |
147 | greater than 75,000, may hang (stop transmitting) adapters | 192 | greater than 75,000, may hang (stop transmitting) adapters |
148 | under certain network conditions. If this occurs a NETDEV | 193 | under certain network conditions. If this occurs a NETDEV |
149 | WATCHDOG message is logged in the system event log. In | 194 | WATCHDOG message is logged in the system event log. In |
150 | addition, the controller is automatically reset, restoring | 195 | addition, the controller is automatically reset, restoring |
151 | the network connection. To eliminate the potential for the | 196 | the network connection. To eliminate the potential for the |
152 | hang, ensure that InterruptThrottleRate is set no greater | 197 | hang, ensure that InterruptThrottleRate is set no greater |
153 | than 75,000 and is not set to 0. | 198 | than 75,000 and is not set to 0. |
154 | 199 | ||
155 | NOTE: When e1000 is loaded with default settings and multiple adapters | 200 | NOTE: When e1000 is loaded with default settings and multiple adapters |
156 | are in use simultaneously, the CPU utilization may increase non- | 201 | are in use simultaneously, the CPU utilization may increase non- |
157 | linearly. In order to limit the CPU utilization without impacting | 202 | linearly. In order to limit the CPU utilization without impacting |
158 | the overall throughput, we recommend that you load the driver as | 203 | the overall throughput, we recommend that you load the driver as |
159 | follows: | 204 | follows: |
160 | 205 | ||
161 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 | 206 | modprobe e1000 InterruptThrottleRate=3000,3000,3000 |
162 | 207 | ||
163 | This sets the InterruptThrottleRate to 3000 interrupts/sec for | 208 | This sets the InterruptThrottleRate to 3000 interrupts/sec for |
164 | the first, second, and third instances of the driver. The range | 209 | the first, second, and third instances of the driver. The range |
165 | of 2000 to 3000 interrupts per second works on a majority of | 210 | of 2000 to 3000 interrupts per second works on a majority of |
166 | systems and is a good starting point, but the optimal value will | 211 | systems and is a good starting point, but the optimal value will |
167 | be platform-specific. If CPU utilization is not a concern, use | 212 | be platform-specific. If CPU utilization is not a concern, use |
168 | RX_POLLING (NAPI) and default driver settings. | 213 | RX_POLLING (NAPI) and default driver settings. |
169 | 214 | ||
170 | 215 | ||
216 | |||
171 | RxDescriptors | 217 | RxDescriptors |
172 | ------------- | 218 | ------------- |
173 | Valid Range: 80-256 for 82542 and 82543-based adapters | 219 | Valid Range: 80-256 for 82542 and 82543-based adapters |
174 | 80-4096 for all other supported adapters | 220 | 80-4096 for all other supported adapters |
175 | Default Value: 256 | 221 | Default Value: 256 |
176 | 222 | ||
177 | This value specifies the number of receive descriptors allocated by the | 223 | This value specifies the number of receive buffer descriptors allocated |
178 | driver. Increasing this value allows the driver to buffer more incoming | 224 | by the driver. Increasing this value allows the driver to buffer more |
179 | packets. Each descriptor is 16 bytes. A receive buffer is also | 225 | incoming packets, at the expense of increased system memory utilization. |
180 | allocated for each descriptor and is 2048. | 226 | |
227 | Each descriptor is 16 bytes. A receive buffer is also allocated for each | ||
228 | descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending | ||
229 | on the MTU setting. The maximum MTU size is 16110. | ||
230 | |||
231 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | ||
232 | Frames. Depending on the available system resources, the request | ||
233 | for a higher number of receive descriptors may be denied. In this | ||
234 | case, use a lower number. | ||
181 | 235 | ||
182 | 236 | ||
183 | RxIntDelay | 237 | RxIntDelay |
@@ -187,17 +241,17 @@ Default Value: 0 | |||
187 | 241 | ||
188 | This value delays the generation of receive interrupts in units of 1.024 | 242 | This value delays the generation of receive interrupts in units of 1.024 |
189 | microseconds. Receive interrupt reduction can improve CPU efficiency if | 243 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
190 | properly tuned for specific network traffic. Increasing this value adds | 244 | properly tuned for specific network traffic. Increasing this value adds |
191 | extra latency to frame reception and can end up decreasing the throughput | 245 | extra latency to frame reception and can end up decreasing the throughput |
192 | of TCP traffic. If the system is reporting dropped receives, this value | 246 | of TCP traffic. If the system is reporting dropped receives, this value |
193 | may be set too high, causing the driver to run out of available receive | 247 | may be set too high, causing the driver to run out of available receive |
194 | descriptors. | 248 | descriptors. |
195 | 249 | ||
196 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 250 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may |
197 | hang (stop transmitting) under certain network conditions. If | 251 | hang (stop transmitting) under certain network conditions. If |
198 | this occurs a NETDEV WATCHDOG message is logged in the system | 252 | this occurs a NETDEV WATCHDOG message is logged in the system |
199 | event log. In addition, the controller is automatically reset, | 253 | event log. In addition, the controller is automatically reset, |
200 | restoring the network connection. To eliminate the potential | 254 | restoring the network connection. To eliminate the potential |
201 | for the hang ensure that RxIntDelay is set to 0. | 255 | for the hang ensure that RxIntDelay is set to 0. |
202 | 256 | ||
203 | 257 | ||
@@ -208,7 +262,7 @@ Valid Range: 0-65535 (0=off) | |||
208 | Default Value: 128 | 262 | Default Value: 128 |
209 | 263 | ||
210 | This value, in units of 1.024 microseconds, limits the delay in which a | 264 | This value, in units of 1.024 microseconds, limits the delay in which a |
211 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, | 265 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
212 | this value ensures that an interrupt is generated after the initial | 266 | this value ensures that an interrupt is generated after the initial |
213 | packet is received within the set amount of time. Proper tuning, | 267 | packet is received within the set amount of time. Proper tuning, |
214 | along with RxIntDelay, may improve traffic throughput in specific network | 268 | along with RxIntDelay, may improve traffic throughput in specific network |
@@ -222,9 +276,9 @@ Valid Settings: 0, 10, 100, 1000 | |||
222 | Default Value: 0 (auto-negotiate at all supported speeds) | 276 | Default Value: 0 (auto-negotiate at all supported speeds) |
223 | 277 | ||
224 | Speed forces the line speed to the specified value in megabits per second | 278 | Speed forces the line speed to the specified value in megabits per second |
225 | (Mbps). If this parameter is not specified or is set to 0 and the link | 279 | (Mbps). If this parameter is not specified or is set to 0 and the link |
226 | partner is set to auto-negotiate, the board will auto-detect the correct | 280 | partner is set to auto-negotiate, the board will auto-detect the correct |
227 | speed. Duplex should also be set when Speed is set to either 10 or 100. | 281 | speed. Duplex should also be set when Speed is set to either 10 or 100. |
228 | 282 | ||
229 | 283 | ||
230 | TxDescriptors | 284 | TxDescriptors |
@@ -234,7 +288,7 @@ Valid Range: 80-256 for 82542 and 82543-based adapters | |||
234 | Default Value: 256 | 288 | Default Value: 256 |
235 | 289 | ||
236 | This value is the number of transmit descriptors allocated by the driver. | 290 | This value is the number of transmit descriptors allocated by the driver. |
237 | Increasing this value allows the driver to queue more transmits. Each | 291 | Increasing this value allows the driver to queue more transmits. Each |
238 | descriptor is 16 bytes. | 292 | descriptor is 16 bytes. |
239 | 293 | ||
240 | NOTE: Depending on the available system resources, the request for a | 294 | NOTE: Depending on the available system resources, the request for a |
@@ -248,8 +302,8 @@ Valid Range: 0-65535 (0=off) | |||
248 | Default Value: 64 | 302 | Default Value: 64 |
249 | 303 | ||
250 | This value delays the generation of transmit interrupts in units of | 304 | This value delays the generation of transmit interrupts in units of |
251 | 1.024 microseconds. Transmit interrupt reduction can improve CPU | 305 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
252 | efficiency if properly tuned for specific network traffic. If the | 306 | efficiency if properly tuned for specific network traffic. If the |
253 | system is reporting dropped transmits, this value may be set too high | 307 | system is reporting dropped transmits, this value may be set too high |
254 | causing the driver to run out of available transmit descriptors. | 308 | causing the driver to run out of available transmit descriptors. |
255 | 309 | ||
@@ -261,7 +315,7 @@ Valid Range: 0-65535 (0=off) | |||
261 | Default Value: 64 | 315 | Default Value: 64 |
262 | 316 | ||
263 | This value, in units of 1.024 microseconds, limits the delay in which a | 317 | This value, in units of 1.024 microseconds, limits the delay in which a |
264 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, | 318 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, |
265 | this value ensures that an interrupt is generated after the initial | 319 | this value ensures that an interrupt is generated after the initial |
266 | packet is sent on the wire within the set amount of time. Proper tuning, | 320 | packet is sent on the wire within the set amount of time. Proper tuning, |
267 | along with TxIntDelay, may improve traffic throughput in specific | 321 | along with TxIntDelay, may improve traffic throughput in specific |
@@ -288,15 +342,15 @@ fiber interface board only links at 1000 Mbps full-duplex. | |||
288 | 342 | ||
289 | For copper-based boards, the keywords interact as follows: | 343 | For copper-based boards, the keywords interact as follows: |
290 | 344 | ||
291 | The default operation is auto-negotiate. The board advertises all | 345 | The default operation is auto-negotiate. The board advertises all |
292 | supported speed and duplex combinations, and it links at the highest | 346 | supported speed and duplex combinations, and it links at the highest |
293 | common speed and duplex mode IF the link partner is set to auto-negotiate. | 347 | common speed and duplex mode IF the link partner is set to auto-negotiate. |
294 | 348 | ||
295 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps | 349 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps |
296 | is advertised (The 1000BaseT spec requires auto-negotiation.) | 350 | is advertised (The 1000BaseT spec requires auto-negotiation.) |
297 | 351 | ||
298 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- | 352 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- |
299 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner | 353 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner |
300 | SHOULD also be forced. | 354 | SHOULD also be forced. |
301 | 355 | ||
302 | The AutoNeg parameter is used when more control is required over the | 356 | The AutoNeg parameter is used when more control is required over the |
@@ -304,7 +358,7 @@ auto-negotiation process. It should be used when you wish to control which | |||
304 | speed and duplex combinations are advertised during the auto-negotiation | 358 | speed and duplex combinations are advertised during the auto-negotiation |
305 | process. | 359 | process. |
306 | 360 | ||
307 | The parameter may be specified as either a decimal or hexidecimal value as | 361 | The parameter may be specified as either a decimal or hexadecimal value as |
308 | determined by the bitmap below. | 362 | determined by the bitmap below. |
309 | 363 | ||
310 | Bit position 7 6 5 4 3 2 1 0 | 364 | Bit position 7 6 5 4 3 2 1 0 |
@@ -337,20 +391,19 @@ Additional Configurations | |||
337 | 391 | ||
338 | Configuring the Driver on Different Distributions | 392 | Configuring the Driver on Different Distributions |
339 | ------------------------------------------------- | 393 | ------------------------------------------------- |
340 | |||
341 | Configuring a network driver to load properly when the system is started | 394 | Configuring a network driver to load properly when the system is started |
342 | is distribution dependent. Typically, the configuration process involves | 395 | is distribution dependent. Typically, the configuration process involves |
343 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well | 396 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well |
344 | as editing other system startup scripts and/or configuration files. Many | 397 | as editing other system startup scripts and/or configuration files. Many |
345 | popular Linux distributions ship with tools to make these changes for you. | 398 | popular Linux distributions ship with tools to make these changes for you. |
346 | To learn the proper way to configure a network device for your system, | 399 | To learn the proper way to configure a network device for your system, |
347 | refer to your distribution documentation. If during this process you are | 400 | refer to your distribution documentation. If during this process you are |
348 | asked for the driver or module name, the name for the Linux Base Driver | 401 | asked for the driver or module name, the name for the Linux Base Driver |
349 | for the Intel PRO/1000 Family of Adapters is e1000. | 402 | for the Intel(R) PRO/1000 Family of Adapters is e1000. |
350 | 403 | ||
351 | As an example, if you install the e1000 driver for two PRO/1000 adapters | 404 | As an example, if you install the e1000 driver for two PRO/1000 adapters |
352 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add | 405 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add |
353 | the following to modules.conf or modprobe.conf: | 406 | the following to modules.conf or or modprobe.conf: |
354 | 407 | ||
355 | alias eth0 e1000 | 408 | alias eth0 e1000 |
356 | alias eth1 e1000 | 409 | alias eth1 e1000 |
@@ -358,9 +411,8 @@ Additional Configurations | |||
358 | 411 | ||
359 | Viewing Link Messages | 412 | Viewing Link Messages |
360 | --------------------- | 413 | --------------------- |
361 | |||
362 | Link messages will not be displayed to the console if the distribution is | 414 | Link messages will not be displayed to the console if the distribution is |
363 | restricting system messages. In order to see network driver link messages | 415 | restricting system messages. In order to see network driver link messages |
364 | on your console, set dmesg to eight by entering the following: | 416 | on your console, set dmesg to eight by entering the following: |
365 | 417 | ||
366 | dmesg -n 8 | 418 | dmesg -n 8 |
@@ -369,11 +421,9 @@ Additional Configurations | |||
369 | 421 | ||
370 | Jumbo Frames | 422 | Jumbo Frames |
371 | ------------ | 423 | ------------ |
372 | 424 | Jumbo Frames support is enabled by changing the MTU to a value larger than | |
373 | The driver supports Jumbo Frames for all adapters except 82542 and | 425 | the default of 1500. Use the ifconfig command to increase the MTU size. |
374 | 82573-based adapters. Jumbo Frames support is enabled by changing the | 426 | For example: |
375 | MTU to a value larger than the default of 1500. Use the ifconfig command | ||
376 | to increase the MTU size. For example: | ||
377 | 427 | ||
378 | ifconfig eth<x> mtu 9000 up | 428 | ifconfig eth<x> mtu 9000 up |
379 | 429 | ||
@@ -390,26 +440,49 @@ Additional Configurations | |||
390 | 440 | ||
391 | - To enable Jumbo Frames, increase the MTU size on the interface beyond | 441 | - To enable Jumbo Frames, increase the MTU size on the interface beyond |
392 | 1500. | 442 | 1500. |
393 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 443 | |
444 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | ||
394 | with the maximum Jumbo Frames size of 16128. | 445 | with the maximum Jumbo Frames size of 16128. |
446 | |||
395 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | 447 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or |
396 | loss of link. | 448 | loss of link. |
449 | |||
397 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size | 450 | - 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. | 451 | 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 | 452 | The adapters with this limitation are based on the Intel(R) 82571EB, |
400 | 82572EI controllers, which correspond to these product names: | 453 | 82572EI, 82573L and 80003ES2LAN controller. These correspond to the |
401 | Intel® PRO/1000 PT Dual Port Server Adapter | 454 | following product names: |
402 | Intel® PRO/1000 PF Dual Port Server Adapter | 455 | Intel(R) PRO/1000 PT Server Adapter |
403 | Intel® PRO/1000 PT Server Adapter | 456 | Intel(R) PRO/1000 PT Desktop Adapter |
404 | Intel® PRO/1000 PT Desktop Adapter | 457 | Intel(R) PRO/1000 PT Network Connection |
405 | Intel® PRO/1000 PF Server Adapter | 458 | Intel(R) PRO/1000 PT Dual Port Server Adapter |
406 | 459 | Intel(R) PRO/1000 PT Dual Port Network Connection | |
407 | - The Intel PRO/1000 PM Network Connection does not support jumbo frames. | 460 | Intel(R) PRO/1000 PF Server Adapter |
461 | Intel(R) PRO/1000 PF Network Connection | ||
462 | Intel(R) PRO/1000 PF Dual Port Server Adapter | ||
463 | Intel(R) PRO/1000 PB Server Connection | ||
464 | Intel(R) PRO/1000 PL Network Connection | ||
465 | Intel(R) PRO/1000 EB Network Connection with I/O Acceleration | ||
466 | Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration | ||
467 | Intel(R) PRO/1000 PT Quad Port Server Adapter | ||
468 | |||
469 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not | ||
470 | support Jumbo Frames. These correspond to the following product names: | ||
471 | Intel(R) PRO/1000 Gigabit Server Adapter | ||
472 | Intel(R) PRO/1000 PM Network Connection | ||
473 | |||
474 | - The following adapters do not support Jumbo Frames: | ||
475 | Intel(R) 82562V 10/100 Network Connection | ||
476 | Intel(R) 82566DM Gigabit Network Connection | ||
477 | Intel(R) 82566DC Gigabit Network Connection | ||
478 | Intel(R) 82566MM Gigabit Network Connection | ||
479 | Intel(R) 82566MC Gigabit Network Connection | ||
480 | Intel(R) 82562GT 10/100 Network Connection | ||
481 | Intel(R) 82562G 10/100 Network Connection | ||
408 | 482 | ||
409 | 483 | ||
410 | Ethtool | 484 | Ethtool |
411 | ------- | 485 | ------- |
412 | |||
413 | The driver utilizes the ethtool interface for driver configuration and | 486 | The driver utilizes the ethtool interface for driver configuration and |
414 | diagnostics, as well as displaying statistical information. Ethtool | 487 | diagnostics, as well as displaying statistical information. Ethtool |
415 | version 1.6 or later is required for this functionality. | 488 | version 1.6 or later is required for this functionality. |
@@ -417,15 +490,14 @@ Additional Configurations | |||
417 | The latest release of ethtool can be found from | 490 | The latest release of ethtool can be found from |
418 | http://sourceforge.net/projects/gkernel. | 491 | http://sourceforge.net/projects/gkernel. |
419 | 492 | ||
420 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | 493 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
421 | for a more complete ethtool feature set can be enabled by upgrading | 494 | for a more complete ethtool feature set can be enabled by upgrading |
422 | ethtool to ethtool-1.8.1. | 495 | ethtool to ethtool-1.8.1. |
423 | 496 | ||
424 | Enabling Wake on LAN* (WoL) | 497 | Enabling Wake on LAN* (WoL) |
425 | --------------------------- | 498 | --------------------------- |
426 | 499 | WoL is configured through the Ethtool* utility. Ethtool is included with | |
427 | WoL is configured through the Ethtool* utility. Ethtool is included with | 500 | 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, | ||
429 | download and install Ethtool from the following website: | 501 | download and install Ethtool from the following website: |
430 | http://sourceforge.net/projects/gkernel. | 502 | http://sourceforge.net/projects/gkernel. |
431 | 503 | ||
@@ -436,11 +508,17 @@ Additional Configurations | |||
436 | For this driver version, in order to enable WoL, the e1000 driver must be | 508 | For this driver version, in order to enable WoL, the e1000 driver must be |
437 | loaded when shutting down or rebooting the system. | 509 | loaded when shutting down or rebooting the system. |
438 | 510 | ||
511 | Wake On LAN is only supported on port A for the following devices: | ||
512 | Intel(R) PRO/1000 PT Dual Port Network Connection | ||
513 | Intel(R) PRO/1000 PT Dual Port Server Connection | ||
514 | Intel(R) PRO/1000 PT Dual Port Server Adapter | ||
515 | Intel(R) PRO/1000 PF Dual Port Server Adapter | ||
516 | Intel(R) PRO/1000 PT Quad Port Server Adapter | ||
517 | |||
439 | NAPI | 518 | NAPI |
440 | ---- | 519 | ---- |
441 | 520 | 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 | 521 | or disabled based on the configuration of the kernel. To override |
443 | or disabled based on the configuration of the kernel. To override | ||
444 | the default, use the following compile-time flags. | 522 | the default, use the following compile-time flags. |
445 | 523 | ||
446 | To enable NAPI, compile the driver module, passing in a configuration option: | 524 | To enable NAPI, compile the driver module, passing in a configuration option: |
@@ -457,88 +535,105 @@ Additional Configurations | |||
457 | Known Issues | 535 | Known Issues |
458 | ============ | 536 | ============ |
459 | 537 | ||
460 | Jumbo Frames System Requirement | 538 | Dropped Receive Packets on Half-duplex 10/100 Networks |
461 | ------------------------------- | 539 | ------------------------------------------------------ |
462 | 540 | If you have an Intel PCI Express adapter running at 10mbps or 100mbps, half- | |
463 | Memory allocation failures have been observed on Linux systems with 64 MB | 541 | duplex, you may observe occasional dropped receive packets. There are no |
464 | of RAM or less that are running Jumbo Frames. If you are using Jumbo | 542 | workarounds for this problem in this network configuration. The network must |
465 | Frames, your system may require more than the advertised minimum | 543 | be updated to operate in full-duplex, and/or 1000mbps only. |
466 | requirement of 64 MB of system memory. | 544 | |
467 | 545 | Jumbo Frames System Requirement | |
468 | Performance Degradation with Jumbo Frames | 546 | ------------------------------- |
469 | ----------------------------------------- | 547 | Memory allocation failures have been observed on Linux systems with 64 MB |
470 | 548 | of RAM or less that are running Jumbo Frames. If you are using Jumbo | |
471 | Degradation in throughput performance may be observed in some Jumbo frames | 549 | Frames, your system may require more than the advertised minimum |
472 | environments. If this is observed, increasing the application's socket | 550 | requirement of 64 MB of system memory. |
473 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values | 551 | |
474 | may help. See the specific application manual and | 552 | Performance Degradation with Jumbo Frames |
475 | /usr/src/linux*/Documentation/ | 553 | ----------------------------------------- |
476 | networking/ip-sysctl.txt for more details. | 554 | Degradation in throughput performance may be observed in some Jumbo frames |
477 | 555 | environments. If this is observed, increasing the application's socket | |
478 | Jumbo frames on Foundry BigIron 8000 switch | 556 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values |
479 | ------------------------------------------- | 557 | may help. See the specific application manual and |
480 | There is a known issue using Jumbo frames when connected to a Foundry | 558 | /usr/src/linux*/Documentation/ |
481 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | 559 | networking/ip-sysctl.txt for more details. |
482 | loss of packets, lower the MTU size. | 560 | |
483 | 561 | Jumbo Frames on Foundry BigIron 8000 switch | |
484 | Multiple Interfaces on Same Ethernet Broadcast Network | 562 | ------------------------------------------- |
485 | ------------------------------------------------------ | 563 | There is a known issue using Jumbo frames when connected to a Foundry |
486 | 564 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | |
487 | Due to the default ARP behavior on Linux, it is not possible to have | 565 | loss of packets, lower the MTU size. |
488 | one system on two IP networks in the same Ethernet broadcast domain | 566 | |
489 | (non-partitioned switch) behave as expected. All Ethernet interfaces | 567 | Allocating Rx Buffers when Using Jumbo Frames |
490 | will respond to IP traffic for any IP address assigned to the system. | 568 | --------------------------------------------- |
491 | This results in unbalanced receive traffic. | 569 | Allocating Rx buffers when using Jumbo Frames on 2.6.x kernels may fail if |
492 | 570 | the available memory is heavily fragmented. This issue may be seen with PCI-X | |
493 | If you have multiple interfaces in a server, either turn on ARP | 571 | adapters or with packet split disabled. This can be reduced or eliminated |
494 | filtering by entering: | 572 | by changing the amount of available memory for receive buffer allocation, by |
495 | 573 | increasing /proc/sys/vm/min_free_kbytes. | |
496 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | 574 | |
497 | (this only works if your kernel's version is higher than 2.4.5), | 575 | Multiple Interfaces on Same Ethernet Broadcast Network |
498 | 576 | ------------------------------------------------------ | |
499 | NOTE: This setting is not saved across reboots. The configuration | 577 | Due to the default ARP behavior on Linux, it is not possible to have |
500 | change can be made permanent by adding the line: | 578 | one system on two IP networks in the same Ethernet broadcast domain |
501 | net.ipv4.conf.all.arp_filter = 1 | 579 | (non-partitioned switch) behave as expected. All Ethernet interfaces |
502 | to the file /etc/sysctl.conf | 580 | will respond to IP traffic for any IP address assigned to the system. |
503 | 581 | This results in unbalanced receive traffic. | |
504 | or, | 582 | |
505 | 583 | If you have multiple interfaces in a server, either turn on ARP | |
506 | install the interfaces in separate broadcast domains (either in | 584 | filtering by entering: |
507 | different switches or in a switch partitioned to VLANs). | 585 | |
508 | 586 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | |
509 | 82541/82547 can't link or are slow to link with some link partners | 587 | (this only works if your kernel's version is higher than 2.4.5), |
510 | ----------------------------------------------------------------- | 588 | |
511 | 589 | NOTE: This setting is not saved across reboots. The configuration | |
512 | There is a known compatibility issue with 82541/82547 and some | 590 | change can be made permanent by adding the line: |
513 | low-end switches where the link will not be established, or will | 591 | net.ipv4.conf.all.arp_filter = 1 |
514 | be slow to establish. In particular, these switches are known to | 592 | to the file /etc/sysctl.conf |
515 | be incompatible with 82541/82547: | 593 | |
516 | 594 | or, | |
517 | Planex FXG-08TE | 595 | |
518 | I-O Data ETG-SH8 | 596 | install the interfaces in separate broadcast domains (either in |
519 | 597 | different switches or in a switch partitioned to VLANs). | |
520 | To workaround this issue, the driver can be compiled with an override | 598 | |
521 | of the PHY's master/slave setting. Forcing master or forcing slave | 599 | 82541/82547 can't link or are slow to link with some link partners |
522 | mode will improve time-to-link. | 600 | ----------------------------------------------------------------- |
523 | 601 | There is a known compatibility issue with 82541/82547 and some | |
524 | # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n> | 602 | low-end switches where the link will not be established, or will |
525 | 603 | be slow to establish. In particular, these switches are known to | |
526 | Where <n> is: | 604 | be incompatible with 82541/82547: |
527 | 605 | ||
528 | 0 = Hardware default | 606 | Planex FXG-08TE |
529 | 1 = Master mode | 607 | I-O Data ETG-SH8 |
530 | 2 = Slave mode | 608 | |
531 | 3 = Auto master/slave | 609 | To workaround this issue, the driver can be compiled with an override |
532 | 610 | of the PHY's master/slave setting. Forcing master or forcing slave | |
533 | Disable rx flow control with ethtool | 611 | mode will improve time-to-link. |
534 | ------------------------------------ | 612 | |
535 | 613 | # make CFLAGS_EXTRA=-DE1000_MASTER_SLAVE=<n> | |
536 | In order to disable receive flow control using ethtool, you must turn | 614 | |
537 | off auto-negotiation on the same command line. | 615 | Where <n> is: |
538 | 616 | ||
539 | For example: | 617 | 0 = Hardware default |
540 | 618 | 1 = Master mode | |
541 | ethtool -A eth? autoneg off rx off | 619 | 2 = Slave mode |
620 | 3 = Auto master/slave | ||
621 | |||
622 | Disable rx flow control with ethtool | ||
623 | ------------------------------------ | ||
624 | In order to disable receive flow control using ethtool, you must turn | ||
625 | off auto-negotiation on the same command line. | ||
626 | |||
627 | For example: | ||
628 | |||
629 | ethtool -A eth? autoneg off rx off | ||
630 | |||
631 | Unplugging network cable while ethtool -p is running | ||
632 | ---------------------------------------------------- | ||
633 | In kernel versions 2.5.50 and later (including 2.6 kernel), unplugging | ||
634 | the network cable while ethtool -p is running will cause the system to | ||
635 | become unresponsive to keyboard commands, except for control-alt-delete. | ||
636 | Restarting the system appears to be the only remedy. | ||
542 | 637 | ||
543 | 638 | ||
544 | Support | 639 | Support |
@@ -548,24 +643,10 @@ For general information, go to the Intel support website at: | |||
548 | 643 | ||
549 | http://support.intel.com | 644 | http://support.intel.com |
550 | 645 | ||
551 | or the Intel Wired Networking project hosted by Sourceforge at: | 646 | or the Intel Wired Networking project hosted by Sourceforge at: |
552 | 647 | ||
553 | http://sourceforge.net/projects/e1000 | 648 | http://sourceforge.net/projects/e1000 |
554 | 649 | ||
555 | If an issue is identified with the released source code on the supported | 650 | If an issue is identified with the released source code on the supported |
556 | kernel with a supported adapter, email the specific information related | 651 | kernel with a supported adapter, email the specific information related |
557 | to the issue to e1000-devel@lists.sourceforge.net | 652 | to the issue to e1000-devel@lists.sf.net |
558 | |||
559 | |||
560 | License | ||
561 | ======= | ||
562 | |||
563 | This software program is released under the terms of a license agreement | ||
564 | between you ('Licensee') and Intel. Do not use or load this software or any | ||
565 | associated materials (collectively, the 'Software') until you have carefully | ||
566 | read the full terms and conditions of the file COPYING located in this software | ||
567 | package. By loading or using the Software, you agree to the terms of this | ||
568 | Agreement. If you do not agree with the terms of this Agreement, do not | ||
569 | install or use the Software. | ||
570 | |||
571 | * Other names and brands may be claimed as the property of others. | ||