mxge: import mxge.4 from FreeBSD
[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 February 13, 2008
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 firmware"
46 .Cd "device mxge"
47 .Ed
48 .Pp
49 Alternatively, to load the driver as a
50 module at boot time, place the following lines in
51 .Xr loader.conf 5 :
52 .Bd -literal -offset indent
53 if_mxge_load="YES"
54 mxge_ethp_z8e_load="YES"
55 mxge_eth_z8e_load="YES"
56 mxge_rss_ethp_z8e_load="YES"
57 mxge_rss_eth_z8e_load="YES"
58 .Ed
59 .Sh DESCRIPTION
60 The
61 .Nm
62 driver provides support for PCI Express 10 Gigabit Ethernet adapters based on
63 the Myricom LANai Z8E chip.
64 The driver supports Transmit/Receive checksum offload,
65 Jumbo Frames, TCP segmentation offload (TSO) as well
66 as Large Receive Offload (LRO).
67 For further hardware information, see
68 .Pa http://www.myri.com/ .
69 .Pp
70 For questions related to hardware requirements,
71 refer to the documentation supplied with your Myri10GE adapter.
72 All hardware requirements listed apply to use with
73 .Fx .
74 .Pp
75 Support for Jumbo Frames is provided via the interface MTU setting.
76 Selecting an MTU larger than 1500 bytes with the
77 .Xr ifconfig 8
78 utility configures the adapter to receive and transmit Jumbo Frames.
79 The maximum MTU size for Jumbo Frames is 9000.
80 .Pp
81 For more information on configuring this device, see
82 .Xr ifconfig 8 .
83 .Sh HARDWARE
84 The
85 .Nm
86 driver supports 10 Gigabit Ethernet adapters based on the
87 Myricom LANai Z8E chips:
88 .Pp
89 .Bl -bullet -compact
90 .It
91 Myricom 10GBase-CX4 (10G-PCIE-8A-C, 10G-PCIE-8AL-C)
92 .It
93 Myricom 10GBase-R (10G-PCIE-8A-R, 10G-PCIE-8AL-R)
94 .It
95 Myricom 10G XAUI over ribbon fiber (10G-PCIE-8A-Q, 10G-PCIE-8AL-Q)
96 .El
97 .Sh LOADER TUNABLES
98 Tunables can be set at the
99 .Xr loader 8
100 prompt before booting the kernel or stored in
101 .Xr loader.conf 5 .
102 .Bl -tag -width indent
103 .It Va hw.mxge.flow_control_enabled
104 Whether or not hardware flow control is enabled on the adapter.
105 The default value is 1.
106 .It Va hw.mxge.intr_coal_delay
107 This value delays the generation of all interrupts in units of
108 1 microsecond.
109 The default value is 30.
110 .It Va hw.mxge.skip_pio_read
111 This value determines whether or not the driver may omit doing a
112 PIO read in the interrupt handler which ensures that the interrupt
113 line has been deasserted when using xPIC interrupts.
114 A non-zero value
115 may result in lower CPU overhead, however it may also result in
116 spurious interrupts.
117 The default value is 0.
118 This tunable has no effect when the device is
119 using MSI or MSI-X interrupts.
120 .It Va hw.mxge.max_slices
121 This value determines the maximum number of slices the driver
122 will attempt to use.
123 The default value is 1.
124 A slice is comprised
125 of a set of receive queues and an associated interrupt thread.
126 When using multiple slices, the NIC hashes traffic to different slices
127 based on the value of
128 .Va hw.mxge.rss_hash_type .
129 Using multiple slices requires that your motherboard and Myri10GE NIC
130 both be capable of MSI-X.
131 Older Myri10GE NICs can be field upgraded to add
132 MSI-X using the "10G NIC Tool Kit" for FreeBSD which is available from
133 .Pa http://www.myri.com/scs/download-10g-tools.html .
134 .Pp
135 .It Va hw.mxge.rss_hash_type
136 This value determines how incoming traffic is steered to different
137 slices.
138 This tunable is ignored when using just a single slice.
139 The legal values for this tunable are:
140 .Bl -tag -width "XXXX"
141 .It 1
142 Hash on the source and destination IPv4 addresses.
143 .It 2
144 Hash on source and destination IPv4 addresses and if the packet
145 is TCP, then also hash on the TCP source and destination ports.
146 .It 4
147 Hash on the TCP or UDP source ports.
148 This is the default value.
149 .El
150 .El
151 .Sh DIAGNOSTICS
152 .Bl -diag
153 .It "mxge%d: Unable to allocate bus resource: memory"
154 A fatal initialization error has occurred.
155 .It "mxge%d: Unable to allocate bus resource: interrupt"
156 A fatal initialization error has occurred.
157 .It "mxge%d: Could not find firmware image %s"
158 The appropriate firmware kld module was not installed.
159 This is a non-fatal initialization error, but will
160 result in running in a reduced performance mode.
161 .El
162 .Sh SUPPORT
163 For general information and support,
164 go to the Myricom support website at:
165 .Pa http://www.myri.com/scs/ .
166 .Pp
167 If an issue is identified with the released source code on the supported kernel
168 with a supported adapter, email the specific information related to the
169 issue to
170 .Aq help@myri.com .
171 .Sh SEE ALSO
172 .Xr altq 4 ,
173 .Xr arp 4 ,
174 .Xr netintro 4 ,
175 .Xr ng_ether 4 ,
176 .Xr ifconfig 8
177 .Sh HISTORY
178 The
179 .Nm
180 device driver first appeared in
181 .Fx 6.3 .
182 .Sh AUTHORS
183 The
184 .Nm
185 driver was written by
186 .An Andrew Gallatin Aq gallatin@FreeBSD.org .