567ba9b00a
struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com. This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go. Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr. Reviewed by: sobomax, sam |
||
---|---|---|
.. | ||
if_ixgb_osdep.h | ||
if_ixgb.c | ||
if_ixgb.h | ||
ixgb_ee.c | ||
ixgb_ee.h | ||
ixgb_hw.c | ||
ixgb_hw.h | ||
ixgb_ids.h | ||
LICENSE | ||
README |
/*$FreeBSD$*/ FreeBSD Driver for Intel(R) PRO/10GbE Server Adapters ===================================================== March 10, 2004 Contents ======== - Overview - Supported Adapters - Building and Installation - Additional Configurations Overview ======== This file describes the FreeBSD* driver, version 1.0.x, for the Intel(R) PRO/10GbE Family of Adapters. This driver has been developed for use with FreeBSD, version 4.8 and later. For questions related to hardware requirements, refer to the documentation supplied with your Intel PRO/10GbE adapter. All hardware requirements listed apply to use with FreeBSD. Supported Adapters ================== The following Intel network adapters are compatible with the drivers in this release: Controller Adapter Name Physical Layer ---------- ------------ -------------- 82597EX PRO/10GbE LR/SR Server Adapter 10G Base -LR and -SR 850 and 1310 nm optical fiber Building and Installation ========================= NOTE: You must have kernel sources installed in order to compile the driver module. In the instructions below, x.x.x is the driver version as indicated in the name of the driver tar. 1. Move the base driver tar file to the directory of your choice. For example, use /home/username/ixgb or /usr/local/src/ixgb. 2. Untar/unzip the archive: tar xfz ixgb-x.x.x.tar.gz 3. To install man page: cd ixgb-x.x.x gzip -c ixgb.4 > /usr/share/man/man4/ixgb.4.gz 4. To load the driver onto a running system: cd ixgb-x.x.x/src make load 5. To assign an IP address to the interface, enter the following: ifconfig ixgb<interface_num> <IP_address> 6. Verify that the interface works. Enter the following, where <IP_address> is the IP address for another machine on the same subnet as the interface that is being tested: ping <IP_address> 7. If you want the driver to load automatically when the system is booted: cd ixgb-x.x.x/src make load cp if_ixgb.ko /modules Edit /boot/loader.conf, and add the following line: if_ixgb_load="YES" OR compile the driver into the kernel (see item 7). Edit /etc/rc.conf, and create the appropriate ifconfig_ixgb<interface_num> entry: ifconfig_ixgb<interface_num>="<ifconfig_settings>" Example usage: ifconfig_ixgb0="inet 192.168.10.1 netmask 255.255.255.0" NOTE: For assistance, see the ifconfig man page. 8. If you want to compile the driver into the kernel, enter: cd ixgb-x.x.x/src mkdir /usr/src/sys/dev/ixgb cp if_ixgb* /usr/src/sys/dev/ixgb cp ixgb* /usr/src/sys/dev/ixgb cp Makefile.kernel /usr/src/sys/modules/ixgb/Makefile If you have an i386 platform, you will need to edit the files.i386 file. This is usually in /usr/src/sys/conf/; actual locations wil vary depending on platform. Add the following lines: dev/ixgb/ixgb_hw.c optional ixgb dev/ixgb/ixgb_ee.c optional ixgb dev/ixgb/if_ixgb.c optional ixgb Remove the following lines from the files.i386 file, if they exist: /dev/ixgb/if_ixgb_fx_hw.c optional ixgb /dev/ixgb/if_ixgb_phy.c optional ixgb Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in /usr/src/sys/i386/conf, and ensure the following line is present: device ixgb Compile and install the kernel. The system must be reboot for the kernel updates to take affect. For additional information on compiling the kernel, consult the FreeBSD operating system documentation. Additional Configurations ========================= The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on all PRO/10GbE adapters. Jumbo Frames ------------ To enable Jumbo Frames, use the ifconfig utility to increase the MTU beyond 1500 bytes. NOTES: - Only enable Jumbo Frames if your network infrastructure supports them. - The Jumbo Frames setting on the switch must be set to at least 22 bytes larger than that of the adapter. - There are known performance issues with this driver when running UDP traffic with Jumbo Frames. The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default MTU range is 1500. To modify the setting, enter the following: ifconfig ixgb<interface_num> <hostname or IP address> mtu 9000 To confirm an interface's MTU value, use the ifconfig command. To confirm the MTU used between two specific devices, use: route get <destination_IP_address> VLANs ----- To create a new VLAN pseudo-interface: ifconfig <vlan_name> create To associate the VLAN pseudo-interface with a physical interface and assign a VLAN ID, IP address, and netmask: ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan <vlan_id> vlandev <physical_interface> Example: ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev ixgb0 In this example, all packets will be marked on egress with 802.1Q VLAN tags, specifying a VLAN ID of 10. To remove a VLAN pseudo-interface: ifconfig <vlan_name> destroy Polling ------- To enable polling in the driver, add the following options to the kernel configuration, and then recompile the kernel: options DEVICE_POLLING options HZ=1000 At runtime, use the following command to turn on polling mode. Similarly, turn off polling mode by setting the variable to 0: sysctl kern.polling.enable=1 NOTES: DEVICE POLLING is only valid for non-SMP kernels. The driver has to be built into the kernel for DEVICE POLLING to be enabled in the driver. Support ======= For general information and support, go to the Intel support website at: http://support.intel.com If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to freebsdnic@mailbox.intel.com. License ======= This software program is released under the terms of a license agreement between you ('Licensee') and Intel. Do not use or load this software or any associated materials (collectively, the 'Software') until you have carefully read the full terms and conditions of the LICENSE located in this software package. By loading or using the Software, you agree to the terms of this Agreement. If you do not agree with the terms of this Agreement, do not install or use the Software. * Other names and brands may be claimed as the property of others.