1 FreeBSD Driver for 10 Gigabit PCI Express Server Adapters
2 =============================================
11 - Building and Installation
12 - Additional Configurations
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.
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.
30 The following Intel network adapters are compatible with the drivers in this
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
39 Intel(R) 82598EB 10 Gigabit AF
41 Intel(R) 82598EB 10 Gigabit AT
42 CX4 Network Connection
45 Building and Installation
46 =========================
48 NOTE: You must have kernel sources installed in order to compile the driver
51 In the instructions below, x.x.x is the driver version as indicated in
52 the name of the driver tar.
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.
57 2. Untar/unzip the archive:
58 tar xfz ixgbe-x.x.x.tar.gz
60 3. To install man page:
62 gzip -c ixgbe.4 > /usr/share/man/man4/ixgbee.4.gz
64 4. To load the driver onto a running system:
68 5. To assign an IP address to the interface, enter the following:
69 ifconfig ix<interface_num> <IP_address>
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
76 7. If you want the driver to load automatically when the system is booted:
82 Edit /boot/loader.conf, and add the following line:
87 compile the driver into the kernel (see item 8).
90 Edit /etc/rc.conf, and create the appropriate ifconfig_ixgbe<interface_num>
93 ifconfig_ix<interface_num>="<ifconfig_settings>"
97 ifconfig_ix0="inet 192.168.10.1 netmask 255.255.255.0"
99 NOTE: For assistance, see the ifconfig man page.
101 8. If you want to compile the driver into the kernel, enter:
107 cp *.[ch] /usr/src/sys/dev/ixgbe
109 cp Makefile.kernel /usr/src/sys/modules/ixgbe/Makefile
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:
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.
122 Configuration and Tuning
123 =========================
125 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
126 all 10 Gigabit adapters.
130 To enable Jumbo Frames, use the ifconfig utility to increase the MTU
135 - The Jumbo Frames setting on the switch must be set to at least
136 22 bytes larger than that of the adapter.
138 - There are known performance issues with this driver when running
139 UDP traffic with Jumbo Frames.
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:
144 ifconfig ix <interface_num> <hostname or IP address> mtu 9000
146 To confirm an interface's MTU value, use the ifconfig command. To confirm
147 the MTU used between two specific devices, use:
149 route get <destination_IP_address>
153 To create a new VLAN pseudo-interface:
155 ifconfig <vlan_name> create
157 To associate the VLAN pseudo-interface with a physical interface and
158 assign a VLAN ID, IP address, and netmask:
160 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
161 <vlan_id> vlandev <physical_interface>
165 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev ixgbe0
167 In this example, all packets will be marked on egress with 802.1Q VLAN
168 tags, specifying a VLAN ID of 10.
170 To remove a VLAN pseudo-interface:
172 ifconfig <vlan_name> destroy
178 Checksum offloading supports both TCP and UDP packets and is
179 supported for both transmit and receive.
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.
185 To enable checksum offloading:
187 ifconfig <interface_num> rxcsum
189 To disable checksum offloading:
191 ifconfig <interface_num> -rxcsum
193 To confirm the current setting:
195 ifconfig <interface_num>
203 ifconfig <interface_num> -tso
207 ifconfig <interface_num> tso
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]
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.
221 Important system configuration changes:
222 ---------------------------------------
224 When there is a choice run on a 64bit OS rather than 32, it makes
225 a significant difference in improvement.
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.
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.
234 Change the file /etc/sysctl.conf, add the line:
236 hw.intr_storm_threshold: 8000 (the default is 1000)
238 Best throughput results are seen with a large MTU; use 9000 if possible.
240 The default number of descriptors is 256, increasing this to 1024 or even
241 2048 may improve performance.
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.
255 For general information and support, go to the Intel support website at:
257 http://support.intel.com
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.
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.
276 * Other names and brands may be claimed as the property of others.