ix —
Intel 10Gb Ethernet driver
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):
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).
The ix driver supports Intel 10Gb Ethernet
PCIe adapters, including:
- Intel(R) Ethernet E610
- Intel(R) Ethernet X553
- Intel(R) Ethernet X552
- Intel(R) Ethernet X550
- Intel(R) Ethernet X540 Bypass
- Intel(R) Ethernet X540
- Intel(R) Ethernet X520 Bypass (82599)
- Intel(R) Ethernet X520 (82599)
- Intel(R) 10 Gigabit Server Adapter (82598EB)
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.
- 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.
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.
- 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).
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>.
The ix device driver first appeared in
FreeBSD 7.0.
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.