diff options
-rw-r--r-- | Documentation/networking/e100.rst | 27 | ||||
-rw-r--r-- | Documentation/networking/e1000.rst | 187 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 2 |
4 files changed, 141 insertions, 87 deletions
diff --git a/Documentation/networking/e100.rst b/Documentation/networking/e100.rst index 9708f5fa76de..f81111eba9c5 100644 --- a/Documentation/networking/e100.rst +++ b/Documentation/networking/e100.rst | |||
@@ -47,41 +47,45 @@ Driver Configuration Parameters | |||
47 | The default value for each parameter is generally the recommended setting, | 47 | The default value for each parameter is generally the recommended setting, |
48 | unless otherwise noted. | 48 | unless otherwise noted. |
49 | 49 | ||
50 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data | 50 | Rx Descriptors: |
51 | Number of receive descriptors. A receive descriptor is a data | ||
51 | structure that describes a receive buffer and its attributes to the network | 52 | structure that describes a receive buffer and its attributes to the network |
52 | controller. The data in the descriptor is used by the controller to write | 53 | controller. The data in the descriptor is used by the controller to write |
53 | data from the controller to host memory. In the 3.x.x driver the valid range | 54 | data from the controller to host memory. In the 3.x.x driver the valid range |
54 | for this parameter is 64-256. The default value is 256. This parameter can be | 55 | for this parameter is 64-256. The default value is 256. This parameter can be |
55 | changed using the command:: | 56 | changed using the command:: |
56 | 57 | ||
57 | ethtool -G eth? rx n | 58 | ethtool -G eth? rx n |
58 | 59 | ||
59 | Where n is the number of desired Rx descriptors. | 60 | Where n is the number of desired Rx descriptors. |
60 | 61 | ||
61 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data | 62 | Tx Descriptors: |
63 | Number of transmit descriptors. A transmit descriptor is a data | ||
62 | structure that describes a transmit buffer and its attributes to the network | 64 | structure that describes a transmit buffer and its attributes to the network |
63 | controller. The data in the descriptor is used by the controller to read | 65 | controller. The data in the descriptor is used by the controller to read |
64 | data from the host memory to the controller. In the 3.x.x driver the valid | 66 | data from the host memory to the controller. In the 3.x.x driver the valid |
65 | range for this parameter is 64-256. The default value is 128. This parameter | 67 | range for this parameter is 64-256. The default value is 128. This parameter |
66 | can be changed using the command:: | 68 | can be changed using the command:: |
67 | 69 | ||
68 | ethtool -G eth? tx n | 70 | ethtool -G eth? tx n |
69 | 71 | ||
70 | Where n is the number of desired Tx descriptors. | 72 | Where n is the number of desired Tx descriptors. |
71 | 73 | ||
72 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by | 74 | Speed/Duplex: |
75 | The driver auto-negotiates the link speed and duplex settings by | ||
73 | default. The ethtool utility can be used as follows to force speed/duplex.:: | 76 | default. The ethtool utility can be used as follows to force speed/duplex.:: |
74 | 77 | ||
75 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} | 78 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} |
76 | 79 | ||
77 | NOTE: setting the speed/duplex to incorrect values will cause the link to | 80 | NOTE: setting the speed/duplex to incorrect values will cause the link to |
78 | fail. | 81 | fail. |
79 | 82 | ||
80 | Event Log Message Level: The driver uses the message level flag to log events | 83 | Event Log Message Level: |
84 | The driver uses the message level flag to log events | ||
81 | to syslog. The message level can be set at driver load time. It can also be | 85 | to syslog. The message level can be set at driver load time. It can also be |
82 | set using the command:: | 86 | set using the command:: |
83 | 87 | ||
84 | ethtool -s eth? msglvl n | 88 | ethtool -s eth? msglvl n |
85 | 89 | ||
86 | 90 | ||
87 | Additional Configurations | 91 | Additional Configurations |
@@ -92,7 +96,7 @@ Configuring the Driver on Different Distributions | |||
92 | 96 | ||
93 | Configuring a network driver to load properly when the system is started | 97 | Configuring a network driver to load properly when the system is started |
94 | is distribution dependent. Typically, the configuration process involves | 98 | is distribution dependent. Typically, the configuration process involves |
95 | adding an alias line to /etc/modprobe.d/*.conf as well as editing other | 99 | adding an alias line to `/etc/modprobe.d/*.conf` as well as editing other |
96 | system startup scripts and/or configuration files. Many popular Linux | 100 | system startup scripts and/or configuration files. Many popular Linux |
97 | distributions ship with tools to make these changes for you. To learn | 101 | distributions ship with tools to make these changes for you. To learn |
98 | the proper way to configure a network device for your system, refer to | 102 | the proper way to configure a network device for your system, refer to |
@@ -160,7 +164,10 @@ This results in unbalanced receive traffic. | |||
160 | If you have multiple interfaces in a server, either turn on ARP | 164 | If you have multiple interfaces in a server, either turn on ARP |
161 | filtering by | 165 | filtering by |
162 | 166 | ||
163 | (1) entering:: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | 167 | (1) entering:: |
168 | |||
169 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
170 | |||
164 | (this only works if your kernel's version is higher than 2.4.5), or | 171 | (this only works if your kernel's version is higher than 2.4.5), or |
165 | 172 | ||
166 | (2) installing the interfaces in separate broadcast domains (either | 173 | (2) installing the interfaces in separate broadcast domains (either |
diff --git a/Documentation/networking/e1000.rst b/Documentation/networking/e1000.rst index 144b87eef153..f10dd4086921 100644 --- a/Documentation/networking/e1000.rst +++ b/Documentation/networking/e1000.rst | |||
@@ -34,7 +34,8 @@ Command Line Parameters | |||
34 | The default value for each parameter is generally the recommended setting, | 34 | The default value for each parameter is generally the recommended setting, |
35 | unless otherwise noted. | 35 | unless otherwise noted. |
36 | 36 | ||
37 | NOTES: For more information about the AutoNeg, Duplex, and Speed | 37 | NOTES: |
38 | For more information about the AutoNeg, Duplex, and Speed | ||
38 | parameters, see the "Speed and Duplex Configuration" section in | 39 | parameters, see the "Speed and Duplex Configuration" section in |
39 | this document. | 40 | this document. |
40 | 41 | ||
@@ -45,22 +46,27 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed | |||
45 | 46 | ||
46 | AutoNeg | 47 | AutoNeg |
47 | ------- | 48 | ------- |
49 | |||
48 | (Supported only on adapters with copper connections) | 50 | (Supported only on adapters with copper connections) |
49 | Valid Range: 0x01-0x0F, 0x20-0x2F | 51 | |
50 | Default Value: 0x2F | 52 | :Valid Range: 0x01-0x0F, 0x20-0x2F |
53 | :Default Value: 0x2F | ||
51 | 54 | ||
52 | This parameter is a bit-mask that specifies the speed and duplex settings | 55 | This parameter is a bit-mask that specifies the speed and duplex settings |
53 | advertised by the adapter. When this parameter is used, the Speed and | 56 | advertised by the adapter. When this parameter is used, the Speed and |
54 | Duplex parameters must not be specified. | 57 | Duplex parameters must not be specified. |
55 | 58 | ||
56 | NOTE: Refer to the Speed and Duplex section of this readme for more | 59 | NOTE: |
60 | Refer to the Speed and Duplex section of this readme for more | ||
57 | information on the AutoNeg parameter. | 61 | information on the AutoNeg parameter. |
58 | 62 | ||
59 | Duplex | 63 | Duplex |
60 | ------ | 64 | ------ |
65 | |||
61 | (Supported only on adapters with copper connections) | 66 | (Supported only on adapters with copper connections) |
62 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 67 | |
63 | Default Value: 0 | 68 | :Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) |
69 | :Default Value: 0 | ||
64 | 70 | ||
65 | This defines the direction in which data is allowed to flow. Can be | 71 | This defines the direction in which data is allowed to flow. Can be |
66 | either one or two-directional. If both Duplex and the link partner are | 72 | either one or two-directional. If both Duplex and the link partner are |
@@ -70,18 +76,22 @@ duplex. | |||
70 | 76 | ||
71 | FlowControl | 77 | FlowControl |
72 | ----------- | 78 | ----------- |
73 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 79 | |
74 | Default Value: Reads flow control settings from the EEPROM | 80 | :Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
81 | :Default Value: Reads flow control settings from the EEPROM | ||
75 | 82 | ||
76 | This parameter controls the automatic generation(Tx) and response(Rx) | 83 | This parameter controls the automatic generation(Tx) and response(Rx) |
77 | to Ethernet PAUSE frames. | 84 | to Ethernet PAUSE frames. |
78 | 85 | ||
79 | InterruptThrottleRate | 86 | InterruptThrottleRate |
80 | --------------------- | 87 | --------------------- |
88 | |||
81 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) | 89 | (not supported on Intel(R) 82542, 82543 or 82544-based adapters) |
82 | Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, | 90 | |
83 | 4=simplified balancing) | 91 | :Valid Range: |
84 | Default Value: 3 | 92 | 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, |
93 | 4=simplified balancing) | ||
94 | :Default Value: 3 | ||
85 | 95 | ||
86 | The driver can limit the amount of interrupts per second that the adapter | 96 | The driver can limit the amount of interrupts per second that the adapter |
87 | will generate for incoming packets. It does this by writing a value to the | 97 | will generate for incoming packets. It does this by writing a value to the |
@@ -135,13 +145,15 @@ Setting InterruptThrottleRate to 0 turns off any interrupt moderation | |||
135 | and may improve small packet latency, but is generally not suitable | 145 | and may improve small packet latency, but is generally not suitable |
136 | for bulk throughput traffic. | 146 | for bulk throughput traffic. |
137 | 147 | ||
138 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | 148 | NOTE: |
149 | InterruptThrottleRate takes precedence over the TxAbsIntDelay and | ||
139 | RxAbsIntDelay parameters. In other words, minimizing the receive | 150 | RxAbsIntDelay parameters. In other words, minimizing the receive |
140 | and/or transmit absolute delays does not force the controller to | 151 | and/or transmit absolute delays does not force the controller to |
141 | generate more interrupts than what the Interrupt Throttle Rate | 152 | generate more interrupts than what the Interrupt Throttle Rate |
142 | allows. | 153 | allows. |
143 | 154 | ||
144 | CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection | 155 | CAUTION: |
156 | If you are using the Intel(R) PRO/1000 CT Network Connection | ||
145 | (controller 82547), setting InterruptThrottleRate to a value | 157 | (controller 82547), setting InterruptThrottleRate to a value |
146 | greater than 75,000, may hang (stop transmitting) adapters | 158 | greater than 75,000, may hang (stop transmitting) adapters |
147 | under certain network conditions. If this occurs a NETDEV | 159 | under certain network conditions. If this occurs a NETDEV |
@@ -151,7 +163,8 @@ CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection | |||
151 | hang, ensure that InterruptThrottleRate is set no greater | 163 | hang, ensure that InterruptThrottleRate is set no greater |
152 | than 75,000 and is not set to 0. | 164 | than 75,000 and is not set to 0. |
153 | 165 | ||
154 | NOTE: When e1000 is loaded with default settings and multiple adapters | 166 | NOTE: |
167 | When e1000 is loaded with default settings and multiple adapters | ||
155 | are in use simultaneously, the CPU utilization may increase non- | 168 | are in use simultaneously, the CPU utilization may increase non- |
156 | linearly. In order to limit the CPU utilization without impacting | 169 | linearly. In order to limit the CPU utilization without impacting |
157 | the overall throughput, we recommend that you load the driver as | 170 | the overall throughput, we recommend that you load the driver as |
@@ -168,9 +181,11 @@ NOTE: When e1000 is loaded with default settings and multiple adapters | |||
168 | 181 | ||
169 | RxDescriptors | 182 | RxDescriptors |
170 | ------------- | 183 | ------------- |
171 | Valid Range: 48-256 for 82542 and 82543-based adapters | 184 | |
172 | 48-4096 for all other supported adapters | 185 | :Valid Range: |
173 | Default Value: 256 | 186 | - 48-256 for 82542 and 82543-based adapters |
187 | - 48-4096 for all other supported adapters | ||
188 | :Default Value: 256 | ||
174 | 189 | ||
175 | This value specifies the number of receive buffer descriptors allocated | 190 | This value specifies the number of receive buffer descriptors allocated |
176 | by the driver. Increasing this value allows the driver to buffer more | 191 | by the driver. Increasing this value allows the driver to buffer more |
@@ -180,15 +195,17 @@ Each descriptor is 16 bytes. A receive buffer is also allocated for each | |||
180 | descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending | 195 | descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending |
181 | on the MTU setting. The maximum MTU size is 16110. | 196 | on the MTU setting. The maximum MTU size is 16110. |
182 | 197 | ||
183 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | 198 | NOTE: |
199 | MTU designates the frame size. It only needs to be set for Jumbo | ||
184 | Frames. Depending on the available system resources, the request | 200 | Frames. Depending on the available system resources, the request |
185 | for a higher number of receive descriptors may be denied. In this | 201 | for a higher number of receive descriptors may be denied. In this |
186 | case, use a lower number. | 202 | case, use a lower number. |
187 | 203 | ||
188 | RxIntDelay | 204 | RxIntDelay |
189 | ---------- | 205 | ---------- |
190 | Valid Range: 0-65535 (0=off) | 206 | |
191 | Default Value: 0 | 207 | :Valid Range: 0-65535 (0=off) |
208 | :Default Value: 0 | ||
192 | 209 | ||
193 | This value delays the generation of receive interrupts in units of 1.024 | 210 | This value delays the generation of receive interrupts in units of 1.024 |
194 | microseconds. Receive interrupt reduction can improve CPU efficiency if | 211 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
@@ -198,7 +215,8 @@ of TCP traffic. If the system is reporting dropped receives, this value | |||
198 | may be set too high, causing the driver to run out of available receive | 215 | may be set too high, causing the driver to run out of available receive |
199 | descriptors. | 216 | descriptors. |
200 | 217 | ||
201 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 218 | CAUTION: |
219 | When setting RxIntDelay to a value other than 0, adapters may | ||
202 | hang (stop transmitting) under certain network conditions. If | 220 | hang (stop transmitting) under certain network conditions. If |
203 | this occurs a NETDEV WATCHDOG message is logged in the system | 221 | this occurs a NETDEV WATCHDOG message is logged in the system |
204 | event log. In addition, the controller is automatically reset, | 222 | event log. In addition, the controller is automatically reset, |
@@ -207,9 +225,11 @@ CAUTION: When setting RxIntDelay to a value other than 0, adapters may | |||
207 | 225 | ||
208 | RxAbsIntDelay | 226 | RxAbsIntDelay |
209 | ------------- | 227 | ------------- |
228 | |||
210 | (This parameter is supported only on 82540, 82545 and later adapters.) | 229 | (This parameter is supported only on 82540, 82545 and later adapters.) |
211 | Valid Range: 0-65535 (0=off) | 230 | |
212 | Default Value: 128 | 231 | :Valid Range: 0-65535 (0=off) |
232 | :Default Value: 128 | ||
213 | 233 | ||
214 | This value, in units of 1.024 microseconds, limits the delay in which a | 234 | This value, in units of 1.024 microseconds, limits the delay in which a |
215 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, | 235 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
@@ -220,9 +240,11 @@ conditions. | |||
220 | 240 | ||
221 | Speed | 241 | Speed |
222 | ----- | 242 | ----- |
243 | |||
223 | (This parameter is supported only on adapters with copper connections.) | 244 | (This parameter is supported only on adapters with copper connections.) |
224 | Valid Settings: 0, 10, 100, 1000 | 245 | |
225 | Default Value: 0 (auto-negotiate at all supported speeds) | 246 | :Valid Settings: 0, 10, 100, 1000 |
247 | :Default Value: 0 (auto-negotiate at all supported speeds) | ||
226 | 248 | ||
227 | Speed forces the line speed to the specified value in megabits per second | 249 | Speed forces the line speed to the specified value in megabits per second |
228 | (Mbps). If this parameter is not specified or is set to 0 and the link | 250 | (Mbps). If this parameter is not specified or is set to 0 and the link |
@@ -231,22 +253,26 @@ speed. Duplex should also be set when Speed is set to either 10 or 100. | |||
231 | 253 | ||
232 | TxDescriptors | 254 | TxDescriptors |
233 | ------------- | 255 | ------------- |
234 | Valid Range: 48-256 for 82542 and 82543-based adapters | 256 | |
235 | 48-4096 for all other supported adapters | 257 | :Valid Range: |
236 | Default Value: 256 | 258 | - 48-256 for 82542 and 82543-based adapters |
259 | - 48-4096 for all other supported adapters | ||
260 | :Default Value: 256 | ||
237 | 261 | ||
238 | This value is the number of transmit descriptors allocated by the driver. | 262 | This value is the number of transmit descriptors allocated by the driver. |
239 | Increasing this value allows the driver to queue more transmits. Each | 263 | Increasing this value allows the driver to queue more transmits. Each |
240 | descriptor is 16 bytes. | 264 | descriptor is 16 bytes. |
241 | 265 | ||
242 | NOTE: Depending on the available system resources, the request for a | 266 | NOTE: |
267 | Depending on the available system resources, the request for a | ||
243 | higher number of transmit descriptors may be denied. In this case, | 268 | higher number of transmit descriptors may be denied. In this case, |
244 | use a lower number. | 269 | use a lower number. |
245 | 270 | ||
246 | TxIntDelay | 271 | TxIntDelay |
247 | ---------- | 272 | ---------- |
248 | Valid Range: 0-65535 (0=off) | 273 | |
249 | Default Value: 8 | 274 | :Valid Range: 0-65535 (0=off) |
275 | :Default Value: 8 | ||
250 | 276 | ||
251 | This value delays the generation of transmit interrupts in units of | 277 | This value delays the generation of transmit interrupts in units of |
252 | 1.024 microseconds. Transmit interrupt reduction can improve CPU | 278 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
@@ -256,9 +282,11 @@ causing the driver to run out of available transmit descriptors. | |||
256 | 282 | ||
257 | TxAbsIntDelay | 283 | TxAbsIntDelay |
258 | ------------- | 284 | ------------- |
285 | |||
259 | (This parameter is supported only on 82540, 82545 and later adapters.) | 286 | (This parameter is supported only on 82540, 82545 and later adapters.) |
260 | Valid Range: 0-65535 (0=off) | 287 | |
261 | Default Value: 32 | 288 | :Valid Range: 0-65535 (0=off) |
289 | :Default Value: 32 | ||
262 | 290 | ||
263 | This value, in units of 1.024 microseconds, limits the delay in which a | 291 | 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, | 292 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, |
@@ -269,18 +297,21 @@ network conditions. | |||
269 | 297 | ||
270 | XsumRX | 298 | XsumRX |
271 | ------ | 299 | ------ |
300 | |||
272 | (This parameter is NOT supported on the 82542-based adapter.) | 301 | (This parameter is NOT supported on the 82542-based adapter.) |
273 | Valid Range: 0-1 | 302 | |
274 | Default Value: 1 | 303 | :Valid Range: 0-1 |
304 | :Default Value: 1 | ||
275 | 305 | ||
276 | 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 |
277 | 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. |
278 | 308 | ||
279 | Copybreak | 309 | Copybreak |
280 | --------- | 310 | --------- |
281 | Valid Range: 0-xxxxxxx (0=off) | 311 | |
282 | Default Value: 256 | 312 | :Valid Range: 0-xxxxxxx (0=off) |
283 | Usage: modprobe e1000.ko copybreak=128 | 313 | :Default Value: 256 |
314 | :Usage: modprobe e1000.ko copybreak=128 | ||
284 | 315 | ||
285 | Driver copies all packets below or equaling this size to a fresh RX | 316 | Driver copies all packets below or equaling this size to a fresh RX |
286 | buffer before handing it up the stack. | 317 | buffer before handing it up the stack. |
@@ -292,8 +323,9 @@ it is also available during runtime at | |||
292 | 323 | ||
293 | SmartPowerDownEnable | 324 | SmartPowerDownEnable |
294 | -------------------- | 325 | -------------------- |
295 | Valid Range: 0-1 | 326 | |
296 | Default Value: 0 (disabled) | 327 | :Valid Range: 0-1 |
328 | :Default Value: 0 (disabled) | ||
297 | 329 | ||
298 | Allows PHY to turn off in lower power states. The user can turn off | 330 | Allows PHY to turn off in lower power states. The user can turn off |
299 | this parameter in supported chipsets. | 331 | this parameter in supported chipsets. |
@@ -309,14 +341,14 @@ fiber interface board only links at 1000 Mbps full-duplex. | |||
309 | 341 | ||
310 | For copper-based boards, the keywords interact as follows: | 342 | For copper-based boards, the keywords interact as follows: |
311 | 343 | ||
312 | The default operation is auto-negotiate. The board advertises all | 344 | - The default operation is auto-negotiate. The board advertises all |
313 | supported speed and duplex combinations, and it links at the highest | 345 | supported speed and duplex combinations, and it links at the highest |
314 | common speed and duplex mode IF the link partner is set to auto-negotiate. | 346 | common speed and duplex mode IF the link partner is set to auto-negotiate. |
315 | 347 | ||
316 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps | 348 | - If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps |
317 | is advertised (The 1000BaseT spec requires auto-negotiation.) | 349 | is advertised (The 1000BaseT spec requires auto-negotiation.) |
318 | 350 | ||
319 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- | 351 | - If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- |
320 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner | 352 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner |
321 | SHOULD also be forced. | 353 | SHOULD also be forced. |
322 | 354 | ||
@@ -328,13 +360,15 @@ process. | |||
328 | The parameter may be specified as either a decimal or hexadecimal value as | 360 | The parameter may be specified as either a decimal or hexadecimal value as |
329 | determined by the bitmap below. | 361 | determined by the bitmap below. |
330 | 362 | ||
363 | ============== ====== ====== ======= ======= ====== ====== ======= ====== | ||
331 | Bit position 7 6 5 4 3 2 1 0 | 364 | Bit position 7 6 5 4 3 2 1 0 |
332 | Decimal Value 128 64 32 16 8 4 2 1 | 365 | Decimal Value 128 64 32 16 8 4 2 1 |
333 | Hex value 80 40 20 10 8 4 2 1 | 366 | Hex value 80 40 20 10 8 4 2 1 |
334 | Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 | 367 | Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 |
335 | Duplex Full Full Half Full Half | 368 | Duplex Full Full Half Full Half |
369 | ============== ====== ====== ======= ======= ====== ====== ======= ====== | ||
336 | 370 | ||
337 | Some examples of using AutoNeg: | 371 | Some examples of using AutoNeg:: |
338 | 372 | ||
339 | modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) | 373 | modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) |
340 | modprobe e1000 AutoNeg=1 (Same as above) | 374 | modprobe e1000 AutoNeg=1 (Same as above) |
@@ -357,56 +391,59 @@ Additional Configurations | |||
357 | 391 | ||
358 | Jumbo Frames | 392 | Jumbo Frames |
359 | ------------ | 393 | ------------ |
360 | Jumbo Frames support is enabled by changing the MTU to a value larger | 394 | |
361 | than the default of 1500. Use the ifconfig command to increase the MTU | 395 | Jumbo Frames support is enabled by changing the MTU to a value larger than |
362 | size. For example:: | 396 | the default of 1500. Use the ifconfig command to increase the MTU size. |
397 | For example:: | ||
363 | 398 | ||
364 | ifconfig eth<x> mtu 9000 up | 399 | ifconfig eth<x> mtu 9000 up |
365 | 400 | ||
366 | This setting is not saved across reboots. It can be made permanent if | 401 | This setting is not saved across reboots. It can be made permanent if |
367 | you add:: | 402 | you add:: |
368 | 403 | ||
369 | MTU=9000 | 404 | MTU=9000 |
370 | 405 | ||
371 | to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example | 406 | to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example |
372 | applies to the Red Hat distributions; other distributions may store this | 407 | applies to the Red Hat distributions; other distributions may store this |
373 | setting in a different location. | 408 | setting in a different location. |
409 | |||
410 | Notes: | ||
411 | Degradation in throughput performance may be observed in some Jumbo frames | ||
412 | environments. If this is observed, increasing the application's socket buffer | ||
413 | size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help. | ||
414 | See the specific application manual and /usr/src/linux*/Documentation/ | ||
415 | networking/ip-sysctl.txt for more details. | ||
374 | 416 | ||
375 | Notes: Degradation in throughput performance may be observed in some | 417 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides |
376 | Jumbo frames environments. If this is observed, increasing the | 418 | with the maximum Jumbo Frames size of 16128. |
377 | application's socket buffer size and/or increasing the | ||
378 | /proc/sys/net/ipv4/tcp_*mem entry values may help. See the specific | ||
379 | application manual and /usr/src/linux*/Documentation/ | ||
380 | networking/ip-sysctl.txt for more details. | ||
381 | 419 | ||
382 | - The maximum MTU setting for Jumbo Frames is 16110. This value | 420 | - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in |
383 | coincides with the maximum Jumbo Frames size of 16128. | 421 | poor performance or loss of link. |
384 | 422 | ||
385 | - Using Jumbo frames at 10 or 100 Mbps is not supported and may result | 423 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not |
386 | in poor performance or loss of link. | 424 | support Jumbo Frames. These correspond to the following product names:: |
387 | 425 | ||
388 | - Adapters based on the Intel(R) 82542 and 82573V/E controller do not | 426 | Intel(R) PRO/1000 Gigabit Server Adapter |
389 | support Jumbo Frames. These correspond to the following product names: | 427 | Intel(R) PRO/1000 PM Network Connection |
390 | Intel(R) PRO/1000 Gigabit Server Adapter Intel(R) PRO/1000 PM Network | ||
391 | Connection | ||
392 | 428 | ||
393 | ethtool | 429 | ethtool |
394 | ------- | 430 | ------- |
395 | The driver utilizes the ethtool interface for driver configuration and | ||
396 | diagnostics, as well as displaying statistical information. The ethtool | ||
397 | version 1.6 or later is required for this functionality. | ||
398 | 431 | ||
399 | The latest release of ethtool can be found from | 432 | The driver utilizes the ethtool interface for driver configuration and |
400 | https://www.kernel.org/pub/software/network/ethtool/ | 433 | diagnostics, as well as displaying statistical information. The ethtool |
434 | version 1.6 or later is required for this functionality. | ||
435 | |||
436 | The latest release of ethtool can be found from | ||
437 | https://www.kernel.org/pub/software/network/ethtool/ | ||
401 | 438 | ||
402 | Enabling Wake on LAN* (WoL) | 439 | Enabling Wake on LAN* (WoL) |
403 | --------------------------- | 440 | --------------------------- |
404 | WoL is configured through the ethtool* utility. | ||
405 | 441 | ||
406 | WoL will be enabled on the system during the next shut down or reboot. | 442 | WoL is configured through the ethtool* utility. |
407 | For this driver version, in order to enable WoL, the e1000 driver must be | ||
408 | loaded when shutting down or rebooting the system. | ||
409 | 443 | ||
444 | WoL will be enabled on the system during the next shut down or reboot. | ||
445 | For this driver version, in order to enable WoL, the e1000 driver must be | ||
446 | loaded when shutting down or rebooting the system. | ||
410 | 447 | ||
411 | Support | 448 | Support |
412 | ======= | 449 | ======= |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c index 3f5c350716bb..0bd1294ba517 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | |||
@@ -1871,7 +1871,12 @@ s32 ixgbe_set_rar_generic(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, | |||
1871 | if (enable_addr != 0) | 1871 | if (enable_addr != 0) |
1872 | rar_high |= IXGBE_RAH_AV; | 1872 | rar_high |= IXGBE_RAH_AV; |
1873 | 1873 | ||
1874 | /* Record lower 32 bits of MAC address and then make | ||
1875 | * sure that write is flushed to hardware before writing | ||
1876 | * the upper 16 bits and setting the valid bit. | ||
1877 | */ | ||
1874 | IXGBE_WRITE_REG(hw, IXGBE_RAL(index), rar_low); | 1878 | IXGBE_WRITE_REG(hw, IXGBE_RAL(index), rar_low); |
1879 | IXGBE_WRITE_FLUSH(hw); | ||
1875 | IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); | 1880 | IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); |
1876 | 1881 | ||
1877 | return 0; | 1882 | return 0; |
@@ -1903,8 +1908,13 @@ s32 ixgbe_clear_rar_generic(struct ixgbe_hw *hw, u32 index) | |||
1903 | rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(index)); | 1908 | rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(index)); |
1904 | rar_high &= ~(0x0000FFFF | IXGBE_RAH_AV); | 1909 | rar_high &= ~(0x0000FFFF | IXGBE_RAH_AV); |
1905 | 1910 | ||
1906 | IXGBE_WRITE_REG(hw, IXGBE_RAL(index), 0); | 1911 | /* Clear the address valid bit and upper 16 bits of the address |
1912 | * before clearing the lower bits. This way we aren't updating | ||
1913 | * a live filter. | ||
1914 | */ | ||
1907 | IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); | 1915 | IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); |
1916 | IXGBE_WRITE_FLUSH(hw); | ||
1917 | IXGBE_WRITE_REG(hw, IXGBE_RAL(index), 0); | ||
1908 | 1918 | ||
1909 | /* clear VMDq pool/queue selection for this RAR */ | 1919 | /* clear VMDq pool/queue selection for this RAR */ |
1910 | hw->mac.ops.clear_vmdq(hw, index, IXGBE_CLEAR_VMDQ_ALL); | 1920 | hw->mac.ops.clear_vmdq(hw, index, IXGBE_CLEAR_VMDQ_ALL); |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c index c116f459945d..da4322e4daed 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | |||
@@ -839,7 +839,7 @@ int ixgbe_ipsec_tx(struct ixgbe_ring *tx_ring, | |||
839 | } | 839 | } |
840 | 840 | ||
841 | itd->sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX; | 841 | itd->sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX; |
842 | if (unlikely(itd->sa_idx > IXGBE_IPSEC_MAX_SA_COUNT)) { | 842 | if (unlikely(itd->sa_idx >= IXGBE_IPSEC_MAX_SA_COUNT)) { |
843 | netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n", | 843 | netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n", |
844 | __func__, itd->sa_idx, xs->xso.offload_handle); | 844 | __func__, itd->sa_idx, xs->xso.offload_handle); |
845 | return 0; | 845 | return 0; |