IX(4) FreeBSD Kernel Interfaces Manual IX(4)
NAME
ix - Intel 10Gb Ethernet driver
SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
device iflib
device ix
Alternatively, to load the driver as a module at boot time, place the
following line in loader.conf(5):
if_ix_load="YES"
DESCRIPTION
The ix driver provides support for Intel(R) 10Gb Ethernet PCIe adapters.
The driver supports Jumbo Frames, MSIX, TSO, and RSS.
For questions related to hardware requirements, refer to the
documentation supplied with your Intel 10GbE adapter. All hardware
requirements listed apply to use with FreeBSD.
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 size for Jumbo Frames is 9710.
This driver version supports VLANs. For information on enabling VLANs,
see ifconfig(8).
HARDWARE
The ix driver supports Intel 10Gb Ethernet PCIe adapters, including:
o Intel(R) Ethernet E610
o Intel(R) Ethernet X553
o Intel(R) Ethernet X552
o Intel(R) Ethernet X550
o Intel(R) Ethernet X540 Bypass
o Intel(R) Ethernet X540
o Intel(R) Ethernet X520 Bypass (82599)
o Intel(R) Ethernet X520 (82599)
o Intel(R) 10 Gigabit Server Adapter (82598EB)
LOADER TUNABLES
The ix driver supports the following loader tunables:
hw.ix.max_interrupt_rate Maximum interrupts per second.
hw.ix.flow_control Default flow control used for all adapters.
hw.ix.advertise_speed Default advertised speed for all adapters.
hw.ix.enable_msix Enable Message Signalled Interrupts (MSI-X).
hw.ix.allow_unsupported_sfp Allow unsupported small form-factor
pluggable (SFP) modules. Use at your own
risk.
hw.ix.enable_fdir Enable Flow Director. Flow Director directs
Ethernet packets to the core where the
packet consuming process, application,
container, or microservice is running.
hw.ix.enable_rss Enable Receive-Side Scaling (RSS). When RSS
is enabled, all of the receive data
processing for a particular TCP connection
is shared across multiple processors or
processor cores. Without RSS, all of the
processing is performed by a single
processor, resulting in inefficient system
cache utilization. This has no effect if
your system has only one processing unit.
hw.ix.enable_aim Enable Adaptive Interrupt Moderation (AIM).
Vary the interrupt rate over time based on
the traffic for that interrupt vector.
SYSCTL VARIABLES
The ix driver supports the following sysctl(8) variables:
dev.ix.?.debug.dump.clusters Specify a bitmask to select
firmware event clusters to be
included in the debug dump.
Possible values include:
0 All clusters excluding
Manageability
Transactions
0x1 Link cluster
0x2 Full CSR Space excluding
RCW registers
This feature is only supported
on E610 devices.
dev.ix.?.debug.dump.dump Specify 1 to generate a per-
device debugging snapshot.
Output must be redirected to a
file and decoded by Intel
Customer Support.
This feature is only supported
on E610.
dev.ix.?.debug.fw_log.severity.<module> Specify firmware logging
verbosity level for the
specified module. Available
levels include:
0 none
1 error
2 warning
3 normal
4 verbose
Supported modules: general,
ctrl, link, link_topo, dnl, i2c,
sdp, mdio, adminq, hdma, lldp,
dcbx, dcb, xlr, nvm, auth, vpd,
iosf, parser, sw, scheduler,
txq, acl, post, watchdog,
task_dispatch, mng, synce,
health, tsdrv, pfreg, mdlver.
This feature is only supported
on E610 devices.
dev.ix.?.debug.fw_log.register Specify 1 to apply per-device
firmware logging configuration.
This feature is only supported
on E610 devices.
dev.ix.?.debug.fw_log.on_load Enable firmware logging during
driver initialization when set
via kenv(1).
This feature is only supported
on E610 devices.
DIAGNOSTICS
ix%d: Unable to allocate bus resource: memory A fatal initialization
error has occurred.
ix%d: Unable to allocate bus resource: interrupt A fatal initialization
error has occurred.
ix%d: watchdog timeout -- resetting The device has stopped responding to
the network, or there is a problem with the network connection (cable).
SUPPORT
For general information and support, go to the Intel support website at:
http://support.intel.com.
If an issue is identified with the released source code on the supported
kernel with a supported adapter, email the specific information related
to the issue to <freebsd@intel.com>.
SEE ALSO
altq(4), arp(4), iflib(4), netintro(4), ng_ether(4), polling(4), vlan(4),
ifconfig(8), sysctl(8)
HISTORY
The ix device driver first appeared in FreeBSD 7.0.
AUTHORS
The ix driver was written by Intel Corporation <freebsd@intel.com>.
CAVEATS
Intel (R) Flow director support is not fully implemented in FreeBSD at
this time and additional work is required before those features can be
supported.
Enabling flow director may route traffic to the wrong RX queue of the
NIC, resulting in sub-optimal performance on the receive side.
FreeBSD 15.1-STABLE-HBSD November 10, 2025 IX(4)