1.\" Copyright (c) 2011 Solarflare Communications, Inc. 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd February 22, 2015 28.Dt SFXGE 4 29.Os 30.Sh NAME 31.Nm sfxge 32.Nd "Solarflare 10Gb Ethernet adapter driver" 33.Sh SYNOPSIS 34To compile this driver into the kernel, 35place the following lines in your 36kernel configuration file: 37.Bd -ragged -offset indent 38.Cd "device sfxge" 39.Ed 40.Pp 41To load the driver as a 42module at boot time, place the following line in 43.Xr loader.conf 5 : 44.Bd -literal -offset indent 45sfxge_load="YES" 46.Ed 47.Sh DESCRIPTION 48The 49.Nm 50driver provides support for 10Gb Ethernet adapters based on 51Solarflare SFC9000 family controllers. 52The driver supports jumbo 53frames, transmit/receive checksum offload, TCP Segmentation Offload 54(TSO), Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO, 55and Receive Side Scaling (RSS) using MSI-X interrupts. 56.Pp 57The driver allocates 1 receive queue, transmit queue, event queue and 58IRQ per CPU up to a maximum of 64. 59IRQ affinities should be spread out using 60.Xr cpuset 1 . 61Interrupt moderation may be controlled through the sysctl 62.Va dev.sfxge.%d.int_mod 63(units are microseconds). 64.Pp 65For more information on configuring this device, see 66.Xr ifconfig 8 . 67.Pp 68A large number of MAC, PHY and data path statistics are available 69under the sysctl 70.Va dev.sfxge.%d.stats . 71The adapter's VPD 72fields including its serial number are available under the sysctl 73.Va dev.sfxge.%d.vpd . 74.Sh HARDWARE 75The 76.Nm 77driver supports all 10Gb Ethernet adapters based on Solarflare SFC9000 78family controllers. 79.Sh LOADER TUNABLES 80Tunables can be set at the 81.Xr loader 8 82prompt before booting the kernel or stored in 83.Xr loader.conf 5 . 84Actual values can be obtained using 85.Xr sysctl 8 . 86.Bl -tag -width indent 87.It Va hw.sfxge.rx_ring 88The maximum number of descriptors in a receive queue ring. 89Supported values are: 512, 1024, 2048 and 4096. 90.It Va hw.sfxge.tx_ring 91The maximum number of descriptors in a transmit queue ring. 92Supported values are: 512, 1024, 2048 and 4096. 93.It Va hw.sfxge.tx_dpl_get_max 94The maximum length of the deferred packet 95.Dq get-list 96for queued transmit packets (TCP and non-TCP), used only if the transmit 97queue lock can be acquired. 98If a packet is dropped, the 99.Va tx_get_overflow 100counter is incremented and the local sender receives ENOBUFS. 101The value must be greater than 0. 102.It Va hw.sfxge.tx_dpl_get_non_tcp_max 103The maximum number of non-TCP packets in the deferred packet 104.Dq get-list 105, used only if the transmit queue lock can be acquired. 106If a packet is dropped, the 107.Va tx_get_non_tcp_overflow 108counter is incremented and the local sender receives ENOBUFS. 109The value must be greater than 0. 110.It Va hw.sfxge.tx_dpl_put_max 111The maximum length of the deferred packet 112.Dq put-list 113for queued transmit 114packets, used if the transmit queue lock cannot be acquired. 115If a packet is dropped, the 116.Va tx_put_overflow 117counter is incremented and the local sender receives ENOBUFS. 118The value must be greater than or equal to 0. 119.It Va hw.sfxge.N.max_rss_channels 120The maximum number of allocated RSS channels for the Nth adapter. 121If set to 0 or unset, the number of channels is determined by the number 122of CPU cores. 123.It Va hw.sfxge.lro.table_size 124Size of the LRO hash table. 125Must be a power of 2. 126A larger table means we can accelerate a larger number of streams. 127.It Va hw.sfxge.lro.chain_max 128The maximum length of a hash chain. 129If chains get too long then the lookup time increases and may exceed 130the benefit of LRO. 131.It Va hw.sfxge.lro.idle_ticks 132The maximum time (in ticks) that a connection can be idle before it's LRO 133state is discarded. 134.It Va hw.sfxge.lro.slow_start_packets 135Number of packets with payload that must arrive in-order before a connection 136is eligible for LRO. 137The idea is we should avoid coalescing segments when the sender is in 138slow-start because reducing the ACK rate can damage performance. 139.It Va hw.sfxge.lro.loss_packets 140Number of packets with payload that must arrive in-order following loss 141before a connection is eligible for LRO. 142The idea is we should avoid coalescing segments when the sender is recovering 143from loss, because reducing the ACK rate can damage performance. 144.El 145.Sh SUPPORT 146For general information and support, 147go to the Solarflare support website at: 148.Pa https://support.solarflare.com . 149.Sh SEE ALSO 150.Xr cpuset 1 , 151.Xr arp 4 , 152.Xr netintro 4 , 153.Xr ng_ether 4 , 154.Xr vlan 4 , 155.Xr ifconfig 8 156.Sh AUTHORS 157The 158.Nm 159driver was written by 160.An Philip Paeps 161and 162.An Solarflare Communications, Inc. 163