linux/net/rxrpc
David Howells 530403d9ba rxrpc: Clean up ACK handling
Clean up the rxrpc_propose_ACK() function.  If deferred PING ACK proposal
is split out, it's only really needed for deferred DELAY ACKs.  All other
ACKs, bar terminal IDLE ACK are sent immediately.  The deferred IDLE ACK
submission can be handled by conversion of a DELAY ACK into an IDLE ACK if
there's nothing to be SACK'd.

Also, because there's a delay between an ACK being generated and being
transmitted, it's possible that other ACKs of the same type will be
generated during that interval.  Apart from the ACK time and the serial
number responded to, most of the ACK body, including window and SACK
parameters, are not filled out till the point of transmission - so we can
avoid generating a new ACK if there's one pending that will cover the SACK
data we need to convey.

Therefore, don't propose a new DELAY or IDLE ACK for a call if there's one
already pending.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
2022-11-08 16:42:28 +00:00
..
af_rxrpc.c rxrpc: Use refcount_t rather than atomic_t 2022-05-22 21:03:01 +01:00
ar-internal.h rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
call_accept.c rxrpc: Allocate ACK records at proposal and queue for transmission 2022-11-08 16:42:28 +00:00
call_event.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
call_object.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
conn_client.c rxrpc: Use refcount_t rather than atomic_t 2022-05-22 21:03:01 +01:00
conn_event.c rxrpc: Merge prime_packet_security into init_connection_security 2020-11-23 18:09:30 +00:00
conn_object.c rxrpc, afs: Fix selection of abort codes 2022-05-22 21:03:02 +01:00
conn_service.c rxrpc: Use refcount_t rather than atomic_t 2022-05-22 21:03:01 +01:00
input.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
insecure.c rxrpc: Ask the security class how much space to allow in a packet 2020-11-23 19:53:11 +00:00
Kconfig net: RxRPC: make dependent Kconfig symbols be shown indented 2021-08-18 10:12:11 +01:00
key.c rxrpc: Fix handling of an unsupported token type in rxrpc_read() 2021-01-13 10:38:00 -08:00
local_event.c rxrpc: Fix a typo 2021-06-02 14:01:55 -07:00
local_object.c rxrpc: Allocate ACK records at proposal and queue for transmission 2022-11-08 16:42:28 +00:00
Makefile rxrpc: Define rxrpc_txbuf struct to carry data to be transmitted 2022-11-08 16:42:28 +00:00
misc.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
net_ns.c rxrpc: Add stats procfile and DATA packet stats 2022-11-08 16:42:15 +00:00
output.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
peer_event.c rxrpc: Use the core ICMP/ICMP6 parsers 2022-11-08 16:42:28 +00:00
peer_object.c rxrpc: Use refcount_t rather than atomic_t 2022-05-22 21:03:01 +01:00
proc.c rxrpc: Define rxrpc_txbuf struct to carry data to be transmitted 2022-11-08 16:42:28 +00:00
protocol.h rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
recvmsg.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-09-24 14:18:34 +01:00
rxkad.c rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2() 2022-09-01 11:44:12 +01:00
security.c rxrpc: Hand server key parsing off to the security class 2020-11-23 18:09:29 +00:00
sendmsg.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
server_key.c rxrpc: fix some null-ptr-deref bugs in server_key.c 2022-03-31 15:21:31 +02:00
skbuff.c rxrpc: Remove the flags from the rxrpc_skb tracepoint 2022-11-08 16:42:28 +00:00
sysctl.c rxrpc: Clean up ACK handling 2022-11-08 16:42:28 +00:00
txbuf.c rxrpc: Allocate ACK records at proposal and queue for transmission 2022-11-08 16:42:28 +00:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00