CXGBEV(4)
πΈ NAME πΈ
Okay so welcome to the CXGBEV(4) page from the Kernel Interfaces Manual, bestie. This is all about cxgbev β the Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet VF driver. π
β¨
β¨ SYNOPSIS β¨
To compile this driver into the kernel, place these lines in your kernel configuration file:
device cxgbe
device cxgbev
To load the driver as a module at boot time, place this line in loader.conf(5):
if_cxgbev_load="YES"
π DESCRIPTION π
The cxgbev driver provides support for Virtual Functions on PCI Express Ethernet adapters based on the Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs (T4, T5, and T6). π«Ά
It 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). Itβs giving networking main character energy. π
For further hardware information and questions related to hardware requirements, see http://www.chelsio.com/.
The cxgbev driver uses different names for devices based on the associated ASIC:
T4β port namecxgbev, parent devicet4vfT5β port namecxlv, parent devicet5vfT6β port nameccv, parent devicet6vf
Loader tunables with the hw.cxgbe prefix apply to VFs from all cards. The Physical Function driver for Chelsio Terminator adapters shares these tunables. The driver provides sysctl MIBs for both ports and parent devices using the names above. For example, a T5 VF provides port MIBs under dev.cxlv and parent device MIBs under dev.t5vf. References to sysctl MIBs in the remainder of this page use dev.<port> for port MIBs and dev.<nexus> for parent device MIBs. π¦
For more information on configuring this device, see ifconfig(8).
π HARDWARE π
The cxgbev driver supports Virtual Functions on 100Gb and 25Gb Ethernet adapters based on the T6 ASIC:
Chelsio T6225-CRChelsio T6225-SO-CRChelsio T62100-LP-CRChelsio T62100-SO-CRChelsio T62100-CR
The cxgbev driver supports Virtual Functions on 40Gb, 10Gb and 1Gb Ethernet adapters based on the T5 ASIC:
Chelsio T580-CRChelsio T580-LP-CRChelsio T580-LP-SO-CRChelsio T560-CRChelsio T540-CRChelsio T540-LP-CRChelsio T522-CRChelsio T520-LL-CRChelsio T520-CRChelsio T520-SOChelsio T520-BTChelsio T504-BT
The cxgbev driver supports Virtual Functions on 10Gb and 1Gb Ethernet adapters based on the T4 ASIC:
Chelsio T420-CRChelsio T422-CRChelsio T440-CRChelsio T420-BCHChelsio T440-BCHChelsio T440-CHChelsio T420-SOChelsio T420-CXChelsio T420-BTChelsio T404-BT
π§ LOADER TUNABLES π§
Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5). These are the knobs, bestie β handle with care and good vibes. π
hw.cxgbe.ntxqβ Number of tx queues used for a port. The default is16or the number of CPU cores in the system, whichever is less.hw.cxgbe.nrxqβ Number of rx queues used for a port. The default is8or the number of CPU cores in the system, whichever is less.hw.cxgbe.holdoff_timer_idxβ Timer index value used to delay interrupts. The holdoff timer list has the values1,5,10,50,100, and200by default (all values are in microseconds) and the index selects a value from this list. The default value is1which means the timer value is5us. Different interfaces can be assigned different values at any time via thedev.<port>.X.holdoff_tmr_idxsysctl.hw.cxgbe.holdoff_pktc_idxβ Packet-count index value used to delay interrupts. The packet-count list has the values1,8,16, and32by default, and the index selects a value from this list. The default value is-1which means packet counting is disabled and interrupts are generated based solely on the holdoff timer value. Different interfaces can be assigned different values via thedev.<port>.X.holdoff_pktc_idxsysctl. This sysctl works only when the interface has never been marked up (as done byifconfig up).hw.cxgbe.qsize_txqβ Number of entries in a transmit queue's descriptor ring. Abuf_ringof the same size is also allocated for additional software queuing. Seeifnet(9). The default value is1024. Different interfaces can be assigned different values via thedev.<port>.X.qsize_txqsysctl. This sysctl works only when the interface has never been marked up (as done byifconfig up).hw.cxgbe.qsize_rxqβ Number of entries in a receive queue's descriptor ring. The default value is1024. Different interfaces can be assigned different values via thedev.<port>.X.qsize_rxqsysctl. This sysctl works only when the interface has never been marked up (as done byifconfig up).hw.cxgbe.interrupt_typesβ Permitted interrupt types. Bit0represents INTx (line interrupts), bit1MSI, and bit2MSI-X. The default is7(all allowed). The driver selects the best possible type out of the allowed types. Note that Virtual Functions do not support INTx interrupts and fail to attach if neither MSI nor MSI-X are enabled.hw.cxgbe.fl_pktshiftβ Number of padding bytes inserted before the beginning of an Ethernet frame in the receive buffer. The default value of2ensures that the Ethernet payload (usually the IP header) is at a 4 byte aligned address.0-7are all valid values.hw.cxgbe.fl_padβ A non-zero value ensures that writes from the hardware to a receive buffer are padded up to the specified boundary. The default is-1which lets the driver pick a pad boundary.0disables trailer padding completely.hw.cxgbe.buffer_packingβ Allow the hardware to deliver multiple frames in the same receive buffer opportunistically. The default is-1which lets the driver decide.0or1explicitly disable or enable this feature.hw.cxgbe.allow_mbufs_in_clusterβ1allows the driver to lay down one or more mbufs within the receive buffer opportunistically. This is the default.0prohibits the driver from doing so.hw.cxgbe.largest_rx_clusterβ Sizes of rx clusters. Each of these must be set to one of the sizes available (usually2048,4096,9216, and16384) andlargest_rx_clustermust be greater than or equal tosafest_rx_cluster. The defaults are16384and4096respectively. The driver never attempts to allocate a receive buffer larger thanlargest_rx_clusterand falls back to allocating buffers ofsafest_rx_clustersize if an allocation larger thansafest_rx_clusterfails. Note thatlargest_rx_clustermerely establishes a ceiling -- the driver is allowed to allocate buffers of smaller sizes.hw.cxgbe.safest_rx_clusterβ The safest rx cluster size in that pair; its default is4096, and it must be less than or equal tolargest_rx_cluster.
Certain settings and resources for Virtual Functions are dictated by the parent Physical Function driver. For example, the Physical Function driver limits the number of queues available to a Virtual Function. Some of these limits can be adjusted in the firmware configuration file used with the Physical Function driver. π
The PAUSE settings on the port of a Virtual Function are inherited from the settings of the same port on the Physical Function. Virtual Functions cannot modify the setting and track changes made to the associated port's setting by the Physical Function driver.
Receive queues on a Virtual Function always drop packets in response to congestion (equivalent to setting hw.cxgbe.cong_drop to 1).
The VF driver currently depends on the PF driver. As a result, loading the VF driver also loads the PF driver as a dependency. π«Ά
π«Ά SUPPORT π«Ά
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β©. π§
π SEE ALSO π
arp(4), cxgbe(4), netintro(4), ng_ether(4), ifconfig(8) β go read, bestie, iykyk. π
π¦ HISTORY π¦
The cxgbev device driver first appeared in FreeBSD 11.1 and FreeBSD 11.1. Yes, it says it twice, and we respect the lore. π
π AUTHORS π
The cxgbev driver was written by Navdeep Parhar <np@FreeBSD.org> and John Baldwin <jhb@FreeBSD.org>. π«Ά
Okay thatβs the whole page, bestie. Footer vibe check: source/version Debian, dated November 10, 2022, and the manual is CXGBEV(4). Periodt. π
β¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (c) 2011-2016, Chelsio Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms