mptcp: retrans optimization
scheduler: implement a "opportunistic retransmission"
The goal of the "opportunistic retransmission" is to quickly reinject
packets when we notice the window has just been closed on one path, see
the section 4.2 of:
https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final125.pdf
This is implemented in mptcp.org, see mptcp_rcv_buf_optimization().
With the current API in the Upstream kernel, a new scheduler doesn't have
the ability to trigger a reinjection. Currently there are only hooks to
initiate reinjection when the MPTCP RTO fires.
The packet scheduler should be able to get more info:
not just when MPTCP cwnd close or the seq num has increased (max
allowed MPTCP level seq num to be sent == last ack + (...))
but also when there is a RTO at subflow level: maybe linked to
scheduler: react when subflow-level events pop up (ACK/RTO) #343
Note that the packet scheduler never significantly queue more than what
the cwnd of a subflow would accept: currently, the in-kernel only accepts
to queue up to the MPTCP level cwnd (a few more bytes due to round-up)
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/332
Signed-off-by: Geliang Tang <geliang@kernel.org>
1 file changed