ixl(4)

IXL(4)

NAME
ixl - Intel(R) Ethernet Driver for the FreeBSD* operating system

SYNOPSIS
To compile this driver into the kernel, place the following lines in your kernel configuration file:

device ixl

To load the driver as a module at boot time, place the following lines in loader.conf(5):

    if_ixl_load="YES"

DESCRIPTION
The ixl driver provides support for Intel(R) Ethernet devices based on the Intel(R) Ethernet 700 Series. 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 questions related to hardware requirements, refer to the documentation supplied with your adapter.

Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the ifconfig(8) utility configures the adapter to receive and transmit Jumbo Frames. The maximum MTU setting for Jumbo Frames is 9706. This value coincides with the maximum Jumbo Frames size of 9728. This driver version supports VLANs. For information on enabling VLANs, see the README.

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.

For more information on configuring this device, see ifconfig(8).

LOADER TUNABLES
Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5). See the iflib(4). man page for more information on using iflib sysctl variables as tunables.

hw.ixl.enable_msix
    Allows one to enable/disable MSIX, thus forcing MSI instead.

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.

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's set to 0.

hw.ixl.dynamic_rx_itr
    The dynamic RX interrupt control. Set to 1 to enable.

hw.ixl.dynamic_tx_itr
    The dynamic TX interrupt control. Set to 1 to enable.

hw.ixl.rx_itr
    The RX interrupt rate value.

hw.ixl.tx_itr
    The TX interrupt rate value.

SYSCTL PROCEDURES

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.

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.

hw.ixl.current_speed
    This is a display of the current setting.

hw.ixl.fw_version
    This is a display of the Firmware version.

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:

hw.intr_storm_threshold: 0

DIAGNOSTICS

ixl%d: Unable to allocate bus resource: memory A fatal initialization error has occurred.

ixl%d: Unable to allocate bus resource: interrupt A fatal initialization error has occurred.

ixl%d: watchdog timeout -- resetting The device has stopped responding to the network, or there is a problem with the network connection (cable).

SUPPORT
For additional information regarding building and installation, see the README included with the driver. For general information, go to the Intel support website at: http://www.intel.com/support/

If an issue is identified with the released source code on a supported kernel with a supported adapter, email the specific information related to the issue to freebsd@intel.com

SEE ALSO
arp(4), netintro(4), ng_ether(4), vlan(4), ifconfig(8)

HISTORY
The ixl device driver first appeared in FreeBSD 10.1.

AUTHORS
The ixl driver was written by Intel Corporation <freebsd@intel.com>