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