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