tipc: introduce new socket option TIPC_SOCK_RECVQ_USED
When using TIPC_SOCK_RECVQ_DEPTH for getsockopt(), it returns the number of buffers in receive socket buffer which is not so helpful for user space applications. This commit introduces the new option TIPC_SOCK_RECVQ_USED which returns the current allocated bytes of the receive socket buffer. This helps user space applications dimension its buffer usage to avoid buffer overload issue. Signed-off-by: Tung Nguyen <tung.q.nguyen@dektech.com.au> Acked-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a26deec69f
commit
42e5425aa0
|
@ -190,6 +190,7 @@ struct sockaddr_tipc {
|
|||
#define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */
|
||||
#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */
|
||||
#define TIPC_GROUP_LEAVE 136 /* No argument */
|
||||
#define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */
|
||||
|
||||
/*
|
||||
* Flag values
|
||||
|
|
|
@ -3070,6 +3070,9 @@ static int tipc_getsockopt(struct socket *sock, int lvl, int opt,
|
|||
case TIPC_SOCK_RECVQ_DEPTH:
|
||||
value = skb_queue_len(&sk->sk_receive_queue);
|
||||
break;
|
||||
case TIPC_SOCK_RECVQ_USED:
|
||||
value = sk_rmem_alloc_get(sk);
|
||||
break;
|
||||
case TIPC_GROUP_JOIN:
|
||||
seq.type = 0;
|
||||
if (tsk->group)
|
||||
|
|
Loading…
Reference in New Issue