]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/man/man4/bnxt.4
MFC r343617, r343618:
[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 January 30, 2019
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 iflib"
40 .Cd "device bnxt"
41 .Ed
42 .Pp
43 Alternatively, to load the driver as a
44 module at boot time, place the following line in
45 .Xr loader.conf 5 :
46 .Bd -literal -offset indent
47 if_bnxt_load="YES"
48 .Ed
49 .Sh DESCRIPTION
50 The
51 .Nm
52 driver provides support for various NICs based on the Broadcom BCM57301/2/4,
53 and BCM57402/4/6 Ethernet controller chips.
54 .Pp
55 For more information on configuring this device, see
56 .Xr ifconfig 8 .
57 .Sh HARDWARE
58 The
59 .Nm
60 driver provides support for various NICs based on the Broadcom NetXtreme-C and
61 NetXtreme-E families of Gigabit Ethernet controller chips, including the
62 following:
63 .Pp
64 .Bl -bullet -compact
65 .It
66 Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
67 .It
68 Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
69 .It
70 Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller
71 .It
72 Broadcom BCM57304 NetXtreme-C Ethernet Virtual Function
73 .It
74 Broadcom BCM57314 NetXtreme-C Ethernet Virtual Function
75 .It
76 Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller
77 .It
78 Broadcom BCM57402 NetXtreme-E Ethernet Partition
79 .It
80 Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller
81 .It
82 Broadcom BCM57404 NetXtreme-E Ethernet Virtual Function
83 .It
84 Broadcom BCM57404 NetXtreme-E Partition
85 .It
86 Broadcom BCM57406 NetXtreme-E 10GBASE-T Ethernet Controller
87 .It
88 Broadcom BCM57406 NetXtreme-E Partition
89 .It
90 Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
91 .It
92 Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller
93 .It
94 Broadcom BCM57407 NetXtreme-E Partition
95 .It
96 Broadcom BCM57412 NetXtreme-E Partition
97 .It
98 Broadcom BCM57414 NetXtreme-E Ethernet Virtual Function
99 .It
100 Broadcom BCM57414 NetXtreme-E Partition
101 .It
102 Broadcom BCM57416 NetXtreme-E Partition
103 .It
104 Broadcom BCM57417 NetXtreme-E Ethernet Partition
105 .It
106 Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
107 .El
108 .Sh SYSCTL VARIABLES
109 These variables must be set before loading the driver, either via
110 .Xr loader.conf 5
111 or through the use of
112 .Xr kenv 1 .
113 These are provided by the
114 .Xr iflib 4
115 framework, and might be better documented there.
116 .Bl -tag -width indent
117 .It Va dev.bnxt.X.iflib.override_nrxds
118 Override the number of RX descriptors for each queue.
119 The value is a comma separated list of three positive integers: the size of the
120 completion ring,
121 the size of the receive ring, and the size of the aggregation ring respectively.
122 The completion ring should be at least the size of the aggregation ring plus
123 four times the size of the receive ring.
124 These numbers must be powers of two, and zero means to use the default.
125 Defaults to 0,0,0.
126 .It Va dev.bnxt.X.iflib.override_ntxds
127 Override the number of TX descriptors for each queue.
128 The value is a comma separated list of two positive integers: the size of the
129 completion ring, and the size of the transmit ring respectively.
130 The completion ring should be at least twice the size of the transmit ring.
131 These numbers must be powers of two, and zero means to use the default.
132 Defaults to 0,0.
133 .It Va override_qs_enable
134 When set, allows the number of transmit and receive queues to be different.
135 If not set, the lower of the number of TX or RX queues will be used for both.
136 .It Va override_nrxqs
137 Set the number of RX queues.
138 If zero, the number of RX queues is derived from the number of cores on the
139 socket connected to the controller.
140 Defaults to 0.
141 .It Va override_ntxqs
142 Set the number of TX queues.
143 If zero, the number of TX queues is derived from the number of cores on the
144 socket connected to the controller.
145 .El
146 .Pp
147 These
148 .Xr sysctl 8
149 variables can be changed at any time:
150 .Bl -tag -width indent
151 .It Va dev.bnxt.X.vlan_only
152 Require that incoming frames must have a VLAN tag on them that matches one that
153 is configured for the NIC.
154 Normally, both frames that have a matching VLAN tag and frames that have no
155 VLAN tag are accepted.
156 Defaults to 0.
157 .It Va dev.bnxt.X.vlan_strip
158 When non-zero the NIC strips VLAN tags on receive.
159 Defaults to 0.
160 .It Va dev.bnxt.X.rx_stall
161 Enable buffering rather than dropping frames when there are no available host
162 RX buffers for DMA.
163 Defaults to 0.
164 .It Va dev.bnxt.X.rss_type
165 Comma-separated list of RSS hash types to support.
166 Default is all types.
167 Defaults to ipv4,tcp_ipv4,udp_ipv4,ipv6,tcp_ipv6,udp_ipv6.
168 .It Va dev.bnxt.X.rss_key
169 Current RSS key.
170 Defaults to a randomly generated value which is generated for each device
171 during attach.
172 .It Va dev.bnxt.X.ver.hwrm_min_ver
173 Minimum HWRM (HardWare Resource Manager) firmware API to support.
174 If the firmware implements an older version, a warning will be printed, and the
175 firmware should be upgraded.
176 Defaults to 1.2.2.
177 .El
178 .Pp
179 These
180 .Xr sysctl 8
181 variables are read-only:
182 .Bl -tag -width indent
183 .It Va dev.bnxt.X.if_name
184 Current interface name of the device.
185 This will normally be
186 .Va bnxtX ,
187 but this can be changed using
188 .Cm ifconfig name .
189 This sysctl allows correlating an interface with a child of
190 .Va dev.bnxt .
191 .It Va dev.bnxt.X.nvram.*
192 Information about the NVRAM device which contains the device firmware.
193 .It Va dev.bnxt.X.ver.*
194 Version-related information about the device and firmware:
195 .It Va dev.bnxt.X.ver.hwrm_if
196 Supported HWRM API version of the currently running firmware.
197 .It Va dev.bnxt.X.ver.driver_hwrm_if
198 HWRM API version the driver was built to support.
199 .It Va dev.bnxt.X.hwstats.*
200 Per-queue statistics tracked by the hardware.
201 .It Va dev.bnxt.X.hwstats.port_stats.*
202 Per-port statistics tracked by the hardware.
203 .It Va dev.bnxt.X.hwstats.rxq0.drop_pkts
204 Number of packets dropped by hardware on queue zero.
205 This number might seem high, but the count includes packets dropped due to
206 incorrect destination MAC, unsubscribed multicast address, and other normal
207 reasons to ignore Ethernet frames.
208 .It Va dev.bnxt.X.hwstats.rxq0.tpa_*
209 statistics related to HW LRO.
210 .It Va dev.bnxt.X.hw_lro.*
211 Enable / Disable HW LRO feature. Defaults to disable.
212 Enabling HW LRO could cause issues when forwarding is enabled on host.
213 .It Va dev.bnxt.X.fc
214 Enable / Disable Flow Control feature. Defaults to Enable
215 .El
216 .Sh DIAGNOSTICS
217 .Bl -diag
218 .It "bnxt%d: %s command returned %s error."
219 Device firmware rejected a command from the driver.
220 There might be a driver/firmware HWRM API mismatch.
221 .It "bnxt%d: Timeout sending %s (timeout: %d) seq %d"
222 Device firmware unresponsive.
223 A PCI device reset is likely needed.
224 .It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d"
225 Partial firmware response.
226 A PCI device reset is likely needed.
227 .Pp
228 As of this writing, the system must be rebooted to initiate a PCI device reset.
229 .El
230 .Sh SEE ALSO
231 .Xr altq 4 ,
232 .Xr arp 4 ,
233 .Xr iflib 4 ,
234 .Xr netintro 4 ,
235 .Xr ng_ether 4 ,
236 .Xr vlan 4 ,
237 .Xr ifconfig 8
238 .Sh HISTORY
239 The
240 .Nm
241 device driver first appeared in
242 .Fx 11.1 .
243 .Sh AUTHORS
244 .An -nosplit
245 The
246 .Nm
247 driver was written by
248 .An Jack Vogel Aq Mt jfvogel@gmail.com 
249 and 
250 .An Stephen Hurd Aq Mt shurd@freebsd.org ,
251 and is currently maintained by
252 .An Broadcom Limited Aq Mt freebsd.pdl@broadcom.com .