mxge: Use ringmap to do MSI-X cpu assignment and fill redirect table.
[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 May 25, 2017
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 .Cd "device mxgefw"
47 .Ed
48 .Pp
49 Alternatively, to load the driver as a
50 module at boot time, place the following line in
51 .Xr loader.conf 5 :
52 .Bd -literal -offset indent
53 if_mxge_load="YES"
54 .Ed
55 .Sh DESCRIPTION
56 The
57 .Nm
58 driver provides support for PCI Express 10 Gigabit Ethernet adapters based on
59 the Myricom LANai Z8E chip.
60 The driver supports Transmit/Receive checksum offload,
61 TCP Segmentation Offload (TSO),
62 multiple reception queues,
63 multiple tranmission queues and
64 multiple vector MSI-X.
65 .\"Support for Jumbo frames is not yet implemented, while support for
66 .\"as well as Large Receive Offload (LRO) is not
67 .\"implemented in
68 Using multiple vector MSI-X requires that Myri10GE NIC be capable of MSI-X.
69 Older Myri10GE NICs can be field upgraded to add MSI-X using the
70 "Myri-10G Network Adapter Toolkit" for FreeBSD or Linux
71 which is available from
72 .Pa https://www.myricom.com/support/downloads/tools/myri-10g-toolkit.html .
73 .Pp
74 For questions related to hardware requirements,
75 refer to the documentation supplied with your Myri10GE adapter.
76 All hardware requirements listed apply to use with
77 .Dx .
78 For further hardware information, see
79 .Pa http://www.myricom.com .
80 .Pp
81 The
82 .Nm
83 driver supports the following media options:
84 .Bl -tag -width ".Cm forcepause"
85 .It Cm rxpause
86 Enable flow control PAUSE reception.
87 Due to hardware limitation,
88 this will also enable PAUSE transmission.
89 .It Cm txpause
90 Enable flow control PAUSE transmission.
91 Due to hardware limitation,
92 this will also enable PAUSE reception.
93 .It Cm forcepause
94 Force flow control PAUSE operation as configured by
95 .Cm rxpause
96 and
97 .Cm txpause
98 media options.
99 This media option can't be turned off.
100 .El
101 .Pp
102 For more information on configuring this device, see
103 .Xr ifconfig 8 .
104 The
105 .Nm
106 driver supports
107 .Xr polling 4 .
108 .Sh HARDWARE
109 The
110 .Nm
111 driver supports 10 Gigabit Ethernet adapters based on the
112 Myricom LANai Z8E chips:
113 .Pp
114 .Bl -bullet -compact
115 .It
116 Myricom 10GBase-CX4 (10G-PCIE-8A-C, 10G-PCIE-8AL-C)
117 .It
118 Myricom 10GBase-R (10G-PCIE-8A-R, 10G-PCIE-8AL-R)
119 .It
120 Myricom 10G XAUI over ribbon fiber (10G-PCIE-8A-Q, 10G-PCIE-8AL-Q)
121 .El
122 .Sh TUNABLES
123 .Em X
124 is the device unit number.
125 .Bl -tag -width indent
126 .It Va hw.mxge.msix.enable Va hw.mxgeX.msix.enable
127 By default,
128 the driver will use MSI-X
129 if it is supported.
130 This behaviour can be turned off by setting this tunable to 0.
131 .It Va hw.mxge.msi.enable Va hw.mxgeX.msi.enable
132 If MSI-X is disabled and MSI is supported,
133 the driver will use MSI.
134 This behavior can be turned off by setting this tunable to 0.
135 .It Va hw.mxgeX.msi.cpu
136 If MSI is used, it specifies the MSI's target CPU.
137 .It Va hw.mxge.num_slices Va hw.mxgeX.num_slices
138 If MSI-X is used,
139 this value determines the maximum number of slices the driver
140 will attempt to use.
141 Setting this value to 0 allows driver to enable as many slices
142 as allowed by the number of CPUs.
143 Each slice is comprised of one reception queue and one transmission
144 queue.
145 The transmission queue of each slice,
146 except the first slice,
147 could be disabled.
148 The default value is 0.
149 .It Va hw.mxge.multi_tx Va hw.mxgeX.multi_tx
150 If more than 1 slice is enabled,
151 this tunable controls whether the tranmission queue of each
152 slice should be enabled.
153 Setting this tunable to 0 will only enable the transmission queue
154 on the first slice.
155 The default value is 1.
156 .It Va hw.mxge.use_rss
157 This tunable controls whether standard RSS input hash function or
158 chip private input hash function should be used.
159 Using standard RSS input hash function degenerates reception
160 performance significantly.
161 The default value is 0.
162 .It Va hw.mxge.intr_coal_delay
163 This value delays the generation of all interrupts in units of
164 1 microsecond.
165 The default value is 150.
166 .It Va hw.mxge.flow_ctrl
167 The default flow control settings.
168 Supported values are:
169 force-full (forcefully enable PAUSE reception and transmission).
170 force-none (forcefully disable flow control PAUSE operation).
171 Default is force-full.
172 .El
173 .Sh MIB Variables
174 A number of per-interface variables are implemented in the
175 .Va dev.mxge. Ns Em X
176 branch of the
177 .Xr sysctl 3
178 MIB.
179 .Bl -tag -width "firmware_version"
180 .It Va firmware_version
181 The version string of firmware that is currently loaded by the driver.
182 It is read-only.
183 .It Va use_rss
184 See tunable
185 .Va hw.mxge.use_rss .
186 Flipping its value will cause chip reinitialization.
187 .It Va intr_coal_delay
188 See tunable
189 .Va hw.mxge.intr_coal_delay .
190 .El
191 .Sh SUPPORT
192 For general information and support,
193 go to the Myricom support website at:
194 .Pa https://www.myricom.com/support.html .
195 .Sh SEE ALSO
196 .Xr altq 4 ,
197 .Xr arp 4 ,
198 .Xr ifmedia 4 ,
199 .Xr netintro 4 ,
200 .Xr ng_ether 4 ,
201 .Xr ifconfig 8 ,
202 .Xr firmware 9
203 .Sh HISTORY
204 The
205 .Nm
206 device driver first appeared in
207 .Fx 6.3 .
208 It was first ported to
209 .Dx 2.3 .
210 .Sh AUTHORS
211 The
212 .Nm
213 driver was written by
214 .An Andrew Gallatin Aq Mt gallatin@FreeBSD.org .