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/em.4,v 1.30 2008/10/06 21:55:53 simon Exp $
40 .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver"
42 To compile this driver into the kernel,
43 place the following lines in your
44 kernel configuration file:
45 .Bd -ragged -offset indent
47 .Cd "device em # for em(4)"
48 .Cd "device emx # for emx(4)"
51 Alternatively, to load the driver as a
52 module at boot time, place the following lines in
54 .Bd -literal -offset indent
56 if_em_load="YES" # for em(4)
57 if_emx_load="YES" # for emx(4)
62 driver provides support for PCI Gigabit Ethernet adapters based on
63 the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546,
64 82546EB, 82546GB, 82547, 82571, 81572, 82573, and 82574 Ethernet
66 The driver supports Transmit/Receive checksum offload
67 and Jumbo Frames on all but 82542-based adapters.
68 Furthermore it supports TCP segmentation offload (TSO) on adapters
69 based on the 82571, 82572, 82573 and 82574 controller chips.
70 .\"For further hardware information, see the
72 .\"included with the driver.
78 driver for 82571, 82572, 82573, and 82574 Ethernet controller chips that
79 additionally supports Receive Side Scaling (RSS, 2 reception queues).
83 driver will try enabling 2 reception queues
84 if there are multiple CPUs on the system.
88 driver could be configured to enable 2 transmission queues.
92 driver only enables 1 transmission queue,
93 since enabling 2 transmission queues will require setting up context
94 descriptor for every packets requiring hardware transmission offloading,
95 which hurts tiny packet transmission performance.
97 if the workload is mainly bulk data
98 or hardware transmission offloading is rarely required,
99 extra transmission queue could be enabled to reduce contention on
101 2 transmission queues will only be used when
103 is enabled on the device.
104 If multiple transmission queues are used,
105 the round-robin arbitration is performed among the transmission queues.
106 It should be noted that
107 if both TSO and multiple transmission queues are used,
108 the round-robin arbitration between transmission queues is done
109 at the TSO packet boundary.
111 .\"For questions related to hardware requirements,
112 .\"refer to the documentation supplied with your Intel PRO/1000 adapter.
113 .\"All hardware requirements listed apply to use with
116 Support for Jumbo Frames is provided via the interface MTU setting.
117 Selecting an MTU larger than 1500 bytes with the
119 utility configures the adapter to receive and transmit Jumbo Frames.
120 The maximum MTU size for Jumbo Frames is 16114.
122 This driver version supports VLANs.
127 drivers support the following media types:
128 .Bl -tag -width ".Cm 10baseT/UTP"
130 Enables auto-negotiation for speed and duplex.
132 Sets 10Mbps operation.
139 Sets 100Mbps operation.
146 Sets 1000Mbps operation.
149 mode is supported at this speed.
151 Sets 1000Mbps operation.
154 mode is supported at this speed.
161 drivers support the following media options:
162 .Bl -tag -width ".Cm full-duplex"
164 Forces full-duplex operation
166 Forces half-duplex operation.
175 is not specified, the driver defaults to
178 For more information on configuring this device, see
190 driver supports Gigabit Ethernet adapters based on the Intel
191 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB,
192 82546GB, 82547, 82571, 82572, 82573, and 82574 controller chips:
196 Intel PRO/1000 CT Network Connection (82547)
198 Intel PRO/1000 F Server Adapter (82543)
200 Intel PRO/1000 Gigabit Server Adapter (82542)
202 Intel PRO/1000 GT Desktop Adapter (82541PI)
204 Intel PRO/1000 MF Dual Port Server Adapter (82546)
206 Intel PRO/1000 MF Server Adapter (82545)
208 Intel PRO/1000 MF Server Adapter (LX) (82545)
210 Intel PRO/1000 MT Desktop Adapter (82540)
212 Intel PRO/1000 MT Desktop Adapter (82541)
214 Intel PRO/1000 MT Dual Port Server Adapter (82546)
216 Intel PRO/1000 MT Quad Port Server Adapter (82546EB)
218 Intel PRO/1000 MT Server Adapter (82545)
220 Intel PRO/1000 PF Dual Port Server Adapter (82571)
222 Intel PRO/1000 PF Quad Port Server Adapter (82571)
224 Intel PRO/1000 PF Server Adapter (82572)
226 Intel PRO/1000 PT Desktop Adapter (82572)
228 Intel PRO/1000 PT Dual Port Server Adapter (82571)
230 Intel PRO/1000 PT Quad Port Server Adapter (82571)
232 Intel PRO/1000 PT Server Adapter (82572)
234 Intel PRO/1000 T Desktop Adapter (82544)
236 Intel PRO/1000 T Server Adapter (82543)
238 Intel PRO/1000 XF Server Adapter (82544)
240 Intel PRO/1000 XT Server Adapter (82544)
245 driver supports Gigabit Ethernet adapters based on the Intel
246 82571, 82572, 82573, and 82574 controller chips.
248 Tunables can be set at the
250 prompt before booting the kernel or stored in
253 is the device unit number.
254 .Bl -tag -width "hw.em.int_throttle_ceil"
255 .It Va hw.em.int_throttle_ceil
256 Hardware interrupt throttling rate.
257 The default value is 6000Hz.
258 This tunable also applies to
261 has a per device tunable
262 .Va hw.emxY.int_throttle_ceil ,
263 which serves the same purpose.
265 Number of receive descriptors allocated by the driver.
266 The default value is 512.
267 The 82542 and 82543-based adapters can handle up to 256 descriptors,
268 while others can have up to 4096.
269 This tunable also applies to
272 has a per device tunable
274 which serves the same purpose.
276 Number of transmit descriptors allocated by the driver.
277 The default value is 512.
278 The 82542 and 82543-based adapters can handle up to 256 descriptors,
279 while others can have up to 4096.
280 This tunable also applies to
283 has a per device tunable
285 which serves the same purpose.
286 .It Va hw.em.msi.enable Va hw.emY.msi.enable
287 By default, the driver will use MSI if it is supported.
288 This behavior can be turned off by setting these tunable to 0.
289 These tunables also applies to
291 .It Va hw.emY.msi.cpu
293 it specifies the MSI's target CPU.
294 This tunable also applies to
296 .It Va hw.emY.irq.unshared
297 If legacy interrupt is used,
299 the driver assumes the interrupt could be shared.
300 Setting this tunable to 1 allows the driver to
301 perform certain optimization based on the knowledge
302 that the interrupt is not shared.
303 These tunables also applies to
305 .It Va hw.emx.rxr Va hw.emxY.rxr
306 This tunable specifies the number of reception queues could be enabled.
307 Maximum allowed value for these tunables is 2.
308 Setting these tunables to 0 allows the driver to enable reception
309 queues based on the number of CPUs.
310 The default value is 0.
311 .It Va hw.emx.txr Va hw.emxY.txr
312 These tunables only take effect on 82571 and 82572.
313 This tunable specifies the number of transmission queues could be enabled.
314 Maximum allowed value for these tunables is 2.
315 Setting these tunables to 0 allows the driver to enable transmission
316 queues based on the number of CPUs.
317 The default value is 1.
318 .It Va hw.emxY.npoll.rxoff
319 This tunable specifies the leading target CPU for reception queues
322 The value specificed must be aligned to the number of reception queues enabled
323 and must be less than the power of 2 number of CPUs.
324 .It Va hw.emxY.npoll.rxoff
325 This tunable specifies the leading target CPU for transmission queues
328 The value specificed must be aligned to the number of transmission queues
330 and must be less than the power of 2 number of CPUs.
333 A number of per-interface variables are implemented in the
340 .Bl -tag -width "int_throttle_ceil"
342 Number of reception descriptors enabled (read-only).
349 Number of transmission descriptors enabled (read-only).
355 .It Va int_throttle_ceil
357 .Va hw.em.int_throttle_ceil .
359 This value controls how many transmit descriptors should be consumed
360 by the hardware before the hardware generates a transmit interrupt.
361 The default value is 1/16 of the number of transmit descriptors.
364 is not used on the hardware and
365 the major part of the transmitted data are bulk data,
366 this value could safely be set to 1/2 of the number of transmit descriptors.
368 The number of transmission descriptors should be setup
369 before the hardware register is written.
370 Setting this value too high will have negative effect
371 on transmission timeliness.
372 Setting this value too low will hurt overall transmission due to
373 the frequent hardware register writing.
376 Number of reception queues enableed (read-only).
377 This sysctl only applies to
385 Number of transmission queues that cound be enableed (read-only).
386 This sysctl only applies to
394 Number of transmission queues being used (read-only).
395 This sysctl only applies to
399 .Va hw.emxY.npoll.rxoff .
400 The set value will take effect the next time
402 is enabled on the device.
403 This sysctl only applies to
407 .Va hw.emxY.npoll.txoff .
408 The set value will take effect the next time
410 is enabled on the device.
411 This sysctl only applies to
415 .\"For general information and support,
416 .\"go to the Intel support website at:
417 .\".Pa http://support.intel.com .
419 .\"If an issue is identified with the released source code on the supported kernel
420 .\"with a supported adapter, email the specific information related to the
422 .\".Aq Mt freebsdnic@mailbox.intel.com .
434 device driver first appeared in
438 driver first appeared in
444 driver was written by
445 .An Intel Corporation Aq Mt freebsdnic@mailbox.intel.com .
449 driver was written by