diff options
author | Ying Xue <ying.xue@windriver.com> | 2013-06-17 10:54:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-17 18:53:00 -0400 |
commit | cc79dd1ba9c1021c2ac6ae200a65ec38ee8db351 (patch) | |
tree | 86ffd4e43a1fb2d833a750ea713ce81b0af5df63 /Documentation/sysctl | |
parent | 8941bbcd572a8860ad03c76e2f3d1dafa820b842 (diff) |
tipc: change socket buffer overflow control to respect sk_rcvbuf
As per feedback from the netdev community, we change the buffer
overflow protection algorithm in receiving sockets so that it
always respects the nominal upper limit set in sk_rcvbuf.
Instead of scaling up from a small sk_rcvbuf value, which leads to
violation of the configured sk_rcvbuf limit, we now calculate the
weighted per-message limit by scaling down from a much bigger value,
still in the same field, according to the importance priority of the
received message.
To allow for administrative tunability of the socket receive buffer
size, we create a tipc_rmem sysctl variable to allow the user to
configure an even bigger value via sysctl command. It is a size of
three (min/default/max) to be consistent with things like tcp_rmem.
By default, the value initialized in tipc_rmem[1] is equal to the
receive socket size needed by a TIPC_CRITICAL_IMPORTANCE message.
This value is also set as the default value of sk_rcvbuf.
Originally-by: Jon Maloy <jon.maloy@ericsson.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Jon Maloy <jon.maloy@ericsson.com>
[Ying: added sysctl variation to Jon's original patch]
Signed-off-by: Ying Xue <ying.xue@windriver.com>
[PG: don't compile sysctl.c if not config'd; add Documentation]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/sysctl')
-rw-r--r-- | Documentation/sysctl/net.txt | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt index 85ab72dcdc3c..5369879eafe2 100644 --- a/Documentation/sysctl/net.txt +++ b/Documentation/sysctl/net.txt | |||
@@ -26,7 +26,7 @@ Table : Subdirectories in /proc/sys/net | |||
26 | ipv4 IP version 4 x25 X.25 protocol | 26 | ipv4 IP version 4 x25 X.25 protocol |
27 | ipx IPX token-ring IBM token ring | 27 | ipx IPX token-ring IBM token ring |
28 | bridge Bridging decnet DEC net | 28 | bridge Bridging decnet DEC net |
29 | ipv6 IP version 6 | 29 | ipv6 IP version 6 tipc TIPC |
30 | .............................................................................. | 30 | .............................................................................. |
31 | 31 | ||
32 | 1. /proc/sys/net/core - Network core options | 32 | 1. /proc/sys/net/core - Network core options |
@@ -207,3 +207,18 @@ IPX. | |||
207 | The /proc/net/ipx_route table holds a list of IPX routes. For each route it | 207 | The /proc/net/ipx_route table holds a list of IPX routes. For each route it |
208 | gives the destination network, the router node (or Directly) and the network | 208 | gives the destination network, the router node (or Directly) and the network |
209 | address of the router (or Connected) for internal networks. | 209 | address of the router (or Connected) for internal networks. |
210 | |||
211 | 6. TIPC | ||
212 | ------------------------------------------------------- | ||
213 | |||
214 | The TIPC protocol now has a tunable for the receive memory, similar to the | ||
215 | tcp_rmem - i.e. a vector of 3 INTEGERs: (min, default, max) | ||
216 | |||
217 | # cat /proc/sys/net/tipc/tipc_rmem | ||
218 | 4252725 34021800 68043600 | ||
219 | # | ||
220 | |||
221 | The max value is set to CONN_OVERLOAD_LIMIT, and the default and min values | ||
222 | are scaled (shifted) versions of that same value. Note that the min value | ||
223 | is not at this point in time used in any meaningful way, but the triplet is | ||
224 | preserved in order to be consistent with things like tcp_rmem. | ||