linux/Documentation
Ying Xue cc79dd1ba9 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>
2013-06-17 15:53:00 -07:00
..
2011-09-27 18:08:04 +02:00
2012-04-03 13:09:18 +02:00
2012-10-08 13:50:12 +10:30
2011-09-27 18:08:04 +02:00
2012-12-14 08:48:59 +01:00
2013-04-02 09:39:55 -07:00
2013-03-02 20:09:50 +00:00
2011-03-31 11:26:23 -03:00
2013-01-10 01:27:46 +01:00
2013-04-15 19:45:16 +02:00
2013-04-27 16:41:43 -07:00
2013-04-08 13:33:48 -07:00
2011-03-31 11:26:23 -03:00
2012-07-29 21:11:05 -03:00
2013-04-16 18:47:19 +09:00
2012-12-10 15:54:27 +01:00
2012-12-05 23:52:10 +00:00
2011-03-31 11:26:23 -03:00
2011-09-27 18:08:04 +02:00
2013-02-19 08:42:37 +01:00
2013-04-24 11:42:42 +10:00
2012-02-28 16:05:06 +01:00
2011-09-27 18:08:04 +02:00
2011-03-31 11:26:23 -03:00
2012-01-02 13:04:55 +01:00