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)