xref: /freebsd/share/man/man4/ix.4 (revision 8ccc0d235c226d84112561d453c49904398d085c)
1.\" Copyright (c) 2001-2008, Intel Corporation
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions are met:
6.\"
7.\" 1. Redistributions of source code must retain the above copyright notice,
8.\"    this list of conditions and the following disclaimer.
9.\"
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" 3. Neither the name of the Intel Corporation nor the names of its
15.\"    contributors may be used to endorse or promote products derived from
16.\"    this software without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.\" * Other names and brands may be claimed as the property of others.
31.\"
32.Dd November 10, 2025
33.Dt IX 4
34.Os
35.Sh NAME
36.Nm ix
37.Nd Intel 10Gb Ethernet driver
38.Sh SYNOPSIS
39To compile this driver into the kernel,
40place the following lines in your
41kernel configuration file:
42.Bd -ragged -offset indent
43.Cd "device iflib"
44.Cd "device ix"
45.Ed
46.Pp
47Alternatively, to load the driver as a
48module at boot time, place the following line in
49.Xr loader.conf 5 :
50.Bd -literal -offset indent
51if_ix_load="YES"
52.Ed
53.Sh DESCRIPTION
54The
55.Nm
56driver provides support for Intel(R) 10Gb Ethernet PCIe adapters.
57The driver supports Jumbo Frames, MSIX, TSO, and RSS.
58.Pp
59For questions related to hardware requirements,
60refer to the documentation supplied with your Intel 10GbE adapter.
61All hardware requirements listed apply to use with
62.Fx .
63.Pp
64Support for Jumbo Frames is provided via the interface MTU setting.
65Selecting an MTU larger than 1500 bytes with the
66.Xr ifconfig 8
67utility configures the adapter to receive and transmit Jumbo Frames.
68The maximum MTU size for Jumbo Frames is 9710.
69.Pp
70This driver version supports VLANs.
71For information on enabling VLANs, see
72.Xr ifconfig 8 .
73.Sh HARDWARE
74The
75.Nm
76driver supports Intel 10Gb Ethernet PCIe adapters,
77including:
78.Pp
79.Bl -bullet -compact
80.It
81Intel(R) Ethernet E610
82.It
83Intel(R) Ethernet X553
84.It
85Intel(R) Ethernet X552
86.It
87Intel(R) Ethernet X550
88.It
89Intel(R) Ethernet X540 Bypass
90.It
91Intel(R) Ethernet X540
92.It
93Intel(R) Ethernet X520 Bypass (82599)
94.It
95Intel(R) Ethernet X520 (82599)
96.It
97Intel(R) 10 Gigabit Server Adapter (82598EB)
98.El
99.Sh LOADER TUNABLES
100The
101.Nm
102driver supports the following loader tunables:
103.Bl -tag -width "hw.ix.allow_unsupported_sfp"
104.It Va hw.ix.max_interrupt_rate
105Maximum interrupts per second.
106.It Va hw.ix.flow_control
107Default flow control used for all adapters.
108.It Va hw.ix.advertise_speed
109Default advertised speed for all adapters.
110.It Va hw.ix.enable_msix
111Enable Message Signalled Interrupts (MSI-X).
112.It Va hw.ix.allow_unsupported_sfp
113Allow unsupported small form-factor pluggable
114.Pq SFP
115modules.
116Use at your own risk.
117.It Va hw.ix.enable_fdir
118Enable Flow Director.
119Flow Director directs Ethernet packets to the core where the
120packet consuming process, application, container,
121or microservice is running.
122.It Va hw.ix.enable_rss
123Enable Receive-Side Scaling (RSS).
124When RSS is enabled, all of the receive data processing for
125a particular TCP connection is shared across multiple processors
126or processor cores.
127Without RSS, all of the processing is performed by a single
128processor, resulting in inefficient system cache utilization.
129This has no effect if your system has only one processing unit.
130.It Va hw.ix.enable_aim
131Enable Adaptive Interrupt Moderation (AIM).
132Vary the interrupt rate over time based on the traffic for
133that interrupt vector.
134.El
135.Sh SYSCTL VARIABLES
136The
137.Nm
138driver supports the following
139.Xr sysctl 8
140variables:
141.Bl -tag -width "dev.ix.?.debug.dump.clusters"
142.It Va dev.ix.?.debug.dump.clusters
143Specify a bitmask to select firmware event clusters
144to be included in the debug dump.
145Possible values include:
146.Pp
147.Bl -tag -compact
148.It 0
149All clusters excluding Manageability Transactions
150.It 0x1
151Link cluster
152.It 0x2
153Full CSR Space excluding RCW registers
154.El
155.Pp
156This feature is only supported on E610 devices.
157.It Va dev.ix.?.debug.dump.dump
158Specify 1 to generate a per-device debugging snapshot.
159Output must be redirected to a file
160and decoded by Intel Customer Support.
161.Pp
162This feature is only supported on E610.
163.El
164.Sh DIAGNOSTICS
165.Bl -diag
166.It "ix%d: Unable to allocate bus resource: memory"
167A fatal initialization error has occurred.
168.It "ix%d: Unable to allocate bus resource: interrupt"
169A fatal initialization error has occurred.
170.It "ix%d: watchdog timeout -- resetting"
171The device has stopped responding to the network, or there is a problem with
172the network connection (cable).
173.El
174.Sh SUPPORT
175For general information and support,
176go to the Intel support website at:
177.Pa http://support.intel.com .
178.Pp
179If an issue is identified with the released source code on the supported kernel
180with a supported adapter, email the specific information related to the
181issue to
182.Aq Mt freebsd@intel.com .
183.Sh SEE ALSO
184.Xr altq 4 ,
185.Xr arp 4 ,
186.Xr iflib 4 ,
187.Xr netintro 4 ,
188.Xr ng_ether 4 ,
189.Xr polling 4 ,
190.Xr vlan 4 ,
191.Xr ifconfig 8 ,
192.Xr sysctl 8
193.Sh HISTORY
194The
195.Nm
196device driver first appeared in
197.Fx 7.0 .
198.Sh AUTHORS
199The
200.Nm
201driver was written by
202.An Intel Corporation Aq Mt freebsd@intel.com .
203.Sh CAVEATS
204Intel (R) Flow director support is not fully implemented in
205.Fx
206at this time and additional work is required
207before those features can be supported.
208.Pp
209Enabling flow director may route traffic to the wrong RX queue of the NIC,
210resulting in sub-optimal performance on the receive side.
211