.\" Copyright (c) 2013-2015, Intel Corporation
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright notice,
.\" this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" 3. Neither the name of the Intel Corporation nor the names of its
.\" contributors may be used to endorse or promote products derived from
.\" this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
.\" $FreeBSD$
.\"
.Dd March 25, 2015
.Dt IXL 4
.Os
.Sh NAME
.Nm ixl
.Nd "Intel XL710 Ethernet 40Gb Base driver"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device ixl"
.Ed
.Pp
To load the driver as a
module at boot time, place the following lines in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_ixl_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides support for PCI Express adapters or LOMs
in the XL710 Family of ethernet devices.
The driver supports Jumbo Frames, TX/RX checksum offload,
TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
tag insertion/extraction, VLAN checksum offload, VLAN TSO, and
Receive Side Steering (RSS), all for both IPv4 and IPv6.
For further hardware information and questions related to hardware
requirements, see
.Pa http://support.intel.com/ .
.Pp
Support for Jumbo Frames is provided via the interface MTU setting.
Selecting an MTU larger than 1500 bytes with the
.Xr ifconfig 8
utility configures the adapter to receive and transmit Jumbo Frames.
The maximum MTU size for Jumbo Frames is 9706.
.Pp
Offloads are also controlled via the interface, for instance,
checksumming for both IPv4 and IPv6 can be set and unset, TSO4
and/or TSO6, and finally LRO can be set and unset.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
The
.Nm
driver supports these SFP+ Pluggable Optics:
.Pp
.Bl -bullet -compact
.It
Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPSR
.It
Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPLR
.El
.Pp
The
.Nm
driver supports 10Gb and 1Gb Ethernet adapters with SR Modules:
.Pp
.Bl -bullet -compact
.It
Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT
.It
Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2
.El
.Pp
The
.Nm
driver supports 10Gb and 1Gb Ethernet adapters with LR Modules:
.Pp
.Bl -bullet -compact
.It
Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT
.It
Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2
.El
.Pp
Note that X710/XL710 Based SFP+ adapters also support all passive and active
limiting direct attach cables that comply with SFF-8431 v4.1 and
SFF-8472 v10.4 specifications.
.Sh LOADER TUNABLES
Tunables can be set at the
.Xr loader 8
prompt before booting the kernel or stored in
.Xr loader.conf 5 .
.Bl -tag -width indent
.It Va hw.ixl.enable_msix
Allows one to enable/disable MSIX, thus forcing MSI instead.
.It Va hw.ixl.ringsz
Set the number of descriptors in the rings, note that this
changes BOTH the TX and RX rings, they cannot be set independently.
.It Va hw.ixl.max_queues
Set the number of queues (each a TX/RX pair) for the port, this
allows one to override the autocalculation if it is set to 0.
.It Va hw.ixl.dynamic_rx_itr
The dynamic RX interrupt control, set to 1 to enable.
.It Va hw.ixl.dynamic_tx_itr
The dynamic TX interrupt control, set to 1 to enable.
.It Va hw.ixl.rx_itr
The RX interrupt rate value, set to 8K by default.
.It Va hw.ixl.tx_itr
The TX interrupt rate value, set to 4K by default.
.El
.Sh SYSCTL PROCEDURES
.Bl -tag -width indent
.It Va hw.ixl.fc
Allows one to set the flow control value.
A value of 0 disables
flow control, 3 enables full, 1 is RX, and 2 is TX pause.
.It Va hw.ixl.advertise_speed
Allows one to set advertised link speeds, this will then
cause a link renegotiation.
With the appropriate adapter
this can cause a link at 10GB, 1GB, or 100MB.
.It Va hw.ixl.current_speed
This is a display of the current setting.
.It Va hw.ixl.fw_version
This is a display of the Firmware version.
.El
.Sh Interrupt Storms
It is important to note that 40G operation can generate high
numbers of interrupts, often incorrectly being interpreted as
a storm condition in the kernel.
It is suggested that this
be resolved by setting:
.Bl -tag -width indent
.It Va hw.intr_storm_threshold: 0
.El
.Sh SUPPORT
For general information and support,
go to the Intel support website at:
.Pa http://support.intel.com/ .
.Pp
If an issue is identified with this driver with a supported adapter,
email all the specific information related to the issue to
.Aq freebsd@intel.com .
.Sh SEE ALSO
.Xr arp 4 ,
.Xr ixlv 4 ,
.Xr netintro 4 ,
.Xr ng_ether 4 ,
.Xr vlan 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
.Nm
device driver first appeared in
.Fx 10.1 .
.Sh AUTHORS
.An -nosplit
The
.Nm
driver was written by
.An Jack Vogel Aq Mt jfv@FreeBSD.org
and
.An Eric Joyner Aq Mt ricera10@gmail.com .