xref: /freebsd/share/man/man4/ix.4 (revision 7937bfbc0ca53fe7cdd0d54414f9296e273a518e)
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 October 26, 2024
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 X553
82.It
83Intel(R) Ethernet X552
84.It
85Intel(R) Ethernet X550
86.It
87Intel(R) Ethernet X540 Bypass
88.It
89Intel(R) Ethernet X540
90.It
91Intel(R) Ethernet X520 Bypass (82599)
92.It
93Intel(R) Ethernet X520 (82599)
94.It
95Intel(R) 10 Gigabit Server Adapter (82598EB)
96.El
97.Sh LOADER TUNABLES
98The
99.Nm
100driver supports the following loader tunables:
101.Bl -tag -width "hw.ix.allow_unsupported_sfp"
102.It Va hw.ix.max_interrupt_rate
103Maximum interrupts per second.
104.It Va hw.ix.flow_control
105Default flow control used for all adapters.
106.It Va hw.ix.advertise_speed
107Default advertised speed for all adapters.
108.It Va hw.ix.enable_msix
109Enable Message Signalled Interrupts (MSI-X).
110.It Va hw.ix.allow_unsupported_sfp
111Allow unsupported small form-factor pluggable
112.Pq SFP
113modules.
114Use at your own risk.
115.It Va hw.ix.enable_fdir
116Enable Flow Director.
117Flow Director directs Ethernet packets to the core where the
118packet consuming process, application, container,
119or microservice is running.
120.It Va hw.ix.enable_rss
121Enable Receive-Side Scaling (RSS).
122When RSS is enabled, all of the receive data processing for
123a particular TCP connection is shared across multiple processors
124or processor cores.
125Without RSS, all of the processing is performed by a single
126processor, resulting in inefficient system cache utilization.
127This has no effect if your system has only one processing unit.
128.It Va hw.ix.enable_aim
129Enable Adaptive Interrupt Moderation (AIM).
130Vary the interrupt rate over time based on the traffic for
131that interrupt vector.
132.El
133.Sh DIAGNOSTICS
134.Bl -diag
135.It "ix%d: Unable to allocate bus resource: memory"
136A fatal initialization error has occurred.
137.It "ix%d: Unable to allocate bus resource: interrupt"
138A fatal initialization error has occurred.
139.It "ix%d: watchdog timeout -- resetting"
140The device has stopped responding to the network, or there is a problem with
141the network connection (cable).
142.El
143.Sh SUPPORT
144For general information and support,
145go to the Intel support website at:
146.Pa http://support.intel.com .
147.Pp
148If an issue is identified with the released source code on the supported kernel
149with a supported adapter, email the specific information related to the
150issue to
151.Aq Mt freebsd@intel.com .
152.Sh SEE ALSO
153.Xr altq 4 ,
154.Xr arp 4 ,
155.Xr iflib 4 ,
156.Xr netintro 4 ,
157.Xr ng_ether 4 ,
158.Xr polling 4 ,
159.Xr vlan 4 ,
160.Xr ifconfig 8 ,
161.Xr sysctl 8
162.Sh HISTORY
163The
164.Nm
165device driver first appeared in
166.Fx 7.0 .
167.Sh AUTHORS
168The
169.Nm
170driver was written by
171.An Intel Corporation Aq Mt freebsd@intel.com .
172.Sh CAVEATS
173Intel (R) Flow director support is not fully implemented in
174.Fx
175at this time and additional work is required
176before those features can be supported.
177.Pp
178Enabling flow director may route traffic to the wrong RX queue of the NIC,
179resulting in sub-optimal performance on the receive side.
180