multipath-tcp / mptcp_net-next

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

Can't Find Balia, Lia, Olia congestion control selection in menuconfig . #528

Closed iamdivyanshverma closed 2 weeks ago

iamdivyanshverma commented 1 month ago

Hi there, I have build a custom OpenWrt image where i would like to test Congestion control like Balia, Lia, Olia mentioned on "https://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP" but in kernel_menuconfig only these congestion controls are available.

OpenWrt => [ main branch ] Kernel => 6.1.71 Target => RPI4

Screenshot from 2024-10-28 13-15-47

matttbe commented 1 month ago

Hi,

on "https://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP"

As written in big on the home page, this website was for the previous implementation, kernels < 5.6. I just added the same banner on all the other main pages just in case.

I would like to test Congestion control like Balia, Lia, Olia mentioned but in kernel_menuconfig only these congestion controls are available.

These MPTCP specific TCP congestion control algorithms are (currently) not implemented in the upstream version, mainly because nobody implemented them. I guess the reason is that nobody really needed them. May I ask you why you want them?

These CCA are useful when the same bottleneck is shared by multiple subflows and regular TCP, which is usually not the case. When MPTCP is used to increase the throughput of a connection, subflows are routed through different paths with different bottlenecks.

iamdivyanshverma commented 3 weeks ago

Thank you everyone for the insights on congestion control algorithms. We are working in an environment where multiple 4G connections are used for multipath aggregation, and that the link latency and bandwidth fluctuate rapidly occur in our setup. Because of the varying latency and bw, we are currently experiencing overall throughput lower than the capacity of individual links at times. We are optimistic that CCA like OLIA will help address this issue by dynamically adjusting the congestion window according to each link's latency and bandwidth. Could you point me in the right direction for building the congestion control algorithm for MPTCP on the Mainstream kernel Any guidance on resources or steps would be greatly appreciated! Thanks.

matttbe commented 3 weeks ago

Mmh, I don't think this CCA can help.

If the issue is the fluctuation, you might better choose CCA (globally or per destination) that are more aggressive and/or adapted for such environments (BBR?).

But maybe your issue is elsewhere: limited by the sending/receiving buffers, etc. Maybe there are some optimisations that are missing on the scheduler side.

Please note that we don't block the addition of new CCA that are taking MPTCP into consideration. It is just that it is usually useful for very specific use-cases, mainly where multiple paths share the same bottleneck as other TCP connections and there is a need to be fair there: where "1 MPTCP connections (with multiple paths) == 1 TCP connection" vs "1 path == 1 TCP connection".

matttbe commented 2 weeks ago

Hello,

I suggest closing this ticket: if someone is interested to implement new CCA that are dedicated to MPTCP, feel free to do so and share patches. If some paths are misused despite the info filled by the CCA, then that's the responsibility of the packet scheduler to use more or less a path depending on the conditions.

Feel free to re-open this ticket if needed, or create a new one.