ixgbe: Add documentation for the driver
[linux-2.6.git] / Documentation / networking / ixgbe.txt
1 Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection
2 ========================================================================
3
4 March 10, 2009
5
6
7 Contents
8 ========
9
10 - In This Release
11 - Identifying Your Adapter
12 - Building and Installation
13 - Additional Configurations
14 - Support
15
16
17
18 In This Release
19 ===============
20
21 This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI
22 Express Intel(R) Network Connection.  This driver includes support for
23 Itanium(R)2-based systems.
24
25 For questions related to hardware requirements, refer to the documentation
26 supplied with your 10 Gigabit adapter.  All hardware requirements listed apply
27 to use with Linux.
28
29 The following features are available in this kernel:
30  - Native VLANs
31  - Channel Bonding (teaming)
32  - SNMP
33  - Generic Receive Offload
34  - Data Center Bridging
35
36 Channel Bonding documentation can be found in the Linux kernel source:
37 /Documentation/networking/bonding.txt
38
39 Ethtool, lspci, and ifconfig can be used to display device and driver
40 specific information.
41
42
43 Identifying Your Adapter
44 ========================
45
46 This driver supports devices based on the 82598 controller and the 82599
47 controller.
48
49 For specific information on identifying which adapter you have, please visit:
50
51     http://support.intel.com/support/network/sb/CS-008441.htm
52
53
54 Building and Installation
55 =========================
56
57 select m for "Intel(R) 10GbE PCI Express adapters support" located at:
58       Location:
59         -> Device Drivers
60           -> Network device support (NETDEVICES [=y])
61             -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
62
63 1. make modules & make modules_install
64
65 2. Load the module:
66
67 # modprobe ixgbe
68
69    The insmod command can be used if the full
70    path to the driver module is specified.  For example:
71
72      insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko
73
74    With 2.6 based kernels also make sure that older ixgbe drivers are
75    removed from the kernel, before loading the new module:
76
77      rmmod ixgbe; modprobe ixgbe
78
79 3. Assign an IP address to the interface by entering the following, where
80    x is the interface number:
81
82      ifconfig ethx <IP_address>
83
84 4. Verify that the interface works. Enter the following, where <IP_address>
85    is the IP address for another machine on the same subnet as the interface
86    that is being tested:
87
88      ping  <IP_address>
89
90
91 Additional Configurations
92 =========================
93
94   Viewing Link Messages
95   ---------------------
96   Link messages will not be displayed to the console if the distribution is
97   restricting system messages. In order to see network driver link messages on
98   your console, set dmesg to eight by entering the following:
99
100        dmesg -n 8
101
102   NOTE: This setting is not saved across reboots.
103
104
105   Jumbo Frames
106   ------------
107   The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
108   enabled by changing the MTU to a value larger than the default of 1500.
109   The maximum value for the MTU is 16110.  Use the ifconfig command to
110   increase the MTU size.  For example:
111
112         ifconfig ethx mtu 9000 up
113
114   The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
115   with the maximum Jumbo Frames size of 16128.
116
117   Generic Receive Offload, aka GRO
118   --------------------------------
119   The driver supports the in-kernel software implementation of GRO.  GRO has
120   shown that by coalescing Rx traffic into larger chunks of data, CPU
121   utilization can be significantly reduced when under large Rx load.  GRO is an
122   evolution of the previously-used LRO interface.  GRO is able to coalesce
123   other protocols besides TCP.  It's also safe to use with configurations that
124   are problematic for LRO, namely bridging and iSCSI.
125
126   GRO is enabled by default in the driver.  Future versions of ethtool will
127   support disabling and re-enabling GRO on the fly.
128
129
130   Data Center Bridging, aka DCB
131   -----------------------------
132
133   DCB is a configuration Quality of Service implementation in hardware.
134   It uses the VLAN priority tag (802.1p) to filter traffic.  That means
135   that there are 8 different priorities that traffic can be filtered into.
136   It also enables priority flow control which can limit or eliminate the
137   number of dropped packets during network stress.  Bandwidth can be
138   allocated to each of these priorities, which is enforced at the hardware
139   level.
140
141   To enable DCB support in ixgbe, you must enable the DCB netlink layer to
142   allow the userspace tools (see below) to communicate with the driver.
143   This can be found in the kernel configuration here:
144
145         -> Networking support
146           -> Networking options
147             -> Data Center Bridging support
148
149   Once this is selected, DCB support must be selected for ixgbe.  This can
150   be found here:
151
152         -> Device Drivers
153           -> Network device support (NETDEVICES [=y])
154             -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
155               -> Intel(R) 10GbE PCI Express adapters support
156                 -> Data Center Bridging (DCB) Support
157
158   After these options are selected, you must rebuild your kernel and your
159   modules.
160
161   In order to use DCB, userspace tools must be downloaded and installed.
162   The dcbd tools can be found at:
163
164         http://e1000.sf.net
165
166
167   Ethtool
168   -------
169   The driver utilizes the ethtool interface for driver configuration and
170   diagnostics, as well as displaying statistical information.  Ethtool
171   version 3.0 or later is required for this functionality.
172
173   The latest release of ethtool can be found from
174   http://sourceforge.net/projects/gkernel.
175
176
177   NAPI
178   ----
179
180   NAPI (Rx polling mode) is supported in the ixgbe driver.  NAPI is enabled
181   by default in the driver.
182
183   See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
184
185
186 Support
187 =======
188
189 For general information, go to the Intel support website at:
190
191     http://support.intel.com
192
193 or the Intel Wired Networking project hosted by Sourceforge at:
194
195     http://e1000.sourceforge.net
196
197 If an issue is identified with the released source code on the supported
198 kernel with a supported adapter, email the specific information related
199 to the issue to e1000-devel@lists.sf.net