tmp_suning_uos_patched/net/rxrpc
David Howells 4790963ef4 rxrpc: Fix decision on when to generate an IDLE ACK
[ Upstream commit 9a3dedcf18096e8f7f22b8777d78c4acfdea1651 ]

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:21:12 +02:00
..
af_rxrpc.c rxrpc: Fix deadlock around release of dst cached on udp tunnel 2021-02-10 09:29:13 +01:00
ar-internal.h rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:21:12 +02:00
call_accept.c rxrpc: Fix memory leak in rxrpc_lookup_local 2021-02-03 23:28:50 +01:00
call_event.c rxrpc: Don't try to resend the request if we're receiving the reply 2022-06-09 10:21:12 +02:00
call_object.c rxrpc: Fix call timer start racing with call destruction 2022-04-08 14:40:41 +02:00
conn_client.c rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() 2021-12-08 09:03:25 +01:00
conn_event.c rxrpc: Fix loss of final ack on shutdown 2020-10-15 13:28:00 +01:00
conn_object.c rxrpc, afs: Fix selection of abort codes 2022-06-09 10:20:56 +02:00
conn_service.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
input.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:21:12 +02:00
insecure.c rxrpc: Fix -Wframe-larger-than= warnings from on-stack crypto 2019-07-30 10:32:35 -07:00
Kconfig docs: networking: convert rxrpc.txt to ReST 2020-04-30 12:56:38 -07:00
key.c rxrpc: Fix handling of an unsupported token type in rxrpc_read() 2021-01-23 16:04:03 +01:00
local_event.c rxrpc: Use the tx-phase skb flag to simplify tracing 2019-08-27 10:04:18 +01:00
local_object.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
Makefile rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
misc.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
net_ns.c rxrpc: Restore removed timer deletion 2022-04-27 13:53:49 +02:00
output.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:21:12 +02:00
peer_event.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
peer_object.c rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() 2021-12-08 09:03:25 +01:00
proc.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
protocol.h rxrpc: Improve jumbo packet counting 2019-08-27 09:48:37 +01:00
recvmsg.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:21:12 +02:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-11-18 14:04:03 +01:00
rxkad.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
security.c rxrpc: Fix missing security check on incoming calls 2019-12-20 16:21:32 +00:00
sendmsg.c rxrpc: Return an error to sendmsg if call failed 2022-06-09 10:20:56 +02:00
skbuff.c rxrpc: Use skb_unshare() rather than skb_cow_data() 2019-08-27 10:13:46 +01:00
sysctl.c rxrpc: Fix listen() setting the bar too high for the prealloc rings 2022-06-09 10:21:12 +02:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00