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