BNXT(4)
BNXT(4) πβ¨
okay bestie, welcome to the Kernel Interfaces Manual β this is the bnxt page, and it's lowkey a whole vibe. it's the Broadcom NetXtreme-C/NetXtreme-E Family Ethernet driver and we are going to get you so comfy with it. grab a snack π
NAME π
bnxt β Broadcom NetXtreme-C/NetXtreme-E Family Ethernet driver
SYNOPSIS π¦
so like, if you want to compile this driver into the kernel (main character energy), you drop these lines into your kernel configuration file:
device iflib
device bnxt
or alternatively β and this is the slay option honestly β to load the driver as a module at boot time, you put this one singular line into loader.conf(5):
if_bnxt_load="YES"
DESCRIPTION β¨
The bnxt driver provides support for various NICs based on the Broadcom BCM57301/2/4, and BCM57402/4/6 Ethernet controller chips. periodt.
For more info on configuring this device, go peek at ifconfig(8). π
HARDWARE π₯
The bnxt driver provides support for various NICs based on the Broadcom NetXtreme-C and NetXtreme-E families of Gigabit Ethernet controller chips, including the following β yes, the whole list, we do not skip, not ever:
- Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
- Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
- Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller
- Broadcom BCM57304 NetXtreme-C Ethernet Virtual Function
- Broadcom BCM57314 NetXtreme-C Ethernet Virtual Function
- Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller
- Broadcom BCM57402 NetXtreme-E Ethernet Partition
- Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller
- Broadcom BCM57404 NetXtreme-E Ethernet Virtual Function
- Broadcom BCM57404 NetXtreme-E Partition
- Broadcom BCM57406 NetXtreme-E 10GBASE-T Ethernet Controller
- Broadcom BCM57406 NetXtreme-E Partition
- Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
- Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller
- Broadcom BCM57407 NetXtreme-E Partition
- Broadcom BCM57412 NetXtreme-E Partition
- Broadcom BCM57414 NetXtreme-E Ethernet Virtual Function
- Broadcom BCM57414 NetXtreme-E Partition
- Broadcom BCM57416 NetXtreme-E Partition
- Broadcom BCM57417 NetXtreme-E Ethernet Partition
- Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
twenty-one entries, we counted, we love her π
SYSCTL VARIABLES πΈ
the "set me BEFORE you load" girlies π
These variables must be set before loading the driver, either via loader.conf(5) or through the use of kenv(1). They're provided by the iflib(4) framework, and might be better documented there. iykyk.
dev.bnxt.X.iflib.override_nrxdsβ Override the number of RX descriptors for each queue. The value is a comma separated list of three positive integers: the size of the completion ring, the size of the receive ring, and the size of the aggregation ring respectively. The completion ring should be at least the size of the aggregation ring plus four times the size of the receive ring. These numbers must be powers of two, and zero means to use the default. Defaults to0,0,0.dev.bnxt.X.iflib.override_ntxdsβ Override the number of TX descriptors for each queue. The value is a comma separated list of two positive integers: the size of the completion ring, and the size of the transmit ring respectively. The completion ring should be at least twice the size of the transmit ring. These numbers must be powers of two, and zero means to use the default. Defaults to0,0.override_qs_enableβ When set, allows the number of transmit and receive queues to be different. If not set, the lower of the number of TX or RX queues will be used for both. (no favorites here, bestie π)override_nrxqsβ Set the number of RX queues. If zero, the number of RX queues is derived from the number of cores on the socket connected to the controller. Defaults to0.override_ntxqsβ Set the number of TX queues. If zero, the number of TX queues is derived from the number of cores on the socket connected to the controller.
the "change me whenever, bestie" girlies π
These sysctl(8) variables can be changed at any time:
dev.bnxt.X.vlan_onlyβ Require that incoming frames must have a VLAN tag on them that matches one that is configured for the NIC. Normally, both frames that have a matching VLAN tag and frames that have no VLAN tag are accepted. Defaults to0.dev.bnxt.X.vlan_stripβ When non-zero the NIC strips VLAN tags on receive. Defaults to0.dev.bnxt.X.rx_stallβ Enable buffering rather than dropping frames when there are no available host RX buffers for DMA. Defaults to0.dev.bnxt.X.rss_typeβ Comma-separated list of RSS hash types to support. Default is all types. Defaults toipv4,tcp_ipv4,udp_ipv4,ipv6,tcp_ipv6,udp_ipv6.dev.bnxt.X.rss_keyβ Current RSS key. Defaults to a randomly generated value which is generated for each device during attach. (mysterious. we stan. β¨)dev.bnxt.X.ver.hwrm_min_verβ Minimum HWRM (HardWare Resource Manager) firmware API to support. If the firmware implements an older version, a warning will be printed, and the firmware should be upgraded. Defaults to1.2.2.
the read-only girlies π
These sysctl(8) variables are read-only β look, don't touch:
dev.bnxt.X.if_nameβ Current interface name of the device. This will normally bebnxtX, but this can be changed usingifconfig name. This sysctl allows correlating an interface with a child ofdev.bnxt.dev.bnxt.X.nvram.*β Information about the NVRAM device which contains the device firmware.dev.bnxt.X.ver.*β Version-related information about the device and firmware:dev.bnxt.X.ver.hwrm_ifβ Supported HWRM API version of the currently running firmware.dev.bnxt.X.ver.driver_hwrm_ifβ HWRM API version the driver was built to support.
dev.bnxt.X.hwstats.*β Per-queue statistics tracked by the hardware.dev.bnxt.X.hwstats.port_stats.*β Per-port statistics tracked by the hardware.dev.bnxt.X.hwstats.rxq0.drop_pktsβ Number of packets dropped by hardware on queue zero. This number might seem high, but the count includes packets dropped due to incorrect destination MAC, unsubscribed multicast address, and other normal reasons to ignore Ethernet frames. (so don't panic, it's giving "normal" π)dev.bnxt.X.hwstats.rxq0.tpa_*β statistics related to HW LRO.dev.bnxt.X.hw_lro.*β Enable / Disable HW LRO feature. Defaults to disable. Enabling HW LRO could cause issues when forwarding is enabled on host.dev.bnxt.X.fcβ Enable / Disable Flow Control feature. Defaults to Enable
DIAGNOSTICS π
these are the "something's wrong" messages, and bestie, some of them are serious:
bnxt%d: %s command returned %s error.
Device firmware rejected a command from the driver. There might be a driver/firmware HWRM API mismatch.
bnxt%d: Timeout sending %s (timeout: %d) seq %d
Device firmware unresponsive. A PCI device reset is likely needed.
bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d
Partial firmware response. A PCI device reset is likely needed.
As of this writing, the system must be rebooted to initiate a PCI device reset. yes, like, the WHOLE system. no cap, no shortcut, no cute workaround. π
SEE ALSO π
altq(4), arp(4), iflib(4), netintro(4), ng_ether(4), vlan(4), ifconfig(8)
HISTORY π¦
The bnxt device driver first appeared in FreeBSD 11.1. an icon, honestly. π
AUTHORS π«Ά
The bnxt driver was written by Jack Vogel <jfvogel@gmail.com> and Stephen Hurd <shurd@freebsd.org>, and is currently maintained by Broadcom Limited <freebsd.pdl@broadcom.com>.
okay that's the whole page bestie, you ATE that reading. π β¨ this came to you from the Debian side of the world, dated January 30, 2019 β so yeah she's been serving since way back, and she's still that girl. mwah ππ
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2016 Broadcom, All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms