diff options
Diffstat (limited to 'Documentation/networking')
| -rw-r--r-- | Documentation/networking/00-INDEX | 116 | ||||
| -rw-r--r-- | Documentation/networking/ip-sysctl.txt | 2 | ||||
| -rw-r--r-- | Documentation/networking/scaling.txt | 23 |
3 files changed, 132 insertions, 9 deletions
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 4edd78dfb362..bbce1215434a 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
| @@ -1,13 +1,21 @@ | |||
| 1 | 00-INDEX | 1 | 00-INDEX |
| 2 | - this file | 2 | - this file |
| 3 | 3c359.txt | ||
| 4 | - information on the 3Com TokenLink Velocity XL (3c5359) driver. | ||
| 3 | 3c505.txt | 5 | 3c505.txt |
| 4 | - information on the 3Com EtherLink Plus (3c505) driver. | 6 | - information on the 3Com EtherLink Plus (3c505) driver. |
| 7 | 3c509.txt | ||
| 8 | - information on the 3Com Etherlink III Series Ethernet cards. | ||
| 5 | 6pack.txt | 9 | 6pack.txt |
| 6 | - info on the 6pack protocol, an alternative to KISS for AX.25 | 10 | - info on the 6pack protocol, an alternative to KISS for AX.25 |
| 7 | DLINK.txt | 11 | DLINK.txt |
| 8 | - info on the D-Link DE-600/DE-620 parallel port pocket adapters | 12 | - info on the D-Link DE-600/DE-620 parallel port pocket adapters |
| 9 | PLIP.txt | 13 | PLIP.txt |
| 10 | - PLIP: The Parallel Line Internet Protocol device driver | 14 | - PLIP: The Parallel Line Internet Protocol device driver |
| 15 | README.ipw2100 | ||
| 16 | - README for the Intel PRO/Wireless 2100 driver. | ||
| 17 | README.ipw2200 | ||
| 18 | - README for the Intel PRO/Wireless 2915ABG and 2200BG driver. | ||
| 11 | README.sb1000 | 19 | README.sb1000 |
| 12 | - info on General Instrument/NextLevel SURFboard1000 cable modem. | 20 | - info on General Instrument/NextLevel SURFboard1000 cable modem. |
| 13 | alias.txt | 21 | alias.txt |
| @@ -20,8 +28,12 @@ atm.txt | |||
| 20 | - info on where to get ATM programs and support for Linux. | 28 | - info on where to get ATM programs and support for Linux. |
| 21 | ax25.txt | 29 | ax25.txt |
| 22 | - info on using AX.25 and NET/ROM code for Linux | 30 | - info on using AX.25 and NET/ROM code for Linux |
| 31 | batman-adv.txt | ||
| 32 | - B.A.T.M.A.N routing protocol on top of layer 2 Ethernet Frames. | ||
| 23 | baycom.txt | 33 | baycom.txt |
| 24 | - info on the driver for Baycom style amateur radio modems | 34 | - info on the driver for Baycom style amateur radio modems |
| 35 | bonding.txt | ||
| 36 | - Linux Ethernet Bonding Driver HOWTO: link aggregation in Linux. | ||
| 25 | bridge.txt | 37 | bridge.txt |
| 26 | - where to get user space programs for ethernet bridging with Linux. | 38 | - where to get user space programs for ethernet bridging with Linux. |
| 27 | can.txt | 39 | can.txt |
| @@ -34,32 +46,60 @@ cxacru.txt | |||
| 34 | - Conexant AccessRunner USB ADSL Modem | 46 | - Conexant AccessRunner USB ADSL Modem |
| 35 | cxacru-cf.py | 47 | cxacru-cf.py |
| 36 | - Conexant AccessRunner USB ADSL Modem configuration file parser | 48 | - Conexant AccessRunner USB ADSL Modem configuration file parser |
| 49 | cxgb.txt | ||
| 50 | - Release Notes for the Chelsio N210 Linux device driver. | ||
| 51 | dccp.txt | ||
| 52 | - the Datagram Congestion Control Protocol (DCCP) (RFC 4340..42). | ||
| 37 | de4x5.txt | 53 | de4x5.txt |
| 38 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver | 54 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver |
| 39 | decnet.txt | 55 | decnet.txt |
| 40 | - info on using the DECnet networking layer in Linux. | 56 | - info on using the DECnet networking layer in Linux. |
| 41 | depca.txt | 57 | depca.txt |
| 42 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver | 58 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver |
| 59 | dl2k.txt | ||
| 60 | - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). | ||
| 61 | dm9000.txt | ||
| 62 | - README for the Simtec DM9000 Network driver. | ||
| 43 | dmfe.txt | 63 | dmfe.txt |
| 44 | - info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver. | 64 | - info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver. |
| 65 | dns_resolver.txt | ||
| 66 | - The DNS resolver module allows kernel servies to make DNS queries. | ||
| 67 | driver.txt | ||
| 68 | - Softnet driver issues. | ||
| 45 | e100.txt | 69 | e100.txt |
| 46 | - info on Intel's EtherExpress PRO/100 line of 10/100 boards | 70 | - info on Intel's EtherExpress PRO/100 line of 10/100 boards |
| 47 | e1000.txt | 71 | e1000.txt |
| 48 | - info on Intel's E1000 line of gigabit ethernet boards | 72 | - info on Intel's E1000 line of gigabit ethernet boards |
| 73 | e1000e.txt | ||
| 74 | - README for the Intel Gigabit Ethernet Driver (e1000e). | ||
| 49 | eql.txt | 75 | eql.txt |
| 50 | - serial IP load balancing | 76 | - serial IP load balancing |
| 51 | ewrk3.txt | 77 | ewrk3.txt |
| 52 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver | 78 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver |
| 79 | fib_trie.txt | ||
| 80 | - Level Compressed Trie (LC-trie) notes: a structure for routing. | ||
| 53 | filter.txt | 81 | filter.txt |
| 54 | - Linux Socket Filtering | 82 | - Linux Socket Filtering |
| 55 | fore200e.txt | 83 | fore200e.txt |
| 56 | - FORE Systems PCA-200E/SBA-200E ATM NIC driver info. | 84 | - FORE Systems PCA-200E/SBA-200E ATM NIC driver info. |
| 57 | framerelay.txt | 85 | framerelay.txt |
| 58 | - info on using Frame Relay/Data Link Connection Identifier (DLCI). | 86 | - info on using Frame Relay/Data Link Connection Identifier (DLCI). |
| 87 | gen_stats.txt | ||
| 88 | - Generic networking statistics for netlink users. | ||
| 89 | generic_hdlc.txt | ||
| 90 | - The generic High Level Data Link Control (HDLC) layer. | ||
| 59 | generic_netlink.txt | 91 | generic_netlink.txt |
| 60 | - info on Generic Netlink | 92 | - info on Generic Netlink |
| 93 | gianfar.txt | ||
| 94 | - Gianfar Ethernet Driver. | ||
| 61 | ieee802154.txt | 95 | ieee802154.txt |
| 62 | - Linux IEEE 802.15.4 implementation, API and drivers | 96 | - Linux IEEE 802.15.4 implementation, API and drivers |
| 97 | ifenslave.c | ||
| 98 | - Configure network interfaces for parallel routing (bonding). | ||
| 99 | igb.txt | ||
| 100 | - README for the Intel Gigabit Ethernet Driver (igb). | ||
| 101 | igbvf.txt | ||
| 102 | - README for the Intel Gigabit Ethernet Driver (igbvf). | ||
| 63 | ip-sysctl.txt | 103 | ip-sysctl.txt |
| 64 | - /proc/sys/net/ipv4/* variables | 104 | - /proc/sys/net/ipv4/* variables |
| 65 | ip_dynaddr.txt | 105 | ip_dynaddr.txt |
| @@ -68,41 +108,117 @@ ipddp.txt | |||
| 68 | - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation | 108 | - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation |
| 69 | iphase.txt | 109 | iphase.txt |
| 70 | - Interphase PCI ATM (i)Chip IA Linux driver info. | 110 | - Interphase PCI ATM (i)Chip IA Linux driver info. |
| 111 | ipv6.txt | ||
| 112 | - Options to the ipv6 kernel module. | ||
| 113 | ipvs-sysctl.txt | ||
| 114 | - Per-inode explanation of the /proc/sys/net/ipv4/vs interface. | ||
| 71 | irda.txt | 115 | irda.txt |
| 72 | - where to get IrDA (infrared) utilities and info for Linux. | 116 | - where to get IrDA (infrared) utilities and info for Linux. |
| 117 | ixgb.txt | ||
| 118 | - README for the Intel 10 Gigabit Ethernet Driver (ixgb). | ||
| 119 | ixgbe.txt | ||
| 120 | - README for the Intel 10 Gigabit Ethernet Driver (ixgbe). | ||
| 121 | ixgbevf.txt | ||
| 122 | - README for the Intel Virtual Function (VF) Driver (ixgbevf). | ||
| 123 | l2tp.txt | ||
| 124 | - User guide to the L2TP tunnel protocol. | ||
| 73 | lapb-module.txt | 125 | lapb-module.txt |
| 74 | - programming information of the LAPB module. | 126 | - programming information of the LAPB module. |
| 75 | ltpc.txt | 127 | ltpc.txt |
| 76 | - the Apple or Farallon LocalTalk PC card driver | 128 | - the Apple or Farallon LocalTalk PC card driver |
| 129 | mac80211-injection.txt | ||
| 130 | - HOWTO use packet injection with mac80211 | ||
| 77 | multicast.txt | 131 | multicast.txt |
| 78 | - Behaviour of cards under Multicast | 132 | - Behaviour of cards under Multicast |
| 133 | multiqueue.txt | ||
| 134 | - HOWTO for multiqueue network device support. | ||
| 135 | netconsole.txt | ||
| 136 | - The network console module netconsole.ko: configuration and notes. | ||
| 137 | netdev-features.txt | ||
| 138 | - Network interface features API description. | ||
| 79 | netdevices.txt | 139 | netdevices.txt |
| 80 | - info on network device driver functions exported to the kernel. | 140 | - info on network device driver functions exported to the kernel. |
| 141 | netif-msg.txt | ||
| 142 | - Design of the network interface message level setting (NETIF_MSG_*). | ||
| 143 | nfc.txt | ||
| 144 | - The Linux Near Field Communication (NFS) subsystem. | ||
| 81 | olympic.txt | 145 | olympic.txt |
| 82 | - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info. | 146 | - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info. |
| 147 | operstates.txt | ||
| 148 | - Overview of network interface operational states. | ||
| 149 | packet_mmap.txt | ||
| 150 | - User guide to memory mapped packet socket rings (PACKET_[RT]X_RING). | ||
| 151 | phonet.txt | ||
| 152 | - The Phonet packet protocol used in Nokia cellular modems. | ||
| 153 | phy.txt | ||
| 154 | - The PHY abstraction layer. | ||
| 155 | pktgen.txt | ||
| 156 | - User guide to the kernel packet generator (pktgen.ko). | ||
| 83 | policy-routing.txt | 157 | policy-routing.txt |
| 84 | - IP policy-based routing | 158 | - IP policy-based routing |
| 159 | ppp_generic.txt | ||
| 160 | - Information about the generic PPP driver. | ||
| 161 | proc_net_tcp.txt | ||
| 162 | - Per inode overview of the /proc/net/tcp and /proc/net/tcp6 interfaces. | ||
| 163 | radiotap-headers.txt | ||
| 164 | - Background on radiotap headers. | ||
| 85 | ray_cs.txt | 165 | ray_cs.txt |
| 86 | - Raylink Wireless LAN card driver info. | 166 | - Raylink Wireless LAN card driver info. |
| 167 | rds.txt | ||
| 168 | - Background on the reliable, ordered datagram delivery method RDS. | ||
| 169 | regulatory.txt | ||
| 170 | - Overview of the Linux wireless regulatory infrastructure. | ||
| 171 | rxrpc.txt | ||
| 172 | - Guide to the RxRPC protocol. | ||
| 173 | s2io.txt | ||
| 174 | - Release notes for Neterion Xframe I/II 10GbE driver. | ||
| 175 | scaling.txt | ||
| 176 | - Explanation of network scaling techniques: RSS, RPS, RFS, aRFS, XPS. | ||
| 177 | sctp.txt | ||
| 178 | - Notes on the Linux kernel implementation of the SCTP protocol. | ||
| 179 | secid.txt | ||
| 180 | - Explanation of the secid member in flow structures. | ||
| 87 | skfp.txt | 181 | skfp.txt |
| 88 | - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info. | 182 | - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info. |
| 89 | smc9.txt | 183 | smc9.txt |
| 90 | - the driver for SMC's 9000 series of Ethernet cards | 184 | - the driver for SMC's 9000 series of Ethernet cards |
| 91 | smctr.txt | 185 | smctr.txt |
| 92 | - SMC TokenCard TokenRing Linux driver info. | 186 | - SMC TokenCard TokenRing Linux driver info. |
| 187 | spider-net.txt | ||
| 188 | - README for the Spidernet Driver (as found in PS3 / Cell BE). | ||
| 189 | stmmac.txt | ||
| 190 | - README for the STMicro Synopsys Ethernet driver. | ||
| 191 | tc-actions-env-rules.txt | ||
| 192 | - rules for traffic control (tc) actions. | ||
| 193 | timestamping.txt | ||
| 194 | - overview of network packet timestamping variants. | ||
| 93 | tcp.txt | 195 | tcp.txt |
| 94 | - short blurb on how TCP output takes place. | 196 | - short blurb on how TCP output takes place. |
| 197 | tcp-thin.txt | ||
| 198 | - kernel tuning options for low rate 'thin' TCP streams. | ||
| 95 | tlan.txt | 199 | tlan.txt |
| 96 | - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. | 200 | - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. |
| 97 | tms380tr.txt | 201 | tms380tr.txt |
| 98 | - SysKonnect Token Ring ISA/PCI adapter driver info. | 202 | - SysKonnect Token Ring ISA/PCI adapter driver info. |
| 203 | tproxy.txt | ||
| 204 | - Transparent proxy support user guide. | ||
| 99 | tuntap.txt | 205 | tuntap.txt |
| 100 | - TUN/TAP device driver, allowing user space Rx/Tx of packets. | 206 | - TUN/TAP device driver, allowing user space Rx/Tx of packets. |
| 207 | udplite.txt | ||
| 208 | - UDP-Lite protocol (RFC 3828) introduction. | ||
| 101 | vortex.txt | 209 | vortex.txt |
| 102 | - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. | 210 | - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. |
| 211 | vxge.txt | ||
| 212 | - README for the Neterion X3100 PCIe Server Adapter. | ||
| 103 | x25.txt | 213 | x25.txt |
| 104 | - general info on X.25 development. | 214 | - general info on X.25 development. |
| 105 | x25-iface.txt | 215 | x25-iface.txt |
| 106 | - description of the X.25 Packet Layer to LAPB device interface. | 216 | - description of the X.25 Packet Layer to LAPB device interface. |
| 217 | xfrm_proc.txt | ||
| 218 | - description of the statistics package for XFRM. | ||
| 219 | xfrm_sync.txt | ||
| 220 | - sync patches for XFRM enable migration of an SA between hosts. | ||
| 221 | xfrm_sysctl.txt | ||
| 222 | - description of the XFRM configuration options. | ||
| 107 | z8530drv.txt | 223 | z8530drv.txt |
| 108 | - info about Linux driver for Z8530 based HDLC cards for AX.25 | 224 | - info about Linux driver for Z8530 based HDLC cards for AX.25 |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index db2a4067013c..81546990f41c 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
| @@ -992,7 +992,7 @@ bindv6only - BOOLEAN | |||
| 992 | TRUE: disable IPv4-mapped address feature | 992 | TRUE: disable IPv4-mapped address feature |
| 993 | FALSE: enable IPv4-mapped address feature | 993 | FALSE: enable IPv4-mapped address feature |
| 994 | 994 | ||
| 995 | Default: FALSE (as specified in RFC2553bis) | 995 | Default: FALSE (as specified in RFC3493) |
| 996 | 996 | ||
| 997 | IPv6 Fragmentation: | 997 | IPv6 Fragmentation: |
| 998 | 998 | ||
diff --git a/Documentation/networking/scaling.txt b/Documentation/networking/scaling.txt index 7254b4b5910e..58fd7414e6c0 100644 --- a/Documentation/networking/scaling.txt +++ b/Documentation/networking/scaling.txt | |||
| @@ -52,7 +52,8 @@ module parameter for specifying the number of hardware queues to | |||
| 52 | configure. In the bnx2x driver, for instance, this parameter is called | 52 | configure. In the bnx2x driver, for instance, this parameter is called |
| 53 | num_queues. A typical RSS configuration would be to have one receive queue | 53 | num_queues. A typical RSS configuration would be to have one receive queue |
| 54 | for each CPU if the device supports enough queues, or otherwise at least | 54 | for each CPU if the device supports enough queues, or otherwise at least |
| 55 | one for each cache domain at a particular cache level (L1, L2, etc.). | 55 | one for each memory domain, where a memory domain is a set of CPUs that |
| 56 | share a particular memory level (L1, L2, NUMA node, etc.). | ||
| 56 | 57 | ||
| 57 | The indirection table of an RSS device, which resolves a queue by masked | 58 | The indirection table of an RSS device, which resolves a queue by masked |
| 58 | hash, is usually programmed by the driver at initialization. The | 59 | hash, is usually programmed by the driver at initialization. The |
| @@ -82,11 +83,17 @@ RSS should be enabled when latency is a concern or whenever receive | |||
| 82 | interrupt processing forms a bottleneck. Spreading load between CPUs | 83 | interrupt processing forms a bottleneck. Spreading load between CPUs |
| 83 | decreases queue length. For low latency networking, the optimal setting | 84 | decreases queue length. For low latency networking, the optimal setting |
| 84 | is to allocate as many queues as there are CPUs in the system (or the | 85 | is to allocate as many queues as there are CPUs in the system (or the |
| 85 | NIC maximum, if lower). Because the aggregate number of interrupts grows | 86 | NIC maximum, if lower). The most efficient high-rate configuration |
| 86 | with each additional queue, the most efficient high-rate configuration | ||
| 87 | is likely the one with the smallest number of receive queues where no | 87 | is likely the one with the smallest number of receive queues where no |
| 88 | CPU that processes receive interrupts reaches 100% utilization. Per-cpu | 88 | receive queue overflows due to a saturated CPU, because in default |
| 89 | load can be observed using the mpstat utility. | 89 | mode with interrupt coalescing enabled, the aggregate number of |
| 90 | interrupts (and thus work) grows with each additional queue. | ||
| 91 | |||
| 92 | Per-cpu load can be observed using the mpstat utility, but note that on | ||
| 93 | processors with hyperthreading (HT), each hyperthread is represented as | ||
| 94 | a separate CPU. For interrupt handling, HT has shown no benefit in | ||
| 95 | initial tests, so limit the number of queues to the number of CPU cores | ||
| 96 | in the system. | ||
| 90 | 97 | ||
| 91 | 98 | ||
| 92 | RPS: Receive Packet Steering | 99 | RPS: Receive Packet Steering |
| @@ -145,7 +152,7 @@ the bitmap. | |||
| 145 | == Suggested Configuration | 152 | == Suggested Configuration |
| 146 | 153 | ||
| 147 | For a single queue device, a typical RPS configuration would be to set | 154 | For a single queue device, a typical RPS configuration would be to set |
| 148 | the rps_cpus to the CPUs in the same cache domain of the interrupting | 155 | the rps_cpus to the CPUs in the same memory domain of the interrupting |
| 149 | CPU. If NUMA locality is not an issue, this could also be all CPUs in | 156 | CPU. If NUMA locality is not an issue, this could also be all CPUs in |
| 150 | the system. At high interrupt rate, it might be wise to exclude the | 157 | the system. At high interrupt rate, it might be wise to exclude the |
| 151 | interrupting CPU from the map since that already performs much work. | 158 | interrupting CPU from the map since that already performs much work. |
| @@ -154,7 +161,7 @@ For a multi-queue system, if RSS is configured so that a hardware | |||
| 154 | receive queue is mapped to each CPU, then RPS is probably redundant | 161 | receive queue is mapped to each CPU, then RPS is probably redundant |
| 155 | and unnecessary. If there are fewer hardware queues than CPUs, then | 162 | and unnecessary. If there are fewer hardware queues than CPUs, then |
| 156 | RPS might be beneficial if the rps_cpus for each queue are the ones that | 163 | RPS might be beneficial if the rps_cpus for each queue are the ones that |
| 157 | share the same cache domain as the interrupting CPU for that queue. | 164 | share the same memory domain as the interrupting CPU for that queue. |
| 158 | 165 | ||
| 159 | 166 | ||
| 160 | RFS: Receive Flow Steering | 167 | RFS: Receive Flow Steering |
| @@ -326,7 +333,7 @@ The queue chosen for transmitting a particular flow is saved in the | |||
| 326 | corresponding socket structure for the flow (e.g. a TCP connection). | 333 | corresponding socket structure for the flow (e.g. a TCP connection). |
| 327 | This transmit queue is used for subsequent packets sent on the flow to | 334 | This transmit queue is used for subsequent packets sent on the flow to |
| 328 | prevent out of order (ooo) packets. The choice also amortizes the cost | 335 | prevent out of order (ooo) packets. The choice also amortizes the cost |
| 329 | of calling get_xps_queues() over all packets in the connection. To avoid | 336 | of calling get_xps_queues() over all packets in the flow. To avoid |
| 330 | ooo packets, the queue for a flow can subsequently only be changed if | 337 | ooo packets, the queue for a flow can subsequently only be changed if |
| 331 | skb->ooo_okay is set for a packet in the flow. This flag indicates that | 338 | skb->ooo_okay is set for a packet in the flow. This flag indicates that |
| 332 | there are no outstanding packets in the flow, so the transmit queue can | 339 | there are no outstanding packets in the flow, so the transmit queue can |
