PJ Waskiewicz | 09e1c06 | 2009-03-13 22:15:54 +0000 | [diff] [blame] | 1 | Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection |
| 2 | ======================================================================== |
| 3 | |
| 4 | March 10, 2009 |
| 5 | |
| 6 | |
| 7 | Contents |
| 8 | ======== |
| 9 | |
| 10 | - In This Release |
| 11 | - Identifying Your Adapter |
| 12 | - Building and Installation |
| 13 | - Additional Configurations |
| 14 | - Support |
| 15 | |
| 16 | |
| 17 | |
| 18 | In This Release |
| 19 | =============== |
| 20 | |
| 21 | This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI |
| 22 | Express Intel(R) Network Connection. This driver includes support for |
| 23 | Itanium(R)2-based systems. |
| 24 | |
| 25 | For questions related to hardware requirements, refer to the documentation |
| 26 | supplied with your 10 Gigabit adapter. All hardware requirements listed apply |
| 27 | to use with Linux. |
| 28 | |
| 29 | The following features are available in this kernel: |
| 30 | - Native VLANs |
| 31 | - Channel Bonding (teaming) |
| 32 | - SNMP |
| 33 | - Generic Receive Offload |
| 34 | - Data Center Bridging |
| 35 | |
| 36 | Channel Bonding documentation can be found in the Linux kernel source: |
| 37 | /Documentation/networking/bonding.txt |
| 38 | |
| 39 | Ethtool, lspci, and ifconfig can be used to display device and driver |
| 40 | specific information. |
| 41 | |
| 42 | |
| 43 | Identifying Your Adapter |
| 44 | ======================== |
| 45 | |
| 46 | This driver supports devices based on the 82598 controller and the 82599 |
| 47 | controller. |
| 48 | |
| 49 | For specific information on identifying which adapter you have, please visit: |
| 50 | |
| 51 | http://support.intel.com/support/network/sb/CS-008441.htm |
| 52 | |
| 53 | |
| 54 | Building and Installation |
| 55 | ========================= |
| 56 | |
| 57 | select m for "Intel(R) 10GbE PCI Express adapters support" located at: |
| 58 | Location: |
| 59 | -> Device Drivers |
| 60 | -> Network device support (NETDEVICES [=y]) |
| 61 | -> Ethernet (10000 Mbit) (NETDEV_10000 [=y]) |
| 62 | |
| 63 | 1. make modules & make modules_install |
| 64 | |
| 65 | 2. Load the module: |
| 66 | |
| 67 | # modprobe ixgbe |
| 68 | |
| 69 | The insmod command can be used if the full |
| 70 | path to the driver module is specified. For example: |
| 71 | |
| 72 | insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko |
| 73 | |
| 74 | With 2.6 based kernels also make sure that older ixgbe drivers are |
| 75 | removed from the kernel, before loading the new module: |
| 76 | |
| 77 | rmmod ixgbe; modprobe ixgbe |
| 78 | |
| 79 | 3. Assign an IP address to the interface by entering the following, where |
| 80 | x is the interface number: |
| 81 | |
| 82 | ifconfig ethx <IP_address> |
| 83 | |
| 84 | 4. Verify that the interface works. Enter the following, where <IP_address> |
| 85 | is the IP address for another machine on the same subnet as the interface |
| 86 | that is being tested: |
| 87 | |
| 88 | ping <IP_address> |
| 89 | |
| 90 | |
| 91 | Additional Configurations |
| 92 | ========================= |
| 93 | |
| 94 | Viewing Link Messages |
| 95 | --------------------- |
| 96 | Link messages will not be displayed to the console if the distribution is |
| 97 | restricting system messages. In order to see network driver link messages on |
| 98 | your console, set dmesg to eight by entering the following: |
| 99 | |
| 100 | dmesg -n 8 |
| 101 | |
| 102 | NOTE: This setting is not saved across reboots. |
| 103 | |
| 104 | |
| 105 | Jumbo Frames |
| 106 | ------------ |
| 107 | The driver supports Jumbo Frames for all adapters. Jumbo Frames support is |
| 108 | enabled by changing the MTU to a value larger than the default of 1500. |
| 109 | The maximum value for the MTU is 16110. Use the ifconfig command to |
| 110 | increase the MTU size. For example: |
| 111 | |
| 112 | ifconfig ethx mtu 9000 up |
| 113 | |
| 114 | The maximum MTU setting for Jumbo Frames is 16110. This value coincides |
| 115 | with the maximum Jumbo Frames size of 16128. |
| 116 | |
| 117 | Generic Receive Offload, aka GRO |
| 118 | -------------------------------- |
| 119 | The driver supports the in-kernel software implementation of GRO. GRO has |
| 120 | shown that by coalescing Rx traffic into larger chunks of data, CPU |
| 121 | utilization can be significantly reduced when under large Rx load. GRO is an |
| 122 | evolution of the previously-used LRO interface. GRO is able to coalesce |
| 123 | other protocols besides TCP. It's also safe to use with configurations that |
| 124 | are problematic for LRO, namely bridging and iSCSI. |
| 125 | |
| 126 | GRO is enabled by default in the driver. Future versions of ethtool will |
| 127 | support disabling and re-enabling GRO on the fly. |
| 128 | |
| 129 | |
| 130 | Data Center Bridging, aka DCB |
| 131 | ----------------------------- |
| 132 | |
| 133 | DCB is a configuration Quality of Service implementation in hardware. |
| 134 | It uses the VLAN priority tag (802.1p) to filter traffic. That means |
| 135 | that there are 8 different priorities that traffic can be filtered into. |
| 136 | It also enables priority flow control which can limit or eliminate the |
| 137 | number of dropped packets during network stress. Bandwidth can be |
| 138 | allocated to each of these priorities, which is enforced at the hardware |
| 139 | level. |
| 140 | |
| 141 | To enable DCB support in ixgbe, you must enable the DCB netlink layer to |
| 142 | allow the userspace tools (see below) to communicate with the driver. |
| 143 | This can be found in the kernel configuration here: |
| 144 | |
| 145 | -> Networking support |
| 146 | -> Networking options |
| 147 | -> Data Center Bridging support |
| 148 | |
| 149 | Once this is selected, DCB support must be selected for ixgbe. This can |
| 150 | be found here: |
| 151 | |
| 152 | -> Device Drivers |
| 153 | -> Network device support (NETDEVICES [=y]) |
| 154 | -> Ethernet (10000 Mbit) (NETDEV_10000 [=y]) |
| 155 | -> Intel(R) 10GbE PCI Express adapters support |
| 156 | -> Data Center Bridging (DCB) Support |
| 157 | |
| 158 | After these options are selected, you must rebuild your kernel and your |
| 159 | modules. |
| 160 | |
| 161 | In order to use DCB, userspace tools must be downloaded and installed. |
| 162 | The dcbd tools can be found at: |
| 163 | |
| 164 | http://e1000.sf.net |
| 165 | |
| 166 | |
| 167 | Ethtool |
| 168 | ------- |
| 169 | The driver utilizes the ethtool interface for driver configuration and |
| 170 | diagnostics, as well as displaying statistical information. Ethtool |
| 171 | version 3.0 or later is required for this functionality. |
| 172 | |
| 173 | The latest release of ethtool can be found from |
| 174 | http://sourceforge.net/projects/gkernel. |
| 175 | |
| 176 | |
| 177 | NAPI |
| 178 | ---- |
| 179 | |
| 180 | NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled |
| 181 | by default in the driver. |
| 182 | |
| 183 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. |
| 184 | |
| 185 | |
| 186 | Support |
| 187 | ======= |
| 188 | |
| 189 | For general information, go to the Intel support website at: |
| 190 | |
| 191 | http://support.intel.com |
| 192 | |
| 193 | or the Intel Wired Networking project hosted by Sourceforge at: |
| 194 | |
| 195 | http://e1000.sourceforge.net |
| 196 | |
| 197 | If an issue is identified with the released source code on the supported |
| 198 | kernel with a supported adapter, email the specific information related |
| 199 | to the issue to e1000-devel@lists.sf.net |