linux/net/rxrpc
David Howells be8aa33806 rxrpc: Fix accidental cancellation of scheduled resend by ACK parser
When rxrpc_input_soft_acks() is parsing the soft-ACKs from an ACK packet,
it updates the Tx packet annotations in the annotation buffer.  If a
soft-ACK is an ACK, then we overwrite unack'd, nak'd or to-be-retransmitted
states and that is fine; but if the soft-ACK is an NACK, we overwrite the
to-be-retransmitted with a nak - which isn't.

Instead, we need to let any scheduled retransmission stand if the packet
was NAK'd.

Note that we don't reissue a resend if the annotation is in the
to-be-retransmitted state because someone else must've scheduled the
resend already.

Signed-off-by: David Howells <dhowells@redhat.com>
2016-09-23 15:35:45 +01:00
..
af_rxrpc.c rxrpc: Improve skb tracing 2016-09-17 11:24:04 +01:00
ar-internal.h rxrpc: Need to start the resend timer on initial transmission 2016-09-23 14:05:12 +01:00
call_accept.c rxrpc: Add a tracepoint to follow packets in the Rx buffer 2016-09-17 11:24:03 +01:00
call_event.c rxrpc: Need to start the resend timer on initial transmission 2016-09-23 14:05:12 +01:00
call_object.c rxrpc: Improve skb tracing 2016-09-17 11:24:04 +01:00
conn_client.c rxrpc: Add connection tracepoint and client conn state tracepoint 2016-09-17 11:24:03 +01:00
conn_event.c rxrpc: Improve skb tracing 2016-09-17 11:24:04 +01:00
conn_object.c rxrpc: Don't store the rxrpc header in the Tx queue sk_buffs 2016-09-22 01:23:50 +01:00
conn_service.c rxrpc: Add connection tracepoint and client conn state tracepoint 2016-09-17 11:24:03 +01:00
input.c rxrpc: Fix accidental cancellation of scheduled resend by ACK parser 2016-09-23 15:35:45 +01:00
insecure.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
Kconfig rxrpc: Add config to inject packet loss 2016-09-17 11:24:04 +01:00
key.c rxrpc: Use structs to hold connection params and protocol info 2016-06-22 09:09:59 +01:00
local_event.c rxrpc: Improve skb tracing 2016-09-17 11:24:04 +01:00
local_object.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
Makefile rxrpc: Split sendmsg from packet transmission code 2016-09-04 21:41:39 +01:00
misc.c rxrpc: Obtain RTT data by requesting ACKs on DATA packets 2016-09-22 08:21:24 +01:00
output.c rxrpc: Reduce the number of ACK-Requests sent 2016-09-22 08:49:20 +01:00
peer_event.c rxrpc: Add per-peer RTT tracker 2016-09-22 01:26:25 +01:00
peer_object.c rxrpc: Reduce the number of ACK-Requests sent 2016-09-22 08:49:20 +01:00
proc.c rxrpc: Add IPv6 support 2016-09-13 23:09:13 +01:00
recvmsg.c rxrpc: Don't send an ACK at the end of service call response transmission 2016-09-23 13:23:09 +01:00
rxkad.c rxrpc: Don't store the rxrpc header in the Tx queue sk_buffs 2016-09-22 01:23:50 +01:00
security.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
sendmsg.c rxrpc: Need to start the resend timer on initial transmission 2016-09-23 14:05:12 +01:00
skbuff.c rxrpc: Improve skb tracing 2016-09-17 11:24:04 +01:00
sysctl.c rxrpc: Obtain RTT data by requesting ACKs on DATA packets 2016-09-22 08:21:24 +01:00
utils.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00