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