xref: /freebsd/share/man/man4/ixl.4 (revision f4bd011a382269965a4f75aa01b6e6b1ce2a3eba)
19343a1cdSEric Joyner.\" Copyright (c) 2013-2018, Intel Corporation
20902f572SJack F Vogel.\" All rights reserved.
30902f572SJack F Vogel.\"
40902f572SJack F Vogel.\" Redistribution and use in source and binary forms, with or without
50902f572SJack F Vogel.\" modification, are permitted provided that the following conditions are met:
60902f572SJack F Vogel.\"
70902f572SJack F Vogel.\"  1. Redistributions of source code must retain the above copyright notice,
80902f572SJack F Vogel.\"     this list of conditions and the following disclaimer.
90902f572SJack F Vogel.\"
100902f572SJack F Vogel.\"  2. Redistributions in binary form must reproduce the above copyright
110902f572SJack F Vogel.\"     notice, this list of conditions and the following disclaimer in the
120902f572SJack F Vogel.\"     documentation and/or other materials provided with the distribution.
130902f572SJack F Vogel.\"
140902f572SJack F Vogel.\"  3. Neither the name of the Intel Corporation nor the names of its
150902f572SJack F Vogel.\"     contributors may be used to endorse or promote products derived from
160902f572SJack F Vogel.\"     this software without specific prior written permission.
170902f572SJack F Vogel.\"
180902f572SJack F Vogel.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
190902f572SJack F Vogel.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
200902f572SJack F Vogel.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
210902f572SJack F Vogel.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
220902f572SJack F Vogel.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
230902f572SJack F Vogel.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
240902f572SJack F Vogel.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
250902f572SJack F Vogel.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
260902f572SJack F Vogel.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
270902f572SJack F Vogel.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
280902f572SJack F Vogel.\" POSSIBILITY OF SUCH DAMAGE.
290902f572SJack F Vogel.\"
300902f572SJack F Vogel.\" * Other names and brands may be claimed as the property of others.
310902f572SJack F Vogel.\"
32ec54a314SAlan Somers.Dd August 1, 2023
330902f572SJack F Vogel.Dt IXL 4
340902f572SJack F Vogel.Os
350902f572SJack F Vogel.Sh NAME
360902f572SJack F Vogel.Nm ixl
379343a1cdSEric Joyner.Nd "Intel Ethernet 700 Series Driver"
380902f572SJack F Vogel.Sh SYNOPSIS
399343a1cdSEric JoynerTo compile this driver into the kernel, place the following lines in your
400902f572SJack F Vogelkernel configuration file:
410902f572SJack F Vogel.Bd -ragged -offset indent
42c75f49f7SKonstantin Belousov.Cd "device iflib"
430902f572SJack F Vogel.Cd "device ixl"
440902f572SJack F Vogel.Ed
450902f572SJack F Vogel.Pp
469343a1cdSEric JoynerTo load the driver as a module at boot time, place the following lines in
470902f572SJack F Vogel.Xr loader.conf 5 :
480902f572SJack F Vogel.Bd -literal -offset indent
490902f572SJack F Vogelif_ixl_load="YES"
500902f572SJack F Vogel.Ed
510902f572SJack F Vogel.Sh DESCRIPTION
529343a1cdSEric Joyner.Ss Features
530902f572SJack F VogelThe
540902f572SJack F Vogel.Nm
559343a1cdSEric Joynerdriver provides support for any PCI Express adapter or LOM
569343a1cdSEric Joyner(LAN On Motherboard)
579343a1cdSEric Joynerin the Intel Ethernet 700 Series.
589343a1cdSEric JoynerAs of this writing, the series includes devices with these model numbers:
599343a1cdSEric Joyner.Pp
609343a1cdSEric Joyner.Bl -bullet -compact
619343a1cdSEric Joyner.It
629343a1cdSEric JoynerXL710 (40G)
639343a1cdSEric Joyner.It
649343a1cdSEric JoynerX710 (10G)
659343a1cdSEric Joyner.It
669343a1cdSEric JoynerXXV710 (25G)
679343a1cdSEric Joyner.It
689343a1cdSEric JoynerX722 (10G)
699343a1cdSEric Joyner.El
709343a1cdSEric Joyner.Pp
710902f572SJack F VogelThe driver supports Jumbo Frames, TX/RX checksum offload,
720902f572SJack F VogelTCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
730902f572SJack F Vogeltag insertion/extraction, VLAN checksum offload, VLAN TSO, and
740902f572SJack F VogelReceive Side Steering (RSS), all for both IPv4 and IPv6.
750902f572SJack F VogelFor further hardware information and questions related to hardware
760902f572SJack F Vogelrequirements, see
7724b0977bSMateusz Piotrowski.Lk http://support.intel.com/ .
780902f572SJack F Vogel.Pp
790902f572SJack F VogelSupport for Jumbo Frames is provided via the interface MTU setting.
800902f572SJack F VogelSelecting an MTU larger than 1500 bytes with the
810902f572SJack F Vogel.Xr ifconfig 8
820902f572SJack F Vogelutility configures the adapter to receive and transmit Jumbo Frames.
830902f572SJack F VogelThe maximum MTU size for Jumbo Frames is 9706.
840902f572SJack F Vogel.Pp
850902f572SJack F VogelOffloads are also controlled via the interface, for instance,
860902f572SJack F Vogelchecksumming for both IPv4 and IPv6 can be set and unset, TSO4
870902f572SJack F Vogeland/or TSO6, and finally LRO can be set and unset.
880902f572SJack F Vogel.Pp
890902f572SJack F VogelFor more information on configuring this device, see
900902f572SJack F Vogel.Xr ifconfig 8 .
919343a1cdSEric Joyner.Ss Additional Utilities
929343a1cdSEric JoynerThere are additional tools available from Intel to help configure and update
939343a1cdSEric Joynerthe adapters covered by this driver.
949343a1cdSEric JoynerThese tools can be downloaded directly from Intel at
9524b0977bSMateusz Piotrowski.Lk https://downloadcenter.intel.com ,
969343a1cdSEric Joynerby searching for their names, or by installing certain packages:
97f15efe26SMateusz Piotrowski.Bl -bullet
989343a1cdSEric Joyner.It
999343a1cdSEric JoynerTo change the behavior of the QSFP+ ports on XL710 adapters, use the
1009343a1cdSEric JoynerIntel QCU (QSFP+ configuration utility); installed by the
1019343a1cdSEric Joyner.Em sysutils/intel-qcu
1029343a1cdSEric Joynerpackage.
1039343a1cdSEric Joyner.It
1049343a1cdSEric JoynerTo update the firmware on an adapter, use the Intel Non-Volatile Memory (NVM)
1059343a1cdSEric JoynerUpdate Utility; installed by the
106ec54a314SAlan Somers.Em sysutils/intel-nvmupdate-10g ,
107ec54a314SAlan Somers.Em sysutils/intel-nvmupdate-40g ,
108ec54a314SAlan Somersor
109ec54a314SAlan Somers.Em sysutils/intel-nvmupdate-100g ,
1109343a1cdSEric Joynerpackage.
1119343a1cdSEric Joyner.It
1129343a1cdSEric JoynerDrivers are provided by Intel outside of the
1139343a1cdSEric Joyner.Fx
1149343a1cdSEric Joynerkernel; install the
1159343a1cdSEric Joyner.Em net/intel-ixl-kmod
1169343a1cdSEric Joynerpackage for the latest driver.
1179343a1cdSEric Joyner.El
1180902f572SJack F Vogel.Sh HARDWARE
119*f4bd011aSAlexander ZiaeeThe
120*f4bd011aSAlexander Ziaee.Nm
121*f4bd011aSAlexander Ziaeedriver supports the Intel Ethernet 700 series.
122*f4bd011aSAlexander ZiaeeMost adapters in this series with SFP+/SFP28/QSFP+ cages
1239343a1cdSEric Joynerhave firmware that requires that Intel qualified modules are used; these
1249343a1cdSEric Joynerqualified modules are listed below.
1259343a1cdSEric JoynerThis qualification check cannot be disabled by the driver.
1269343a1cdSEric Joyner.Pp
1270902f572SJack F VogelThe
1280902f572SJack F Vogel.Nm
1299343a1cdSEric Joynerdriver supports 40Gb Ethernet adapters with these QSFP+ modules:
1300902f572SJack F Vogel.Pp
1310902f572SJack F Vogel.Bl -bullet -compact
1320902f572SJack F Vogel.It
1339343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-SR4 E40GQSFPSR
1340902f572SJack F Vogel.It
1359343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-LR4 E40GQSFPLR
1360902f572SJack F Vogel.El
1370902f572SJack F Vogel.Pp
1380902f572SJack F VogelThe
1390902f572SJack F Vogel.Nm
1409343a1cdSEric Joynerdriver supports 25Gb Ethernet adapters with these SFP28 modules:
1410902f572SJack F Vogel.Pp
1420902f572SJack F Vogel.Bl -bullet -compact
1430902f572SJack F Vogel.It
1449343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SR
1450902f572SJack F Vogel.It
1469343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SRX (Extended Temp)
1470902f572SJack F Vogel.El
1480902f572SJack F Vogel.Pp
1490902f572SJack F VogelThe
1500902f572SJack F Vogel.Nm
1519343a1cdSEric Joynerdriver supports 25Gb and 10Gb Ethernet adapters with these SFP+ modules:
1520902f572SJack F Vogel.Pp
1530902f572SJack F Vogel.Bl -bullet -compact
1540902f572SJack F Vogel.It
1559343a1cdSEric JoynerIntel 1G/10G SFP+ SR FTLX8571D3BCV-IT
1560902f572SJack F Vogel.It
1579343a1cdSEric JoynerIntel 1G/10G SFP+ SR AFBR-703SDZ-IN2
1589343a1cdSEric Joyner.It
1599343a1cdSEric JoynerIntel 1G/10G SFP+ LR FTLX1471D3BCV-IT
1609343a1cdSEric Joyner.It
1619343a1cdSEric JoynerIntel 1G/10G SFP+ LR AFCT-701SDZ-IN2
1629343a1cdSEric Joyner.It
1639343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-SR E10GSFPSR
1649343a1cdSEric Joyner.It
1659343a1cdSEric JoynerIntel 10G SFP+ 10GBASE-SR E10GSFPSRX (Extended Temp)
1669343a1cdSEric Joyner.It
1679343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-LR E10GSFPLR
1680902f572SJack F Vogel.El
1690902f572SJack F Vogel.Pp
1709343a1cdSEric JoynerNote that adapters also support all passive and active
1710902f572SJack F Vogellimiting direct attach cables that comply with SFF-8431 v4.1 and
1720902f572SJack F VogelSFF-8472 v10.4 specifications.
1739343a1cdSEric Joyner.Pp
1749343a1cdSEric JoynerThis is not an exhaustive list; please consult product documentation for an
1759343a1cdSEric Joynerup-to-date list of supported media.
1760902f572SJack F Vogel.Sh LOADER TUNABLES
1770902f572SJack F VogelTunables can be set at the
1780902f572SJack F Vogel.Xr loader 8
1790902f572SJack F Vogelprompt before booting the kernel or stored in
1800902f572SJack F Vogel.Xr loader.conf 5 .
1810902f572SJack F Vogel.Bl -tag -width indent
1820902f572SJack F Vogel.It Va hw.ixl.rx_itr
1839343a1cdSEric JoynerThe RX interrupt rate value, set to 62 (124 usec) by default.
1840902f572SJack F Vogel.It Va hw.ixl.tx_itr
1859343a1cdSEric JoynerThe TX interrupt rate value, set to 122 (244 usec) by default.
1869343a1cdSEric Joyner.It Va hw.ixl.i2c_access_method
1879343a1cdSEric JoynerAccess method that driver will use for I2C read and writes via
1889343a1cdSEric Joyner.Xr sysctl 8
1899343a1cdSEric Joyneror verbose
1909343a1cdSEric Joyner.Xr ifconfig 8
1919343a1cdSEric Joynerinformation display:
1929343a1cdSEric Joyner.Bd -literal -offset indent
1939343a1cdSEric Joyner0 - best available method
1949343a1cdSEric Joyner1 - bit bang via I2CPARAMS register
1959343a1cdSEric Joyner2 - register read/write via I2CCMD register
1969343a1cdSEric Joyner3 - Use Admin Queue command (default best)
1979343a1cdSEric Joyner.Ed
1989343a1cdSEric Joyner.Pp
1999343a1cdSEric JoynerUsing the Admin Queue is only supported on 710 devices with FW version 1.7 or
2009343a1cdSEric Joynernewer.
2019343a1cdSEric JoynerSet to 0 by default.
2029343a1cdSEric Joyner.It Va hw.ixl.enable_tx_fc_filter
2039343a1cdSEric JoynerFilter out packets with Ethertype 0x8808 from being sent out by non-adapter
2049343a1cdSEric Joynersources.
2059343a1cdSEric JoynerThis prevents (potentially untrusted) software or
2069343a1cdSEric Joyner.Xr iavf 4
2079343a1cdSEric Joynerdevices from sending out flow control packets and creating a DoS (Denial of
2089343a1cdSEric JoynerService) event.
2099343a1cdSEric JoynerEnabled by default.
2109343a1cdSEric Joyner.It Va hw.ixl.enable_head_writeback
2119343a1cdSEric JoynerWhen the driver is finding the last TX descriptor processed by the hardware,
2129343a1cdSEric Joyneruse a value written to memory by the hardware instead of scanning the
2139343a1cdSEric Joynerdescriptor ring for completed descriptors.
2149343a1cdSEric JoynerEnabled by default; disable to mimic the TX behavior found in
215cadb71e4SAlexander Ziaee.Xr ix 4 .
2160902f572SJack F Vogel.El
2170902f572SJack F Vogel.Sh SYSCTL PROCEDURES
2180902f572SJack F Vogel.Bl -tag -width indent
2199343a1cdSEric Joyner.It Va dev.ixl.#.fc
2209343a1cdSEric JoynerSets the 802.3x flow control mode that the adapter will advertise on the link.
2219343a1cdSEric JoynerA value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is TX pause.
2229343a1cdSEric Joyner.Pp
2239343a1cdSEric JoynerThe negotiated flow control setting can be viewed in
2249343a1cdSEric Joyner.Xr ifconfig 8 ,
2259343a1cdSEric Joynerin the interface's media field.
2269343a1cdSEric Joyner.It Va dev.ixl.#.advertise_speed
2279343a1cdSEric JoynerSet the speeds that the interface will advertise on the link.
2289343a1cdSEric Joyner.Va dev.ixl.#.supported_speeds
2299343a1cdSEric Joynercontains the speeds that are allowed to be set.
2309343a1cdSEric Joyner.It Va dev.ixl.#.current_speed
2319343a1cdSEric JoynerDisplays the current speed.
2329343a1cdSEric Joyner.It Va dev.ixl.#.fw_version
2339343a1cdSEric JoynerDisplays the current firmware and NVM versions of the adapter.
234fa6662b3SLutz Donnerhacke.It Va dev.ixl.#.debug.switch_vlans
235fa6662b3SLutz DonnerhackeSet the Ethertype used by the hardware itself to handle internal
236fa6662b3SLutz Donnerhackeservices.
237fa6662b3SLutz DonnerhackeFrames with this Ethertype will be dropped without notice.
238fa6662b3SLutz DonnerhackeDefaults to
239fa6662b3SLutz Donnerhacke.Dv 0x88a8 ,
240fa6662b3SLutz Donnerhackewhich is a well known number for IEEE 802.1ad VLAN stacking.
241fa6662b3SLutz DonnerhackeIf you need 802.1ad support, set this number to any another Ethertype i.e.
242fa6662b3SLutz Donnerhacke.Dv 0xffff .
243dc6a4165SChristian Brueffer.El
2449343a1cdSEric Joyner.Sh INTERRUPT STORMS
2450902f572SJack F VogelIt is important to note that 40G operation can generate high
2460902f572SJack F Vogelnumbers of interrupts, often incorrectly being interpreted as
247dc6a4165SChristian Brueffera storm condition in the kernel.
2489343a1cdSEric JoynerIt is suggested that this be resolved by setting:
2490902f572SJack F Vogel.Bl -tag -width indent
2500902f572SJack F Vogel.It Va hw.intr_storm_threshold: 0
251dc6a4165SChristian Brueffer.El
2529343a1cdSEric Joyner.Sh IOVCTL OPTIONS
2539343a1cdSEric JoynerThe driver supports additional optional parameters for created VFs
2549343a1cdSEric Joyner(Virtual Functions) when using
2559343a1cdSEric Joyner.Xr iovctl 8 :
2569343a1cdSEric Joyner.Bl -tag -width indent
2579343a1cdSEric Joyner.It mac-addr Pq unicast-mac
2589343a1cdSEric JoynerSet the Ethernet MAC address that the VF will use.
2599343a1cdSEric JoynerIf unspecified, the VF will use a randomly generated MAC address.
2609343a1cdSEric Joyner.It mac-anti-spoof Pq bool
2619343a1cdSEric JoynerPrevent the VF from sending Ethernet frames with a source address
2629343a1cdSEric Joynerthat does not match its own.
2639343a1cdSEric Joyner.It allow-set-mac Pq bool
2649343a1cdSEric JoynerAllow the VF to set its own Ethernet MAC address
2659343a1cdSEric Joyner.It allow-promisc Pq bool
2669343a1cdSEric JoynerAllow the VF to inspect all of the traffic sent to the port.
2679343a1cdSEric Joyner.It num-queues Pq uint16_t
2689343a1cdSEric JoynerSpecify the number of queues the VF will have.
2699343a1cdSEric JoynerBy default, this is set to the number of MSI-X vectors supported by the VF
2709343a1cdSEric Joynerminus one.
2719343a1cdSEric Joyner.El
2729343a1cdSEric Joyner.Pp
2739343a1cdSEric JoynerAn up to date list of parameters and their defaults can be found by using
2749343a1cdSEric Joyner.Xr iovctl 8
2759343a1cdSEric Joynerwith the -S option.
2760902f572SJack F Vogel.Sh SUPPORT
2770902f572SJack F VogelFor general information and support,
2780902f572SJack F Vogelgo to the Intel support website at:
27924b0977bSMateusz Piotrowski.Lk http://support.intel.com/ .
2800902f572SJack F Vogel.Pp
2810902f572SJack F VogelIf an issue is identified with this driver with a supported adapter,
2820902f572SJack F Vogelemail all the specific information related to the issue to
2839343a1cdSEric Joyner.Mt freebsd@intel.com .
2840902f572SJack F Vogel.Sh SEE ALSO
2850902f572SJack F Vogel.Xr arp 4 ,
2869343a1cdSEric Joyner.Xr iavf 4 ,
2874d302c1aSKevin Lo.Xr iflib 4 ,
2880902f572SJack F Vogel.Xr netintro 4 ,
2890902f572SJack F Vogel.Xr vlan 4 ,
2909343a1cdSEric Joyner.Xr ifconfig 8 ,
2914d302c1aSKevin Lo.Xr iovctl 8
2920902f572SJack F Vogel.Sh HISTORY
2930902f572SJack F VogelThe
2940902f572SJack F Vogel.Nm
2950902f572SJack F Vogeldevice driver first appeared in
2960902f572SJack F Vogel.Fx 10.1 .
2979343a1cdSEric JoynerIt was converted to use
2989343a1cdSEric Joyner.Xr iflib 9
2999343a1cdSEric Joynerin
3009343a1cdSEric Joyner.Fx 12 .
3010902f572SJack F Vogel.Sh AUTHORS
3020902f572SJack F Vogel.An -nosplit
3030902f572SJack F VogelThe
3040902f572SJack F Vogel.Nm
3050902f572SJack F Vogeldriver was written by
3069343a1cdSEric Joyner.An Jack Vogel Aq Mt jfv@freebsd.org
3070902f572SJack F Vogeland
3089343a1cdSEric Joyner.An Eric Joyner Aq Mt erj@freebsd.org .
309