-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
Userspace PM can't specify if_idx on MPTCP_PM_CMD_SUBFLOW_CREATE #533
Comments
Hi @majek, Thank you for having reported this issue! That's strange, the userspace PM should take mptcp_net-next/net/mptcp/pm_userspace.c Line 385 in e537fe4
The info is passed to mptcp_net-next/net/mptcp/pm_userspace.c Lines 416 to 422 in e537fe4
Which will pass the info to the mptcp_net-next/net/mptcp/subflow.c Lines 1646 to 1647 in e537fe4
That's on the dev version. Which kernel are you using? I didn't check the userspace code ( |
I'm on kernel 6.8.
I have absolutely no idea. Let me try to debug the netlink. Here's what I send over netlink from pm_nl_ctl when I do csf:
I guess the if_idx should be on local address. And I guess it looks fine? |
For the record, this is a change between 6.12 and master that changes the ifindex handling |
Ok, I have it. AFAIU in kernels before and including v6.12 the ifindex of a path is taken from the "annouced list". That is: the passed ifindex o MPTCP_PM_CMD_SUBFLOW_CREATE is ignored. This means, that like in my case, when I don't announce anything , the ifindex is assumed zero, which gets all wrong. However, when I do
However, of course this means stupid add-addr with my local IP on the wire!
Which is totally braindead. Anyway, I think this is all I needed now. I guess the final question is - is this fixed in master, and can I just do |
Ok, off 6.12 it looks fine! Ie: my patch that adds MPTCP_PM_ADDR_ATTR_IF_IDX to pm_nl_ctl does indeed work and I can now see the proper iface-bound flows:
|
Pre-requisites
Description
I'm playing with pm_nl_ctl to create subflows, like:
And, first of course the CLI doesn't allow specifying ifindex of the path. But this is fine, I can patch it:
However, this still doesn't work. I don't think the MPTCP_PM_ADDR_ATTR_IF_IDX is taken into account when creating the flow...
The
ip mptcp monitor
seems to confirm.The subflow created by pm_type=0 reports ifindex on subflow:
However, the subflow created by pm_type=1 and the patched
pm_nl_ctl csf
tool misses the ifindex in logline:Solution
Make sure MPTCP_PM_ADDR_ATTR_IF_IDX is taken into account when dealing with MPTCP_PM_CMD_SUBFLOW_CREATE in kernel.
Considered alternatives
n/a
Additional context
No response
The text was updated successfully, but these errors were encountered: