Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
iamdivyanshverma opened this issue Oct 28, 2024 · 4 comments
Labels
feedback-needed Waiting for a reply question

Comments

@iamdivyanshverma
Copy link

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 matttbe transferred this issue from multipath-tcp/mptcp.dev Oct 28, 2024
@matttbe
Copy link
Member

matttbe commented Oct 28, 2024

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
Copy link
Author

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
Copy link
Member

matttbe commented Nov 4, 2024

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 matttbe added the feedback-needed Waiting for a reply label Nov 7, 2024
@matttbe
Copy link
Member

matttbe commented Nov 7, 2024

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.

@matttbe matttbe closed this as completed Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback-needed Waiting for a reply question
Projects
None yet
Development

No branches or pull requests

2 participants