xref: /freebsd/share/man/man4/sfxge.4 (revision 3c838a9f51e4d2a7753500d167ba7dbbb9827c82)
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