mxge.4: Update according to recent changes
[dragonfly.git] / share / man / man4 / mxge.4
1 .\" Copyright (c) 2006, Myricom Inc
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions are met:
6 .\"
7 .\" 1. Redistributions of source code must retain the above copyright notice,
8 .\"    this list of conditions and the following disclaimer.
9 .\"
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.
13 .\"
14 .\" 3. Neither the name of the Myricom Inc 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.
17 .\"
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.
29 .\"
30 .\" * Other names and brands may be claimed as the property of others.
31 .\"
32 .\" $FreeBSD: src/share/man/man4/mxge.4,v 1.7.4.2.4.1 2009/04/15 03:14:26 kensmith Exp $
33 .\"
34 .Dd October 27, 2013
35 .Dt MXGE 4
36 .Os
37 .Sh NAME
38 .Nm mxge
39 .Nd "Myricom Myri10GE 10 Gigabit Ethernet adapter driver"
40 .Sh SYNOPSIS
41 To compile this driver into the kernel,
42 place the following lines in your
43 kernel configuration file:
44 .Bd -ragged -offset indent
45 .Cd "device mxge"
46 .Ed
47 .Pp
48 Alternatively, to load the driver as a
49 module at boot time, place the following line in
50 .Xr loader.conf 5 :
51 .Bd -literal -offset indent
52 if_mxge_load="YES"
53 .Ed
54 .Sh DESCRIPTION
55 The
56 .Nm
57 driver provides support for PCI Express 10 Gigabit Ethernet adapters based on
58 the Myricom LANai Z8E chip.
59 The driver supports Transmit/Receive checksum offload,
60 TCP Segementation Offload (TSO),
61 multiple reception queues,
62 multiple tranmission queues and
63 multiple vector MSI-X.
64 .\"Support for Jumbo frames is not yet implemented, while support for
65 .\"as well as Large Receive Offload (LRO) is not
66 .\"implemented in
67 Using multiple vector MSI-X requires that Myri10GE NIC be capable of MSI-X.
68 Older Myri10GE NICs can be field upgraded to add MSI-X using the
69 "Myri-10G Network Adapter Toolkit" for FreeBSD or Linux
70 which is available from
71 .Pa https://www.myricom.com/support/downloads/tools/myri-10g-toolkit.html .
72 .Pp
73 For questions related to hardware requirements,
74 refer to the documentation supplied with your Myri10GE adapter.
75 All hardware requirements listed apply to use with
76 .Dx .
77 For further hardware information, see
78 .Pa http://www.myricom.com .
79 .Sh HARDWARE
80 The
81 .Nm
82 driver supports 10 Gigabit Ethernet adapters based on the
83 Myricom LANai Z8E chips:
84 .Pp
85 .Bl -bullet -compact
86 .It
87 Myricom 10GBase-CX4 (10G-PCIE-8A-C, 10G-PCIE-8AL-C)
88 .It
89 Myricom 10GBase-R (10G-PCIE-8A-R, 10G-PCIE-8AL-R)
90 .It
91 Myricom 10G XAUI over ribbon fiber (10G-PCIE-8A-Q, 10G-PCIE-8AL-Q)
92 .El
93 .Sh TUNABLES
94 .Em X
95 is the device unit number.
96 .Bl -tag -width indent
97 .It Va hw.mxge.msix.enable Va hw.mxgeX.msix.enable
98 By default,
99 the driver will use MSI-X
100 if it is supported.
101 This behaviour can be turned off by setting this tunable to 0.
102 .It Va hw.mxgeX.msix.offset
103 If more than 1 slices are enabled,
104 this tunable specifies the leading target CPU for slice's
105 transmission and reception queues processing.
106 The value specificed must be aligned to the number of slices enabled and
107 must be less than the power of 2 number of CPUs.
108 .It Va hw.mxge.msi.enable Va hw.mxgeX.msi.enable
109 If MSI-X is disabled and MSI is supported,
110 the driver will use MSI.
111 This behavior can be turned off by setting this tunable to 0.
112 .It Va hw.mxgeX.msi.cpu
113 If MSI is used, it specifies the MSI's target CPU.
114 .It Va hw.mxge.num_slices Va hw.mxgeX.num_slices
115 If MSI-X is used,
116 this value determines the maximum number of slices the driver
117 will attempt to use.
118 Setting this value to 0 allows driver to enable as many slices
119 as allowed by the number of CPUs.
120 Each slice is comprised of one reception queue and one transmission
121 queue.
122 The transmission queue of each slice,
123 except the first slice,
124 could be disabled.
125 The default value is 0.
126 .It Va hw.mxge.multi_tx Va hw.mxgeX.multi_tx
127 If more then 1 slices are enabled,
128 this tunable controls whether the tranmission queue of each
129 slice should be enabled.
130 Setting this tunable to 0 will only enable the transmission queue
131 on the first slice.
132 The default value is 1.
133 .It Va hw.mxge.use_rss
134 This tunable controls whether standard RSS input hash function or
135 chip private input hash function should be used.
136 Using standard RSS input hash function degenerates reception
137 performance significantly.
138 The default value is 0.
139 .It Va hw.mxge.intr_coal_delay
140 This value delays the generation of all interrupts in units of
141 1 microsecond.
142 The default value is 150.
143 .It Va hw.mxge.flow_control_enabled
144 Whether or not hardware flow control is enabled on the adapter.
145 The default value is 1.
146 .El
147 .Sh MIB Variables
148 A number of per-interface variables are implemented in the
149 .Va hw.mxge Ns Em X
150 branch of the
151 .Xr sysctl 3
152 MIB.
153 .Bl -tag -width "flow_control_enabled"
154 .It Va firmware_version
155 The version string of firmware that is currently loaded by the driver.
156 It is read-only.
157 .It Va use_rss
158 See tunable
159 .Va hw.mxge.use_rss .
160 Flipping its value will cause chip reinitialization.
161 .It Va intr_coal_delay
162 See tunable
163 .Va hw.mxge.intr_coal_delay .
164 .It Va flow_control_enabled
165 See tunable
166 .Va hw.mxge.flow_control_enabled .
167 .El
168 .Sh SUPPORT
169 For general information and support,
170 go to the Myricom support website at:
171 .Pa https://www.myricom.com/support.html .
172 .Sh SEE ALSO
173 .Xr altq 4 ,
174 .Xr arp 4 ,
175 .Xr ifmedia 4 ,
176 .Xr netintro 4 ,
177 .Xr ng_ether 4 ,
178 .Xr ifconfig 8 ,
179 .Xr firmware 9
180 .Sh HISTORY
181 The
182 .Nm
183 device driver first appeared in
184 .Fx 6.3 .
185 It was first ported to
186 .Dx 2.3 .
187 .Sh AUTHORS
188 The
189 .Nm
190 driver was written by
191 .An Andrew Gallatin Aq Mt gallatin@FreeBSD.org .