.\" $NetBSD: wm.4,v 1.40.4.1 2021/10/21 14:30:10 martin Exp $ .\" .\" Copyright 2002, 2003 Wasabi Systems, Inc. .\" All rights reserved. .\" .\" Written by Jason R. Thorpe for Wasabi Systems, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed for the NetBSD Project by .\" Wasabi Systems, Inc. .\" 4. The name of Wasabi Systems, Inc. may not be used to endorse .\" or promote products derived from this software without specific prior .\" written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" .Dd February 17, 2021 .Dt WM 4 .Os .Sh NAME .Nm wm .Nd Intel i8254x Gigabit Ethernet driver .Sh SYNOPSIS .Cd "wm* at pci? dev ? function ?" .Pp .Cd options WM_RX_PROCESS_LIMIT_DEFAULT .Cd options WM_RX_INTR_PROCESS_LIMIT_DEFAULT .Pp Configuration of PHYs may also be necessary. See .Xr mii 4 . .Sh DESCRIPTION The .Nm device driver supports Gigabit Ethernet interfaces based on the Intel i8254x family of Gigabit Ethernet chips. The interfaces supported by the .Nm driver include: .Bl -bullet .It Intel i82542 1000BASE-X Ethernet .It Intel i82543GC 1000BASE-X Ethernet .It Intel i82543GC 1000BASE-T Ethernet .It Intel i82544EI 1000BASE-T Ethernet .It Intel i82544EI 1000BASE-X Ethernet .It Intel i82544GC 1000BASE-T Ethernet .It Intel i82544GC (LOM) 1000BASE-T Ethernet .It Intel i82540EM 1000BASE-T Ethernet .It Intel i82540EM (LOM) 1000BASE-T Ethernet .It Intel i82540EP 1000BASE-T Ethernet .It Intel i82541EI 1000BASE-T Ethernet .It Intel i82541EI (Mobile) 1000BASE-T Ethernet .It Intel i82541ER 1000BASE-T Ethernet .It Intel i82541GI 1000BASE-T Ethernet .It Intel i82541PI 1000BASE-T Ethernet .It Intel i82545EM 1000BASE-T Ethernet .It Intel i82545EM 1000BASE-X Ethernet .It Intel i82545GB 1000BASE-T Ethernet .It Intel i82545GB 1000BASE-X Ethernet .It Intel i82545GM 1000BASE-T Ethernet .It Intel i82546EB 1000BASE-T Ethernet .Pq dual-port .It Intel i82546EB 1000BASE-X Ethernet .Pq dual-port .It Intel i82546GB 1000BASE-T Ethernet .Pq dual-port .It Intel i82546GB 1000BASE-X Ethernet .Pq dual-port .It Intel i82547EI 1000BASE-T Ethernet .Pq CSA .It Intel i82547GI 1000BASE-T Ethernet .Pq CSA .It Intel i82571 1000BASE-T Ethernet .Pq dual-port .It Intel i82572 1000BASE-T Ethernet .It Intel i82573 1000BASE-T Ethernet .It Intel i82575 1000BASE-T Ethernet .It Intel i82576 Ethernet (Copper, Fiber) .It Intel i80003 Ethernet (Copper, Fiber) .It Intel i82801H (ICH8 LAN) 1000BASE-T Ethernet .It Intel i82801I (ICH9 LAN) 1000BASE-T Ethernet .It Intel i82801J (ICH10 LAN) 1000BASE-T Ethernet .It Intel 82578 with Intel 5 series chipset (PCH) .It Intel 82579 with Intel 6 or 7 series chipset (PCH2) .It Intel 82580 Ethernet (Copper, Fiber) .It Intel 82583 1000BASE-T Ethernet .It Intel I350 Ethernet (Copper, Fiber) .It Intel I354 (C2000 Internal) Ethernet (Copper, Fiber) .It Intel I210 Ethernet (Copper, Fiber) .It Intel I211 Ethernet .It Intel I217 and I218 Ethernet .It Intel I219 Ethernet (with Intel [123]00 series chipset) .El .Pp In addition to Intel's own .Dq PRO/1000 line of Gigabit Ethernet interfaces, these chips also appear on some server systems, processor evaluation boards, and in embedded systems. .Pp The i825[478]x supports IPv4/TCP/UDP checksumming and TCP segmentation in hardware. The .Nm driver supports these features of the chip. See .Xr ifconfig 8 for information on how to enable this feature. .Pp Many chips supported by the .Nm driver support jumbo frames, however several chips do not support jumbo frames, e.g. i82542, i82081H and 82567V. Jumbo frames can be configured via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit jumbo frames. .\" .Sh DIAGNOSTICS .\" XXX to be done. .Sh OPTIONS .Bl -tag -width WM_RX_INTR_PROCESS_LIMIT_DEFAULT -offset 3n .It Dv WM_RX_PROCESS_LIMIT_DEFAULT The maximum number of received packets processed in each .Xr softint 9 context. This option only affects multiqueue. The value range is from zero to .Dv UINT_MAX . The default value is 100. When you increase this value, both the receive latency and the receive throughput will increase. .It Dv WM_TX_PROCESS_LIMIT_DEFAULT Transmit side of .Dv WM_RX_PROCESS_LIMIT_DEFAULT . .It Dv WM_RX_INTR_PROCESS_LIMIT_DEFAULT The maximum number of received packets processed in each hardware interrupt context. This option only affects multiqueue. The value range is from zero to .Dv UINT_MAX . The default value is 0. When you increase this value, both the receive latency and the receive throughput will decrease. .It Dv WM_TX_INTR_PROCESS_LIMIT_DEFAULT Transmit side of .Dv WM_RX_INTR_PROCESS_LIMIT_DEFAULT . .It Dv WM_EVENT_COUNTERS Enable many event counters such as each Tx drop counter and Rx interrupt counter. In 64 bit architectures, this is enabled by default. Caution: If this flag is enabled, the number of evcnt entries increase very much. .It Dv WM_DISABLE_EVENT_COUNTERS Disable event counters for 64 bit architectures. .It Dv WM_DISABLE_MSI If this option is set non-zero value, this driver does not use msi. The default value is 0. .It Dv WM_DISABLE_MSIX If this option is set non-zero value, this driver does not use msix. The default value is 0. .El .Pp Setting .Dv WM_RX_INTR_PROCESS_LIMIT_DEFAULT to zero means so-called polling mode, that is, once an interrupt occurs, the driver keep processing received packets until .Dv WM_RX_PROCESS_LIMIT_DEFAULT . Polling mode increases latency a little, however it suppresses performance degradation at high load very well. .Pp If you want to disable polling mode (to use traditional interrupt driven mode), you should set .Dv WM_RX_PROCESS_LIMIT_DEFAULT to zero and set .Dv WM_RX_INTR_PROCESS_LIMIT_DEFAULT to .Dv UINT_MAX . .Sh SEE ALSO .Xr arp 4 , .Xr ifmedia 4 , .Xr mii 4 , .Xr netintro 4 , .Xr pci 4 , .Xr ifconfig 8 .Sh HISTORY The .Nm driver first appeared in .Nx 1.6 . .Sh AUTHORS The .Nm driver was written by .An Jason R. Thorpe Aq Mt thorpej@wasabisystems.com . .Sh BUGS EEE (Energy Efficiency Ethernet) is not currently supported.