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