100aa064fSJohn Baldwin.\" Copyright (c) 2011-2016, Chelsio Inc 254e4ee71SNavdeep Parhar.\" All rights reserved. 354e4ee71SNavdeep Parhar.\" 454e4ee71SNavdeep Parhar.\" Redistribution and use in source and binary forms, with or without 554e4ee71SNavdeep Parhar.\" modification, are permitted provided that the following conditions are met: 654e4ee71SNavdeep Parhar.\" 754e4ee71SNavdeep Parhar.\" 1. Redistributions of source code must retain the above copyright notice, 854e4ee71SNavdeep Parhar.\" this list of conditions and the following disclaimer. 954e4ee71SNavdeep Parhar.\" 1054e4ee71SNavdeep Parhar.\" 2. Redistributions in binary form must reproduce the above copyright 1154e4ee71SNavdeep Parhar.\" notice, this list of conditions and the following disclaimer in the 1254e4ee71SNavdeep Parhar.\" documentation and/or other materials provided with the distribution. 1354e4ee71SNavdeep Parhar.\" 1454e4ee71SNavdeep Parhar.\" 3. Neither the name of the Chelsio Inc nor the names of its 1554e4ee71SNavdeep Parhar.\" contributors may be used to endorse or promote products derived from 1654e4ee71SNavdeep Parhar.\" this software without specific prior written permission. 1754e4ee71SNavdeep Parhar.\" 1854e4ee71SNavdeep Parhar.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1954e4ee71SNavdeep Parhar.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2054e4ee71SNavdeep Parhar.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2154e4ee71SNavdeep Parhar.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2254e4ee71SNavdeep Parhar.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2354e4ee71SNavdeep Parhar.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2454e4ee71SNavdeep Parhar.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2554e4ee71SNavdeep Parhar.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2654e4ee71SNavdeep Parhar.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2754e4ee71SNavdeep Parhar.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2854e4ee71SNavdeep Parhar.\" POSSIBILITY OF SUCH DAMAGE. 2954e4ee71SNavdeep Parhar.\" 3054e4ee71SNavdeep Parhar.\" * Other names and brands may be claimed as the property of others. 3154e4ee71SNavdeep Parhar.\" 324deab7aeSKristof Provost.Dd November 10, 2022 3354e4ee71SNavdeep Parhar.Dt CXGBE 4 3454e4ee71SNavdeep Parhar.Os 3554e4ee71SNavdeep Parhar.Sh NAME 3654e4ee71SNavdeep Parhar.Nm cxgbe 37f6e648b8SJohn Baldwin.Nd "Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet adapter driver" 3854e4ee71SNavdeep Parhar.Sh SYNOPSIS 3954e4ee71SNavdeep ParharTo compile this driver into the kernel, 4054e4ee71SNavdeep Parharplace the following lines in your 4154e4ee71SNavdeep Parharkernel configuration file: 4254e4ee71SNavdeep Parhar.Bd -ragged -offset indent 4354e4ee71SNavdeep Parhar.Cd "device cxgbe" 4454e4ee71SNavdeep Parhar.Ed 4554e4ee71SNavdeep Parhar.Pp 4654e4ee71SNavdeep ParharTo load the driver as a 477bbe4d1fSNavdeep Parharmodule at boot time, place the following lines in 4854e4ee71SNavdeep Parhar.Xr loader.conf 5 : 4954e4ee71SNavdeep Parhar.Bd -literal -offset indent 507bbe4d1fSNavdeep Parhart4fw_cfg_load="YES" 51ad016cb8SNavdeep Parhart5fw_cfg_load="YES" 52f6e648b8SJohn Baldwint6fw_cfg_load="YES" 5354e4ee71SNavdeep Parharif_cxgbe_load="YES" 5454e4ee71SNavdeep Parhar.Ed 5554e4ee71SNavdeep Parhar.Sh DESCRIPTION 5654e4ee71SNavdeep ParharThe 5754e4ee71SNavdeep Parhar.Nm 5854e4ee71SNavdeep Parhardriver provides support for PCI Express Ethernet adapters based on 59f6e648b8SJohn Baldwinthe Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs (T4, T5, and T6). 603102cfe2SGlen BarberThe driver supports Jumbo Frames, Transmit/Receive checksum offload, 6154e4ee71SNavdeep ParharTCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN 62a4a4ad2dSNavdeep Parhartag insertion/extraction, VLAN checksum offload, VLAN TSO, VXLAN checksum 63a4a4ad2dSNavdeep Parharoffload, VXLAN TSO, and Receive Side Steering (RSS). 6454e4ee71SNavdeep ParharFor further hardware information and questions related to hardware 6554e4ee71SNavdeep Parharrequirements, see 6654e4ee71SNavdeep Parhar.Pa http://www.chelsio.com/ . 6754e4ee71SNavdeep Parhar.Pp 68f6e648b8SJohn BaldwinThe 69f6e648b8SJohn Baldwin.Nm 70f6e648b8SJohn Baldwindriver uses different names for devices based on the associated ASIC: 71f6e648b8SJohn Baldwin.Bl -column -offset indent "ASIC" "Port Name" "Parent Device" 72f6e648b8SJohn Baldwin.It Sy ASIC Ta Sy Port Name Ta Sy Parent Device Ta Sy Virtual Interface 73f6e648b8SJohn Baldwin.It T4 Ta cxgbe Ta t4nex Ta vcxgbe 74f6e648b8SJohn Baldwin.It T5 Ta cxl Ta t5nex Ta vcxl 75f6e648b8SJohn Baldwin.It T6 Ta cc Ta t6nex Ta vcc 76f6e648b8SJohn Baldwin.El 77f6e648b8SJohn Baldwin.Pp 78f6e648b8SJohn BaldwinLoader tunables with the hw.cxgbe prefix apply to all cards. 79f6e648b8SJohn BaldwinThe driver provides sysctl MIBs for both ports and parent devices using 80f6e648b8SJohn Baldwinthe names above. 81c4510a9bSJohn BaldwinFor example, a T5 adapter provides port MIBs under dev.cxl and 82f6e648b8SJohn Baldwinadapter-wide MIBs under dev.t5nex. 83c4510a9bSJohn BaldwinReferences to sysctl MIBs in the remainder of this page use 84f6e648b8SJohn Baldwindev.<port> for port MIBs and dev.<nexus> for adapter-wide MIBs. 85ad016cb8SNavdeep Parhar.Pp 8654e4ee71SNavdeep ParharFor more information on configuring this device, see 8754e4ee71SNavdeep Parhar.Xr ifconfig 8 . 8854e4ee71SNavdeep Parhar.Sh HARDWARE 8954e4ee71SNavdeep ParharThe 9054e4ee71SNavdeep Parhar.Nm 91f6e648b8SJohn Baldwindriver supports 100Gb and 25Gb Ethernet adapters based on the T6 ASIC: 92f6e648b8SJohn Baldwin.Pp 93f6e648b8SJohn Baldwin.Bl -bullet -compact 94f6e648b8SJohn Baldwin.It 95f6e648b8SJohn BaldwinChelsio T6225-CR 96f6e648b8SJohn Baldwin.It 97f6e648b8SJohn BaldwinChelsio T6225-SO-CR 98f6e648b8SJohn Baldwin.It 99f6e648b8SJohn BaldwinChelsio T62100-LP-CR 100f6e648b8SJohn Baldwin.It 101f6e648b8SJohn BaldwinChelsio T62100-SO-CR 102f6e648b8SJohn Baldwin.It 103f6e648b8SJohn BaldwinChelsio T62100-CR 104f6e648b8SJohn Baldwin.El 105f6e648b8SJohn Baldwin.Pp 106f6e648b8SJohn BaldwinThe 107f6e648b8SJohn Baldwin.Nm 1086af45170SJohn Baldwindriver supports 40Gb, 10Gb and 1Gb Ethernet adapters based on the T5 ASIC: 109ad016cb8SNavdeep Parhar.Pp 110ad016cb8SNavdeep Parhar.Bl -bullet -compact 111ad016cb8SNavdeep Parhar.It 112ad016cb8SNavdeep ParharChelsio T580-CR 113ad016cb8SNavdeep Parhar.It 114ad016cb8SNavdeep ParharChelsio T580-LP-CR 115ad016cb8SNavdeep Parhar.It 116ad016cb8SNavdeep ParharChelsio T580-LP-SO-CR 117ad016cb8SNavdeep Parhar.It 118ad016cb8SNavdeep ParharChelsio T560-CR 119ad016cb8SNavdeep Parhar.It 120ad016cb8SNavdeep ParharChelsio T540-CR 121ad016cb8SNavdeep Parhar.It 122ad016cb8SNavdeep ParharChelsio T540-LP-CR 123ad016cb8SNavdeep Parhar.It 124ad016cb8SNavdeep ParharChelsio T522-CR 125ad016cb8SNavdeep Parhar.It 126ad016cb8SNavdeep ParharChelsio T520-LL-CR 127ad016cb8SNavdeep Parhar.It 128ad016cb8SNavdeep ParharChelsio T520-CR 129ad016cb8SNavdeep Parhar.It 130ad016cb8SNavdeep ParharChelsio T520-SO 131ad016cb8SNavdeep Parhar.It 132ad016cb8SNavdeep ParharChelsio T520-BT 133ad016cb8SNavdeep Parhar.It 134ad016cb8SNavdeep ParharChelsio T504-BT 135ad016cb8SNavdeep Parhar.El 136ad016cb8SNavdeep Parhar.Pp 137ad016cb8SNavdeep ParharThe 138ad016cb8SNavdeep Parhar.Nm 13954e4ee71SNavdeep Parhardriver supports 10Gb and 1Gb Ethernet adapters based on the T4 ASIC: 14054e4ee71SNavdeep Parhar.Pp 14154e4ee71SNavdeep Parhar.Bl -bullet -compact 14254e4ee71SNavdeep Parhar.It 14354e4ee71SNavdeep ParharChelsio T420-CR 14454e4ee71SNavdeep Parhar.It 14554e4ee71SNavdeep ParharChelsio T422-CR 14654e4ee71SNavdeep Parhar.It 14754e4ee71SNavdeep ParharChelsio T440-CR 14854e4ee71SNavdeep Parhar.It 14954e4ee71SNavdeep ParharChelsio T420-BCH 15054e4ee71SNavdeep Parhar.It 15154e4ee71SNavdeep ParharChelsio T440-BCH 15254e4ee71SNavdeep Parhar.It 15354e4ee71SNavdeep ParharChelsio T440-CH 15454e4ee71SNavdeep Parhar.It 15554e4ee71SNavdeep ParharChelsio T420-SO 15654e4ee71SNavdeep Parhar.It 15754e4ee71SNavdeep ParharChelsio T420-CX 15854e4ee71SNavdeep Parhar.It 15954e4ee71SNavdeep ParharChelsio T420-BT 16054e4ee71SNavdeep Parhar.It 16154e4ee71SNavdeep ParharChelsio T404-BT 16254e4ee71SNavdeep Parhar.El 16354e4ee71SNavdeep Parhar.Sh LOADER TUNABLES 16454e4ee71SNavdeep ParharTunables can be set at the 16554e4ee71SNavdeep Parhar.Xr loader 8 16654e4ee71SNavdeep Parharprompt before booting the kernel or stored in 16754e4ee71SNavdeep Parhar.Xr loader.conf 5 . 168987258d0SNavdeep ParharThere are multiple tunables that control the number of queues of various 169987258d0SNavdeep Parhartypes. 170987258d0SNavdeep ParharA negative value for such a tunable instructs the driver to create 171987258d0SNavdeep Parharup to that many queues if there are enough CPU cores available. 17254e4ee71SNavdeep Parhar.Bl -tag -width indent 1738c61c6bbSNavdeep Parhar.It Va hw.cxgbe.ntxq 1748c61c6bbSNavdeep ParharNumber of NIC tx queues used for a port. 1759d496f5aSGlen BarberThe default is 16 or the number 176733b9277SNavdeep Parharof CPU cores in the system, whichever is less. 1778c61c6bbSNavdeep Parhar.It Va hw.cxgbe.nrxq 1788c61c6bbSNavdeep ParharNumber of NIC rx queues used for a port. 1799d496f5aSGlen BarberThe default is 8 or the number 180733b9277SNavdeep Parharof CPU cores in the system, whichever is less. 1818c61c6bbSNavdeep Parhar.It Va hw.cxgbe.nofldtxq 1828c61c6bbSNavdeep ParharNumber of TOE tx queues used for a port. 1839d496f5aSGlen BarberThe default is 8 or the 184733b9277SNavdeep Parharnumber of CPU cores in the system, whichever is less. 1858c61c6bbSNavdeep Parhar.It Va hw.cxgbe.nofldrxq 1868c61c6bbSNavdeep ParharNumber of TOE rx queues used for a port. 1879d496f5aSGlen BarberThe default is 2 or the 188733b9277SNavdeep Parharnumber of CPU cores in the system, whichever is less. 189fe2ebb76SJohn Baldwin.It Va hw.cxgbe.num_vis 190c4510a9bSJohn BaldwinNumber of virtual interfaces (VIs) created for each port. 191fe2ebb76SJohn BaldwinEach virtual interface creates a separate network interface. 192fe2ebb76SJohn BaldwinThe first virtual interface on each port is required and represents 193fe2ebb76SJohn Baldwinthe primary network interface on the port. 194f6e648b8SJohn BaldwinAdditional virtual interfaces on a port are named using the Virtual Interface 195f6e648b8SJohn Baldwinname from the table above. 196fe2ebb76SJohn BaldwinAdditional virtual interfaces use a single pair of queues 197fe2ebb76SJohn Baldwinfor rx and tx as well an additional pair of queues for TOE rx and tx. 198fe2ebb76SJohn BaldwinThe default is 1. 1998c61c6bbSNavdeep Parhar.It Va hw.cxgbe.holdoff_timer_idx 20008cd1f11SNavdeep Parhar.It Va hw.cxgbe.holdoff_timer_idx_ofld 201c4510a9bSJohn BaldwinTimer index value used to delay interrupts. 20254e4ee71SNavdeep ParharThe holdoff timer list has the values 1, 5, 10, 50, 100, and 200 20354e4ee71SNavdeep Parharby default (all values are in microseconds) and the index selects a 20454e4ee71SNavdeep Parharvalue from this list. 20508cd1f11SNavdeep Parharholdoff_timer_idx_ofld applies to queues used for TOE rx. 20699defe5eSNavdeep ParharThe default value is 1 which means the timer value is 5us. 207ad016cb8SNavdeep ParharDifferent interfaces can be assigned different values at any time via the 20808cd1f11SNavdeep Parhardev.<port>.X.holdoff_tmr_idx and dev.<port>.X.holdoff_tmr_idx_ofld sysctls. 2098c61c6bbSNavdeep Parhar.It Va hw.cxgbe.holdoff_pktc_idx 21008cd1f11SNavdeep Parhar.It Va hw.cxgbe.holdoff_pktc_idx_ofld 211c4510a9bSJohn BaldwinPacket-count index value used to delay interrupts. 212c4510a9bSJohn BaldwinThe packet-count list has the values 1, 8, 16, and 32 by default, 21354e4ee71SNavdeep Parharand the index selects a value from this list. 21408cd1f11SNavdeep Parharholdoff_pktc_idx_ofld applies to queues used for TOE rx. 21599defe5eSNavdeep ParharThe default value is -1 which means packet counting is disabled and interrupts 21699defe5eSNavdeep Parharare generated based solely on the holdoff timer value. 217ad016cb8SNavdeep ParharDifferent interfaces can be assigned different values via the 21808cd1f11SNavdeep Parhardev.<port>.X.holdoff_pktc_idx and dev.<port>.X.holdoff_pktc_idx_ofld sysctls. 21908cd1f11SNavdeep ParharThese sysctls work only when the interface has never been marked up (as done by 220733b9277SNavdeep Parharifconfig up). 22154e4ee71SNavdeep Parhar.It Va hw.cxgbe.qsize_txq 222c4510a9bSJohn BaldwinNumber of entries in a transmit queue's descriptor ring. 22354e4ee71SNavdeep ParharA buf_ring of the same size is also allocated for additional 2249d496f5aSGlen Barbersoftware queuing. 2259d496f5aSGlen BarberSee 22654e4ee71SNavdeep Parhar.Xr ifnet 9 . 22754e4ee71SNavdeep ParharThe default value is 1024. 228ad016cb8SNavdeep ParharDifferent interfaces can be assigned different values via the 229f6e648b8SJohn Baldwindev.<port>.X.qsize_txq sysctl. 230733b9277SNavdeep ParharThis sysctl works only when the interface has never been marked up (as done by 231733b9277SNavdeep Parharifconfig up). 23254e4ee71SNavdeep Parhar.It Va hw.cxgbe.qsize_rxq 233c4510a9bSJohn BaldwinNumber of entries in a receive queue's descriptor ring. 23454e4ee71SNavdeep ParharThe default value is 1024. 235ad016cb8SNavdeep ParharDifferent interfaces can be assigned different values via the 236f6e648b8SJohn Baldwindev.<port>.X.qsize_rxq sysctl. 237733b9277SNavdeep ParharThis sysctl works only when the interface has never been marked up (as done by 238733b9277SNavdeep Parharifconfig up). 239733b9277SNavdeep Parhar.It Va hw.cxgbe.interrupt_types 240c4510a9bSJohn BaldwinPermitted interrupt types. 241c4510a9bSJohn BaldwinBit 0 represents INTx (line interrupts), bit 1 MSI, and bit 2 MSI-X. 242733b9277SNavdeep ParharThe default is 7 (all allowed). 243c4510a9bSJohn BaldwinThe driver selects the best possible type out of the allowed types. 244218c5b21SNavdeep Parhar.It Va hw.cxgbe.pcie_relaxed_ordering 245218c5b21SNavdeep ParharPCIe Relaxed Ordering. 246218c5b21SNavdeep Parhar-1 indicates the driver should determine whether to enable or disable PCIe RO. 247218c5b21SNavdeep Parhar0 disables PCIe RO. 248218c5b21SNavdeep Parhar1 enables PCIe RO. 249218c5b21SNavdeep Parhar2 indicates the driver should not modify the PCIe RO setting. 250218c5b21SNavdeep ParharThe default is -1. 251d78bd33fSNavdeep Parhar.It Va hw.cxgbe.fw_install 252d78bd33fSNavdeep Parhar0 prohibits the driver from installing a firmware on the card. 253d78bd33fSNavdeep Parhar1 allows the driver to install a new firmware if internal driver 254d78bd33fSNavdeep Parharheuristics indicate that the new firmware is preferable to the one 255d78bd33fSNavdeep Parharalready on the card. 256d78bd33fSNavdeep Parhar2 instructs the driver to always install the new firmware on the card as 257d78bd33fSNavdeep Parharlong as it is compatible with the driver and is a different version than 258d78bd33fSNavdeep Parharthe one already on the card. 259d78bd33fSNavdeep ParharThe default is 1. 26099defe5eSNavdeep Parhar.It Va hw.cxgbe.fl_pktshift 261c4510a9bSJohn BaldwinNumber of padding bytes inserted before the beginning of an Ethernet 26299defe5eSNavdeep Parharframe in the receive buffer. 263518bca2cSNavdeep ParharThe default value is 0. 264*619e6f1fSGordon BerglingA value of 2 would ensure that the Ethernet payload (usually the IP header) 26599defe5eSNavdeep Parharis at a 4 byte aligned address. 26699defe5eSNavdeep Parhar0-7 are all valid values. 26799defe5eSNavdeep Parhar.It Va hw.cxgbe.fl_pad 26899defe5eSNavdeep ParharA non-zero value ensures that writes from the hardware to a receive buffer are 26999defe5eSNavdeep Parharpadded up to the specified boundary. 27099defe5eSNavdeep ParharThe default is -1 which lets the driver pick a pad boundary. 27199defe5eSNavdeep Parhar0 disables trailer padding completely. 27299defe5eSNavdeep Parhar.It Va hw.cxgbe.cong_drop 27399defe5eSNavdeep ParharControls the hardware response to congestion. 27499defe5eSNavdeep Parhar-1 disables congestion feedback and is not recommended. 27599defe5eSNavdeep Parhar0 instructs the hardware to backpressure its pipeline on congestion. 2763eb2c201SNavdeep ParharThis usually results in the port emitting PAUSE frames. 27799defe5eSNavdeep Parhar1 instructs the hardware to drop frames destined for congested queues. 278df275ae5SNavdeep Parhar2 instructs the hardware to both backpressure the pipeline and drop frames. 2793eb2c201SNavdeep Parhar.It Va hw.cxgbe.pause_settings 2803eb2c201SNavdeep ParharPAUSE frame settings. 281ea710848SNavdeep ParharBit 0 is rx_pause, bit 1 is tx_pause, bit 2 is pause_autoneg. 2823eb2c201SNavdeep Parharrx_pause = 1 instructs the hardware to heed incoming PAUSE frames, 0 instructs 2833eb2c201SNavdeep Parharit to ignore them. 2843eb2c201SNavdeep Parhartx_pause = 1 allows the hardware to emit PAUSE frames when its receive FIFO 2853eb2c201SNavdeep Parharreaches a high threshold, 0 prohibits the hardware from emitting PAUSE frames. 286ea710848SNavdeep Parharpause_autoneg = 1 overrides the rx_pause and tx_pause bits and instructs the 287ea710848SNavdeep Parharhardware to negotiate PAUSE settings with the link peer. 288ea710848SNavdeep ParharThe default is 7 (all three = 1). 2893eb2c201SNavdeep ParharThis tunable establishes the default PAUSE settings for all ports. 2903eb2c201SNavdeep ParharSettings can be displayed and controlled on a per-port basis via the 291f6e648b8SJohn Baldwindev.<port>.X.pause_settings sysctl. 292358bca3bSNavdeep Parhar.It Va hw.cxgbe.fec 293d7190ba0SNavdeep ParharForward Error Correction settings. 294d7190ba0SNavdeep Parhar-1 (default) means driver should automatically pick a value. 295bddf8247SNavdeep Parhar0 disables FEC. 296d7190ba0SNavdeep ParharFiner grained control can be achieved by setting individual bits. 297d7190ba0SNavdeep ParharBit 0 enables RS FEC, bit 1 enables BASE-R FEC (aka Firecode FEC), bit 298d7190ba0SNavdeep Parhar2 enables NO FEC, and bit 6 enables the FEC that is recommended by the 299d7190ba0SNavdeep Parhartransceiver/cable that is plugged in. 300d7190ba0SNavdeep ParharThese bits can be set together in any combination. 301358bca3bSNavdeep ParharThis tunable establishes the default FEC settings for all ports. 302f6a2e110SNavdeep ParharSettings can be controlled on a per-port basis via the 303f6a2e110SNavdeep Parhardev.<port>.X.requested_fec sysctl. 304f6a2e110SNavdeep ParharThe FEC in use on the link is available in dev.<port>.X.link_fec when 305f6a2e110SNavdeep Parharthe link is up. 306358bca3bSNavdeep Parhar.It Va hw.cxgbe.autoneg 307358bca3bSNavdeep ParharLink autonegotiation settings. 308358bca3bSNavdeep ParharThis tunable establishes the default autonegotiation settings for all ports. 309358bca3bSNavdeep ParharSettings can be displayed and controlled on a per-port basis via the 310358bca3bSNavdeep Parhardev.<port>.X.autoneg sysctl. 311358bca3bSNavdeep Parhar0 disables autonegotiation. 312358bca3bSNavdeep Parhar1 enables autonegotiation. 313358bca3bSNavdeep ParharThe default is -1 which lets the driver pick a value. 314358bca3bSNavdeep Parhardev.<port>.X.autoneg is -1 for port and module combinations that do not support 315358bca3bSNavdeep Parharautonegotiation. 31699defe5eSNavdeep Parhar.It Va hw.cxgbe.buffer_packing 31799defe5eSNavdeep ParharAllow the hardware to deliver multiple frames in the same receive buffer 31899defe5eSNavdeep Parharopportunistically. 31999defe5eSNavdeep ParharThe default is -1 which lets the driver decide. 32099defe5eSNavdeep Parhar0 or 1 explicitly disable or enable this feature. 32199defe5eSNavdeep Parhar.It Va hw.cxgbe.largest_rx_cluster 32299defe5eSNavdeep Parhar.It Va hw.cxgbe.safest_rx_cluster 32325972509SEdward Tomasz NapieralaSizes of rx clusters. 32425972509SEdward Tomasz NapieralaEach of these must be set to one of the sizes available 32599defe5eSNavdeep Parhar(usually 2048, 4096, 9216, and 16384) and largest_rx_cluster must be greater 32699defe5eSNavdeep Parharthan or equal to safest_rx_cluster. 32799defe5eSNavdeep ParharThe defaults are 16384 and 4096 respectively. 328c4510a9bSJohn BaldwinThe driver never attempts to allocate a receive buffer larger than 329c4510a9bSJohn Baldwinlargest_rx_cluster and falls back to allocating buffers of 33099defe5eSNavdeep Parharsafest_rx_cluster size if an allocation larger than safest_rx_cluster fails. 33199defe5eSNavdeep ParharNote that largest_rx_cluster merely establishes a ceiling -- the driver is 33299defe5eSNavdeep Parharallowed to allocate buffers of smaller sizes. 333733b9277SNavdeep Parhar.It Va hw.cxgbe.config_file 334733b9277SNavdeep ParharSelect a pre-packaged device configuration file. 335733b9277SNavdeep ParharA configuration file contains a recipe for partitioning and configuring the 336733b9277SNavdeep Parharhardware resources on the card. 337733b9277SNavdeep ParharThis tunable is for specialized applications only and should not be used in 338733b9277SNavdeep Parharnormal operation. 339f6e648b8SJohn BaldwinThe configuration profile currently in use is available in the dev.<nexus>.X.cf 340f6e648b8SJohn Baldwinand dev.<nexus>.X.cfcsum sysctls. 341733b9277SNavdeep Parhar.It Va hw.cxgbe.linkcaps_allowed 342733b9277SNavdeep Parhar.It Va hw.cxgbe.niccaps_allowed 343733b9277SNavdeep Parhar.It Va hw.cxgbe.toecaps_allowed 344733b9277SNavdeep Parhar.It Va hw.cxgbe.rdmacaps_allowed 345733b9277SNavdeep Parhar.It Va hw.cxgbe.iscsicaps_allowed 346733b9277SNavdeep Parhar.It Va hw.cxgbe.fcoecaps_allowed 347733b9277SNavdeep ParharDisallowing capabilities provides a hint to the driver and firmware to not 348733b9277SNavdeep Parharreserve hardware resources for that feature. 349733b9277SNavdeep ParharEach of these is a bit field with a bit for each sub-capability within the 350733b9277SNavdeep Parharcapability. 351733b9277SNavdeep ParharThis tunable is for specialized applications only and should not be used in 352733b9277SNavdeep Parharnormal operation. 353733b9277SNavdeep ParharThe capabilities for which hardware resources have been reserved are listed in 354f6e648b8SJohn Baldwindev.<nexus>.X.*caps sysctls. 35530e3f2b4SNavdeep Parhar.It Va hw.cxgbe.tx_vm_wr 35630e3f2b4SNavdeep ParharSetting this to 1 instructs the driver to use VM work requests to transmit data. 35730e3f2b4SNavdeep ParharThis lets PF interfaces transmit frames to VF interfaces over the internal 35830e3f2b4SNavdeep Parharswitch in the ASIC. 35930e3f2b4SNavdeep ParharNote that the 36030e3f2b4SNavdeep Parhar.Xr cxgbev 4 36130e3f2b4SNavdeep ParharVF driver always uses VM work requests and is not affected by this tunable. 36230e3f2b4SNavdeep ParharThe default value is 0 and should be changed only if PF and VF interfaces need 36330e3f2b4SNavdeep Parharto communicate with each other. 36430e3f2b4SNavdeep ParharDifferent interfaces can be assigned different values using the 36530e3f2b4SNavdeep Parhardev.<port>.X.tx_vm_wr sysctl when the interface is administratively down. 36677af2b2cSNavdeep Parhar.It Va hw.cxgbe.attack_filter 36777af2b2cSNavdeep ParharSet to 1 to enable the "attack filter". 36877af2b2cSNavdeep ParharDefault is 0. 36977af2b2cSNavdeep ParharThe attack filter will drop an incoming frame if any of these conditions is 37077af2b2cSNavdeep Parhartrue: src ip/ip6 == dst ip/ip6; tcp and src/dst ip is not unicast; src/dst ip is 37177af2b2cSNavdeep Parharloopback (127.x.y.z); src ip6 is not unicast; src/dst ip6 is loopback (::1/128) 37277af2b2cSNavdeep Parharor unspecified (::/128); tcp and src/dst ip6 is mcast (ff00::/8). 373ae5da4e1SNavdeep ParharThis facility is available on T4 and T5 based cards only. 37477af2b2cSNavdeep Parhar.It Va hw.cxgbe.drop_ip_fragments 37577af2b2cSNavdeep ParharSet to 1 to drop all incoming IP fragments. 37677af2b2cSNavdeep ParharDefault is 0. 37777af2b2cSNavdeep ParharNote that this drops valid frames. 37877af2b2cSNavdeep Parhar.It Va hw.cxgbe.drop_pkts_with_l2_errors 37977af2b2cSNavdeep ParharSet to 1 to drop incoming frames with Layer 2 length or checksum errors. 38077af2b2cSNavdeep ParharDefault is 1. 38177af2b2cSNavdeep Parhar.It Va hw.cxgbe.drop_pkts_with_l3_errors 38277af2b2cSNavdeep ParharSet to 1 to drop incoming frames with IP version, length, or checksum errors. 383ae5da4e1SNavdeep ParharThe IP checksum is validated for TCP or UDP packets only. 38477af2b2cSNavdeep ParharDefault is 0. 38577af2b2cSNavdeep Parhar.It Va hw.cxgbe.drop_pkts_with_l4_errors 386ae5da4e1SNavdeep ParharSet to 1 to drop incoming frames with Layer 4 (TCP or UDP) length, 387ae5da4e1SNavdeep Parharchecksum, or other errors. 38877af2b2cSNavdeep ParharDefault is 0. 389cb379161SGlen Barber.El 39054e4ee71SNavdeep Parhar.Sh SUPPORT 39154e4ee71SNavdeep ParharFor general information and support, 39254e4ee71SNavdeep Parhargo to the Chelsio support website at: 39354e4ee71SNavdeep Parhar.Pa http://www.chelsio.com/ . 39454e4ee71SNavdeep Parhar.Pp 39554e4ee71SNavdeep ParharIf an issue is identified with this driver with a supported adapter, 39654e4ee71SNavdeep Parharemail all the specific information related to the issue to 3976c899950SBaptiste Daroussin.Aq Mt support@chelsio.com . 39854e4ee71SNavdeep Parhar.Sh SEE ALSO 39954e4ee71SNavdeep Parhar.Xr arp 4 , 4005033c43bSJohn Baldwin.Xr ccr 4 , 40154e4ee71SNavdeep Parhar.Xr cxgb 4 , 4026af45170SJohn Baldwin.Xr cxgbev 4 , 40354e4ee71SNavdeep Parhar.Xr netintro 4 , 40454e4ee71SNavdeep Parhar.Xr ng_ether 4 , 40554e4ee71SNavdeep Parhar.Xr ifconfig 8 40654e4ee71SNavdeep Parhar.Sh HISTORY 40754e4ee71SNavdeep ParharThe 40854e4ee71SNavdeep Parhar.Nm 40954e4ee71SNavdeep Parhardevice driver first appeared in 41050d922a0SGlen Barber.Fx 9.0 . 411ad016cb8SNavdeep ParharSupport for T5 cards first appeared in 412ad016cb8SNavdeep Parhar.Fx 9.2 413ad016cb8SNavdeep Parharand 414ad016cb8SNavdeep Parhar.Fx 10.0 . 415f6e648b8SJohn BaldwinSupport for T6 cards first appeared in 416f6e648b8SJohn Baldwin.Fx 11.1 417f6e648b8SJohn Baldwinand 418f6e648b8SJohn Baldwin.Fx 12.0 . 41954e4ee71SNavdeep Parhar.Sh AUTHORS 42054e4ee71SNavdeep Parhar.An -nosplit 42154e4ee71SNavdeep ParharThe 42254e4ee71SNavdeep Parhar.Nm 42354e4ee71SNavdeep Parhardriver was written by 4246c899950SBaptiste Daroussin.An Navdeep Parhar Aq Mt np@FreeBSD.org . 425