1*3c838a9fSAndrew Rybchenko.\" Copyright (c) 2011-2015 Solarflare Communications Inc. 2e948693eSPhilip Paeps.\" All rights reserved. 3e948693eSPhilip Paeps.\" 4e948693eSPhilip Paeps.\" Redistribution and use in source and binary forms, with or without 5*3c838a9fSAndrew Rybchenko.\" modification, are permitted provided that the following conditions are met: 6e948693eSPhilip Paeps.\" 7*3c838a9fSAndrew Rybchenko.\" 1. Redistributions of source code must retain the above copyright notice, 8*3c838a9fSAndrew Rybchenko.\" this list of conditions and the following disclaimer. 9*3c838a9fSAndrew Rybchenko.\" 2. Redistributions in binary form must reproduce the above copyright notice, 10*3c838a9fSAndrew Rybchenko.\" this list of conditions and the following disclaimer in the documentation 11*3c838a9fSAndrew Rybchenko.\" and/or other materials provided with the distribution. 12*3c838a9fSAndrew Rybchenko.\" 13*3c838a9fSAndrew Rybchenko.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14*3c838a9fSAndrew Rybchenko.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15*3c838a9fSAndrew Rybchenko.\" THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16*3c838a9fSAndrew Rybchenko.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17*3c838a9fSAndrew Rybchenko.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18*3c838a9fSAndrew Rybchenko.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19*3c838a9fSAndrew Rybchenko.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20*3c838a9fSAndrew Rybchenko.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 21*3c838a9fSAndrew Rybchenko.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22*3c838a9fSAndrew Rybchenko.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 23*3c838a9fSAndrew Rybchenko.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24*3c838a9fSAndrew Rybchenko.\" 25*3c838a9fSAndrew Rybchenko.\" The views and conclusions contained in the software and documentation are 26*3c838a9fSAndrew Rybchenko.\" those of the authors and should not be interpreted as representing official 27*3c838a9fSAndrew Rybchenko.\" policies, either expressed or implied, of the FreeBSD Project. 28e948693eSPhilip Paeps.\" 29e948693eSPhilip Paeps.\" $FreeBSD$ 30e948693eSPhilip Paeps.\" 3100007ed4SAndrew Rybchenko.Dd February 22, 2015 32e948693eSPhilip Paeps.Dt SFXGE 4 33e948693eSPhilip Paeps.Os 34e948693eSPhilip Paeps.Sh NAME 35e948693eSPhilip Paeps.Nm sfxge 36e948693eSPhilip Paeps.Nd "Solarflare 10Gb Ethernet adapter driver" 37e948693eSPhilip Paeps.Sh SYNOPSIS 38e948693eSPhilip PaepsTo compile this driver into the kernel, 39e948693eSPhilip Paepsplace the following lines in your 40e948693eSPhilip Paepskernel configuration file: 41e948693eSPhilip Paeps.Bd -ragged -offset indent 42e948693eSPhilip Paeps.Cd "device sfxge" 43e948693eSPhilip Paeps.Ed 44e948693eSPhilip Paeps.Pp 45e948693eSPhilip PaepsTo load the driver as a 46e948693eSPhilip Paepsmodule at boot time, place the following line in 47e948693eSPhilip Paeps.Xr loader.conf 5 : 48e948693eSPhilip Paeps.Bd -literal -offset indent 49e948693eSPhilip Paepssfxge_load="YES" 50e948693eSPhilip Paeps.Ed 51e948693eSPhilip Paeps.Sh DESCRIPTION 52e948693eSPhilip PaepsThe 53e948693eSPhilip Paeps.Nm 54e948693eSPhilip Paepsdriver provides support for 10Gb Ethernet adapters based on 55d21f98cbSChristian BruefferSolarflare SFC9000 family controllers. 56d21f98cbSChristian BruefferThe driver supports jumbo 57e948693eSPhilip Paepsframes, transmit/receive checksum offload, TCP Segmentation Offload 58e948693eSPhilip Paeps(TSO), Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO, 59e948693eSPhilip Paepsand Receive Side Scaling (RSS) using MSI-X interrupts. 60e948693eSPhilip Paeps.Pp 61e948693eSPhilip PaepsThe driver allocates 1 receive queue, transmit queue, event queue and 62d21f98cbSChristian BruefferIRQ per CPU up to a maximum of 64. 63d21f98cbSChristian BruefferIRQ affinities should be spread out using 64814b16baSGlen Barber.Xr cpuset 1 . 65e948693eSPhilip PaepsInterrupt moderation may be controlled through the sysctl 66d21f98cbSChristian Brueffer.Va dev.sfxge.%d.int_mod 67d21f98cbSChristian Brueffer(units are microseconds). 68e948693eSPhilip Paeps.Pp 69e948693eSPhilip PaepsFor more information on configuring this device, see 70e948693eSPhilip Paeps.Xr ifconfig 8 . 71e948693eSPhilip Paeps.Pp 72e948693eSPhilip PaepsA large number of MAC, PHY and data path statistics are available 73d21f98cbSChristian Bruefferunder the sysctl 74d21f98cbSChristian Brueffer.Va dev.sfxge.%d.stats . 75d21f98cbSChristian BruefferThe adapter's VPD 76e948693eSPhilip Paepsfields including its serial number are available under the sysctl 77d21f98cbSChristian Brueffer.Va dev.sfxge.%d.vpd . 78e948693eSPhilip Paeps.Sh HARDWARE 79e948693eSPhilip PaepsThe 80e948693eSPhilip Paeps.Nm 81e948693eSPhilip Paepsdriver supports all 10Gb Ethernet adapters based on Solarflare SFC9000 82e948693eSPhilip Paepsfamily controllers. 83316ee70dSGeorge V. Neville-Neil.Sh LOADER TUNABLES 84316ee70dSGeorge V. Neville-NeilTunables can be set at the 85316ee70dSGeorge V. Neville-Neil.Xr loader 8 86316ee70dSGeorge V. Neville-Neilprompt before booting the kernel or stored in 87316ee70dSGeorge V. Neville-Neil.Xr loader.conf 5 . 88316ee70dSGeorge V. Neville-NeilActual values can be obtained using 89316ee70dSGeorge V. Neville-Neil.Xr sysctl 8 . 90316ee70dSGeorge V. Neville-Neil.Bl -tag -width indent 91316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.rx_ring 9298286ba5SBenjamin KadukThe maximum number of descriptors in a receive queue ring. 93316ee70dSGeorge V. Neville-NeilSupported values are: 512, 1024, 2048 and 4096. 94316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_ring 9598286ba5SBenjamin KadukThe maximum number of descriptors in a transmit queue ring. 96316ee70dSGeorge V. Neville-NeilSupported values are: 512, 1024, 2048 and 4096. 97316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_dpl_get_max 9898286ba5SBenjamin KadukThe maximum length of the deferred packet 9998286ba5SBenjamin Kaduk.Dq get-list 10093929f25SAndrew Rybchenkofor queued transmit packets (TCP and non-TCP), used only if the transmit 10193929f25SAndrew Rybchenkoqueue lock can be acquired. 10298286ba5SBenjamin KadukIf a packet is dropped, the 10393929f25SAndrew Rybchenko.Va tx_get_overflow 10493929f25SAndrew Rybchenkocounter is incremented and the local sender receives ENOBUFS. 10593929f25SAndrew RybchenkoThe value must be greater than 0. 10693929f25SAndrew Rybchenko.It Va hw.sfxge.tx_dpl_get_non_tcp_max 10793929f25SAndrew RybchenkoThe maximum number of non-TCP packets in the deferred packet 10893929f25SAndrew Rybchenko.Dq get-list 10993929f25SAndrew Rybchenko, used only if the transmit queue lock can be acquired. 11000007ed4SAndrew RybchenkoIf a packet is dropped, the 11193929f25SAndrew Rybchenko.Va tx_get_non_tcp_overflow 11298286ba5SBenjamin Kadukcounter is incremented and the local sender receives ENOBUFS. 11398286ba5SBenjamin KadukThe value must be greater than 0. 114316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_dpl_put_max 11598286ba5SBenjamin KadukThe maximum length of the deferred packet 11698286ba5SBenjamin Kaduk.Dq put-list 11798286ba5SBenjamin Kadukfor queued transmit 118316ee70dSGeorge V. Neville-Neilpackets, used if the transmit queue lock cannot be acquired. 11998286ba5SBenjamin KadukIf a packet is dropped, the 12093929f25SAndrew Rybchenko.Va tx_put_overflow 12198286ba5SBenjamin Kadukcounter is incremented and the local sender receives ENOBUFS. 12298286ba5SBenjamin KadukThe value must be greater than or equal to 0. 123*3c838a9fSAndrew Rybchenko.It Va hw.sfxge.tso_fw_assisted 124*3c838a9fSAndrew RybchenkoEnable/disable usage of FW-assisted TSO if supported by NIC firmware. 125*3c838a9fSAndrew RybchenkoEnabled by default. 126d9e49c83SAndrew Rybchenko.It Va hw.sfxge.N.max_rss_channels 127d9e49c83SAndrew RybchenkoThe maximum number of allocated RSS channels for the Nth adapter. 128d9e49c83SAndrew RybchenkoIf set to 0 or unset, the number of channels is determined by the number 129d9e49c83SAndrew Rybchenkoof CPU cores. 130245d1576SAndrew Rybchenko.It Va hw.sfxge.lro.table_size 131245d1576SAndrew RybchenkoSize of the LRO hash table. 132245d1576SAndrew RybchenkoMust be a power of 2. 133245d1576SAndrew RybchenkoA larger table means we can accelerate a larger number of streams. 134245d1576SAndrew Rybchenko.It Va hw.sfxge.lro.chain_max 135245d1576SAndrew RybchenkoThe maximum length of a hash chain. 136245d1576SAndrew RybchenkoIf chains get too long then the lookup time increases and may exceed 137245d1576SAndrew Rybchenkothe benefit of LRO. 138245d1576SAndrew Rybchenko.It Va hw.sfxge.lro.idle_ticks 139245d1576SAndrew RybchenkoThe maximum time (in ticks) that a connection can be idle before it's LRO 140245d1576SAndrew Rybchenkostate is discarded. 141245d1576SAndrew Rybchenko.It Va hw.sfxge.lro.slow_start_packets 142245d1576SAndrew RybchenkoNumber of packets with payload that must arrive in-order before a connection 143245d1576SAndrew Rybchenkois eligible for LRO. 144245d1576SAndrew RybchenkoThe idea is we should avoid coalescing segments when the sender is in 145245d1576SAndrew Rybchenkoslow-start because reducing the ACK rate can damage performance. 146245d1576SAndrew Rybchenko.It Va hw.sfxge.lro.loss_packets 147245d1576SAndrew RybchenkoNumber of packets with payload that must arrive in-order following loss 148245d1576SAndrew Rybchenkobefore a connection is eligible for LRO. 149245d1576SAndrew RybchenkoThe idea is we should avoid coalescing segments when the sender is recovering 150245d1576SAndrew Rybchenkofrom loss, because reducing the ACK rate can damage performance. 15198286ba5SBenjamin Kaduk.El 152e948693eSPhilip Paeps.Sh SUPPORT 153e948693eSPhilip PaepsFor general information and support, 154e948693eSPhilip Paepsgo to the Solarflare support website at: 155e948693eSPhilip Paeps.Pa https://support.solarflare.com . 156e948693eSPhilip Paeps.Sh SEE ALSO 1570b3504fdSChristian Brueffer.Xr cpuset 1 , 158e948693eSPhilip Paeps.Xr arp 4 , 159e948693eSPhilip Paeps.Xr netintro 4 , 160e948693eSPhilip Paeps.Xr ng_ether 4 , 161e948693eSPhilip Paeps.Xr vlan 4 , 162e948693eSPhilip Paeps.Xr ifconfig 8 163e948693eSPhilip Paeps.Sh AUTHORS 164e948693eSPhilip PaepsThe 165e948693eSPhilip Paeps.Nm 166e948693eSPhilip Paepsdriver was written by 167e948693eSPhilip Paeps.An Philip Paeps 168e948693eSPhilip Paepsand 169e948693eSPhilip Paeps.An Solarflare Communications, Inc. 170