Message ID | 20210423011108.179263-1-mathew.j.martineau@linux.intel.com |
---|---|
State | Accepted, archived |
Commit | 820118888287ca20a5a99be53ca84abe2052b5bb |
Delegated to: | Matthieu Baerts |
Headers | show |
Series | [mptcp-next] Squash-to: mptcp: Retransmit DATA_FIN (again) | expand |
On Thu, 2021-04-22 at 18:11 -0700, Mat Martineau wrote: > Previous testing happened to involve cases where data had been sent and > the retrans timer was already running. Packetdrill testing revealed that > the timer was not being started in cases where no data had been > transmitted, so __mptcp_retrans() was never called. This change starts > the timer when the original DATA_FIN is sent, if the timer is not > already running. > > Packetdrill PR is forthcoming. > > Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> > --- > net/mptcp/protocol.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c > index 6cbddfc18158..aec8e77b18e4 100644 > --- a/net/mptcp/protocol.c > +++ b/net/mptcp/protocol.c > @@ -2497,6 +2497,8 @@ void mptcp_subflow_shutdown(struct sock *sk, struct sock *ssk, int how) > pr_debug("Sending DATA_FIN on subflow %p", ssk); > mptcp_set_timeout(sk, ssk); > tcp_send_ack(ssk); > + if (!mptcp_timer_pending(sk)) > + mptcp_reset_timer(sk); > } > break; > } LGTM, thanks! Acked-by: Paolo Abeni <pabeni@redhat.com>
Hi Mat, Paolo, On 23/04/2021 03:11, Mat Martineau wrote: > Previous testing happened to involve cases where data had been sent and > the retrans timer was already running. Packetdrill testing revealed that > the timer was not being started in cases where no data had been > transmitted, so __mptcp_retrans() was never called. This change starts > the timer when the original DATA_FIN is sent, if the timer is not > already running. > > Packetdrill PR is forthcoming. > > Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Thank you for the patch and the review! - 820118888287: "squashed" in "mptcp: Retransmit DATA_FIN" - Results: 9fb030889e08..0f7c6f5b4a89 Builds and tests are now in progress: https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20210423T152727 https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export/20210423T152727 Cheers, Matt
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6cbddfc18158..aec8e77b18e4 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2497,6 +2497,8 @@ void mptcp_subflow_shutdown(struct sock *sk, struct sock *ssk, int how) pr_debug("Sending DATA_FIN on subflow %p", ssk); mptcp_set_timeout(sk, ssk); tcp_send_ack(ssk); + if (!mptcp_timer_pending(sk)) + mptcp_reset_timer(sk); } break; }
Previous testing happened to involve cases where data had been sent and the retrans timer was already running. Packetdrill testing revealed that the timer was not being started in cases where no data had been transmitted, so __mptcp_retrans() was never called. This change starts the timer when the original DATA_FIN is sent, if the timer is not already running. Packetdrill PR is forthcoming. Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> --- net/mptcp/protocol.c | 2 ++ 1 file changed, 2 insertions(+)