linux_dsm_epyc7002/net/rxrpc
David Howells a158bdd324 rxrpc: Fix call timeouts
Fix the rxrpc call expiration timeouts and make them settable from
userspace.  By analogy with other rx implementations, there should be three
timeouts:

 (1) "Normal timeout"

     This is set for all calls and is triggered if we haven't received any
     packets from the peer in a while.  It is measured from the last time
     we received any packet on that call.  This is not reset by any
     connection packets (such as CHALLENGE/RESPONSE packets).

     If a service operation takes a long time, the server should generate
     PING ACKs at a duration that's substantially less than the normal
     timeout so is to keep both sides alive.  This is set at 1/6 of normal
     timeout.

 (2) "Idle timeout"

     This is set only for a service call and is triggered if we stop
     receiving the DATA packets that comprise the request data.  It is
     measured from the last time we received a DATA packet.

 (3) "Hard timeout"

     This can be set for a call and specified the maximum lifetime of that
     call.  It should not be specified by default.  Some operations (such
     as volume transfer) take a long time.

Allow userspace to set/change the timeouts on a call with sendmsg, using a
control message:

	RXRPC_SET_CALL_TIMEOUTS

The data to the message is a number of 32-bit words, not all of which need
be given:

	u32 hard_timeout;	/* sec from first packet */
	u32 idle_timeout;	/* msec from packet Rx */
	u32 normal_timeout;	/* msec from data Rx */

This can be set in combination with any other sendmsg() that affects a
call.

Signed-off-by: David Howells <dhowells@redhat.com>
2017-11-24 10:18:41 +00:00
..
af_rxrpc.c rxrpc: Split the call params from the operation params 2017-11-24 10:18:41 +00:00
ar-internal.h rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
call_accept.c rxrpc: Provide a different lockdep key for call->user_mutex for kernel calls 2017-11-24 10:18:40 +00:00
call_event.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
call_object.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
conn_client.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
conn_event.c rxrpc: Delay terminal ACK transmission on a client call 2017-11-24 10:18:41 +00:00
conn_object.c rxrpc: Delay terminal ACK transmission on a client call 2017-11-24 10:18:41 +00:00
conn_service.c rxrpc: Make service connection lookup always check for retry 2017-09-05 14:39:17 -07:00
input.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
insecure.c
Kconfig
key.c rxrpc: Use correct timestamp from Kerberos 5 ticket 2017-08-29 10:55:06 +01:00
local_event.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
local_object.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
misc.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
net_ns.c
output.c rxrpc: Fix call expiry handling 2017-11-02 15:20:43 +00:00
peer_event.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
peer_object.c rxrpc: Provide functions for allowing cleaner handling of signals 2017-10-18 11:42:48 +01:00
proc.c
protocol.h rxrpc: Move the packet.h include file into net/rxrpc/ 2017-07-21 11:00:20 +01:00
recvmsg.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
rxkad.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
security.c
sendmsg.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
skbuff.c net: convert sk_buff.users from atomic_t to refcount_t 2017-07-01 07:39:07 -07:00
sysctl.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
utils.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00