Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BNXT(4)			    Kernel Interfaces Manual		       BNXT(4)

NAME
       bnxt -- Broadcom	NetXtreme family 10Gb to 400Gb Ethernet	driver

SYNOPSIS
       To  compile  this  driver into the kernel, place	the following lines in
       your kernel configuration file:

	     device iflib
	     device bnxt

       Alternatively, to load the driver as a module at	boot time,  place  the
       following line in loader.conf(5):

	     if_bnxt_load="YES"

DESCRIPTION
       The  bnxt  driver  provides support for PCIe NICs based on the Broadcom
       BCM573XX, BCM574XX, BCM575XX, and BCM576XX Ethernet controllers.

       For more	information on configuring this	device,	see ifconfig(8).

HARDWARE
       The bnxt	driver supports	the following Broadcom 10Gb to 400Gb  Ethernet
       controllers:

          Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
          Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
          Broadcom  BCM57304  NetXtreme-C  10Gb/25Gb/40Gb/50Gb	 Ethernet Con-
	   troller
          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
          Broadcom BCM57502 NetXtreme-E 10Gb/25Gb/50Gb	Ethernet
          Broadcom N425 BCM57504 NetXtreme-E 10Gb/25Gb	Ethernet
          Broadcom P425 BCM57504 NetXtreme-E 10Gb/25Gb	Ethernet
          Broadcom N1100 BCM57504 NetXtreme-E 10Gb/25Gb/50Gb/100Gb Ethernet
          Broadcom N2100 BCM57508 Thor	10Gb/25Gb/50Gb/100Gb Ethernet
          Broadcom P2100 BCM57508 Thor	10Gb/25Gb/50Gb/100Gb Ethernet
          Broadcom N2200 BCM57608 Thor	2 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
          Broadcom P2200 BCM57608 Thor	2 10Gb/25Gb/50Gb/100Gb/200Gb Ethernet
          Broadcom N1400 BCM57608 Thor	2 25Gb/50Gb/100Gb/200Gb/400Gb Ethernet
          Broadcom P1400 BCM57608 Thor	2 25Gb/50Gb/100Gb/200Gb/400Gb Ethernet

SYSCTL VARIABLES
       These variables must be set  before  loading  the  driver,  either  via
       loader.conf(5)  or  through  the	use of kenv(1).	 These are provided by
       the iflib(4) framework, and might be better documented there.

       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  to
	       0,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 to 0,0.

       dev.bnxt.X.iflib.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.

       dev.bnxt.X.iflib.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 to 0.

       dev.bnxt.X.iflib.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.

       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	to 0.

       dev.bnxt.X.vlan_strip
	       When non-zero the NIC strips VLAN tags on receive.  Defaults to
	       0.

       dev.bnxt.X.rx_stall
	       Enable buffering	rather than dropping frames when there are  no
	       available host RX buffers for DMA.  Defaults to 0.

       dev.bnxt.X.rss_type
	       Comma-separated	list of	RSS hash types to support.  Default is
	       all		types.		     Defaults		    to
	       ipv4,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.

       dev.bnxt.X.ver.hwrm_min_ver
	       Minimum HWRM (HardWare Resource Manager)	firmware API  to  sup-
	       port.   If  the firmware	implements an older version, a warning
	       will be printed,	and the	firmware should	be upgraded.  Defaults
	       to 1.2.2.

       These sysctl(8) variables are read-only:

       dev.bnxt.X.if_name
	       Current interface name of the device.  This  will  normally  be
	       bnxtX,  but  this  can  be  changed  using ifconfig name.  This
	       sysctl  allows  correlating  an	interface  with	 a  child   of
	       dev.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 num-
	       ber 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.

       dev.bnxt.X.hwstats.rxq0.tpa_*
	       statistics related to HW	LRO.

       dev.bnxt.X.hw_lro.*
	       Enable  /  Disable  HW  LRO feature.  Defaults to disable.  En-
	       abling HW LRO could cause issues	when forwarding	is enabled  on
	       host.

       dev.bnxt.X.fc
	       Enable /	Disable	Flow Control feature.  Defaults	to Enable

DIAGNOSTICS
       bnxt%d:	%s command returned %s error.  Device firmware rejected	a com-
       mand from the driver.  There might be a driver/firmware HWRM  API  mis-
       match.

       bnxt%d:	Timeout	sending	%s (timeout: %d) seq %d	 Device	firmware unre-
       sponsive.  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 de-
       vice reset.

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.

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>.

FreeBSD	ports 15.quarterly     December	10, 2025		       BNXT(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bnxt&sektion=4&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help