-
-
Notifications
You must be signed in to change notification settings - Fork 44
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
Kernel built-in PM is unreliable #534
Comments
Hi @majek, Thank you for this bug report.
I think it is a known issue, maybe:
Could you eventually retry with an upstream kernel please? https://kernel.ubuntu.com/mainline/ |
There are MIB counters ( |
I upgraded to v6.12 and it seems way more reliable. thanks. Now, this is probably another issue, but let me brain-dump here. The default PM works fine in the "Do not attempt to establish new subflows to this address and port" case. When I set this flag on the server (preventing reconnect) and ADD-ADDR a new address, the PM does unexpected stuff.
That is: I get two subflows, one original, and a new one to the ADD-ADDR signalled endpoint (port 12001) but both are from single iface/ip. Therefore not giving me any of the "interactive" benfits. I would expect at least one subflow to be from my wi-fi. BTW limts are high:
|
The lack of sensible add-addr handling on the client is covered in #503 |
FYI, I talked to Ubuntu kernel devs today, and apparently, these fixes are coming, and they should be available in the next sync around February. Most of these fixes are already in their "master-next". We were just unlucky here because the last sync was done at the end of July, a few days before the fixes hit upstream stable...
That's probably the expected behaviour that is explained on mptcp.dev:
In other words, there are workarounds to use different interfaces, but it might be cleaner to have a new dedicated flag as suggested in #503 |
Just to get it right. On a linux MPTCP client, when
Something like that? What about |
Yes, correct. When an
When used with |
Pre-requisites
What did you do?
Pardon my lack of specificity, but I can't quite pinpoint this problem. I'm trying to run vanilla Linux as MPTCP client. I'm expecting "interactive" semantics - I want to get a reliable MPTCP connection over ever-changing network interfaces.
I'm running ubuntu 22, kernel 3.8. I have NetworkManager configured and I see
ip mptcp endpoints ... subflow
nicely configured when new network interface is created/enabled. And the entries correctly disappear on interface down. All other settings (sysctl's ) are default. I'm using in-kernel built-in path manager.I manually create an MPTCP flow to a server, the server reports clear "Do not attempt to establish new subflows to this address and port" flag - allows client to reconnect. Initially I have two network interfaces - ethernet and Wi-Fi and I indeed see two underlying TCP subflows created.
When I yank out ethernet, the appropriate subflow disapears. When I plug it in it's often recreated. The same works for Wi-Fi.
It's all nice and shiny, but for an unknown reason this just stops working at some point. I don't know - maybe I'm yanking the ethetnet off too often? Or with too small delay? I'm sure it works (ping works) but at some point, the mptcp just seems to give up and fails to establish a new flow. I don't think this is about hitting "ip mptcp limits". Maybe there is some race-condition in the system, and it moves the MPTCP to a broken state.
I don't expect any resolution for this ticket, but I wanted to report it. Maybe it's a well known bug or feature of PM?
Any hints on how to debug built-in PM and understand why it just switches mptcp socket to a "broken" state (ie: gives up on establishing new subflows) would be helpful.
Marek
What happened?
Built-in PM seems to give up on an MPTCP socket at some point.
What did you expect to have?
I would expect MPTCP socket to stay working while I'm adding/removing network interfaces, as long as at least one network interface is always in a good state. I understand that when I break all connectivity MPTCP might, rightfully so, error.
System info: Client
System info: Server
.
Additional context
No response
The text was updated successfully, but these errors were encountered: