linux/net/rxrpc
David Howells 415f44e432 rxrpc: Add keepalive for a call
We need to transmit a packet every so often to act as a keepalive for the
peer (which has a timeout from the last time it received a packet) and also
to prevent any intervening firewalls from closing the route.

Do this by resetting a timer every time we transmit a packet.  If the timer
ever expires, we transmit a PING ACK packet and thereby also elicit a PING
RESPONSE ACK from the other side - which prevents our last-rx timeout from
expiring.

The timer is set to 1/6 of the last-rx timeout so that we can detect the
other side going away if it misses 6 replies in a row.

This is particularly necessary for servers where the processing of the
service function may take a significant amount of time.

Signed-off-by: David Howells <dhowells@redhat.com>
2017-11-24 10:18:42 +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: Add keepalive for a call 2017-11-24 10:18:42 +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: Add keepalive for a call 2017-11-24 10:18:42 +00:00
call_object.c rxrpc: Add a timeout for detecting lost ACKs/lost DATA 2017-11-24 10:18:42 +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: Add a timeout for detecting lost ACKs/lost DATA 2017-11-24 10:18:42 +00:00
insecure.c rxrpc: Trace protocol errors in received packets 2017-04-06 11:09:39 +01:00
Kconfig rxrpc: Add config to inject packet loss 2016-09-17 11:24:04 +01:00
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 rxrpc: Permit multiple service binding 2017-06-05 14:30:49 +01:00
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 rxrpc: remove redundant proc_remove call 2017-06-04 19:59:11 -04:00
output.c rxrpc: Add keepalive for a call 2017-11-24 10:18:42 +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 rxrpc: Separate the connection's protocol service ID from the lookup ID 2017-06-05 14:30:49 +01:00
protocol.h rxrpc: Move the packet.h include file into net/rxrpc/ 2017-07-21 11:00:20 +01:00
recvmsg.c rxrpc: Add a timeout for detecting lost ACKs/lost DATA 2017-11-24 10:18:42 +00:00
rxkad.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
security.c rxrpc: Permit multiple service binding 2017-06-05 14:30:49 +01:00
sendmsg.c rxrpc: Add a timeout for detecting lost ACKs/lost DATA 2017-11-24 10:18:42 +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