* [MPTCP] Re: [RFC PATCH] mptcp: better msk receive window updates
@ 2021-02-05 8:26 Paolo Abeni
0 siblings, 0 replies; 3+ messages in thread
From: Paolo Abeni @ 2021-02-05 8:26 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 728 bytes --]
On Thu, 2021-02-04 at 23:23 +0100, Paolo Abeni wrote:
> Move mptcp_cleanup_rbuf() related checks inside the mentioned
> helper and extend them to mirror more closely TCP ones. To implement
> them we need to track the subflows mss and the ack_seq delta.
> Do not relay anymore on tcp_cleanup_rbuf() and send ack explicitly.
The more I think a about this, the more it looks like a workaround
instead of a real fix for the still vague root cause. Please keep this
on-hold.
> Additionally drop the 'rmem_pending' hack, since commit 879526030c8b
> ("mptcp: protect the rx path with the msk socket spinlock") we
> can use instead 'rmem_released'.
This part instead looks good and deserve a patch of its own.
/P
^ permalink raw reply [flat|nested] 3+ messages in thread
* [MPTCP] Re: [RFC PATCH] mptcp: better msk receive window updates
@ 2021-02-05 11:47 Paolo Abeni
0 siblings, 0 replies; 3+ messages in thread
From: Paolo Abeni @ 2021-02-05 11:47 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 1731 bytes --]
On Fri, 2021-02-05 at 09:26 +0100, Paolo Abeni wrote:
> On Thu, 2021-02-04 at 23:23 +0100, Paolo Abeni wrote:
> > Move mptcp_cleanup_rbuf() related checks inside the mentioned
> > helper and extend them to mirror more closely TCP ones. To implement
> > them we need to track the subflows mss and the ack_seq delta.
> > Do not relay anymore on tcp_cleanup_rbuf() and send ack explicitly.
>
> The more I think a about this, the more it looks like a workaround
> instead of a real fix for the still vague root cause. Please keep this
> on-hold.
This is targeting issues/147.
The timeout happens on monodirectional connections (the other way has
already shutdown) when the sender fills completely the MPTCP snd wnd
and the peer, by it's own logic -
mptcp_cleanup_rbuf()+tcp_cleanup_rbuf(), decides to not send the ack
after that for the chunk filling the window has been read by the user-
space.
The above should be possible even for plain TCP, where retransmission
will save the day - but I was unable to trigger that scenario easily.
In teory, even MPTCP level retransmissions should kick-in, but the
current pkt scheduler implementation for re-injection
(mptcp_subflow_get_retrans) always decice to do nothing, as the subflow
is _not_ in a lossy CA state.
I'm unsure how to proceeed. The proposed patch should address the
issue, but likely introduces a lot of unneeded acks and is quite an
hack.
A possible alternative would be scheduling 0win probes even with
pending data - likely an even uglier hack.
Or we could rework mptcp_subflow_get_retrans() to fit this scenario,
but that will possibly (likely???) break active backup.
Or ... ????
Any suggestion more then welcome!
/P
^ permalink raw reply [flat|nested] 3+ messages in thread
* [MPTCP] Re: [RFC PATCH] mptcp: better msk receive window updates
@ 2021-02-05 11:51 Florian Westphal
0 siblings, 0 replies; 3+ messages in thread
From: Florian Westphal @ 2021-02-05 11:51 UTC (permalink / raw)
To: mptcp
[-- Attachment #1: Type: text/plain, Size: 346 bytes --]
Paolo Abeni <pabeni(a)redhat.com> wrote:
> In teory, even MPTCP level retransmissions should kick-in, but the
> current pkt scheduler implementation for re-injection
> (mptcp_subflow_get_retrans) always decice to do nothing, as the subflow
> is _not_ in a lossy CA state.
Retrans skips subflows in lossy CA state, not the other way around?
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-02-05 11:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-05 11:51 [MPTCP] Re: [RFC PATCH] mptcp: better msk receive window updates Florian Westphal
-- strict thread matches above, loose matches on Subject: below --
2021-02-05 11:47 Paolo Abeni
2021-02-05 8:26 Paolo Abeni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.