linux-stable/net/rxrpc
David Howells e5215feec4 rxrpc: Fix decision on when to generate an IDLE ACK
[ Upstream commit 9a3dedcf18 ]

Fix the decision on when to generate an IDLE ACK by keeping a count of the
number of packets we've received, but not yet soft-ACK'd, and the number of
packets we've processed, but not yet hard-ACK'd, rather than trying to keep
track of which DATA sequence numbers correspond to those points.

We then generate an ACK when either counter exceeds 2.  The counters are
both cleared when we transcribe the information into any sort of ACK packet
for transmission.  IDLE and DELAY ACKs are skipped if both counters are 0
(ie. no change).

Fixes: 805b21b929 ("rxrpc: Send an ACK after every few DATA packets we receive")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-06-09 10:25:58 +02:00
..
Kconfig net: RxRPC: make dependent Kconfig symbols be shown indented 2021-08-18 10:12:11 +01:00
Makefile
af_rxrpc.c rxrpc: Fix fall-through warnings for Clang 2021-06-04 17:40:04 -05:00
ar-internal.h rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:25:58 +02:00
call_accept.c rxrpc: Fix locking issue 2022-06-09 10:25:57 +02:00
call_event.c rxrpc: Don't try to resend the request if we're receiving the reply 2022-06-09 10:25:57 +02:00
call_object.c rxrpc: Fix locking issue 2022-06-09 10:25:57 +02:00
conn_client.c rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() 2021-11-29 15:39:40 +00:00
conn_event.c
conn_object.c rxrpc, afs: Fix selection of abort codes 2022-06-09 10:25:30 +02:00
conn_service.c
input.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:25:58 +02:00
insecure.c
key.c
local_event.c rxrpc: Fix a typo 2021-06-02 14:01:55 -07:00
local_object.c rxrpc: Enable IPv6 checksums on transport socket 2022-05-12 12:32:37 +02:00
misc.c
net_ns.c rxrpc: Fix locking issue 2022-06-09 10:25:57 +02:00
output.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:25:58 +02:00
peer_event.c
peer_object.c rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() 2021-11-29 15:40:02 +00:00
proc.c rxrpc: Fix locking issue 2022-06-09 10:25:57 +02:00
protocol.h
recvmsg.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:25:58 +02:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-09-24 14:18:34 +01:00
rxkad.c
security.c
sendmsg.c rxrpc: Return an error to sendmsg if call failed 2022-06-09 10:25:30 +02:00
server_key.c rxrpc: fix some null-ptr-deref bugs in server_key.c 2022-04-08 13:58:55 +02:00
skbuff.c
sysctl.c rxrpc: Fix listen() setting the bar too high for the prealloc rings 2022-06-09 10:25:57 +02:00
utils.c