]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/man/man4/bnxt.4
MFV r337184: 9457 libzfs_import.c:add_config() has a memory leak
[FreeBSD/FreeBSD.git] / share / man / man4 / bnxt.4
1 .\" Copyright (c) 2016 Broadcom, All Rights Reserved.
2 .\" The term Broadcom refers to Broadcom Limited and/or its subsidiaries
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\"
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
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 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
15 .\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
18 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
24 .\" THE POSSIBILITY OF SUCH DAMAGE.
25 .\"
26 .\" $FreeBSD$
27 .\"
28 .Dd May 9, 2017
29 .Dt BNXT 4
30 .Os
31 .Sh NAME
32 .Nm bnxt
33 .Nd "Broadcom NetXtreme-C/NetXtreme-E Family Ethernet driver"
34 .Sh SYNOPSIS
35 To compile this driver into the kernel,
36 place the following lines in your
37 kernel configuration file:
38 .Bd -ragged -offset indent
39 .Cd "device bnxt"
40 .Ed
41 .Pp
42 Alternatively, to load the driver as a
43 module at boot time, place the following line in
44 .Xr loader.conf 5 :
45 .Bd -literal -offset indent
46 if_bnxt_load="YES"
47 .Ed
48 .Sh DESCRIPTION
49 The
50 .Nm
51 driver provides support for various NICs based on the Broadcom BCM57301/2/4,
52 and BCM57402/4/6 Ethernet controller chips.
53 .Pp
54 For more information on configuring this device, see
55 .Xr ifconfig 8 .
56 .Sh HARDWARE
57 The
58 .Nm
59 driver provides support for various NICs based on the Broadcom NetXtreme-C and
60 NetXtreme-E families of Gigabit Ethernet controller chips, including the
61 following:
62 .Pp
63 .Bl -bullet -compact
64 .It
65 Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
66 .It
67 Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
68 .It
69 Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller
70 .It
71 Broadcom BCM57304 NetXtreme-C Ethernet Virtual Function
72 .It
73 Broadcom BCM57314 NetXtreme-C Ethernet Virtual Function
74 .It
75 Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller
76 .It
77 Broadcom BCM57402 NetXtreme-E Ethernet Partition
78 .It
79 Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller
80 .It
81 Broadcom BCM57404 NetXtreme-E Ethernet Virtual Function
82 .It
83 Broadcom BCM57404 NetXtreme-E Partition
84 .It
85 Broadcom BCM57406 NetXtreme-E 10GBASE-T Ethernet Controller
86 .It
87 Broadcom BCM57406 NetXtreme-E Partition
88 .It
89 Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
90 .It
91 Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller
92 .It
93 Broadcom BCM57407 NetXtreme-E Partition
94 .It
95 Broadcom BCM57412 NetXtreme-E Partition
96 .It
97 Broadcom BCM57414 NetXtreme-E Ethernet Virtual Function
98 .It
99 Broadcom BCM57414 NetXtreme-E Partition
100 .It
101 Broadcom BCM57416 NetXtreme-E Partition
102 .It
103 Broadcom BCM57417 NetXtreme-E Ethernet Partition
104 .It
105 Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
106 .El
107 .Sh SYSCTL VARIABLES
108 These variables must be set before loading the driver, either via
109 .Xr loader.conf 5
110 or through the use of
111 .Xr kenv 1 .
112 These are provided by the
113 .Xr iflib 9
114 framework, and might be better documented there.
115 .Bl -tag -width indent
116 .It Va dev.bnxt.X.iflib.override_nrxds
117 Override the number of RX descriptors for each queue.
118 The value is a comma separated list of three positive integers: the size of the
119 completion ring,
120 the size of the receive ring, and the size of the aggregation ring respectively.
121 The completion ring should be at least the size of the aggregation ring plus
122 four times the size of the receive ring.
123 These numbers must be powers of two, and zero means to use the default.
124 Defaults to 0,0,0.
125 .It Va dev.bnxt.X.iflib.override_ntxds
126 Override the number of TX descriptors for each queue.
127 The value is a comma separated list of two positive integers: the size of the
128 completion ring, and the size of the transmit ring respectively.
129 The completion ring should be at least twice the size of the transmit ring.
130 These numbers must be powers of two, and zero means to use the default.
131 Defaults to 0,0.
132 .It Va override_qs_enable
133 When set, allows the number of transmit and receive queues to be different.
134 If not set, the lower of the number of TX or RX queues will be used for both.
135 .It Va override_nrxqs
136 Set the number of RX queues.
137 If zero, the number of RX queues is derived from the number of cores on the
138 socket connected to the controller.
139 Defaults to 0.
140 .It Va override_ntxqs
141 Set the number of TX queues.
142 If zero, the number of TX queues is derived from the number of cores on the
143 socket connected to the controller.
144 .El
145 .Pp
146 These
147 .Xr sysctl 8
148 variables can be changed at any time:
149 .Bl -tag -width indent
150 .It Va dev.bnxt.X.vlan_only
151 Require that incoming frames must have a VLAN tag on them that matches one that
152 is configured for the NIC.
153 Normally, both frames that have a matching VLAN tag and frames that have no
154 VLAN tag are accepted.
155 Defaults to 0.
156 .It Va dev.bnxt.X.vlan_strip
157 When non-zero the NIC strips VLAN tags on receive.
158 Defaults to 0.
159 .It Va dev.bnxt.X.rx_stall
160 Enable buffering rather than dropping frames when there are no available host
161 RX buffers for DMA.
162 Defaults to 0.
163 .It Va dev.bnxt.X.rss_type
164 Comma-separated list of RSS hash types to support.
165 Default is all types.
166 Defaults to ipv4,tcp_ipv4,udp_ipv4,ipv6,tcp_ipv6,udp_ipv6.
167 .It Va dev.bnxt.X.rss_key
168 Current RSS key.
169 Defaults to a randomly generated value which is generated for each device
170 during attach.
171 .It Va dev.bnxt.X.ver.hwrm_min_ver
172 Minimum HWRM (HardWare Resource Manager) firmware API to support.
173 If the firmware implements an older version, a warning will be printed, and the
174 firmware should be upgraded.
175 Defaults to 1.2.2.
176 .El
177 .Pp
178 These
179 .Xr sysctl 8
180 variables are read-only:
181 .Bl -tag -width indent
182 .It Va dev.bnxt.X.if_name
183 Current interface name of the device.
184 This will normally be
185 .Va bnxtX ,
186 but this can be changed using
187 .Cm ifconfig name .
188 This sysctl allows correlating an interface with a child of
189 .Va dev.bnxt .
190 .It Va dev.bnxt.X.nvram.*
191 Information about the NVRAM device which contains the device firmware.
192 .It Va dev.bnxt.X.ver.*
193 Version-related information about the device and firmware:
194 .It Va dev.bnxt.X.ver.hwrm_if
195 Supported HWRM API version of the currently running firmware.
196 .It Va dev.bnxt.X.ver.driver_hwrm_if
197 HWRM API version the driver was built to support.
198 .It Va dev.bnxt.X.hwstats.*
199 Per-queue statistics tracked by the hardware.
200 .It Va dev.bnxt.X.hwstats.port_stats.*
201 Per-port statistics tracked by the hardware.
202 .It Va dev.bnxt.X.hwstats.rxq0.drop_pkts
203 Number of packets dropped by hardware on queue zero.
204 This number might seem high, but the count includes packets dropped due to
205 incorrect destination MAC, unsubscribed multicast address, and other normal
206 reasons to ignore Ethernet frames.
207 .It Va dev.bnxt.X.hwstats.rxq0.tpa_*
208 statistics related to HW LRO.
209 .It Va dev.bnxt.X.hw_lro.*
210 Enable / Disable HW LRO feature. Defaults to disable.
211 Enabling HW LRO could cause issues when forwarding is enabled on host.
212 .It Va dev.bnxt.X.fc
213 Enable / Disable Flow Control feature. Defaults to Enable
214 .El
215 .Sh DIAGNOSTICS
216 .Bl -diag
217 .It "bnxt%d: %s command returned %s error."
218 Device firmware rejected a command from the driver.
219 There might be a driver/firmware HWRM API mismatch.
220 .It "bnxt%d: Timeout sending %s (timeout: %d) seq %d"
221 Device firmware unresponsive.
222 A PCI device reset is likely needed.
223 .It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d"
224 Partial firmware response.
225 A PCI device reset is likely needed.
226 .Pp
227 As of this writing, the system must be rebooted to initiate a PCI device reset.
228 .El
229 .Sh SEE ALSO
230 .Xr altq 4 ,
231 .Xr arp 4 ,
232 .Xr iflib 4 ,
233 .Xr netintro 4 ,
234 .Xr ng_ether 4 ,
235 .Xr vlan 4 ,
236 .Xr ifconfig 8
237 .Sh HISTORY
238 The
239 .Nm
240 device driver first appeared in
241 .Fx 11.1 .
242 .Sh AUTHORS
243 .An -nosplit
244 The
245 .Nm
246 driver was written by
247 .An Jack Vogel Aq Mt jfvogel@gmail.com 
248 and 
249 .An Stephen Hurd Aq Mt shurd@freebsd.org ,
250 and is currently maintained by
251 .An Broadcom Limited Aq Mt freebsd.pdl@broadcom.com .