README revision 250168
1193267Sjkim/*$FreeBSD: head/sys/dev/ixgb/README 250168 2013-05-02 01:36:52Z eadler $*/
2193267SjkimFreeBSD Driver for Intel(R) PRO/10GbE Server Adapters
3193267Sjkim=====================================================
4193267Sjkim
5193267SjkimMarch 10, 2004
6193267Sjkim
7217365Sjkim
8306536SjkimContents
9193267Sjkim========
10193267Sjkim
11217365Sjkim- Overview
12217365Sjkim- Supported Adapters
13217365Sjkim- Building and Installation
14217365Sjkim- Additional Configurations
15217365Sjkim
16217365Sjkim
17217365SjkimOverview
18217365Sjkim========
19217365Sjkim
20217365SjkimThis file describes the FreeBSD* driver, version 1.0.x, for the Intel(R)
21217365SjkimPRO/10GbE Family of Adapters.  This driver has been developed for use with
22217365SjkimFreeBSD, version 4.8 and later.
23217365Sjkim
24217365SjkimFor questions related to hardware requirements, refer to the documentation
25193267Sjkimsupplied with your Intel PRO/10GbE adapter.  All hardware requirements listed
26217365Sjkimapply to use with FreeBSD.
27217365Sjkim
28217365Sjkim
29193267Sjkim
30217365SjkimSupported Adapters
31217365Sjkim==================
32217365Sjkim
33217365SjkimThe following Intel network adapters are compatible with the drivers in this 
34217365Sjkimrelease:
35217365Sjkim
36217365Sjkim Controller     Adapter Name                     Physical Layer
37217365Sjkim ----------     ------------                     --------------
38217365Sjkim
39217365Sjkim 82597EX        PRO/10GbE LR/SR Server Adapter   10G Base -LR and -SR
40217365Sjkim                                                 850 and 1310 nm optical fiber
41217365Sjkim
42217365Sjkim
43193267SjkimBuilding and Installation
44197104Sjkim=========================
45193267Sjkim
46193341SjkimNOTE: You must have kernel sources installed in order to compile the driver
47193341Sjkim      module.
48193341Sjkim
49193341Sjkim      In the instructions below, x.x.x is the driver version as indicated in
50193267Sjkim      the name of the driver tar.
51193267Sjkim
52193267Sjkim
53193267Sjkim1. Move the base driver tar file to the directory of your choice. For 
54193267Sjkim   example, use /home/username/ixgb or /usr/local/src/ixgb.
55193267Sjkim
56193267Sjkim2. Untar/unzip the archive:
57193267Sjkim     tar xfz ixgb-x.x.x.tar.gz
58193267Sjkim
59193267Sjkim3. To install man page:
60193267Sjkim     cd ixgb-x.x.x
61193267Sjkim     gzip -c ixgb.4 > /usr/share/man/man4/ixgb.4.gz
62193267Sjkim
63193267Sjkim4. To load the driver onto a running system:
64193267Sjkim     cd ixgb-x.x.x/src
65193267Sjkim     make load
66249663Sjkim
67193267Sjkim5. To assign an IP address to the interface, enter the following:
68249663Sjkim     ifconfig ixgb<interface_num> <IP_address>
69193267Sjkim
70249663Sjkim6. Verify that the interface works. Enter the following, where <IP_address>
71249663Sjkim   is the IP address for another machine on the same subnet as the interface
72193267Sjkim   that is being tested:
73193267Sjkim     ping <IP_address>
74193267Sjkim
75193267Sjkim7. If you want the driver to load automatically when the system is booted:
76193267Sjkim
77197104Sjkim     cd ixgb-x.x.x/src
78193267Sjkim     make load
79193267Sjkim     cp if_ixgb.ko /modules
80193267Sjkim        
81193267Sjkim    Edit /boot/loader.conf, and add the following line:
82249663Sjkim     if_ixgb_load="YES"
83193267Sjkim
84193267Sjkim     OR
85246849Sjkim
86246849Sjkim     compile the driver into the kernel (see item 7).
87246849Sjkim
88246849Sjkim
89246849Sjkim   Edit /etc/rc.conf, and create the appropriate ifconfig_ixgb<interface_num> 
90193267Sjkim   entry:
91193267Sjkim
92249663Sjkim     ifconfig_ixgb<interface_num>="<ifconfig_settings>"
93193267Sjkim
94193267Sjkim     Example usage:
95249663Sjkim
96197104Sjkim     ifconfig_ixgb0="inet 192.168.10.1 netmask 255.255.255.0"
97197104Sjkim
98193267Sjkim     NOTE: For assistance, see the ifconfig man page.
99193267Sjkim
100193267Sjkim8. If you want to compile the driver into the kernel, enter:
101193267Sjkim
102193267Sjkim     cd ixgb-x.x.x/src
103249663Sjkim
104193267Sjkim     mkdir /usr/src/sys/dev/ixgb
105193267Sjkim
106193267Sjkim     cp if_ixgb* /usr/src/sys/dev/ixgb
107193267Sjkim
108249663Sjkim     cp ixgb* /usr/src/sys/dev/ixgb  
109193267Sjkim 
110249663Sjkim     cp Makefile.kernel /usr/src/sys/modules/ixgb/Makefile
111193267Sjkim
112193267Sjkim   If you have an i386 platform, you will need to edit the files.i386 file. 
113193267Sjkim   This is usually in /usr/src/sys/conf/; actual locations wil vary depending 
114193267Sjkim   on platform.  Add the following lines:
115249663Sjkim
116193267Sjkim     dev/ixgb/ixgb_hw.c optional ixgb
117193267Sjkim     dev/ixgb/ixgb_ee.c optional ixgb
118193267Sjkim     dev/ixgb/if_ixgb.c optional ixgb
119193267Sjkim
120193267Sjkim
121249663Sjkim   Remove the following lines from the files.i386 file, if they exist:
122193267Sjkim
123193267Sjkim     /dev/ixgb/if_ixgb_fx_hw.c optional ixgb
124249663Sjkim     /dev/ixgb/if_ixgb_phy.c optional ixgb
125193267Sjkim
126193267Sjkim   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
127193267Sjkim   /usr/src/sys/i386/conf, and ensure the following line is present:
128197104Sjkim
129197104Sjkim     device ixgb
130193267Sjkim
131249663Sjkim   Compile and install the kernel.  The system must be reboot for the kernel 
132249663Sjkim   updates to take affect.  For additional information on compiling the kernel, 
133193267Sjkim   consult the FreeBSD operating system documentation.
134249663Sjkim
135193267Sjkim
136193267Sjkim
137193267SjkimAdditional Configurations
138228110Sjkim=========================
139193267Sjkim
140228110SjkimThe driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
141228110Sjkimall PRO/10GbE adapters. 
142228110Sjkim
143228110Sjkim  Jumbo Frames
144228110Sjkim  ------------
145228110Sjkim  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
146228110Sjkim  beyond 1500 bytes.
147228110Sjkim
148228110Sjkim  NOTES:
149193267Sjkim       - Only enable Jumbo Frames if your network infrastructure supports
150228110Sjkim         them.
151228110Sjkim
152197104Sjkim       - The Jumbo Frames setting on the switch must be set to at least
153193267Sjkim         22 bytes larger than that of the adapter.
154249663Sjkim
155193267Sjkim       - There are known performance issues with this driver when running 
156193267Sjkim         UDP traffic with Jumbo Frames. 
157193267Sjkim
158200553Sjkim  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
159200553Sjkim  MTU range is 1500. To modify the setting, enter the following:
160193267Sjkim
161249663Sjkim        ifconfig ixgb<interface_num> <hostname or IP address> mtu 9000
162249663Sjkim
163193267Sjkim  To confirm an interface's MTU value, use the ifconfig command. To confirm
164193267Sjkim  the MTU used between two specific devices, use:
165200553Sjkim
166193267Sjkim        route get <destination_IP_address>
167193267Sjkim
168200553Sjkim VLANs
169253690Sjkim  -----
170253690Sjkim  To create a new VLAN pseudo-interface:
171253690Sjkim
172253690Sjkim        ifconfig <vlan_name> create
173253690Sjkim
174253690Sjkim  To associate the VLAN pseudo-interface with a physical interface and
175253690Sjkim  assign a VLAN ID, IP address, and netmask:
176253690Sjkim
177253690Sjkim        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
178253690Sjkim           <vlan_id> vlandev <physical_interface>
179200553Sjkim
180200553Sjkim  Example:
181200553Sjkim
182200553Sjkim        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev ixgb0
183193267Sjkim
184249663Sjkim  In this example, all packets will be marked on egress with 802.1Q VLAN 
185249663Sjkim  tags, specifying a VLAN ID of 10.
186200553Sjkim
187200553Sjkim  To remove a VLAN pseudo-interface:
188250838Sjkim
189250838Sjkim        ifconfig <vlan_name> destroy
190250838Sjkim
191250838Sjkim  Polling
192250838Sjkim  -------
193250838Sjkim  To enable polling in the driver, add the following options to the kernel
194250838Sjkim  configuration, and then recompile the kernel:
195200553Sjkim
196193267Sjkim        options DEVICE_POLLING
197193267Sjkim        options HZ=1000
198199337Sjkim
199200553Sjkim  At runtime, use the following command to turn on polling mode.
200200553Sjkim
201200553Sjkim	ifconfig ixgb0 polling
202200553Sjkim
203200553Sjkim  Similarly, turn off polling mode by removing IFCAP_POLLING flag from
204200553Sjkim  interface:
205199337Sjkim
206249663Sjkim        ifconfig ixgb0 -polling
207197104Sjkim
208200553Sjkim  The driver has to be built into the kernel for DEVICE POLLING to be
209197104Sjkim  enabled in the driver.
210197104Sjkim
211197104SjkimSupport
212197104Sjkim=======
213197104Sjkim
214249663SjkimFor general information and support, go to the Intel support website at:
215249663Sjkim
216197104Sjkim        http://support.intel.com
217197104Sjkim
218197104SjkimIf an issue is identified with the released source code on the supported
219197104Sjkimkernel with a supported adapter, email the specific information related to 
220193267Sjkimthe issue to freebsd@intel.com.
221193267Sjkim
222193267Sjkim
223193267Sjkim
224193267SjkimLicense
225193267Sjkim=======
226193267Sjkim
227193267SjkimThis software program is released under the terms of a license agreement 
228249663Sjkimbetween you ('Licensee') and Intel. Do not use or load this software or any 
229193267Sjkimassociated materials (collectively, the 'Software') until you have carefully 
230193267Sjkimread the full terms and conditions of the LICENSE located in this software 
231193267Sjkimpackage. By loading or using the Software, you agree to the terms of this 
232193267SjkimAgreement. If you do not agree with the terms of this Agreement, do not 
233197104Sjkiminstall or use the Software.
234197104Sjkim
235193267Sjkim* Other names and brands may be claimed as the property of others.
236193267Sjkim
237193267Sjkim
238193267Sjkim