1 .\" Copyright (c) 2001-2003, Intel Corporation
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions are met:
7 .\" 1. Redistributions of source code must retain the above copyright notice,
8 .\" this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the Intel Corporation nor the names of its
15 .\" contributors may be used to endorse or promote products derived from
16 .\" this software without specific prior written permission.
18 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 .\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22 .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
30 .\" * Other names and brands may be claimed as the property of others.
32 .\" $FreeBSD: src/share/man/man4/igb.4,v 1.2 2010/05/14 20:11:30 marius Exp $
39 .Nd "Intel(R) PRO/1000 PCI Express Gigabit Ethernet adapter driver"
41 To compile this driver into the kernel,
42 place the following line in your
43 kernel configuration file:
44 .Bd -ragged -offset indent
49 Alternatively, to load the driver as a
50 module at boot time, place the following line in
52 .Bd -literal -offset indent
59 driver provides support for PCI Express Gigabit Ethernet adapters based on
67 Ethernet controller chips.
72 .Bl -item -offset indent -compact
74 Transmit/Receive checksum offload for IP/UDP/TCP.
79 TCP segmentation offload (TSO)
81 Receive side scaling (RSS)
83 Multiple tranmission queues
87 VLAN tag stripping and inserting
96 driver will try enabling as many reception queues and transmission queues
97 as are allowed by the number of CPUs in the system.
99 If multiple transmission queues are used,
100 the round-robin arbitration is performed among the transmission queues.
101 It should be noted that
102 if both TSO and multiple transmission queues are used,
103 for 82575, the round-robin arbitration between transmission queues is done
104 at the TSO packet boundary;
105 for the reset of the hardware, the round-robin arbitration
106 between transmission queues is done at the TCP segment boundary after
107 the hardware segmentation is performed.
109 82575 supports 4 reception queues and 4 transmission queues.
110 MSI-X is not enabled due to hardware errata.
111 Under MSI or legacy interrupt mode,
112 2 reception queues are enabled for hardware RSS hash
113 and only 1 transmission queue is enable.
115 82576 supports 16 reception queues and 16 transmission queues.
116 MSI-X is enable by default.
118 due to the number of MSI-X vectors is 10,
119 at most 8 reception queues and 8 transmission queues will be enabled
123 is enabled on the devices,
124 at most 16 reception queues and 16 transmission queues will be enabled.
127 I350 and I354 support 8 reception queues and 8 transmission queues.
128 MSI-X is enabled by default.
130 I210 supports 4 reception queues and 4 transmission queues.
131 MSI-X is enabled by default.
133 I211 supports 2 reception queues and 2 transmission queues.
134 MSI-X is enabled by default.
136 .\"For questions related to hardware requirements, refer to the
137 .\"documentation supplied with your Intel PRO/1000 adapter.
138 .\"All hardware requirements listed apply to use with
141 .\"Support for Jumbo Frames is provided via the interface MTU setting.
142 .\"Selecting an MTU larger than 1500 bytes with the
144 .\"utility configures the adapter to receive and transmit Jumbo Frames.
145 .\"The maximum MTU size for Jumbo Frames is 9216.
149 driver supports the following media types:
150 .Bl -tag -width ".Cm 10baseT/UTP"
152 Enables auto-negotiation for speed and duplex.
154 Sets 10Mbps operation.
161 Sets 100Mbps operation.
168 Sets 1000Mbps operation.
171 mode is supported at this speed.
173 Sets 1000Mbps operation.
176 mode is supported at this speed.
181 driver supports the following media options:
182 .Bl -tag -width ".Cm full-duplex"
184 Forces full-duplex operation
186 Forces half-duplex operation.
188 Enable flow control PAUSE reception.
189 This is only supported by
195 Enable flow control PAUSE transmission.
196 This is only supported by
202 Force flow control PAUSE operation as configured by
215 is not specified, the driver defaults to
218 For more information on configuring this device, see
227 driver supports Gigabit Ethernet adapters based on the Intel
238 Intel 82575EB Gigabit Ethernet Controller
240 Intel 82576 Gigabit Ethernet Controller
242 Intel 82580EB Gigabit Ethernet Controller
244 Intel Ethernet Controller I210 Series
246 Intel Ethernet Controller I211 Series
248 Intel Ethernet Controller I350
250 Intel Ethernet Controller I354
252 Intel Ethernet Server Adapter I210-T1
254 Intel Ethernet Server Adapter I340-F4
256 Intel Ethernet Server Adapter I340-T4
258 Intel Ethernet Server Adapter I350-F2
260 Intel Ethernet Server Adapter I350-F4
262 Intel Ethernet Server Adapter I350-T2
264 Intel Ethernet Server Adapter I350-T4
266 Intel Gigabit EF Dual Port Server Adapter
268 Intel Gigabit ET Dual Port Server Adapter
270 Intel Gigabit ET Quad Port Server Adapter
272 Intel Gigabit ET2 Quad Port Server Adapter
274 Intel Gigabit VT Quad Port Server Adapter
277 Tunables can be set at the
279 prompt before booting the kernel or stored in
282 is the device unit number.
283 .Bl -tag -width ".Va hw.igbX.irq.unshared"
284 .It Va hw.igb.rxd Va hw.igbX.rxd
285 Number of receive descriptors allocated by the driver.
286 The default value is 512.
288 and the maximum is 4096.
289 .It Va hw.igb.txd Va hw.igbX.txd
290 Number of transmit descriptors allocated by the driver.
291 The default value is 1024.
293 and the maximum is 4096.
294 .It Va hw.igb.rxr Va hw.igbX.rxr
295 This tunable specifies the number of reception queues could be enabled.
296 Maximum allowed value for these tunables is device specific
297 and it must be power of 2 aligned.
298 Setting these tunables to 0 allows the driver to make
299 as many reception queues ready-for-use as allowed by the number of CPUs.
300 .It Va hw.igb.txr Va hw.igbX.txr
301 This tunable specifies the number of transmission queues could be enabled.
302 Maximum allowed value for these tunables is device specific
303 and it must be power of 2 aligned.
304 Setting these tunables to 0 allows the driver to make
305 as many transmission queues ready-for-use as allowed by the number of CPUs.
306 .It Va hw.igb.msix.enable Va hw.igbX.msix.enable
308 the driver will use MSI-X if it is supported.
309 This behaviour can be turned off by setting this tunable to 0.
310 .It Va hw.igbX.msix.off
312 and the number of MSI-X vectors is not enough to
313 put transmission queue processing and reception queue processing
314 onto independent MSI-X vector,
315 this tunable specifies the leading target CPU for
316 transmission and reception queues processing.
317 The value specificed must be aligned to the maximum of
318 the number of reception queues
319 and the number of transmission queues enabled,
320 and must be less than the power of 2 number of CPUs.
321 .It Va hw.igbX.msix.rxoff
323 and the number of MSI-X vectors is enough to
324 put transmission queue processing and reception queue processing
325 onto independent MSI-X vector,
326 this tunable specifies the leading target CPU for reception queues processing.
327 The value specificed must be aligned to the number of reception queues enabled
328 and must be less than the power of 2 number of CPUs.
329 .It Va hw.igbX.msix.txoff
331 and the number of MSI-X vectors is enough to
332 put transmission queue processing and reception queue processing
333 onto independent MSI-X vector,
334 this tunable specifies the leading target CPU
335 for transmission queues processing.
336 The value specificed must be aligned to
337 the number of transmission queues enabled
338 and must be less than the power of 2 number of CPUs.
339 .It Va hw.igb.msi.enable Va hw.igbX.msi.enable
340 If MSI-X is disabled and MSI is supported,
341 the driver will use MSI.
342 This behavior can be turned off by setting this tunable to 0.
343 .It Va hw.igbX.msi.cpu
345 it specifies the MSI's target CPU.
346 .It Va hw.igbX.irq.unshared
347 If legacy interrupt is used,
349 the driver assumes the interrupt could be shared.
350 Setting this tunable to 1 allows the driver to perform certain
351 optimization based on the knowledge that the interrupt is not shared.
352 .It Va hw.igbX.npoll.txoff
353 This tunable specifies the leading target CPU for
357 The value specificed must be aligned to the number of transmission queues
358 enabled and must be less than the power of 2 number of CPUs.
359 .It Va hw.igbX.npoll.rxoff
360 This tunable specifies the leading target CPU for
364 The value specificed must be aligned to the number of reception queues
365 enabled and must be less than the power of 2 number of CPUs.
366 .It Va hw.igb.flow_ctrl Va hw.igbX.flow_ctrl
367 The default flow control settings.
368 Supported values are:
369 rxpause (only enable PAUSE reception),
370 txpause (only enable PAUSE transmission),
371 full (enable PAUSE reception and transmission),
372 none (disable flow control PAUSE operation),
373 force-rxpause (force PAUSE reception),
374 force-txpause (force PAUSE transmission),
375 force-full (forcefully enable PAUSE reception and transmission),
376 force-none (forcefully disable flow control PAUSE operation).
380 A number of per-interface variables are implemented in the
385 .Bl -tag -width "tx_intr_nsegs"
387 Number of reception queues could be enabled (read-only).
394 Number of reception queues being used (read-only).
396 Number of transmission queues could be enabled (read-only).
403 Number of transmission queues being used (read-only).
405 Number of descriptors per reception queue (read-only).
412 Number of descriptors per transmission queue (read-only).
419 If MSI or legacy interrupt is used,
420 this sysctl controls the highest possible frequency
421 that interrupt could be generated by the device.
422 It is 6000 by default (~150us).
425 this sysctl controls the highest possible frequency
426 that interrupt could be generated by the
429 For reception processing only MSI-X vector,
430 the default value is 6000 (~150us).
431 For transmission processing only MSI-X vector,
432 the default value is 4000 (250us).
433 For MSI-X vector which handles both reception and transmission,
434 the default value is 6000 (~150us).
436 Transmission interrupt is asked to be generated upon every
438 transmission descritors having been setup.
439 The default value is 1/16 of the number of transmission descriptors per queue.
441 The number of transmission descriptors should be setup
442 before the hardware register is written.
443 Setting this value too high will have negative effect
444 on transmission timeliness.
445 Setting this value too low will hurt overall transmission performance
446 due to the frequent hardware register writing.
447 The default value is 8.
449 The number of reception descriptors should be setup
450 before the hardware register is written.
451 Setting this value too high will make device drop incoming packets.
452 Setting this value too low will hurt overall reception performance
453 due to the frequent hardware register writing.
454 The default value is 32.
457 .Va hw.igbX.npoll.rxoff .
458 The set value will take effect the next time
460 is enabled on the device.
463 .Va hw.igbX.npoll.txoff .
464 The set value will take effect the next time
466 is enabled on the device.
469 .\"For general information and support,
470 .\"go to the Intel support website at:
471 .\".Pa http://support.intel.com .
473 .\"If an issue is identified with the released source code on the supported kernel
474 .\"with a supported adapter, email the specific information related to the
476 .\".Aq Mt freebsdnic@mailbox.intel.com .
489 device driver first appeared in
494 driver was written by
495 .An Intel Corporation Aq Mt freebsdnic@mailbox.intel.com .