aboutsummaryrefslogtreecommitdiffstats
path: root/net/mptcp/options.c
diff options
context:
space:
mode:
authorPaolo Abeni <[email protected]>2020-03-27 21:48:44 +0000
committerDavid S. Miller <[email protected]>2020-03-30 05:14:48 +0000
commitb51f9b80c032e1af1e3e7e8dc733d2d49831e982 (patch)
tree0a7b141e21707fd6a0600cf2f0d37baffdf0a876 /net/mptcp/options.c
parentmptcp: queue data for mptcp level retransmission (diff)
downloadkernel-b51f9b80c032e1af1e3e7e8dc733d2d49831e982.tar.gz
kernel-b51f9b80c032e1af1e3e7e8dc733d2d49831e982.zip
mptcp: introduce MPTCP retransmission timer
The timer will be used to schedule retransmission. It's frequency is based on the current subflow RTO estimation and is reset on every una_seq update The timer is clearer for good by __mptcp_clear_xmit() Also clean MPTCP rtx queue before each transmission. Signed-off-by: Paolo Abeni <[email protected]> Signed-off-by: Mat Martineau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/mptcp/options.c')
-rw-r--r--net/mptcp/options.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index b0ff8ad702a3..bd220ee4aac9 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -779,8 +779,10 @@ static void update_una(struct mptcp_sock *msk,
snd_una = old_snd_una;
old_snd_una = atomic64_cmpxchg(&msk->snd_una, snd_una,
new_snd_una);
- if (old_snd_una == snd_una)
+ if (old_snd_una == snd_una) {
+ mptcp_data_acked((struct sock *)msk);
break;
+ }
}
}