linux-IllusionX/net/rxrpc
David Howells a71a2651bd rxrpc: Propose, but don't immediately transmit, the final ACK for a call
The final ACK that closes out an rxrpc call needs to be transmitted by the
client unless we're going to follow up with a DATA packet for a new call on
the same channel (which implicitly ACK's the previous call, thereby saving
an ACK).

Currently, we don't do that, so if no follow on call is immediately
forthcoming, the server will resend the last DATA packet - at which point
rxrpc_conn_retransmit_call() will be triggered and will (re)send the final
ACK.  But the server has to hold on to the last packet until the ACK is
received, thereby holding up its resources.

Fix the client side to propose a delayed final ACK, to be transmitted after
a short delay, assuming the call isn't superseded by a new one.

Signed-off-by: David Howells <dhowells@redhat.com>
2018-08-01 13:28:24 +01:00
..
af_rxrpc.c net: simplify sock_poll_wait 2018-07-30 09:10:25 -07:00
ar-internal.h rxrpc: Increase the size of a call's Rx window 2018-08-01 13:28:23 +01:00
call_accept.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
call_event.c rxrpc: remove redundant variables 'sp' and 'did_discard' 2018-08-01 13:28:23 +01:00
call_object.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
conn_client.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
conn_event.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
conn_object.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
conn_service.c rxrpc: Fix apparent leak of rxrpc_local objects 2018-03-30 21:05:33 +01:00
input.c rxrpc: Trace socket notification 2018-08-01 13:28:23 +01: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: Trace packet transmission 2018-08-01 13:28:23 +01:00
local_object.c rxrpc: Fix error reception on AF_INET6 sockets 2018-05-10 23:26:00 +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 proc: introduce proc_create_net{,_data} 2018-05-16 07:24:30 +02:00
output.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
peer_event.c rxrpc: Add a tracepoint to log ICMP/ICMP6 and error messages 2018-05-10 23:26:01 +01:00
peer_object.c rxrpc: Fix leak of rxrpc_peer objects 2018-03-30 21:05:44 +01:00
proc.c rxrpc: Show some more information through /proc files 2018-08-01 13:28:23 +01:00
protocol.h rxrpc: Fix undefined packet handling 2018-04-04 11:04:08 -04:00
recvmsg.c rxrpc: Propose, but don't immediately transmit, the final ACK for a call 2018-08-01 13:28:24 +01:00
rxkad.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
security.c rxrpc: remove unused static variables 2018-03-30 21:04:44 +01:00
sendmsg.c rxrpc: Fix missing start of call timeout 2018-05-10 23:26:00 +01: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