multipath-tcp / mptcp_net-next

Development version of the Upstream MultiPath TCP Linux kernel 🐧
https://mptcp.dev
Other
278 stars 39 forks source link

scheduler: react when subflow-level events pop up (ACK/RTO) #343

Open matttbe opened 1 year ago

matttbe commented 1 year ago

When discussing about the packet scheduler API at the last meeting, it sounds very likely the current packet scheduler will not react by queuing more packets if some subflows only events are emitted, e.g. new TCP ACKs are received only acking things at TCP-level but not at MPTCP level.

The scheduler should probably be called when such events happen.

This can be checked with packetdrill: a ACK is received at TCP level and the scheduler might not send anything while it should (there is more room available).

Hints:

geliangtang commented 1 year ago

How about invoking __mptcp_push_pending() right after mptcp_pm_nl_work() in mptcp_worker(). Something like:

         mptcp_pm_nl_work(msk);

 +       __mptcp_push_pending(sk, 0);
 +
         mptcp_check_send_data_fin(sk);
         mptcp_check_data_fin_ack(sk);
         mptcp_check_data_fin(sk);
matttbe commented 10 months ago

How about invoking __mptcp_push_pending() right after mptcp_pm_nl_work() in mptcp_worker().

I forgot to reply to this one: we talked about that suggestion at the weekly meeting on the 19th of Sept

It doesn't seem OK:

matttbe commented 6 months ago

From the last meeting: