Paul Gortmaker | faa5273 | 2013-06-21 14:56:12 -0400 | [diff] [blame] | 1 | Documentation for /proc/sys/net/* |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 2 | (c) 1999 Terrehon Bowden <terrehon@pacbell.net> |
| 3 | Bodo Bauer <bb@ricochet.net> |
| 4 | (c) 2000 Jorge Nerin <comandante@zaralinux.com> |
| 5 | (c) 2009 Shen Feng <shen@cn.fujitsu.com> |
| 6 | |
| 7 | For general info and legal blurb, please look in README. |
| 8 | |
| 9 | ============================================================== |
| 10 | |
| 11 | This file contains the documentation for the sysctl files in |
Paul Gortmaker | faa5273 | 2013-06-21 14:56:12 -0400 | [diff] [blame] | 12 | /proc/sys/net |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 13 | |
| 14 | The interface to the networking parts of the kernel is located in |
Paul Gortmaker | faa5273 | 2013-06-21 14:56:12 -0400 | [diff] [blame] | 15 | /proc/sys/net. The following table shows all possible subdirectories. You may |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 16 | see only some of them, depending on your kernel's configuration. |
| 17 | |
| 18 | |
| 19 | Table : Subdirectories in /proc/sys/net |
| 20 | .............................................................................. |
| 21 | Directory Content Directory Content |
| 22 | core General parameter appletalk Appletalk protocol |
| 23 | unix Unix domain sockets netrom NET/ROM |
| 24 | 802 E802 protocol ax25 AX25 |
| 25 | ethernet Ethernet protocol rose X.25 PLP layer |
| 26 | ipv4 IP version 4 x25 X.25 protocol |
| 27 | ipx IPX token-ring IBM token ring |
| 28 | bridge Bridging decnet DEC net |
Ying Xue | cc79dd1 | 2013-06-17 10:54:37 -0400 | [diff] [blame] | 29 | ipv6 IP version 6 tipc TIPC |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 30 | .............................................................................. |
| 31 | |
| 32 | 1. /proc/sys/net/core - Network core options |
| 33 | ------------------------------------------------------- |
| 34 | |
Eric Dumazet | 0a14842 | 2011-04-20 09:27:32 +0000 | [diff] [blame] | 35 | bpf_jit_enable |
| 36 | -------------- |
| 37 | |
| 38 | This enables Berkeley Packet Filter Just in Time compiler. |
| 39 | Currently supported on x86_64 architecture, bpf_jit provides a framework |
| 40 | to speed packet filtering, the one used by tcpdump/libpcap for example. |
| 41 | Values : |
| 42 | 0 - disable the JIT (default value) |
| 43 | 1 - enable the JIT |
| 44 | 2 - enable the JIT and ask the compiler to emit traces on kernel log. |
| 45 | |
Shan Wei | c60f6aa | 2012-04-26 16:52:52 +0000 | [diff] [blame] | 46 | dev_weight |
| 47 | -------------- |
| 48 | |
| 49 | The maximum number of packets that kernel can handle on a NAPI interrupt, |
| 50 | it's a Per-CPU variable. |
| 51 | Default: 64 |
| 52 | |
stephen hemminger | 6da7c8f | 2013-08-27 16:19:08 -0700 | [diff] [blame] | 53 | default_qdisc |
| 54 | -------------- |
| 55 | |
| 56 | The default queuing discipline to use for network devices. This allows |
| 57 | overriding the default queue discipline of pfifo_fast with an |
| 58 | alternative. Since the default queuing discipline is created with the |
| 59 | no additional parameters so is best suited to queuing disciplines that |
| 60 | work well without configuration like stochastic fair queue (sfq), |
| 61 | CoDel (codel) or fair queue CoDel (fq_codel). Don't use queuing disciplines |
| 62 | like Hierarchical Token Bucket or Deficit Round Robin which require setting |
| 63 | up classes and bandwidths. |
| 64 | Default: pfifo_fast |
| 65 | |
Eliezer Tamir | 64b0dc5 | 2013-07-10 17:13:36 +0300 | [diff] [blame] | 66 | busy_read |
Eliezer Tamir | 2d48d67 | 2013-06-24 10:28:03 +0300 | [diff] [blame] | 67 | ---------------- |
Cong Wang | e0d1095 | 2013-08-01 11:10:25 +0800 | [diff] [blame] | 68 | Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) |
Eliezer Tamir | cbf5500 | 2013-07-08 16:20:34 +0300 | [diff] [blame] | 69 | Approximate time in us to busy loop waiting for packets on the device queue. |
Eliezer Tamir | 64b0dc5 | 2013-07-10 17:13:36 +0300 | [diff] [blame] | 70 | This sets the default value of the SO_BUSY_POLL socket option. |
| 71 | Can be set or overridden per socket by setting socket option SO_BUSY_POLL, |
| 72 | which is the preferred method of enabling. If you need to enable the feature |
| 73 | globally via sysctl, a value of 50 is recommended. |
Eliezer Tamir | cbf5500 | 2013-07-08 16:20:34 +0300 | [diff] [blame] | 74 | Will increase power usage. |
Eliezer Tamir | 2d48d67 | 2013-06-24 10:28:03 +0300 | [diff] [blame] | 75 | Default: 0 (off) |
| 76 | |
Eliezer Tamir | 64b0dc5 | 2013-07-10 17:13:36 +0300 | [diff] [blame] | 77 | busy_poll |
Eliezer Tamir | 0602129 | 2013-06-10 11:39:50 +0300 | [diff] [blame] | 78 | ---------------- |
Cong Wang | e0d1095 | 2013-08-01 11:10:25 +0800 | [diff] [blame] | 79 | Low latency busy poll timeout for poll and select. (needs CONFIG_NET_RX_BUSY_POLL) |
Eliezer Tamir | cbf5500 | 2013-07-08 16:20:34 +0300 | [diff] [blame] | 80 | Approximate time in us to busy loop waiting for events. |
Eliezer Tamir | 2d48d67 | 2013-06-24 10:28:03 +0300 | [diff] [blame] | 81 | Recommended value depends on the number of sockets you poll on. |
| 82 | For several sockets 50, for several hundreds 100. |
| 83 | For more than that you probably want to use epoll. |
Eliezer Tamir | 64b0dc5 | 2013-07-10 17:13:36 +0300 | [diff] [blame] | 84 | Note that only sockets with SO_BUSY_POLL set will be busy polled, |
| 85 | so you want to either selectively set SO_BUSY_POLL on those sockets or set |
| 86 | sysctl.net.busy_read globally. |
Eliezer Tamir | cbf5500 | 2013-07-08 16:20:34 +0300 | [diff] [blame] | 87 | Will increase power usage. |
Eliezer Tamir | 0602129 | 2013-06-10 11:39:50 +0300 | [diff] [blame] | 88 | Default: 0 (off) |
| 89 | |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 90 | rmem_default |
| 91 | ------------ |
| 92 | |
| 93 | The default setting of the socket receive buffer in bytes. |
| 94 | |
| 95 | rmem_max |
| 96 | -------- |
| 97 | |
| 98 | The maximum receive socket buffer size in bytes. |
| 99 | |
| 100 | wmem_default |
| 101 | ------------ |
| 102 | |
| 103 | The default setting (in bytes) of the socket send buffer. |
| 104 | |
| 105 | wmem_max |
| 106 | -------- |
| 107 | |
| 108 | The maximum send socket buffer size in bytes. |
| 109 | |
| 110 | message_burst and message_cost |
| 111 | ------------------------------ |
| 112 | |
| 113 | These parameters are used to limit the warning messages written to the kernel |
| 114 | log from the networking code. They enforce a rate limit to make a |
| 115 | denial-of-service attack impossible. A higher message_cost factor, results in |
| 116 | fewer messages that will be written. Message_burst controls when messages will |
| 117 | be dropped. The default settings limit warning messages to one every five |
| 118 | seconds. |
| 119 | |
| 120 | warnings |
| 121 | -------- |
| 122 | |
| 123 | This controls console messages from the networking stack that can occur because |
| 124 | of problems on the network like duplicate address or bad checksums. Normally, |
| 125 | this should be enabled, but if the problem persists the messages can be |
| 126 | disabled. |
| 127 | |
| 128 | netdev_budget |
| 129 | ------------- |
| 130 | |
| 131 | Maximum number of packets taken from all interfaces in one polling cycle (NAPI |
| 132 | poll). In one polling cycle interfaces which are registered to polling are |
Rami Rosen | 3cc7587 | 2013-05-17 09:10:34 +0000 | [diff] [blame] | 133 | probed in a round-robin manner. |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 134 | |
| 135 | netdev_max_backlog |
| 136 | ------------------ |
| 137 | |
| 138 | Maximum number of packets, queued on the INPUT side, when the interface |
| 139 | receives packets faster than kernel can process them. |
| 140 | |
Eric Dumazet | 3b098e2 | 2010-05-15 23:57:10 -0700 | [diff] [blame] | 141 | netdev_tstamp_prequeue |
| 142 | ---------------------- |
| 143 | |
| 144 | If set to 0, RX packet timestamps can be sampled after RPS processing, when |
| 145 | the target CPU processes packets. It might give some delay on timestamps, but |
| 146 | permit to distribute the load on several cpus. |
| 147 | |
| 148 | If set to 1 (default), timestamps are sampled as soon as possible, before |
| 149 | queueing. |
| 150 | |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 151 | optmem_max |
| 152 | ---------- |
| 153 | |
| 154 | Maximum ancillary buffer size allowed per socket. Ancillary data is a sequence |
| 155 | of struct cmsghdr structures with appended data. |
| 156 | |
| 157 | 2. /proc/sys/net/unix - Parameters for Unix domain sockets |
| 158 | ------------------------------------------------------- |
| 159 | |
Li Xiaodong | 45dad7b | 2009-04-02 16:57:21 -0700 | [diff] [blame] | 160 | There is only one file in this directory. |
| 161 | unix_dgram_qlen limits the max number of datagrams queued in Unix domain |
Li Zefan | ca8b995 | 2009-04-13 14:39:36 -0700 | [diff] [blame] | 162 | socket's buffer. It will not take effect unless PF_UNIX flag is specified. |
Shen Feng | 760df93 | 2009-04-02 16:57:20 -0700 | [diff] [blame] | 163 | |
| 164 | |
| 165 | 3. /proc/sys/net/ipv4 - IPV4 settings |
| 166 | ------------------------------------------------------- |
| 167 | Please see: Documentation/networking/ip-sysctl.txt and ipvs-sysctl.txt for |
| 168 | descriptions of these entries. |
| 169 | |
| 170 | |
| 171 | 4. Appletalk |
| 172 | ------------------------------------------------------- |
| 173 | |
| 174 | The /proc/sys/net/appletalk directory holds the Appletalk configuration data |
| 175 | when Appletalk is loaded. The configurable parameters are: |
| 176 | |
| 177 | aarp-expiry-time |
| 178 | ---------------- |
| 179 | |
| 180 | The amount of time we keep an ARP entry before expiring it. Used to age out |
| 181 | old hosts. |
| 182 | |
| 183 | aarp-resolve-time |
| 184 | ----------------- |
| 185 | |
| 186 | The amount of time we will spend trying to resolve an Appletalk address. |
| 187 | |
| 188 | aarp-retransmit-limit |
| 189 | --------------------- |
| 190 | |
| 191 | The number of times we will retransmit a query before giving up. |
| 192 | |
| 193 | aarp-tick-time |
| 194 | -------------- |
| 195 | |
| 196 | Controls the rate at which expires are checked. |
| 197 | |
| 198 | The directory /proc/net/appletalk holds the list of active Appletalk sockets |
| 199 | on a machine. |
| 200 | |
| 201 | The fields indicate the DDP type, the local address (in network:node format) |
| 202 | the remote address, the size of the transmit pending queue, the size of the |
| 203 | received queue (bytes waiting for applications to read) the state and the uid |
| 204 | owning the socket. |
| 205 | |
| 206 | /proc/net/atalk_iface lists all the interfaces configured for appletalk.It |
| 207 | shows the name of the interface, its Appletalk address, the network range on |
| 208 | that address (or network number for phase 1 networks), and the status of the |
| 209 | interface. |
| 210 | |
| 211 | /proc/net/atalk_route lists each known network route. It lists the target |
| 212 | (network) that the route leads to, the router (may be directly connected), the |
| 213 | route flags, and the device the route is using. |
| 214 | |
| 215 | |
| 216 | 5. IPX |
| 217 | ------------------------------------------------------- |
| 218 | |
| 219 | The IPX protocol has no tunable values in proc/sys/net. |
| 220 | |
| 221 | The IPX protocol does, however, provide proc/net/ipx. This lists each IPX |
| 222 | socket giving the local and remote addresses in Novell format (that is |
| 223 | network:node:port). In accordance with the strange Novell tradition, |
| 224 | everything but the port is in hex. Not_Connected is displayed for sockets that |
| 225 | are not tied to a specific remote address. The Tx and Rx queue sizes indicate |
| 226 | the number of bytes pending for transmission and reception. The state |
| 227 | indicates the state the socket is in and the uid is the owning uid of the |
| 228 | socket. |
| 229 | |
| 230 | The /proc/net/ipx_interface file lists all IPX interfaces. For each interface |
| 231 | it gives the network number, the node number, and indicates if the network is |
| 232 | the primary network. It also indicates which device it is bound to (or |
| 233 | Internal for internal networks) and the Frame Type if appropriate. Linux |
| 234 | supports 802.3, 802.2, 802.2 SNAP and DIX (Blue Book) ethernet framing for |
| 235 | IPX. |
| 236 | |
| 237 | The /proc/net/ipx_route table holds a list of IPX routes. For each route it |
| 238 | gives the destination network, the router node (or Directly) and the network |
| 239 | address of the router (or Connected) for internal networks. |
Ying Xue | cc79dd1 | 2013-06-17 10:54:37 -0400 | [diff] [blame] | 240 | |
| 241 | 6. TIPC |
| 242 | ------------------------------------------------------- |
| 243 | |
| 244 | The TIPC protocol now has a tunable for the receive memory, similar to the |
| 245 | tcp_rmem - i.e. a vector of 3 INTEGERs: (min, default, max) |
| 246 | |
| 247 | # cat /proc/sys/net/tipc/tipc_rmem |
| 248 | 4252725 34021800 68043600 |
| 249 | # |
| 250 | |
| 251 | The max value is set to CONN_OVERLOAD_LIMIT, and the default and min values |
| 252 | are scaled (shifted) versions of that same value. Note that the min value |
| 253 | is not at this point in time used in any meaningful way, but the triplet is |
| 254 | preserved in order to be consistent with things like tcp_rmem. |