diff options
| -rw-r--r-- | Documentation/networking/e1000.txt | 373 |
1 files changed, 96 insertions, 277 deletions
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 2df71861e578..d9271e74e488 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
| @@ -1,82 +1,35 @@ | |||
| 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 | September 26, 2006 | 4 | Intel Gigabit Linux driver. |
| 5 | 5 | Copyright(c) 1999 - 2010 Intel Corporation. | |
| 6 | 6 | ||
| 7 | Contents | 7 | Contents |
| 8 | ======== | 8 | ======== |
| 9 | 9 | ||
| 10 | - In This Release | ||
| 11 | - Identifying Your Adapter | 10 | - Identifying Your Adapter |
| 12 | - Building and Installation | ||
| 13 | - Command Line Parameters | 11 | - Command Line Parameters |
| 14 | - Speed and Duplex Configuration | 12 | - Speed and Duplex Configuration |
| 15 | - Additional Configurations | 13 | - Additional Configurations |
| 16 | - Known Issues | ||
| 17 | - Support | 14 | - Support |
| 18 | 15 | ||
| 19 | |||
| 20 | In This Release | ||
| 21 | =============== | ||
| 22 | |||
| 23 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family | ||
| 24 | of Adapters. This driver includes support for Itanium(R)2-based systems. | ||
| 25 | |||
| 26 | For questions related to hardware requirements, refer to the documentation | ||
| 27 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed | ||
| 28 | apply to use with Linux. | ||
| 29 | |||
| 30 | The following features are now available in supported kernels: | ||
| 31 | - Native VLANs | ||
| 32 | - Channel Bonding (teaming) | ||
| 33 | - SNMP | ||
| 34 | |||
| 35 | Channel Bonding documentation can be found in the Linux kernel source: | ||
| 36 | /Documentation/networking/bonding.txt | ||
| 37 | |||
| 38 | The driver information previously displayed in the /proc filesystem is not | ||
| 39 | supported in this release. Alternatively, you can use ethtool (version 1.6 | ||
| 40 | or later), lspci, and ifconfig to obtain the same information. | ||
| 41 | |||
| 42 | Instructions on updating ethtool can be found in the section "Additional | ||
| 43 | Configurations" later in this document. | ||
| 44 | |||
| 45 | NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 | ||
| 46 | support. | ||
| 47 | |||
| 48 | |||
| 49 | Identifying Your Adapter | 16 | Identifying Your Adapter |
| 50 | ======================== | 17 | ======================== |
| 51 | 18 | ||
| 52 | For more information on how to identify your adapter, go to the Adapter & | 19 | For more information on how to identify your adapter, go to the Adapter & |
| 53 | Driver ID Guide at: | 20 | Driver ID Guide at: |
| 54 | 21 | ||
| 55 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 22 | http://support.intel.com/support/go/network/adapter/idguide.htm |
| 56 | 23 | ||
| 57 | For the latest Intel network drivers for Linux, refer to the following | 24 | For the latest Intel network drivers for Linux, refer to the following |
| 58 | website. In the search field, enter your adapter name or type, or use the | 25 | website. In the search field, enter your adapter name or type, or use the |
| 59 | networking link on the left to search for your adapter: | 26 | networking link on the left to search for your adapter: |
| 60 | 27 | ||
| 61 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 28 | http://support.intel.com/support/go/network/adapter/home.htm |
| 62 | |||
| 63 | 29 | ||
| 64 | Command Line Parameters | 30 | Command Line Parameters |
| 65 | ======================= | 31 | ======================= |
| 66 | 32 | ||
| 67 | If the driver is built as a module, the following optional parameters | ||
| 68 | are used by entering them on the command line with the modprobe command | ||
| 69 | using this syntax: | ||
| 70 | |||
| 71 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] | ||
| 72 | |||
| 73 | For example, with two PRO/1000 PCI adapters, entering: | ||
| 74 | |||
| 75 | modprobe e1000 TxDescriptors=80,128 | ||
| 76 | |||
| 77 | loads the e1000 driver with 80 TX descriptors for the first adapter and | ||
| 78 | 128 TX descriptors for the second adapter. | ||
| 79 | |||
| 80 | The default value for each parameter is generally the recommended setting, | 33 | The default value for each parameter is generally the recommended setting, |
| 81 | unless otherwise noted. | 34 | unless otherwise noted. |
| 82 | 35 | ||
| @@ -89,10 +42,6 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed | |||
| 89 | parameters, see the application note at: | 42 | parameters, see the application note at: |
| 90 | http://www.intel.com/design/network/applnots/ap450.htm | 43 | http://www.intel.com/design/network/applnots/ap450.htm |
| 91 | 44 | ||
| 92 | A descriptor describes a data buffer and attributes related to | ||
| 93 | the data buffer. This information is accessed by the hardware. | ||
| 94 | |||
| 95 | |||
| 96 | AutoNeg | 45 | AutoNeg |
| 97 | ------- | 46 | ------- |
| 98 | (Supported only on adapters with copper connections) | 47 | (Supported only on adapters with copper connections) |
| @@ -106,7 +55,6 @@ Duplex parameters must not be specified. | |||
| 106 | NOTE: Refer to the Speed and Duplex section of this readme for more | 55 | NOTE: Refer to the Speed and Duplex section of this readme for more |
| 107 | information on the AutoNeg parameter. | 56 | information on the AutoNeg parameter. |
| 108 | 57 | ||
| 109 | |||
| 110 | Duplex | 58 | Duplex |
| 111 | ------ | 59 | ------ |
| 112 | (Supported only on adapters with copper connections) | 60 | (Supported only on adapters with copper connections) |
| @@ -119,7 +67,6 @@ set to auto-negotiate, the board auto-detects the correct duplex. If the | |||
| 119 | link partner is forced (either full or half), Duplex defaults to half- | 67 | link partner is forced (either full or half), Duplex defaults to half- |
| 120 | duplex. | 68 | duplex. |
| 121 | 69 | ||
| 122 | |||
| 123 | FlowControl | 70 | FlowControl |
| 124 | ----------- | 71 | ----------- |
| 125 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 72 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
| @@ -128,16 +75,16 @@ Default Value: Reads flow control settings from the EEPROM | |||
| 128 | This parameter controls the automatic generation(Tx) and response(Rx) | 75 | This parameter controls the automatic generation(Tx) and response(Rx) |
| 129 | to Ethernet PAUSE frames. | 76 | to Ethernet PAUSE frames. |
| 130 | 77 | ||
| 131 | |||
| 132 | InterruptThrottleRate | 78 | InterruptThrottleRate |
| 133 | --------------------- | 79 | --------------------- |
| 134 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) | 80 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) |
| 135 | Valid Range: 0,1,3,100-100000 (0=off, 1=dynamic, 3=dynamic conservative) | 81 | Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, |
| 82 | 4=simplified balancing) | ||
| 136 | Default Value: 3 | 83 | Default Value: 3 |
| 137 | 84 | ||
| 138 | The driver can limit the amount of interrupts per second that the adapter | 85 | The driver can limit the amount of interrupts per second that the adapter |
| 139 | will generate for incoming packets. It does this by writing a value to the | 86 | will generate for incoming packets. It does this by writing a value to the |
| 140 | adapter that is based on the maximum amount of interrupts that the adapter | 87 | adapter that is based on the maximum amount of interrupts that the adapter |
| 141 | will generate per second. | 88 | will generate per second. |
| 142 | 89 | ||
| 143 | Setting InterruptThrottleRate to a value greater or equal to 100 | 90 | Setting InterruptThrottleRate to a value greater or equal to 100 |
| @@ -146,37 +93,43 @@ 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, | 93 | load on the system and can lower CPU utilization under heavy load, |
| 147 | but will increase latency as packets are not processed as quickly. | 94 | but will increase latency as packets are not processed as quickly. |
| 148 | 95 | ||
| 149 | The default behaviour of the driver previously assumed a static | 96 | The default behaviour of the driver previously assumed a static |
| 150 | InterruptThrottleRate value of 8000, providing a good fallback value for | 97 | InterruptThrottleRate value of 8000, providing a good fallback value for |
| 151 | all traffic types,but lacking in small packet performance and latency. | 98 | all traffic types,but lacking in small packet performance and latency. |
| 152 | The hardware can handle many more small packets per second however, and | 99 | The hardware can handle many more small packets per second however, and |
| 153 | for this reason an adaptive interrupt moderation algorithm was implemented. | 100 | for this reason an adaptive interrupt moderation algorithm was implemented. |
| 154 | 101 | ||
| 155 | Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in which | 102 | 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 | 103 | it dynamically adjusts the InterruptThrottleRate value based on the traffic |
| 157 | that it receives. After determining the type of incoming traffic in the last | 104 | that it receives. After determining the type of incoming traffic in the last |
| 158 | timeframe, it will adjust the InterruptThrottleRate to an appropriate value | 105 | timeframe, it will adjust the InterruptThrottleRate to an appropriate value |
| 159 | for that traffic. | 106 | for that traffic. |
| 160 | 107 | ||
| 161 | The algorithm classifies the incoming traffic every interval into | 108 | The algorithm classifies the incoming traffic every interval into |
| 162 | classes. Once the class is determined, the InterruptThrottleRate value is | 109 | classes. Once the class is determined, the InterruptThrottleRate value is |
| 163 | adjusted to suit that traffic type the best. There are three classes defined: | 110 | 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", | 111 | "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 | 112 | for small amounts of traffic and/or a significant percentage of small |
| 166 | packets; and "Lowest latency", for almost completely small packets or | 113 | packets; and "Lowest latency", for almost completely small packets or |
| 167 | minimal traffic. | 114 | minimal traffic. |
| 168 | 115 | ||
| 169 | In dynamic conservative mode, the InterruptThrottleRate value is set to 4000 | 116 | 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 | 117 | for traffic that falls in class "Bulk traffic". If traffic falls in the "Low |
| 171 | latency" or "Lowest latency" class, the InterruptThrottleRate is increased | 118 | latency" or "Lowest latency" class, the InterruptThrottleRate is increased |
| 172 | stepwise to 20000. This default mode is suitable for most applications. | 119 | stepwise to 20000. This default mode is suitable for most applications. |
| 173 | 120 | ||
| 174 | For situations where low latency is vital such as cluster or | 121 | For situations where low latency is vital such as cluster or |
| 175 | grid computing, the algorithm can reduce latency even more when | 122 | grid computing, the algorithm can reduce latency even more when |
| 176 | InterruptThrottleRate is set to mode 1. In this mode, which operates | 123 | InterruptThrottleRate is set to mode 1. In this mode, which operates |
| 177 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to | 124 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to |
| 178 | 70000 for traffic in class "Lowest latency". | 125 | 70000 for traffic in class "Lowest latency". |
| 179 | 126 | ||
| 127 | In simplified mode the interrupt rate is based on the ratio of Tx and | ||
| 128 | Rx traffic. If the bytes per second rate is approximately equal, the | ||
| 129 | interrupt rate will drop as low as 2000 interrupts per second. If the | ||
| 130 | traffic is mostly transmit or mostly receive, the interrupt rate could | ||
| 131 | be as high as 8000. | ||
| 132 | |||
| 180 | Setting InterruptThrottleRate to 0 turns off any interrupt moderation | 133 | Setting InterruptThrottleRate to 0 turns off any interrupt moderation |
| 181 | and may improve small packet latency, but is generally not suitable | 134 | and may improve small packet latency, but is generally not suitable |
| 182 | for bulk throughput traffic. | 135 | for bulk throughput traffic. |
| @@ -212,8 +165,6 @@ NOTE: When e1000 is loaded with default settings and multiple adapters | |||
| 212 | be platform-specific. If CPU utilization is not a concern, use | 165 | be platform-specific. If CPU utilization is not a concern, use |
| 213 | RX_POLLING (NAPI) and default driver settings. | 166 | RX_POLLING (NAPI) and default driver settings. |
| 214 | 167 | ||
| 215 | |||
| 216 | |||
| 217 | RxDescriptors | 168 | RxDescriptors |
| 218 | ------------- | 169 | ------------- |
| 219 | Valid Range: 80-256 for 82542 and 82543-based adapters | 170 | Valid Range: 80-256 for 82542 and 82543-based adapters |
| @@ -225,15 +176,14 @@ by the driver. Increasing this value allows the driver to buffer more | |||
| 225 | incoming packets, at the expense of increased system memory utilization. | 176 | incoming packets, at the expense of increased system memory utilization. |
| 226 | 177 | ||
| 227 | Each descriptor is 16 bytes. A receive buffer is also allocated for each | 178 | 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 | 179 | descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending |
| 229 | on the MTU setting. The maximum MTU size is 16110. | 180 | on the MTU setting. The maximum MTU size is 16110. |
| 230 | 181 | ||
| 231 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | 182 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo |
| 232 | Frames. Depending on the available system resources, the request | 183 | Frames. Depending on the available system resources, the request |
| 233 | for a higher number of receive descriptors may be denied. In this | 184 | for a higher number of receive descriptors may be denied. In this |
| 234 | case, use a lower number. | 185 | case, use a lower number. |
| 235 | 186 | ||
| 236 | |||
| 237 | RxIntDelay | 187 | RxIntDelay |
| 238 | ---------- | 188 | ---------- |
| 239 | Valid Range: 0-65535 (0=off) | 189 | Valid Range: 0-65535 (0=off) |
| @@ -254,7 +204,6 @@ CAUTION: When setting RxIntDelay to a value other than 0, adapters may | |||
| 254 | restoring the network connection. To eliminate the potential | 204 | restoring the network connection. To eliminate the potential |
| 255 | for the hang ensure that RxIntDelay is set to 0. | 205 | for the hang ensure that RxIntDelay is set to 0. |
| 256 | 206 | ||
| 257 | |||
| 258 | RxAbsIntDelay | 207 | RxAbsIntDelay |
| 259 | ------------- | 208 | ------------- |
| 260 | (This parameter is supported only on 82540, 82545 and later adapters.) | 209 | (This parameter is supported only on 82540, 82545 and later adapters.) |
| @@ -268,7 +217,6 @@ packet is received within the set amount of time. Proper tuning, | |||
| 268 | along with RxIntDelay, may improve traffic throughput in specific network | 217 | along with RxIntDelay, may improve traffic throughput in specific network |
| 269 | conditions. | 218 | conditions. |
| 270 | 219 | ||
| 271 | |||
| 272 | Speed | 220 | Speed |
| 273 | ----- | 221 | ----- |
| 274 | (This parameter is supported only on adapters with copper connections.) | 222 | (This parameter is supported only on adapters with copper connections.) |
| @@ -280,7 +228,6 @@ Speed forces the line speed to the specified value in megabits per second | |||
| 280 | partner is set to auto-negotiate, the board will auto-detect the correct | 228 | partner is set to auto-negotiate, the board will auto-detect the correct |
| 281 | speed. Duplex should also be set when Speed is set to either 10 or 100. | 229 | speed. Duplex should also be set when Speed is set to either 10 or 100. |
| 282 | 230 | ||
| 283 | |||
| 284 | TxDescriptors | 231 | TxDescriptors |
| 285 | ------------- | 232 | ------------- |
| 286 | Valid Range: 80-256 for 82542 and 82543-based adapters | 233 | Valid Range: 80-256 for 82542 and 82543-based adapters |
| @@ -295,6 +242,36 @@ NOTE: Depending on the available system resources, the request for a | |||
| 295 | higher number of transmit descriptors may be denied. In this case, | 242 | higher number of transmit descriptors may be denied. In this case, |
| 296 | use a lower number. | 243 | use a lower number. |
| 297 | 244 | ||
| 245 | TxDescriptorStep | ||
| 246 | ---------------- | ||
| 247 | Valid Range: 1 (use every Tx Descriptor) | ||
| 248 | 4 (use every 4th Tx Descriptor) | ||
| 249 | |||
| 250 | Default Value: 1 (use every Tx Descriptor) | ||
| 251 | |||
| 252 | On certain non-Intel architectures, it has been observed that intense TX | ||
| 253 | traffic bursts of short packets may result in an improper descriptor | ||
| 254 | writeback. If this occurs, the driver will report a "TX Timeout" and reset | ||
| 255 | the adapter, after which the transmit flow will restart, though data may | ||
| 256 | have stalled for as much as 10 seconds before it resumes. | ||
| 257 | |||
| 258 | The improper writeback does not occur on the first descriptor in a system | ||
| 259 | memory cache-line, which is typically 32 bytes, or 4 descriptors long. | ||
| 260 | |||
| 261 | Setting TxDescriptorStep to a value of 4 will ensure that all TX descriptors | ||
| 262 | are aligned to the start of a system memory cache line, and so this problem | ||
| 263 | will not occur. | ||
| 264 | |||
| 265 | NOTES: Setting TxDescriptorStep to 4 effectively reduces the number of | ||
| 266 | TxDescriptors available for transmits to 1/4 of the normal allocation. | ||
| 267 | This has a possible negative performance impact, which may be | ||
| 268 | compensated for by allocating more descriptors using the TxDescriptors | ||
| 269 | module parameter. | ||
| 270 | |||
| 271 | There are other conditions which may result in "TX Timeout", which will | ||
| 272 | not be resolved by the use of the TxDescriptorStep parameter. As the | ||
| 273 | issue addressed by this parameter has never been observed on Intel | ||
| 274 | Architecture platforms, it should not be used on Intel platforms. | ||
| 298 | 275 | ||
| 299 | TxIntDelay | 276 | TxIntDelay |
| 300 | ---------- | 277 | ---------- |
| @@ -307,7 +284,6 @@ efficiency if properly tuned for specific network traffic. If the | |||
| 307 | system is reporting dropped transmits, this value may be set too high | 284 | system is reporting dropped transmits, this value may be set too high |
| 308 | causing the driver to run out of available transmit descriptors. | 285 | causing the driver to run out of available transmit descriptors. |
| 309 | 286 | ||
| 310 | |||
| 311 | TxAbsIntDelay | 287 | TxAbsIntDelay |
| 312 | ------------- | 288 | ------------- |
| 313 | (This parameter is supported only on 82540, 82545 and later adapters.) | 289 | (This parameter is supported only on 82540, 82545 and later adapters.) |
| @@ -330,6 +306,35 @@ Default Value: 1 | |||
| 330 | A value of '1' indicates that the driver should enable IP checksum | 306 | A value of '1' indicates that the driver should enable IP checksum |
| 331 | offload for received packets (both UDP and TCP) to the adapter hardware. | 307 | offload for received packets (both UDP and TCP) to the adapter hardware. |
| 332 | 308 | ||
| 309 | Copybreak | ||
| 310 | --------- | ||
| 311 | Valid Range: 0-xxxxxxx (0=off) | ||
| 312 | Default Value: 256 | ||
| 313 | Usage: insmod e1000.ko copybreak=128 | ||
| 314 | |||
| 315 | Driver copies all packets below or equaling this size to a fresh Rx | ||
| 316 | buffer before handing it up the stack. | ||
| 317 | |||
| 318 | This parameter is different than other parameters, in that it is a | ||
| 319 | single (not 1,1,1 etc.) parameter applied to all driver instances and | ||
| 320 | it is also available during runtime at | ||
| 321 | /sys/module/e1000/parameters/copybreak | ||
| 322 | |||
| 323 | SmartPowerDownEnable | ||
| 324 | -------------------- | ||
| 325 | Valid Range: 0-1 | ||
| 326 | Default Value: 0 (disabled) | ||
| 327 | |||
| 328 | Allows PHY to turn off in lower power states. The user can turn off | ||
| 329 | this parameter in supported chipsets. | ||
| 330 | |||
| 331 | KumeranLockLoss | ||
| 332 | --------------- | ||
| 333 | Valid Range: 0-1 | ||
| 334 | Default Value: 1 (enabled) | ||
| 335 | |||
| 336 | This workaround skips resetting the PHY at shutdown for the initial | ||
| 337 | silicon releases of ICH8 systems. | ||
| 333 | 338 | ||
| 334 | Speed and Duplex Configuration | 339 | Speed and Duplex Configuration |
| 335 | ============================== | 340 | ============================== |
| @@ -385,40 +390,9 @@ If the link partner is forced to a specific speed and duplex, then this | |||
| 385 | parameter should not be used. Instead, use the Speed and Duplex parameters | 390 | parameter should not be used. Instead, use the Speed and Duplex parameters |
| 386 | previously mentioned to force the adapter to the same speed and duplex. | 391 | previously mentioned to force the adapter to the same speed and duplex. |
| 387 | 392 | ||
| 388 | |||
| 389 | Additional Configurations | 393 | Additional Configurations |
| 390 | ========================= | 394 | ========================= |
| 391 | 395 | ||
| 392 | Configuring the Driver on Different Distributions | ||
| 393 | ------------------------------------------------- | ||
| 394 | Configuring a network driver to load properly when the system is started | ||
| 395 | is distribution dependent. Typically, the configuration process involves | ||
| 396 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well | ||
| 397 | as editing other system startup scripts and/or configuration files. Many | ||
| 398 | popular Linux distributions ship with tools to make these changes for you. | ||
| 399 | To learn the proper way to configure a network device for your system, | ||
| 400 | refer to your distribution documentation. If during this process you are | ||
| 401 | asked for the driver or module name, the name for the Linux Base Driver | ||
| 402 | for the Intel(R) PRO/1000 Family of Adapters is e1000. | ||
| 403 | |||
| 404 | As an example, if you install the e1000 driver for two PRO/1000 adapters | ||
| 405 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add | ||
| 406 | the following to modules.conf or or modprobe.conf: | ||
| 407 | |||
| 408 | alias eth0 e1000 | ||
| 409 | alias eth1 e1000 | ||
| 410 | options e1000 Speed=10,100 Duplex=2,1 | ||
| 411 | |||
| 412 | Viewing Link Messages | ||
| 413 | --------------------- | ||
| 414 | Link messages will not be displayed to the console if the distribution is | ||
| 415 | restricting system messages. In order to see network driver link messages | ||
| 416 | on your console, set dmesg to eight by entering the following: | ||
| 417 | |||
| 418 | dmesg -n 8 | ||
| 419 | |||
| 420 | NOTE: This setting is not saved across reboots. | ||
| 421 | |||
| 422 | Jumbo Frames | 396 | Jumbo Frames |
| 423 | ------------ | 397 | ------------ |
| 424 | Jumbo Frames support is enabled by changing the MTU to a value larger than | 398 | Jumbo Frames support is enabled by changing the MTU to a value larger than |
| @@ -437,9 +411,11 @@ Additional Configurations | |||
| 437 | setting in a different location. | 411 | setting in a different location. |
| 438 | 412 | ||
| 439 | Notes: | 413 | Notes: |
| 440 | 414 | Degradation in throughput performance may be observed in some Jumbo frames | |
| 441 | - To enable Jumbo Frames, increase the MTU size on the interface beyond | 415 | environments. If this is observed, increasing the application's socket buffer |
| 442 | 1500. | 416 | size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help. |
| 417 | See the specific application manual and /usr/src/linux*/Documentation/ | ||
| 418 | networking/ip-sysctl.txt for more details. | ||
| 443 | 419 | ||
| 444 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 420 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides |
| 445 | with the maximum Jumbo Frames size of 16128. | 421 | with the maximum Jumbo Frames size of 16128. |
| @@ -447,40 +423,11 @@ Additional Configurations | |||
| 447 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | 423 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or |
| 448 | loss of link. | 424 | loss of link. |
| 449 | 425 | ||
| 450 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size | ||
| 451 | limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. | ||
| 452 | The adapters with this limitation are based on the Intel(R) 82571EB, | ||
| 453 | 82572EI, 82573L and 80003ES2LAN controller. These correspond to the | ||
| 454 | following product names: | ||
| 455 | Intel(R) PRO/1000 PT Server Adapter | ||
| 456 | Intel(R) PRO/1000 PT Desktop Adapter | ||
| 457 | Intel(R) PRO/1000 PT Network Connection | ||
| 458 | Intel(R) PRO/1000 PT Dual Port Server Adapter | ||
| 459 | Intel(R) PRO/1000 PT Dual Port Network Connection | ||
| 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 | 426 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not |
| 470 | support Jumbo Frames. These correspond to the following product names: | 427 | support Jumbo Frames. These correspond to the following product names: |
| 471 | Intel(R) PRO/1000 Gigabit Server Adapter | 428 | Intel(R) PRO/1000 Gigabit Server Adapter |
| 472 | Intel(R) PRO/1000 PM Network Connection | 429 | Intel(R) PRO/1000 PM Network Connection |
| 473 | 430 | ||
| 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 | ||
| 482 | |||
| 483 | |||
| 484 | Ethtool | 431 | Ethtool |
| 485 | ------- | 432 | ------- |
| 486 | The driver utilizes the ethtool interface for driver configuration and | 433 | The driver utilizes the ethtool interface for driver configuration and |
| @@ -490,142 +437,14 @@ Additional Configurations | |||
| 490 | The latest release of ethtool can be found from | 437 | The latest release of ethtool can be found from |
| 491 | http://sourceforge.net/projects/gkernel. | 438 | http://sourceforge.net/projects/gkernel. |
| 492 | 439 | ||
| 493 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | ||
| 494 | for a more complete ethtool feature set can be enabled by upgrading | ||
| 495 | ethtool to ethtool-1.8.1. | ||
| 496 | |||
| 497 | Enabling Wake on LAN* (WoL) | 440 | Enabling Wake on LAN* (WoL) |
| 498 | --------------------------- | 441 | --------------------------- |
| 499 | WoL is configured through the Ethtool* utility. Ethtool is included with | 442 | WoL is configured through the Ethtool* utility. |
| 500 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, | ||
| 501 | download and install Ethtool from the following website: | ||
| 502 | http://sourceforge.net/projects/gkernel. | ||
| 503 | |||
| 504 | For instructions on enabling WoL with Ethtool, refer to the website listed | ||
| 505 | above. | ||
| 506 | 443 | ||
| 507 | WoL will be enabled on the system during the next shut down or reboot. | 444 | WoL will be enabled on the system during the next shut down or reboot. |
| 508 | For this driver version, in order to enable WoL, the e1000 driver must be | 445 | For this driver version, in order to enable WoL, the e1000 driver must be |
| 509 | loaded when shutting down or rebooting the system. | 446 | loaded when shutting down or rebooting the system. |
| 510 | 447 | ||
| 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 | |||
| 518 | NAPI | ||
| 519 | ---- | ||
| 520 | NAPI (Rx polling mode) is enabled in the e1000 driver. | ||
| 521 | |||
| 522 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. | ||
| 523 | |||
| 524 | |||
| 525 | Known Issues | ||
| 526 | ============ | ||
| 527 | |||
| 528 | Dropped Receive Packets on Half-duplex 10/100 Networks | ||
| 529 | ------------------------------------------------------ | ||
| 530 | If you have an Intel PCI Express adapter running at 10mbps or 100mbps, half- | ||
| 531 | duplex, you may observe occasional dropped receive packets. There are no | ||
| 532 | workarounds for this problem in this network configuration. The network must | ||
| 533 | be updated to operate in full-duplex, and/or 1000mbps only. | ||
| 534 | |||
| 535 | Jumbo Frames System Requirement | ||
| 536 | ------------------------------- | ||
| 537 | Memory allocation failures have been observed on Linux systems with 64 MB | ||
| 538 | of RAM or less that are running Jumbo Frames. If you are using Jumbo | ||
| 539 | Frames, your system may require more than the advertised minimum | ||
| 540 | requirement of 64 MB of system memory. | ||
| 541 | |||
| 542 | Performance Degradation with Jumbo Frames | ||
| 543 | ----------------------------------------- | ||
| 544 | Degradation in throughput performance may be observed in some Jumbo frames | ||
| 545 | environments. If this is observed, increasing the application's socket | ||
| 546 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values | ||
| 547 | may help. See the specific application manual and | ||
| 548 | /usr/src/linux*/Documentation/ | ||
| 549 | networking/ip-sysctl.txt for more details. | ||
| 550 | |||
| 551 | Jumbo Frames on Foundry BigIron 8000 switch | ||
| 552 | ------------------------------------------- | ||
| 553 | There is a known issue using Jumbo frames when connected to a Foundry | ||
| 554 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | ||
| 555 | loss of packets, lower the MTU size. | ||
| 556 | |||
| 557 | Allocating Rx Buffers when Using Jumbo Frames | ||
| 558 | --------------------------------------------- | ||
| 559 | Allocating Rx buffers when using Jumbo Frames on 2.6.x kernels may fail if | ||
| 560 | the available memory is heavily fragmented. This issue may be seen with PCI-X | ||
| 561 | adapters or with packet split disabled. This can be reduced or eliminated | ||
| 562 | by changing the amount of available memory for receive buffer allocation, by | ||
| 563 | increasing /proc/sys/vm/min_free_kbytes. | ||
| 564 | |||
| 565 | Multiple Interfaces on Same Ethernet Broadcast Network | ||
| 566 | ------------------------------------------------------ | ||
| 567 | Due to the default ARP behavior on Linux, it is not possible to have | ||
| 568 | one system on two IP networks in the same Ethernet broadcast domain | ||
| 569 | (non-partitioned switch) behave as expected. All Ethernet interfaces | ||
| 570 | will respond to IP traffic for any IP address assigned to the system. | ||
| 571 | This results in unbalanced receive traffic. | ||
| 572 | |||
| 573 | If you have multiple interfaces in a server, either turn on ARP | ||
| 574 | filtering by entering: | ||
| 575 | |||
| 576 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
| 577 | (this only works if your kernel's version is higher than 2.4.5), | ||
| 578 | |||
| 579 | NOTE: This setting is not saved across reboots. The configuration | ||
| 580 | change can be made permanent by adding the line: | ||
| 581 | net.ipv4.conf.all.arp_filter = 1 | ||
| 582 | to the file /etc/sysctl.conf | ||
| 583 | |||
| 584 | or, | ||
| 585 | |||
| 586 | install the interfaces in separate broadcast domains (either in | ||
| 587 | different switches or in a switch partitioned to VLANs). | ||
| 588 | |||
| 589 | 82541/82547 can't link or are slow to link with some link partners | ||
| 590 | ----------------------------------------------------------------- | ||
| 591 | There is a known compatibility issue with 82541/82547 and some | ||
| 592 | low-end switches where the link will not be established, or will | ||
| 593 | be slow to establish. In particular, these switches are known to | ||
| 594 | be incompatible with 82541/82547: | ||
| 595 | |||
| 596 | Planex FXG-08TE | ||
| 597 | I-O Data ETG-SH8 | ||
| 598 | |||
| 599 | To workaround this issue, the driver can be compiled with an override | ||
| 600 | of the PHY's master/slave setting. Forcing master or forcing slave | ||
| 601 | mode will improve time-to-link. | ||
| 602 | |||
| 603 | # make CFLAGS_EXTRA=-DE1000_MASTER_SLAVE=<n> | ||
| 604 | |||
| 605 | Where <n> is: | ||
| 606 | |||
| 607 | 0 = Hardware default | ||
| 608 | 1 = Master mode | ||
| 609 | 2 = Slave mode | ||
| 610 | 3 = Auto master/slave | ||
| 611 | |||
| 612 | Disable rx flow control with ethtool | ||
| 613 | ------------------------------------ | ||
| 614 | In order to disable receive flow control using ethtool, you must turn | ||
| 615 | off auto-negotiation on the same command line. | ||
| 616 | |||
| 617 | For example: | ||
| 618 | |||
| 619 | ethtool -A eth? autoneg off rx off | ||
| 620 | |||
| 621 | Unplugging network cable while ethtool -p is running | ||
| 622 | ---------------------------------------------------- | ||
| 623 | In kernel versions 2.5.50 and later (including 2.6 kernel), unplugging | ||
| 624 | the network cable while ethtool -p is running will cause the system to | ||
| 625 | become unresponsive to keyboard commands, except for control-alt-delete. | ||
| 626 | Restarting the system appears to be the only remedy. | ||
| 627 | |||
| 628 | |||
| 629 | Support | 448 | Support |
| 630 | ======= | 449 | ======= |
| 631 | 450 | ||
