summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/wm.4
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man4/wm.4')
-rw-r--r--static/netbsd/man4/wm.4273
1 files changed, 273 insertions, 0 deletions
diff --git a/static/netbsd/man4/wm.4 b/static/netbsd/man4/wm.4
new file mode 100644
index 00000000..16d457b3
--- /dev/null
+++ b/static/netbsd/man4/wm.4
@@ -0,0 +1,273 @@
+.\" $NetBSD: wm.4,v 1.44 2024/05/01 11:22:06 andvar 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.
+At least for some chips (e.g. I219) hardware TCP segmentation is slow,
+and slows down transmit performance when turned on.
+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
+The driver default behavior is to handle packets in interrupt context,
+which reduces the CPU time available to user processes when under
+heavy network load. The
+.Em hw.wmX.txrx_workqueue
+.Xr sysctl 8
+alters this behavior so that packets are handled by a kernel thread,
+which executes at a lower priority. This gives user processes more
+opportunity to be executed, at the expense of network throughput.
+.Pp
+The following options can be set at build time:
+.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 ,
+.Xr sysctl 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.