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