xref: /freebsd/share/man/man4/ixl.4 (revision 9343a1cd71fc13e6fd2b32ac23e30d6059e66f81)
1*9343a1cdSEric 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*9343a1cdSEric Joyner.Dd October 5, 2018
350902f572SJack F Vogel.Dt IXL 4
360902f572SJack F Vogel.Os
370902f572SJack F Vogel.Sh NAME
380902f572SJack F Vogel.Nm ixl
39*9343a1cdSEric Joyner.Nd "Intel Ethernet 700 Series Driver"
400902f572SJack F Vogel.Sh SYNOPSIS
41*9343a1cdSEric 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
440902f572SJack F Vogel.Cd "device ixl"
450902f572SJack F Vogel.Ed
460902f572SJack F Vogel.Pp
47*9343a1cdSEric JoynerTo load the driver as a module at boot time, place the following lines in
480902f572SJack F Vogel.Xr loader.conf 5 :
490902f572SJack F Vogel.Bd -literal -offset indent
500902f572SJack F Vogelif_ixl_load="YES"
510902f572SJack F Vogel.Ed
520902f572SJack F Vogel.Sh DESCRIPTION
53*9343a1cdSEric Joyner.Ss Features
540902f572SJack F VogelThe
550902f572SJack F Vogel.Nm
56*9343a1cdSEric Joynerdriver provides support for any PCI Express adapter or LOM
57*9343a1cdSEric Joyner(LAN On Motherboard)
58*9343a1cdSEric Joynerin the Intel Ethernet 700 Series.
59*9343a1cdSEric JoynerAs of this writing, the series includes devices with these model numbers:
60*9343a1cdSEric Joyner.Pp
61*9343a1cdSEric Joyner.Bl -bullet -compact
62*9343a1cdSEric Joyner.It
63*9343a1cdSEric JoynerXL710 (40G)
64*9343a1cdSEric Joyner.It
65*9343a1cdSEric JoynerX710 (10G)
66*9343a1cdSEric Joyner.It
67*9343a1cdSEric JoynerXXV710 (25G)
68*9343a1cdSEric Joyner.It
69*9343a1cdSEric JoynerX722 (10G)
70*9343a1cdSEric Joyner.El
71*9343a1cdSEric Joyner.Pp
720902f572SJack F VogelThe driver supports Jumbo Frames, TX/RX checksum offload,
730902f572SJack F VogelTCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
740902f572SJack F Vogeltag insertion/extraction, VLAN checksum offload, VLAN TSO, and
750902f572SJack F VogelReceive Side Steering (RSS), all for both IPv4 and IPv6.
760902f572SJack F VogelFor further hardware information and questions related to hardware
770902f572SJack F Vogelrequirements, see
780902f572SJack F Vogel.Pa http://support.intel.com/ .
790902f572SJack F Vogel.Pp
800902f572SJack F VogelSupport for Jumbo Frames is provided via the interface MTU setting.
810902f572SJack F VogelSelecting an MTU larger than 1500 bytes with the
820902f572SJack F Vogel.Xr ifconfig 8
830902f572SJack F Vogelutility configures the adapter to receive and transmit Jumbo Frames.
840902f572SJack F VogelThe maximum MTU size for Jumbo Frames is 9706.
850902f572SJack F Vogel.Pp
860902f572SJack F VogelOffloads are also controlled via the interface, for instance,
870902f572SJack F Vogelchecksumming for both IPv4 and IPv6 can be set and unset, TSO4
880902f572SJack F Vogeland/or TSO6, and finally LRO can be set and unset.
890902f572SJack F Vogel.Pp
900902f572SJack F VogelFor more information on configuring this device, see
910902f572SJack F Vogel.Xr ifconfig 8 .
92*9343a1cdSEric Joyner.Ss Additional Utilities
93*9343a1cdSEric JoynerThere are additional tools available from Intel to help configure and update
94*9343a1cdSEric Joynerthe adapters covered by this driver.
95*9343a1cdSEric JoynerThese tools can be downloaded directly from Intel at
96*9343a1cdSEric Joyner.Pa downloadcenter.intel.com ,
97*9343a1cdSEric Joynerby searching for their names, or by installing certain packages:
98*9343a1cdSEric Joyner.Bl -item
99*9343a1cdSEric Joyner.It
100*9343a1cdSEric JoynerTo change the behavior of the QSFP+ ports on XL710 adapters, use the
101*9343a1cdSEric JoynerIntel QCU (QSFP+ configuration utility); installed by the
102*9343a1cdSEric Joyner.Em sysutils/intel-qcu
103*9343a1cdSEric Joynerpackage.
104*9343a1cdSEric Joyner.It
105*9343a1cdSEric JoynerTo update the firmware on an adapter, use the Intel Non-Volatile Memory (NVM)
106*9343a1cdSEric JoynerUpdate Utility; installed by the
107*9343a1cdSEric Joyner.Em sysutils/intel-nvmupdate
108*9343a1cdSEric Joynerpackage.
109*9343a1cdSEric Joyner.It
110*9343a1cdSEric JoynerDrivers are provided by Intel outside of the
111*9343a1cdSEric Joyner.Fx
112*9343a1cdSEric Joynerkernel; install the
113*9343a1cdSEric Joyner.Em net/intel-ixl-kmod
114*9343a1cdSEric Joynerpackage for the latest driver.
115*9343a1cdSEric Joyner.El
1160902f572SJack F Vogel.Sh HARDWARE
117*9343a1cdSEric JoynerMost adapters in the Intel Ethernet 700 Series with SFP+/SFP28/QSFP+ cages
118*9343a1cdSEric Joynerhave firmware that requires that Intel qualified modules are used; these
119*9343a1cdSEric Joynerqualified modules are listed below.
120*9343a1cdSEric JoynerThis qualification check cannot be disabled by the driver.
121*9343a1cdSEric Joyner.Pp
1220902f572SJack F VogelThe
1230902f572SJack F Vogel.Nm
124*9343a1cdSEric Joynerdriver supports 40Gb Ethernet adapters with these QSFP+ modules:
1250902f572SJack F Vogel.Pp
1260902f572SJack F Vogel.Bl -bullet -compact
1270902f572SJack F Vogel.It
128*9343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-SR4 E40GQSFPSR
1290902f572SJack F Vogel.It
130*9343a1cdSEric JoynerIntel 4x10G/40G QSFP+ 40GBASE-LR4 E40GQSFPLR
1310902f572SJack F Vogel.El
1320902f572SJack F Vogel.Pp
1330902f572SJack F VogelThe
1340902f572SJack F Vogel.Nm
135*9343a1cdSEric Joynerdriver supports 25Gb Ethernet adapters with these SFP28 modules:
1360902f572SJack F Vogel.Pp
1370902f572SJack F Vogel.Bl -bullet -compact
1380902f572SJack F Vogel.It
139*9343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SR
1400902f572SJack F Vogel.It
141*9343a1cdSEric JoynerIntel 10G/25G SFP28 25GBASE-SR E25GSFP28SRX (Extended Temp)
1420902f572SJack F Vogel.El
1430902f572SJack F Vogel.Pp
1440902f572SJack F VogelThe
1450902f572SJack F Vogel.Nm
146*9343a1cdSEric Joynerdriver supports 25Gb and 10Gb Ethernet adapters with these SFP+ modules:
1470902f572SJack F Vogel.Pp
1480902f572SJack F Vogel.Bl -bullet -compact
1490902f572SJack F Vogel.It
150*9343a1cdSEric JoynerIntel 1G/10G SFP+ SR FTLX8571D3BCV-IT
1510902f572SJack F Vogel.It
152*9343a1cdSEric JoynerIntel 1G/10G SFP+ SR AFBR-703SDZ-IN2
153*9343a1cdSEric Joyner.It
154*9343a1cdSEric JoynerIntel 1G/10G SFP+ LR FTLX1471D3BCV-IT
155*9343a1cdSEric Joyner.It
156*9343a1cdSEric JoynerIntel 1G/10G SFP+ LR AFCT-701SDZ-IN2
157*9343a1cdSEric Joyner.It
158*9343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-SR E10GSFPSR
159*9343a1cdSEric Joyner.It
160*9343a1cdSEric JoynerIntel 10G SFP+ 10GBASE-SR E10GSFPSRX (Extended Temp)
161*9343a1cdSEric Joyner.It
162*9343a1cdSEric JoynerIntel 1G/10G SFP+ 10GBASE-LR E10GSFPLR
1630902f572SJack F Vogel.El
1640902f572SJack F Vogel.Pp
165*9343a1cdSEric JoynerNote that adapters also support all passive and active
1660902f572SJack F Vogellimiting direct attach cables that comply with SFF-8431 v4.1 and
1670902f572SJack F VogelSFF-8472 v10.4 specifications.
168*9343a1cdSEric Joyner.Pp
169*9343a1cdSEric JoynerThis is not an exhaustive list; please consult product documentation for an
170*9343a1cdSEric Joynerup-to-date list of supported media.
1710902f572SJack F Vogel.Sh LOADER TUNABLES
1720902f572SJack F VogelTunables can be set at the
1730902f572SJack F Vogel.Xr loader 8
1740902f572SJack F Vogelprompt before booting the kernel or stored in
1750902f572SJack F Vogel.Xr loader.conf 5 .
1760902f572SJack F Vogel.Bl -tag -width indent
1770902f572SJack F Vogel.It Va hw.ixl.rx_itr
178*9343a1cdSEric JoynerThe RX interrupt rate value, set to 62 (124 usec) by default.
1790902f572SJack F Vogel.It Va hw.ixl.tx_itr
180*9343a1cdSEric JoynerThe TX interrupt rate value, set to 122 (244 usec) by default.
181*9343a1cdSEric Joyner.It Va hw.ixl.i2c_access_method
182*9343a1cdSEric JoynerAccess method that driver will use for I2C read and writes via
183*9343a1cdSEric Joyner.Xr sysctl 8
184*9343a1cdSEric Joyneror verbose
185*9343a1cdSEric Joyner.Xr ifconfig 8
186*9343a1cdSEric Joynerinformation display:
187*9343a1cdSEric Joyner.Bd -literal -offset indent
188*9343a1cdSEric Joyner0 - best available method
189*9343a1cdSEric Joyner1 - bit bang via I2CPARAMS register
190*9343a1cdSEric Joyner2 - register read/write via I2CCMD register
191*9343a1cdSEric Joyner3 - Use Admin Queue command (default best)
192*9343a1cdSEric Joyner.Ed
193*9343a1cdSEric Joyner.Pp
194*9343a1cdSEric JoynerUsing the Admin Queue is only supported on 710 devices with FW version 1.7 or
195*9343a1cdSEric Joynernewer.
196*9343a1cdSEric JoynerSet to 0 by default.
197*9343a1cdSEric Joyner.It Va hw.ixl.enable_tx_fc_filter
198*9343a1cdSEric JoynerFilter out packets with Ethertype 0x8808 from being sent out by non-adapter
199*9343a1cdSEric Joynersources.
200*9343a1cdSEric JoynerThis prevents (potentially untrusted) software or
201*9343a1cdSEric Joyner.Xr iavf 4
202*9343a1cdSEric Joynerdevices from sending out flow control packets and creating a DoS (Denial of
203*9343a1cdSEric JoynerService) event.
204*9343a1cdSEric JoynerEnabled by default.
205*9343a1cdSEric Joyner.It Va hw.ixl.enable_head_writeback
206*9343a1cdSEric JoynerWhen the driver is finding the last TX descriptor processed by the hardware,
207*9343a1cdSEric Joyneruse a value written to memory by the hardware instead of scanning the
208*9343a1cdSEric Joynerdescriptor ring for completed descriptors.
209*9343a1cdSEric JoynerEnabled by default; disable to mimic the TX behavior found in
210*9343a1cdSEric Joyner.Xr ixgbe 4 .
2110902f572SJack F Vogel.El
2120902f572SJack F Vogel.Sh SYSCTL PROCEDURES
2130902f572SJack F Vogel.Bl -tag -width indent
214*9343a1cdSEric Joyner.It Va dev.ixl.#.fc
215*9343a1cdSEric JoynerSets the 802.3x flow control mode that the adapter will advertise on the link.
216*9343a1cdSEric JoynerA value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is TX pause.
217*9343a1cdSEric Joyner.Pp
218*9343a1cdSEric JoynerThe negotiated flow control setting can be viewed in
219*9343a1cdSEric Joyner.Xr ifconfig 8 ,
220*9343a1cdSEric Joynerin the interface's media field.
221*9343a1cdSEric Joyner.It Va dev.ixl.#.advertise_speed
222*9343a1cdSEric JoynerSet the speeds that the interface will advertise on the link.
223*9343a1cdSEric Joyner.Va dev.ixl.#.supported_speeds
224*9343a1cdSEric Joynercontains the speeds that are allowed to be set.
225*9343a1cdSEric Joyner.It Va dev.ixl.#.current_speed
226*9343a1cdSEric JoynerDisplays the current speed.
227*9343a1cdSEric Joyner.It Va dev.ixl.#.fw_version
228*9343a1cdSEric JoynerDisplays the current firmware and NVM versions of the adapter.
229dc6a4165SChristian Brueffer.El
230*9343a1cdSEric Joyner.Sh INTERRUPT STORMS
2310902f572SJack F VogelIt is important to note that 40G operation can generate high
2320902f572SJack F Vogelnumbers of interrupts, often incorrectly being interpreted as
233dc6a4165SChristian Brueffera storm condition in the kernel.
234*9343a1cdSEric JoynerIt is suggested that this be resolved by setting:
2350902f572SJack F Vogel.Bl -tag -width indent
2360902f572SJack F Vogel.It Va hw.intr_storm_threshold: 0
237dc6a4165SChristian Brueffer.El
238*9343a1cdSEric Joyner.Sh IOVCTL OPTIONS
239*9343a1cdSEric JoynerThe driver supports additional optional parameters for created VFs
240*9343a1cdSEric Joyner(Virtual Functions) when using
241*9343a1cdSEric Joyner.Xr iovctl 8 :
242*9343a1cdSEric Joyner.Bl -tag -width indent
243*9343a1cdSEric Joyner.It mac-addr Pq unicast-mac
244*9343a1cdSEric JoynerSet the Ethernet MAC address that the VF will use.
245*9343a1cdSEric JoynerIf unspecified, the VF will use a randomly generated MAC address.
246*9343a1cdSEric Joyner.It mac-anti-spoof Pq bool
247*9343a1cdSEric JoynerPrevent the VF from sending Ethernet frames with a source address
248*9343a1cdSEric Joynerthat does not match its own.
249*9343a1cdSEric Joyner.It allow-set-mac Pq bool
250*9343a1cdSEric JoynerAllow the VF to set its own Ethernet MAC address
251*9343a1cdSEric Joyner.It allow-promisc Pq bool
252*9343a1cdSEric JoynerAllow the VF to inspect all of the traffic sent to the port.
253*9343a1cdSEric Joyner.It num-queues Pq uint16_t
254*9343a1cdSEric JoynerSpecify the number of queues the VF will have.
255*9343a1cdSEric JoynerBy default, this is set to the number of MSI-X vectors supported by the VF
256*9343a1cdSEric Joynerminus one.
257*9343a1cdSEric Joyner.El
258*9343a1cdSEric Joyner.Pp
259*9343a1cdSEric JoynerAn up to date list of parameters and their defaults can be found by using
260*9343a1cdSEric Joyner.Xr iovctl 8
261*9343a1cdSEric Joynerwith the -S option.
2620902f572SJack F Vogel.Sh SUPPORT
2630902f572SJack F VogelFor general information and support,
2640902f572SJack F Vogelgo to the Intel support website at:
2650902f572SJack F Vogel.Pa http://support.intel.com/ .
2660902f572SJack F Vogel.Pp
2670902f572SJack F VogelIf an issue is identified with this driver with a supported adapter,
2680902f572SJack F Vogelemail all the specific information related to the issue to
269*9343a1cdSEric Joyner.Mt freebsd@intel.com .
2700902f572SJack F Vogel.Sh SEE ALSO
2710902f572SJack F Vogel.Xr arp 4 ,
272*9343a1cdSEric Joyner.Xr iavf 4 ,
2730902f572SJack F Vogel.Xr netintro 4 ,
2740902f572SJack F Vogel.Xr vlan 4 ,
275*9343a1cdSEric Joyner.Xr ifconfig 8 ,
276*9343a1cdSEric Joyner.Xr iovctl 8 ,
277*9343a1cdSEric Joyner.Xr iflib 9
2780902f572SJack F Vogel.Sh HISTORY
2790902f572SJack F VogelThe
2800902f572SJack F Vogel.Nm
2810902f572SJack F Vogeldevice driver first appeared in
2820902f572SJack F Vogel.Fx 10.1 .
283*9343a1cdSEric JoynerIt was converted to use
284*9343a1cdSEric Joyner.Xr iflib 9
285*9343a1cdSEric Joynerin
286*9343a1cdSEric Joyner.Fx 12 .
2870902f572SJack F Vogel.Sh AUTHORS
2880902f572SJack F Vogel.An -nosplit
2890902f572SJack F VogelThe
2900902f572SJack F Vogel.Nm
2910902f572SJack F Vogeldriver was written by
292*9343a1cdSEric Joyner.An Jack Vogel Aq Mt jfv@freebsd.org
2930902f572SJack F Vogeland
294*9343a1cdSEric Joyner.An Eric Joyner Aq Mt erj@freebsd.org .
295