xref: /freebsd/share/man/man4/sfxge.4 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1929c7febSAndrew Rybchenko.\" Copyright (c) 2011-2016 Solarflare Communications Inc.
2e948693eSPhilip Paeps.\" All rights reserved.
3e948693eSPhilip Paeps.\"
4e948693eSPhilip Paeps.\" Redistribution and use in source and binary forms, with or without
53c838a9fSAndrew Rybchenko.\" modification, are permitted provided that the following conditions are met:
6e948693eSPhilip Paeps.\"
73c838a9fSAndrew Rybchenko.\" 1. Redistributions of source code must retain the above copyright notice,
83c838a9fSAndrew Rybchenko.\"    this list of conditions and the following disclaimer.
93c838a9fSAndrew Rybchenko.\" 2. Redistributions in binary form must reproduce the above copyright notice,
103c838a9fSAndrew Rybchenko.\"    this list of conditions and the following disclaimer in the documentation
113c838a9fSAndrew Rybchenko.\"    and/or other materials provided with the distribution.
123c838a9fSAndrew Rybchenko.\"
133c838a9fSAndrew Rybchenko.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
143c838a9fSAndrew Rybchenko.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
153c838a9fSAndrew Rybchenko.\" THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
163c838a9fSAndrew Rybchenko.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
173c838a9fSAndrew Rybchenko.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
183c838a9fSAndrew Rybchenko.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
193c838a9fSAndrew Rybchenko.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
203c838a9fSAndrew Rybchenko.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
213c838a9fSAndrew Rybchenko.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
223c838a9fSAndrew Rybchenko.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
233c838a9fSAndrew Rybchenko.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
243c838a9fSAndrew Rybchenko.\"
253c838a9fSAndrew Rybchenko.\" The views and conclusions contained in the software and documentation are
263c838a9fSAndrew Rybchenko.\" those of the authors and should not be interpreted as representing official
273c838a9fSAndrew Rybchenko.\" policies, either expressed or implied, of the FreeBSD Project.
28e948693eSPhilip Paeps.\"
2900007ed4SAndrew Rybchenko.Dd February 22, 2015
30e948693eSPhilip Paeps.Dt SFXGE 4
31e948693eSPhilip Paeps.Os
32e948693eSPhilip Paeps.Sh NAME
33e948693eSPhilip Paeps.Nm sfxge
34e948693eSPhilip Paeps.Nd "Solarflare 10Gb Ethernet adapter driver"
35e948693eSPhilip Paeps.Sh SYNOPSIS
36e948693eSPhilip PaepsTo compile this driver into the kernel,
37e948693eSPhilip Paepsplace the following lines in your
38e948693eSPhilip Paepskernel configuration file:
39e948693eSPhilip Paeps.Bd -ragged -offset indent
40e948693eSPhilip Paeps.Cd "device sfxge"
41e948693eSPhilip Paeps.Ed
42e948693eSPhilip Paeps.Pp
43e948693eSPhilip PaepsTo load the driver as a
44e948693eSPhilip Paepsmodule at boot time, place the following line in
45e948693eSPhilip Paeps.Xr loader.conf 5 :
46e948693eSPhilip Paeps.Bd -literal -offset indent
47e948693eSPhilip Paepssfxge_load="YES"
48e948693eSPhilip Paeps.Ed
49e948693eSPhilip Paeps.Sh DESCRIPTION
50e948693eSPhilip PaepsThe
51e948693eSPhilip Paeps.Nm
52e948693eSPhilip Paepsdriver provides support for 10Gb Ethernet adapters based on
53*c6831b0bSAndrew RybchenkoSolarflare SFC9000 and XtremeScale X2 family controllers.
54d21f98cbSChristian BruefferThe driver supports jumbo
55e948693eSPhilip Paepsframes, transmit/receive checksum offload, TCP Segmentation Offload
56e948693eSPhilip Paeps(TSO), Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO,
57e948693eSPhilip Paepsand Receive Side Scaling (RSS) using MSI-X interrupts.
58e948693eSPhilip Paeps.Pp
59e948693eSPhilip PaepsThe driver allocates 1 receive queue, transmit queue, event queue and
60d21f98cbSChristian BruefferIRQ per CPU up to a maximum of 64.
61d21f98cbSChristian BruefferIRQ affinities should be spread out using
62814b16baSGlen Barber.Xr cpuset 1 .
63e948693eSPhilip PaepsInterrupt moderation may be controlled through the sysctl
64d21f98cbSChristian Brueffer.Va dev.sfxge.%d.int_mod
65d21f98cbSChristian Brueffer(units are microseconds).
66e948693eSPhilip Paeps.Pp
67e948693eSPhilip PaepsFor more information on configuring this device, see
68e948693eSPhilip Paeps.Xr ifconfig 8 .
69e948693eSPhilip Paeps.Pp
70e948693eSPhilip PaepsA large number of MAC, PHY and data path statistics are available
71d21f98cbSChristian Bruefferunder the sysctl
72d21f98cbSChristian Brueffer.Va dev.sfxge.%d.stats .
73d21f98cbSChristian BruefferThe adapter's VPD
74e948693eSPhilip Paepsfields including its serial number are available under the sysctl
75d21f98cbSChristian Brueffer.Va dev.sfxge.%d.vpd .
76e948693eSPhilip Paeps.Sh HARDWARE
77e948693eSPhilip PaepsThe
78e948693eSPhilip Paeps.Nm
79e948693eSPhilip Paepsdriver supports all 10Gb Ethernet adapters based on Solarflare SFC9000
80e948693eSPhilip Paepsfamily controllers.
81316ee70dSGeorge V. Neville-Neil.Sh LOADER TUNABLES
82316ee70dSGeorge V. Neville-NeilTunables can be set at the
83316ee70dSGeorge V. Neville-Neil.Xr loader 8
84316ee70dSGeorge V. Neville-Neilprompt before booting the kernel or stored in
85316ee70dSGeorge V. Neville-Neil.Xr loader.conf 5 .
86316ee70dSGeorge V. Neville-NeilActual values can be obtained using
87316ee70dSGeorge V. Neville-Neil.Xr sysctl 8 .
88316ee70dSGeorge V. Neville-Neil.Bl -tag -width indent
89316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.rx_ring
9098286ba5SBenjamin KadukThe maximum number of descriptors in a receive queue ring.
91316ee70dSGeorge V. Neville-NeilSupported values are: 512, 1024, 2048 and 4096.
92316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_ring
9398286ba5SBenjamin KadukThe maximum number of descriptors in a transmit queue ring.
94316ee70dSGeorge V. Neville-NeilSupported values are: 512, 1024, 2048 and 4096.
95316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_dpl_get_max
9698286ba5SBenjamin KadukThe maximum length of the deferred packet
9798286ba5SBenjamin Kaduk.Dq get-list
9893929f25SAndrew Rybchenkofor queued transmit packets (TCP and non-TCP), used only if the transmit
9993929f25SAndrew Rybchenkoqueue lock can be acquired.
10098286ba5SBenjamin KadukIf a packet is dropped, the
10193929f25SAndrew Rybchenko.Va tx_get_overflow
10293929f25SAndrew Rybchenkocounter is incremented and the local sender receives ENOBUFS.
10393929f25SAndrew RybchenkoThe value must be greater than 0.
10493929f25SAndrew Rybchenko.It Va hw.sfxge.tx_dpl_get_non_tcp_max
10593929f25SAndrew RybchenkoThe maximum number of non-TCP packets in the deferred packet
10693929f25SAndrew Rybchenko.Dq get-list
10793929f25SAndrew Rybchenko, used only if the transmit queue lock can be acquired.
10800007ed4SAndrew RybchenkoIf a packet is dropped, the
10993929f25SAndrew Rybchenko.Va tx_get_non_tcp_overflow
11098286ba5SBenjamin Kadukcounter is incremented and the local sender receives ENOBUFS.
11198286ba5SBenjamin KadukThe value must be greater than 0.
112316ee70dSGeorge V. Neville-Neil.It Va hw.sfxge.tx_dpl_put_max
11398286ba5SBenjamin KadukThe maximum length of the deferred packet
11498286ba5SBenjamin Kaduk.Dq put-list
11598286ba5SBenjamin Kadukfor queued transmit
116316ee70dSGeorge V. Neville-Neilpackets, used if the transmit queue lock cannot be acquired.
11798286ba5SBenjamin KadukIf a packet is dropped, the
11893929f25SAndrew Rybchenko.Va tx_put_overflow
11998286ba5SBenjamin Kadukcounter is incremented and the local sender receives ENOBUFS.
12098286ba5SBenjamin KadukThe value must be greater than or equal to 0.
1213c838a9fSAndrew Rybchenko.It Va hw.sfxge.tso_fw_assisted
122a45a0da1SAndrew RybchenkoBitmask to enable/disable usage of FW-assisted TSO version if supported
123a45a0da1SAndrew Rybchenkoby NIC firmware.
124a45a0da1SAndrew RybchenkoFATSOv1 (bit 0) and FATSOv2 (bit 1) are supported.
125a45a0da1SAndrew RybchenkoAll enabled 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.
1519c2c444bSAndrew Rybchenko.It Va hw.sfxge.mcdi_logging
1529c2c444bSAndrew RybchenkoEnable logging of MCDI protocol messages  (only available if enabled at compile-time).
1539c2c444bSAndrew Rybchenko.It Va hw.sfxge.N.mcdi_logging
15425972509SEdward Tomasz NapieralaEnable or disable logging of MCDI protocol messages on a per-port basis.
15525972509SEdward Tomasz NapieralaThe default for each port will be the value of
1569c2c444bSAndrew Rybchenko.Va hw.sfxge.mcdi_logging.
1579c2c444bSAndrew RybchenkoThe logging may also be enabled or disabled after the driver is loaded using the sysctl
1589c2c444bSAndrew Rybchenko.Va dev.sfxge.%d.mcdi_logging.
15958223d5bSAndrew Rybchenko.It Va hw.sfxge.stats_update_period_ms
16058223d5bSAndrew RybchenkoPeriod in milliseconds to refresh interface statistics from hardware.
16158223d5bSAndrew RybchenkoThe accepted range is 0 to 65535, the default is 1000 (1 second).
16258223d5bSAndrew RybchenkoUse zero value to disable periodic statistics update.
16358223d5bSAndrew RybchenkoSupported on SFN8xxx series adapters with firmware v6.2.1.1033 and later and
164*c6831b0bSAndrew RybchenkoSFN5xxx, SFN6xxx and XtremeScale X2xxx series adapters.
165*c6831b0bSAndrew RybchenkoSFN7xxx series adapters and sfN8xxx series with earlier firmware use a
16658223d5bSAndrew Rybchenkofixed 1000 milliseconds statistics update period.
167a0e88689SAndrew RybchenkoThe period may also be changed after the driver is loaded using the sysctl
168a0e88689SAndrew Rybchenko.Va dev.sfxge.%d.stats_update_period_ms .
16998286ba5SBenjamin Kaduk.El
170e948693eSPhilip Paeps.Sh SUPPORT
171e948693eSPhilip PaepsFor general information and support,
172e948693eSPhilip Paepsgo to the Solarflare support website at:
173e948693eSPhilip Paeps.Pa https://support.solarflare.com .
174e948693eSPhilip Paeps.Sh SEE ALSO
1750b3504fdSChristian Brueffer.Xr cpuset 1 ,
176e948693eSPhilip Paeps.Xr arp 4 ,
177e948693eSPhilip Paeps.Xr netintro 4 ,
178e948693eSPhilip Paeps.Xr ng_ether 4 ,
179e948693eSPhilip Paeps.Xr vlan 4 ,
180e948693eSPhilip Paeps.Xr ifconfig 8
181e948693eSPhilip Paeps.Sh AUTHORS
182e948693eSPhilip PaepsThe
183e948693eSPhilip Paeps.Nm
184e948693eSPhilip Paepsdriver was written by
185e948693eSPhilip Paeps.An Philip Paeps
186e948693eSPhilip Paepsand
187e948693eSPhilip Paeps.An Solarflare Communications, Inc.
188