To compile this driver into the kernel, place the following lines
in your kernel configuration file:
device cxgbe
To load the driver as a module at boot time, place the following
lines in loader.conf(5):
t4fw_cfg_load="YES"
if_cxgbe_load="YES"
The cxgbe driver provides support for PCI
Express Ethernet adapters based on the Chelsio Terminator 4 (T4) ASIC. The
driver supports Jumbo Frames, Transmit/Receive checksum offload, TCP
segmentation offload (TSO), Large Receive Offload (LRO), VLAN tag
insertion/extraction, VLAN checksum offload, VLAN TSO, and Receive Side
Steering (RSS). For further hardware information and questions related to
hardware requirements, see
http://www.chelsio.com/.
For more information on configuring this device, see
ifconfig(8).
The cxgbe driver supports 10Gb and 1Gb
Ethernet adapters based on the T4 ASIC:
- Chelsio T420-CR
- Chelsio T422-CR
- Chelsio T440-CR
- Chelsio T420-BCH
- Chelsio T440-BCH
- Chelsio T440-CH
- Chelsio T420-SO
- Chelsio T420-CX
- Chelsio T420-BT
- Chelsio T404-BT
Tunables can be set at the loader(8) prompt
before booting the kernel or stored in loader.conf(5).
- hw.cxgbe.ntxq10g
- The number of tx queues to use for a 10Gb port. The default is 16 or the
number of CPU cores in the system, whichever is less.
- hw.cxgbe.nrxq10g
- The number of rx queues to use for a 10Gb port. The default is 8 or the
number of CPU cores in the system, whichever is less.
- hw.cxgbe.ntxq1g
- The number of tx queues to use for a 1Gb port. The default is 4 or the
number of CPU cores in the system, whichever is less.
- hw.cxgbe.nrxq1g
- The number of rx queues to use for a 1Gb port. The default is 2 or the
number of CPU cores in the system, whichever is less.
- hw.cxgbe.nofldtxq10g
- The number of TOE tx queues to use for a 10Gb port. The default is 8 or
the number of CPU cores in the system, whichever is less.
- hw.cxgbe.nofldrxq10g
- The number of TOE rx queues to use for a 10Gb port. The default is 2 or
the number of CPU cores in the system, whichever is less.
- hw.cxgbe.nofldtxq1g
- The number of TOE tx queues to use for a 1Gb port. The default is 2 or the
number of CPU cores in the system, whichever is less.
- hw.cxgbe.nofldrxq1g
- The number of TOE rx queues to use for a 1Gb port. The default is 1.
- hw.cxgbe.holdoff_timer_idx_10G
-
- hw.cxgbe.holdoff_timer_idx_1G
- The timer index value to use to delay interrupts. The holdoff timer list
has the values 1, 5, 10, 50, 100, and 200 by default (all values are in
microseconds) and the index selects a value from this list. The default
value is 1 for both 10Gb and 1Gb ports, which means the timer value is
5us. Different cxgbe interfaces can be assigned different values at any
time via the dev.cxgbe.X.holdoff_tmr_idx sysctl.
- hw.cxgbe.holdoff_pktc_idx_10G
-
- hw.cxgbe.holdoff_pktc_idx_1G
- The packet-count index value to use to delay interrupts. The packet-count
list has the values 1, 8, 16, and 32 by default and the index selects a
value from this list. The default value is -1 for both 10Gb and 1Gb ports,
which means packet counting is disabled and interrupts are generated based
solely on the holdoff timer value. Different cxgbe interfaces can be
assigned different values via the dev.cxgbe.X.holdoff_pktc_idx sysctl.
This sysctl works only when the interface has never been marked up (as
done by ifconfig up).
- hw.cxgbe.qsize_txq
- The size, in number of entries, of the descriptor ring used for a tx
queue. A buf_ring of the same size is also allocated for additional
software queuing. See ifnet(9). The default value is
1024. Different cxgbe interfaces can be assigned different values via the
dev.cxgbe.X.qsize_txq sysctl. This sysctl works only when the interface
has never been marked up (as done by ifconfig up).
- hw.cxgbe.qsize_rxq
- The size, in number of entries, of the descriptor ring used for an rx
queue. The default value is 1024. Different cxgbe interfaces can be
assigned different values via the dev.cxgbe.X.qsize_rxq sysctl. This
sysctl works only when the interface has never been marked up (as done by
ifconfig up).
- hw.cxgbe.interrupt_types
- The interrupt types that the driver is allowed to use. Bit 0 represents
INTx (line interrupts), bit 1 MSI, bit 2 MSI-X. The default is 7 (all
allowed). The driver will select the best possible type out of the allowed
types by itself.
- hw.cxgbe.fw_install
- 0 prohibits the driver from installing a firmware on the card. 1 allows
the driver to install a new firmware if internal driver heuristics
indicate that the new firmware is preferable to the one already on the
card. 2 instructs the driver to always install the new firmware on the
card as long as it is compatible with the driver and is a different
version than the one already on the card. The default is 1.
- hw.cxgbe.config_file
- Select a pre-packaged device configuration file. A configuration file
contains a recipe for partitioning and configuring the hardware resources
on the card. This tunable is for specialized applications only and should
not be used in normal operation. The configuration profile currently in
use is available in the dev.t4nex.X.cf and dev.t4nex.X.cfcsum
sysctls.
- hw.cxgbe.linkcaps_allowed
-
- hw.cxgbe.niccaps_allowed
-
- hw.cxgbe.toecaps_allowed
-
- hw.cxgbe.rdmacaps_allowed
-
- hw.cxgbe.iscsicaps_allowed
-
- hw.cxgbe.fcoecaps_allowed
- Disallowing capabilities provides a hint to the driver and firmware to not
reserve hardware resources for that feature. Each of these is a bit field
with a bit for each sub-capability within the capability. This tunable is
for specialized applications only and should not be used in normal
operation. The capabilities for which hardware resources have been
reserved are listed in dev.t4nex.X.*caps sysctls.
For general information and support, go to the Chelsio support
website at: http://www.chelsio.com/.
If an issue is identified with this driver with a supported
adapter, email all the specific information related to the issue to
⟨support@chelsio.com⟩.
The cxgbe device driver first appeared in
FreeBSD 9.0.
The cxgbe driver was written by
Navdeep Parhar ⟨np@FreeBSD.org⟩.