]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - sys/dev/ixgbe/README
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / sys / dev / ixgbe / README
1 FreeBSD Driver for 10 Gigabit PCI Express Server Adapters
2 =============================================
3 /*$FreeBSD$*/
4
5 May 14, 2008
6
7
8 Contents
9 ========
10
11 - Overview
12 - Supported Adapters
13 - Building and Installation
14 - Additional Configurations
15 - Known Limitations
16
17
18 Overview
19 ========
20
21 This file describes the FreeBSD* driver for the 10 Gigabit PCIE Family of 
22 Adapters.  Drivers has been developed for use with FreeBSD 7 or later.
23
24 For questions related to hardware requirements, refer to the documentation
25 supplied with your Intel 10GbE adapter.  All hardware requirements listed
26 apply to use with FreeBSD.
27
28
29 Supported Adapters
30 ==================
31
32 The following Intel network adapters are compatible with the drivers in this 
33 release:
34
35 Controller  Adapter Name                      Physical Layer
36 ----------  ------------                      --------------
37 82598EB     Intel(R) 10 Gigabit XF SR/AF      10G Base -LR (850 nm optical fiber) 
38             Dual Port Server Adapter          10G Base -SR (1310 nm optical fiber) 
39 82598EB     Intel(R) 10 Gigabit XF SR/LR 
40             Server Adapter
41             Intel(R) 82598EB 10 Gigabit AF 
42             Network Connection
43             Intel(R) 82598EB 10 Gigabit AT 
44             CX4 Network Connection
45               
46
47 Building and Installation
48 =========================
49
50 NOTE: You must have kernel sources installed in order to compile the driver
51       module.
52
53       In the instructions below, x.x.x is the driver version as indicated in
54       the name of the driver tar. 
55
56 1. Move the base driver tar file to the directory of your choice. For 
57    example, use /home/username/ixgbe or /usr/local/src/ixgbe.
58
59 2. Untar/unzip the archive:
60      tar xfz ixgbe-x.x.x.tar.gz
61
62 3. To install man page:
63      cd ixgbe-x.x.x
64      gzip -c ixgbe.4 > /usr/share/man/man4/ixgbee.4.gz
65
66 4. To load the driver onto a running system:
67      cd ixgbe-x.x.x/src
68      make load
69
70 5. To assign an IP address to the interface, enter the following:
71      ifconfig ix<interface_num> <IP_address>
72
73 6. Verify that the interface works. Enter the following, where <IP_address>
74    is the IP address for another machine on the same subnet as the interface
75    that is being tested:
76      ping <IP_address>
77
78 7. If you want the driver to load automatically when the system is booted:
79
80      cd ixgbe-x.x.x/src
81      make
82      make install
83         
84     Edit /boot/loader.conf, and add the following line:
85      ixgbe_load="YES"
86
87      OR
88
89      compile the driver into the kernel (see item 8).
90
91
92    Edit /etc/rc.conf, and create the appropriate ifconfig_ixgbe<interface_num> 
93    entry:
94
95      ifconfig_ix<interface_num>="<ifconfig_settings>"
96
97      Example usage:
98
99      ifconfig_ix0="inet 192.168.10.1 netmask 255.255.255.0"
100
101      NOTE: For assistance, see the ifconfig man page.
102
103 8. If you want to compile the driver into the kernel, enter:
104
105      FreeBSD 7 or later:
106
107      cd ixgbe-x.x.x/src
108
109      cp *.[ch] /usr/src/sys/dev/ixgbe
110    
111      cp Makefile.kernel /usr/src/sys/modules/ixgbe/Makefile
112
113      Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
114      /usr/src/sys/i386/conf (replace "i386" with the appropriate system 
115      architecture if necessary), and ensure the following line is present:
116
117     device ixgbe
118
119    Compile and install the kernel.  The system must be reboot for the kernel 
120    updates to take affect.  For additional information on compiling the kernel, 
121    consult the FreeBSD operating system documentation.
122
123
124 Configuration and Tuning
125 =========================
126
127 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
128 all 10 Gigabit adapters. 
129
130   Jumbo Frames
131   ------------
132   To enable Jumbo Frames, use the ifconfig utility to increase the MTU
133   beyond 1500 bytes.
134
135   NOTES:
136
137        - The Jumbo Frames setting on the switch must be set to at least
138          22 bytes larger than that of the adapter.
139
140        - There are known performance issues with this driver when running 
141          UDP traffic with Jumbo Frames. 
142
143   The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
144   MTU range is 1500. To modify the setting, enter the following:
145
146         ifconfig ix <interface_num> <hostname or IP address> mtu 9000
147
148   To confirm an interface's MTU value, use the ifconfig command. To confirm
149   the MTU used between two specific devices, use:
150
151         route get <destination_IP_address>
152
153   VLANs
154   -----
155   To create a new VLAN pseudo-interface:
156
157         ifconfig <vlan_name> create
158
159   To associate the VLAN pseudo-interface with a physical interface and
160   assign a VLAN ID, IP address, and netmask:
161
162         ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
163            <vlan_id> vlandev <physical_interface>
164
165   Example:
166
167         ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev ixgbe0
168
169   In this example, all packets will be marked on egress with 802.1Q VLAN 
170   tags, specifying a VLAN ID of 10.
171
172   To remove a VLAN pseudo-interface:
173
174         ifconfig <vlan_name> destroy
175
176
177   Checksum Offload
178   ----------------
179   
180   Checksum offloading supports both TCP and UDP packets and is 
181   supported for both transmit and receive. 
182
183   Checksum offloading can be enabled or disabled using ifconfig. 
184   Both transmit and receive offloading will be either enabled or 
185   disabled together. You cannot enable/disable one without the other.
186
187   To enable checksum offloading:
188
189          ifconfig <interface_num> rxcsum 
190
191   To disable checksum offloading:
192
193          ifconfig <interface_num> -rxcsum 
194
195   To confirm the current setting:
196
197          ifconfig <interface_num>
198
199   
200   TSO
201   ---
202
203   To disable:
204
205          ifconfig <interface_num> -tso 
206
207   To re-enable:
208
209          ifconfig <interface_num> tso
210
211   LRO
212   ___
213   
214    Large Receive Offload is available in version 1.4.4, it is on
215    by default. It can be toggled off and on by using:
216         sysctl dev.ix.X.enable_lro=[0,1]
217
218    NOTE: when changing this feature you MUST be sure the interface
219    is reinitialized, it is easy to do this with ifconfig down/up.
220    The LRO code will ultimately move into the kernel stack code,
221    but for this first release it was included with the driver.
222
223   Important system configuration changes:
224   ---------------------------------------
225
226   When there is a choice run on a 64bit OS rather than 32, it makes
227   a significant difference in improvement.
228
229   The default scheduler SCHED_4BSD is not smart about SMP locality issues. 
230   Significant improvement can be achieved by switching to the ULE scheduler.
231
232   This is done by changing the entry in the config file from SCHED_4BSD to 
233   SCHED_ULE. Note that this is only advisable on FreeBSD 7, on 6.X there have
234   been stability problems with ULE.
235
236   Change the file /etc/sysctl.conf, add the line:  
237  
238          hw.intr_storm_threshold: 8000 (the default is 1000)
239
240   Best throughput results are seen with a large MTU; use 9000 if possible. 
241
242   The default number of descriptors is 256, increasing this to 1024 or even 
243   2048 may improve performance.
244
245
246 Known Limitations
247 =================
248   Under small packets UDP stress test with 10GbE driver, the FreeBSD system 
249   will drop UDP packets due to the fullness of socket buffers. You may want 
250   to change the driver's Flow Control variables to the minimum value for 
251   controlling packet reception.
252
253
254 Support
255 =======
256
257 For general information and support, go to the Intel support website at:
258
259         http://support.intel.com
260
261 If an issue is identified with the released source code on the supported
262 kernel with a supported adapter, email the specific information related to 
263 the issue to freebsd@intel.com.
264
265
266
267 License
268 =======
269
270 This software program is released under the terms of a license agreement 
271 between you ('Licensee') and Intel. Do not use or load this software or any 
272 associated materials (collectively, the 'Software') until you have carefully 
273 read the full terms and conditions of the LICENSE located in this software 
274 package. By loading or using the Software, you agree to the terms of this 
275 Agreement. If you do not agree with the terms of this Agreement, do not 
276 install or use the Software.
277
278 * Other names and brands may be claimed as the property of others.
279
280