xref: /freebsd/share/man/man4/ixl.4 (revision 24b0977b88bf69df1062c6a9d2d0761c2ab14f07)
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.\"
320902f572SJack F Vogel.\" $FreeBSD$
330902f572SJack F Vogel.\"
34*24b0977bSMateusz Piotrowski.Dd June 27, 2020
350902f572SJack F Vogel.Dt IXL 4
360902f572SJack F Vogel.Os
370902f572SJack F Vogel.Sh NAME
380902f572SJack F Vogel.Nm ixl
399343a1cdSEric Joyner.Nd "Intel Ethernet 700 Series Driver"
400902f572SJack F Vogel.Sh SYNOPSIS
419343a1cdSEric JoynerTo compile this driver into the kernel, place the following lines in your
420902f572SJack F Vogelkernel configuration file:
430902f572SJack F Vogel.Bd -ragged -offset indent
44c75f49f7SKonstantin Belousov.Cd "device iflib"
450902f572SJack F Vogel.Cd "device ixl"
460902f572SJack F Vogel.Ed
470902f572SJack F Vogel.Pp
489343a1cdSEric JoynerTo load the driver as a module at boot time, place the following lines in
490902f572SJack F Vogel.Xr loader.conf 5 :
500902f572SJack F Vogel.Bd -literal -offset indent
510902f572SJack F Vogelif_ixl_load="YES"
520902f572SJack F Vogel.Ed
530902f572SJack F Vogel.Sh DESCRIPTION
549343a1cdSEric Joyner.Ss Features
550902f572SJack F VogelThe
560902f572SJack F Vogel.Nm
579343a1cdSEric Joynerdriver provides support for any PCI Express adapter or LOM
589343a1cdSEric Joyner(LAN On Motherboard)
599343a1cdSEric Joynerin the Intel Ethernet 700 Series.
609343a1cdSEric JoynerAs of this writing, the series includes devices with these model numbers:
619343a1cdSEric Joyner.Pp
629343a1cdSEric Joyner.Bl -bullet -compact
639343a1cdSEric Joyner.It
649343a1cdSEric JoynerXL710 (40G)
659343a1cdSEric Joyner.It
669343a1cdSEric JoynerX710 (10G)
679343a1cdSEric Joyner.It
689343a1cdSEric JoynerXXV710 (25G)
699343a1cdSEric Joyner.It
709343a1cdSEric JoynerX722 (10G)
719343a1cdSEric Joyner.El
729343a1cdSEric Joyner.Pp
730902f572SJack F VogelThe driver supports Jumbo Frames, TX/RX checksum offload,
740902f572SJack F VogelTCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
750902f572SJack F Vogeltag insertion/extraction, VLAN checksum offload, VLAN TSO, and
760902f572SJack F VogelReceive Side Steering (RSS), all for both IPv4 and IPv6.
770902f572SJack F VogelFor further hardware information and questions related to hardware
780902f572SJack F Vogelrequirements, see
79*24b0977bSMateusz Piotrowski.Lk http://support.intel.com/ .
800902f572SJack F Vogel.Pp
810902f572SJack F VogelSupport for Jumbo Frames is provided via the interface MTU setting.
820902f572SJack F VogelSelecting an MTU larger than 1500 bytes with the
830902f572SJack F Vogel.Xr ifconfig 8
840902f572SJack F Vogelutility configures the adapter to receive and transmit Jumbo Frames.
850902f572SJack F VogelThe maximum MTU size for Jumbo Frames is 9706.
860902f572SJack F Vogel.Pp
870902f572SJack F VogelOffloads are also controlled via the interface, for instance,
880902f572SJack F Vogelchecksumming for both IPv4 and IPv6 can be set and unset, TSO4
890902f572SJack F Vogeland/or TSO6, and finally LRO can be set and unset.
900902f572SJack F Vogel.Pp
910902f572SJack F VogelFor more information on configuring this device, see
920902f572SJack F Vogel.Xr ifconfig 8 .
939343a1cdSEric Joyner.Ss Additional Utilities
949343a1cdSEric JoynerThere are additional tools available from Intel to help configure and update
959343a1cdSEric Joynerthe adapters covered by this driver.
969343a1cdSEric JoynerThese tools can be downloaded directly from Intel at
97*24b0977bSMateusz Piotrowski.Lk https://downloadcenter.intel.com ,
989343a1cdSEric Joynerby searching for their names, or by installing certain packages:
999343a1cdSEric Joyner.Bl -item
1009343a1cdSEric Joyner.It
1019343a1cdSEric JoynerTo change the behavior of the QSFP+ ports on XL710 adapters, use the
1029343a1cdSEric JoynerIntel QCU (QSFP+ configuration utility); installed by the
1039343a1cdSEric Joyner.Em sysutils/intel-qcu
1049343a1cdSEric Joynerpackage.
1059343a1cdSEric Joyner.It
1069343a1cdSEric JoynerTo update the firmware on an adapter, use the Intel Non-Volatile Memory (NVM)
1079343a1cdSEric JoynerUpdate Utility; installed by the
1089343a1cdSEric Joyner.Em sysutils/intel-nvmupdate
1099343a1cdSEric Joynerpackage.
1109343a1cdSEric Joyner.It
1119343a1cdSEric JoynerDrivers are provided by Intel outside of the
1129343a1cdSEric Joyner.Fx
1139343a1cdSEric Joynerkernel; install the
1149343a1cdSEric Joyner.Em net/intel-ixl-kmod
1159343a1cdSEric Joynerpackage for the latest driver.
1169343a1cdSEric Joyner.El
1170902f572SJack F Vogel.Sh HARDWARE
1189343a1cdSEric JoynerMost adapters in the Intel Ethernet 700 Series with SFP+/SFP28/QSFP+ cages
1199343a1cdSEric Joynerhave firmware that requires that Intel qualified modules are used; these
1209343a1cdSEric Joynerqualified modules are listed below.
1219343a1cdSEric JoynerThis qualification check cannot be disabled by the driver.
1229343a1cdSEric Joyner.Pp
1230902f572SJack F VogelThe
1240902f572SJack F Vogel.Nm
1259343a1cdSEric Joynerdriver supports 40Gb Ethernet adapters with these QSFP+ modules:
1260902f572SJack F Vogel.Pp
1270902f572SJack F Vogel.Bl -bullet -compact
1280902f572SJack F Vogel.It
1299343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-SR4 E40GQSFPSR
1300902f572SJack F Vogel.It
1319343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-LR4 E40GQSFPLR
1320902f572SJack F Vogel.El
1330902f572SJack F Vogel.Pp
1340902f572SJack F VogelThe
1350902f572SJack F Vogel.Nm
1369343a1cdSEric Joynerdriver supports 25Gb Ethernet adapters with these SFP28 modules:
1370902f572SJack F Vogel.Pp
1380902f572SJack F Vogel.Bl -bullet -compact
1390902f572SJack F Vogel.It
1409343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SR
1410902f572SJack F Vogel.It
1429343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SRX (Extended Temp)
1430902f572SJack F Vogel.El
1440902f572SJack F Vogel.Pp
1450902f572SJack F VogelThe
1460902f572SJack F Vogel.Nm
1479343a1cdSEric Joynerdriver supports 25Gb and 10Gb Ethernet adapters with these SFP+ modules:
1480902f572SJack F Vogel.Pp
1490902f572SJack F Vogel.Bl -bullet -compact
1500902f572SJack F Vogel.It
1519343a1cdSEric JoynerIntel 1G/10G SFP+ SR FTLX8571D3BCV-IT
1520902f572SJack F Vogel.It
1539343a1cdSEric JoynerIntel 1G/10G SFP+ SR AFBR-703SDZ-IN2
1549343a1cdSEric Joyner.It
1559343a1cdSEric JoynerIntel 1G/10G SFP+ LR FTLX1471D3BCV-IT
1569343a1cdSEric Joyner.It
1579343a1cdSEric JoynerIntel 1G/10G SFP+ LR AFCT-701SDZ-IN2
1589343a1cdSEric Joyner.It
1599343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-SR E10GSFPSR
1609343a1cdSEric Joyner.It
1619343a1cdSEric JoynerIntel 10G SFP+ 10GBASE-SR E10GSFPSRX (Extended Temp)
1629343a1cdSEric Joyner.It
1639343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-LR E10GSFPLR
1640902f572SJack F Vogel.El
1650902f572SJack F Vogel.Pp
1669343a1cdSEric JoynerNote that adapters also support all passive and active
1670902f572SJack F Vogellimiting direct attach cables that comply with SFF-8431 v4.1 and
1680902f572SJack F VogelSFF-8472 v10.4 specifications.
1699343a1cdSEric Joyner.Pp
1709343a1cdSEric JoynerThis is not an exhaustive list; please consult product documentation for an
1719343a1cdSEric Joynerup-to-date list of supported media.
1720902f572SJack F Vogel.Sh LOADER TUNABLES
1730902f572SJack F VogelTunables can be set at the
1740902f572SJack F Vogel.Xr loader 8
1750902f572SJack F Vogelprompt before booting the kernel or stored in
1760902f572SJack F Vogel.Xr loader.conf 5 .
1770902f572SJack F Vogel.Bl -tag -width indent
1780902f572SJack F Vogel.It Va hw.ixl.rx_itr
1799343a1cdSEric JoynerThe RX interrupt rate value, set to 62 (124 usec) by default.
1800902f572SJack F Vogel.It Va hw.ixl.tx_itr
1819343a1cdSEric JoynerThe TX interrupt rate value, set to 122 (244 usec) by default.
1829343a1cdSEric Joyner.It Va hw.ixl.i2c_access_method
1839343a1cdSEric JoynerAccess method that driver will use for I2C read and writes via
1849343a1cdSEric Joyner.Xr sysctl 8
1859343a1cdSEric Joyneror verbose
1869343a1cdSEric Joyner.Xr ifconfig 8
1879343a1cdSEric Joynerinformation display:
1889343a1cdSEric Joyner.Bd -literal -offset indent
1899343a1cdSEric Joyner0 - best available method
1909343a1cdSEric Joyner1 - bit bang via I2CPARAMS register
1919343a1cdSEric Joyner2 - register read/write via I2CCMD register
1929343a1cdSEric Joyner3 - Use Admin Queue command (default best)
1939343a1cdSEric Joyner.Ed
1949343a1cdSEric Joyner.Pp
1959343a1cdSEric JoynerUsing the Admin Queue is only supported on 710 devices with FW version 1.7 or
1969343a1cdSEric Joynernewer.
1979343a1cdSEric JoynerSet to 0 by default.
1989343a1cdSEric Joyner.It Va hw.ixl.enable_tx_fc_filter
1999343a1cdSEric JoynerFilter out packets with Ethertype 0x8808 from being sent out by non-adapter
2009343a1cdSEric Joynersources.
2019343a1cdSEric JoynerThis prevents (potentially untrusted) software or
2029343a1cdSEric Joyner.Xr iavf 4
2039343a1cdSEric Joynerdevices from sending out flow control packets and creating a DoS (Denial of
2049343a1cdSEric JoynerService) event.
2059343a1cdSEric JoynerEnabled by default.
2069343a1cdSEric Joyner.It Va hw.ixl.enable_head_writeback
2079343a1cdSEric JoynerWhen the driver is finding the last TX descriptor processed by the hardware,
2089343a1cdSEric Joyneruse a value written to memory by the hardware instead of scanning the
2099343a1cdSEric Joynerdescriptor ring for completed descriptors.
2109343a1cdSEric JoynerEnabled by default; disable to mimic the TX behavior found in
2119343a1cdSEric Joyner.Xr ixgbe 4 .
2120902f572SJack F Vogel.El
2130902f572SJack F Vogel.Sh SYSCTL PROCEDURES
2140902f572SJack F Vogel.Bl -tag -width indent
2159343a1cdSEric Joyner.It Va dev.ixl.#.fc
2169343a1cdSEric JoynerSets the 802.3x flow control mode that the adapter will advertise on the link.
2179343a1cdSEric JoynerA value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is TX pause.
2189343a1cdSEric Joyner.Pp
2199343a1cdSEric JoynerThe negotiated flow control setting can be viewed in
2209343a1cdSEric Joyner.Xr ifconfig 8 ,
2219343a1cdSEric Joynerin the interface's media field.
2229343a1cdSEric Joyner.It Va dev.ixl.#.advertise_speed
2239343a1cdSEric JoynerSet the speeds that the interface will advertise on the link.
2249343a1cdSEric Joyner.Va dev.ixl.#.supported_speeds
2259343a1cdSEric Joynercontains the speeds that are allowed to be set.
2269343a1cdSEric Joyner.It Va dev.ixl.#.current_speed
2279343a1cdSEric JoynerDisplays the current speed.
2289343a1cdSEric Joyner.It Va dev.ixl.#.fw_version
2299343a1cdSEric JoynerDisplays the current firmware and NVM versions of the adapter.
230dc6a4165SChristian Brueffer.El
2319343a1cdSEric Joyner.Sh INTERRUPT STORMS
2320902f572SJack F VogelIt is important to note that 40G operation can generate high
2330902f572SJack F Vogelnumbers of interrupts, often incorrectly being interpreted as
234dc6a4165SChristian Brueffera storm condition in the kernel.
2359343a1cdSEric JoynerIt is suggested that this be resolved by setting:
2360902f572SJack F Vogel.Bl -tag -width indent
2370902f572SJack F Vogel.It Va hw.intr_storm_threshold: 0
238dc6a4165SChristian Brueffer.El
2399343a1cdSEric Joyner.Sh IOVCTL OPTIONS
2409343a1cdSEric JoynerThe driver supports additional optional parameters for created VFs
2419343a1cdSEric Joyner(Virtual Functions) when using
2429343a1cdSEric Joyner.Xr iovctl 8 :
2439343a1cdSEric Joyner.Bl -tag -width indent
2449343a1cdSEric Joyner.It mac-addr Pq unicast-mac
2459343a1cdSEric JoynerSet the Ethernet MAC address that the VF will use.
2469343a1cdSEric JoynerIf unspecified, the VF will use a randomly generated MAC address.
2479343a1cdSEric Joyner.It mac-anti-spoof Pq bool
2489343a1cdSEric JoynerPrevent the VF from sending Ethernet frames with a source address
2499343a1cdSEric Joynerthat does not match its own.
2509343a1cdSEric Joyner.It allow-set-mac Pq bool
2519343a1cdSEric JoynerAllow the VF to set its own Ethernet MAC address
2529343a1cdSEric Joyner.It allow-promisc Pq bool
2539343a1cdSEric JoynerAllow the VF to inspect all of the traffic sent to the port.
2549343a1cdSEric Joyner.It num-queues Pq uint16_t
2559343a1cdSEric JoynerSpecify the number of queues the VF will have.
2569343a1cdSEric JoynerBy default, this is set to the number of MSI-X vectors supported by the VF
2579343a1cdSEric Joynerminus one.
2589343a1cdSEric Joyner.El
2599343a1cdSEric Joyner.Pp
2609343a1cdSEric JoynerAn up to date list of parameters and their defaults can be found by using
2619343a1cdSEric Joyner.Xr iovctl 8
2629343a1cdSEric Joynerwith the -S option.
2630902f572SJack F Vogel.Sh SUPPORT
2640902f572SJack F VogelFor general information and support,
2650902f572SJack F Vogelgo to the Intel support website at:
266*24b0977bSMateusz Piotrowski.Lk http://support.intel.com/ .
2670902f572SJack F Vogel.Pp
2680902f572SJack F VogelIf an issue is identified with this driver with a supported adapter,
2690902f572SJack F Vogelemail all the specific information related to the issue to
2709343a1cdSEric Joyner.Mt freebsd@intel.com .
2710902f572SJack F Vogel.Sh SEE ALSO
2720902f572SJack F Vogel.Xr arp 4 ,
2739343a1cdSEric Joyner.Xr iavf 4 ,
2744d302c1aSKevin Lo.Xr iflib 4 ,
2750902f572SJack F Vogel.Xr netintro 4 ,
2760902f572SJack F Vogel.Xr vlan 4 ,
2779343a1cdSEric Joyner.Xr ifconfig 8 ,
2784d302c1aSKevin Lo.Xr iovctl 8
2790902f572SJack F Vogel.Sh HISTORY
2800902f572SJack F VogelThe
2810902f572SJack F Vogel.Nm
2820902f572SJack F Vogeldevice driver first appeared in
2830902f572SJack F Vogel.Fx 10.1 .
2849343a1cdSEric JoynerIt was converted to use
2859343a1cdSEric Joyner.Xr iflib 9
2869343a1cdSEric Joynerin
2879343a1cdSEric Joyner.Fx 12 .
2880902f572SJack F Vogel.Sh AUTHORS
2890902f572SJack F Vogel.An -nosplit
2900902f572SJack F VogelThe
2910902f572SJack F Vogel.Nm
2920902f572SJack F Vogeldriver was written by
2939343a1cdSEric Joyner.An Jack Vogel Aq Mt jfv@freebsd.org
2940902f572SJack F Vogeland
2959343a1cdSEric Joyner.An Eric Joyner Aq Mt erj@freebsd.org .
296