.\" LICENSE
.\"
.\" This software program is released under the terms of a license agreement between you ('Licensee') and Intel. Do not use or load this software or any associated materials (collectively, the 'Software') until you have carefully read the full terms and conditions of the LICENSE located in this software package. By loading or using the Software, you agree to the terms of this Agreement. If you do not agree with the terms of this Agreement, do not install or use the Software.
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
.TH ixgbe 1 "February 15, 2012"

.SH NAME
ixgbe \-This file describes the Linux* Base Driver for the 10 Gigabit Family of Adapters.
.SH SYNOPSIS
.PD 0.4v
modprobe ixgbe [<option>=<VAL1>,<VAL2>,...]
.br
.PD 1v
.LP
.SH DESCRIPTION
This driver supports the \fB2.6.x\fR kernel, and includes support for any Linux supported system, including Itanium(R)2, x86_64, i686, and PPC
.LP
This driver is only supported as a loadable module at this time. Intel is not supplying patches against the kernel source to allow for static linking of the driver. For questions related to hardware requirements, refer to the documentation supplied with your 10 Gigabit adapter. All hardware requirements listed apply to use with Linux.
.SH OPTIONS
The following optional parameters are used by entering them on the command line with the modprobe or insmod command. For example:
.IP
.B modprobe ixgbe InterruptThrottleRate=16000,16000
.PP
.LP
.B RSS - Receive Side Scaling (or multiple queues for receives)
.IP
.B Valid Range:
0 - 16
.br
.B Default Value:
0
.IP
0 = Sets the descriptor queue count to whichever is less, number of CPUS or 16
1-16 = Sets the descriptor queue count to 1-16
.IP
RSS also effects the number of transmit queues allocated on 2.6.23 and      
newer kernels with CONFIG_NETDEVICES_MULTIQUEUE set in the kernel .config file.
CONFIG_NETDEVICES_MULTIQUEUE only exists from 2.6.23 to 2.6.26.  Other options 
enable multiqueue in 2.6.27 and newer kernels.     
.LP
.B MQ - Multi Queue
.IP
.LP
.B Valid Range:
0, 1
.IP
.B Default Value: 
1
.IP
0 = Disables Multiple Queue support
1 = Enabled Multiple Queue support (a prerequisite for RSS)
.LP
.B DCA - Direct Cache Access 
.IP
.B Valid Range: 
0, 1
.IP
.B Default Value:
1 (when IXGBE_DCA is enabled)
0 = Disables DCA support in the driver
1 = Enables DCA support in the driver
.IP
See the instructions in the README for enabling DCA.  If the driver is enabled for
DCA this parameter allows load-time control of the feature.
.LP
.B IntMode
.IP
.B Valid Range: 
0-2 0 = Legacy Int, 1 = MSI and 2 = MSIX
.br
.B Default Value: 
2
.IP
IntMode controls allow load time control over the type of interrupt
registered for by the driver.  MSI-X is required for multiple queue
support, and some kernels and combinations of kernel .config options will
force a lower level of interrupt support.  'cat /proc/interrupts' will show
different values for each type of interrupt. 
.LP
.B InterruptThrottleRate
.IP
.B Valid Range: 
956-488281 (0=off, 1=dynamic)
.br
.B Default Value: 1
.IP
Interrupt Throttle Rate (interrupts/sec)
.br
The ITR parameter controls how many interrupts each interrupt vector can
generate per second.  On MQ/RSS enabled kernels with MSI-X interrupts this
means that each RX vector can generate (by default) 8000 interrupts per second
and each TX vector can generate (by default) 4000 interrupts per second.
Increasing ITR lowers latency at the cost of increased CPU utilization, though
it may help throughput in some circumstances.
.br
1 = Dynamic mode attempts to moderate interrupts per vector while maintaining
very low latency.  This can sometimes cause extra CPU utilization.  If planning
on deploying ixgbe in a latency sensitive environment please consider this
parameter.
.br
0 = Setting InterruptThrottleRate to 0 turns off any interrupt moderation and 
may improve small packet latency, but is generally not suitable for bulk 
throughput traffic due to the increased cpu utilization of the higher interrupt
rate. Please note that on 82599-based adapters, disabling InterruptThrottleRate
will also result in the driver disabling HW RSC. On 82598-based adapters, 
disabling InterruptThrottleRate will also result in disabling LRO (Large Receive
Offloads). 
.LP
.B LLIPort
.IP
.B Valid Range: 
0-65535
.br
.B Default Value: 
0 (disabled)
.IP
LLI is configured with the LLIPort command-line parameter, which specifies which TCP port should generate Low Latency Interrupts. For example, using LLIPort=80 would cause the board to generate an immediate interrupt upon receipt of any packet sent to TCP port 80 on the local machine.
.IP
WARNING: Enabling LLI can result in an excessive number of interrupts/second 
that may cause problems with the system and in some cases may cause a kernel 
panic.
.LP
.B LLIPush
.IP
.B Valid Range: 
0-1
.br
.B Default Value: 
0 (disabled)
.IP
LLIPush can be set to be enabled or disabled (default). It is most effective in 
an environment with many small transactions. NOTE: Enabling LLIPush may allow a
denial of service attack.
.LP
.B LLISize
.IP
.B Valid Range: 
0-1500
.br
.B Default Value: 
0 (disabled)
.IP
LLISize causes an immediate interrupt if the board receives a packet smaller 
than the specified size.
.LP
.B LLIEType
.IP
.B Valid Range: 
0-x8fff
.br
.B Default Value: 
0 (disabled)
.IP
Low Latency Interrupt Ethernet Protocol Type.
.LP
.B LLIVLANP
.IP
.B Valid Range: 
0-7
.br
.B Default Value: 
0 (disabled)
.IP
Low Latency Interrupt on VLAN priority threshold.
.LP
.B FdirMode
.IP
.B Valid Range: 
0-2 (0=off, 1=ATR, 2=Perfect filter mode)
.br
.B Default Value: 1
.IP
Flow Director filtering modes.
.LP
.B FdirPballoc
.IP
.B Valid Range: 
0-2 (0=64k, 1=128k, 2=256k)
.br
.B Default Value: 
0
.IP
Flow Director allocated packet buffer size.
.LP
.B AtrSampleRate
.IP
.B Valid Range: 
1-100
.br
.B Default Value: 
20
.IP
Software ATR Tx packet sample rate. For example, when set to 20, every 20th
packet, looks to see if the packet will create a new flow.
.LP
.B L2LBen
.IP
.B Valid Range: 
0 = disable, 1 = enable
.br
.B Default Value:
1 (enable)
.IP
This parameter controls the internal switch (L2 loopback between pf and vf).
By default the switch is enabled.
.LP
.B LRO
.IP
Enable/disable Large Receive Offload.
.B Valid Range: 
0(off), 1(on)
.B Default Value: 
1
.LP
.SH JUMBO FRAMES
The driver supports Jumbo Frames for all adapters. Jumbo Frames support is enabled by changing the MTU to a value larger than the default of 1500. Use the ifconfig command to increase the MTU size. For example, enter the following where <x> is the interface number:
.IP
ifconfig eth<x> mtu 9000 up
.IP
The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
with the maximum Jumbo Frames size of 16128. This driver will attempt to
use multiple page sized buffers to receive each jumbo packet.  This
should help to avoid buffer starvation issues when allocating receive
packets.
.SH SUPPORT
For additional information, including supported adapters, building, and installation, see the README file included with the driver.
.LP
For general information and support, go to the Intel support website at:
.IP
.B http://support.intel.com
.LP
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 linux.nics@intel.com.
.LP
