From: Cyril H. <su...@li...> - 2013-11-04 08:51:13
|
The branch, master, has been updated via bf30042a0362d03fbada0332e7e22191bf1525ee (commit) from 591c992a07fce81eb6d0f4ba712c1b0768e03aab (commit) - Log ----------------------------------------------------------------- commit bf30042a0362d03fbada0332e7e22191bf1525ee Author: Simon Xu <xu....@or...> Date: Mon Nov 4 13:28:15 2013 +0800 sctp: enlarge SO_RCVBUF option value When using setsockopt() with recent Linux kernels, it doesn't make sense to use a value smaller than SOCK_MIN_RCVBUF/2 for SO_RCVBUF and expect getting a SO_RCVBUF value by getsockopt() which is doubled. See the following code in linux/net/core/sock.c: if ((val * 2) < SOCK_MIN_RCVBUF) sk->sk_rcvbuf = SOCK_MIN_RCVBUF; else sk->sk_rcvbuf = val * 2; break; SOCK_MIN_RCVBUF is defined as (2048 + sizeof(struct sk_buff)) which is 2240. Signed-off-by: Simon Xu <xu....@or...> Reviewed-by: Jan Stancek <jst...@re...> Reviewed-by: Wanlong Gao <gao...@cn...> ----------------------------------------------------------------------- Summary of changes: .../network/sctp/func_tests/test_1_to_1_sockopt.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/network/sctp/func_tests/test_1_to_1_sockopt.c b/testcases/network/sctp/func_tests/test_1_to_1_sockopt.c index b12313b..c36f502 100644 --- a/testcases/network/sctp/func_tests/test_1_to_1_sockopt.c +++ b/testcases/network/sctp/func_tests/test_1_to_1_sockopt.c @@ -299,9 +299,9 @@ int main(void) tst_resm(TPASS, "getsockopt() SCTP_STATUS - SUCCESS"); /* Reducing the SO_RCVBUF value using setsockopt() */ - /*Minimum value is 128 and hence I am using it */ len = sizeof(int); - rcvbuf_val_set = 128; + /* (rcvbuf len)*2 should be no less than SOCK_MIN_RCVBUF in kernel */ + rcvbuf_val_set = 1500; /* TEST16: Test case for setsockopt SO_RCVBUF */ error = setsockopt(sk2, SOL_SOCKET, SO_RCVBUF, &rcvbuf_val_set, len); if (error < 0) hooks/post-receive -- ltp |