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

Is it possible to co-exist two plugins which are add-adv and sspi, in one mptcpd? #298

Closed
svkim opened this issue Aug 6, 2024 · 4 comments
Labels
question Further information is requested

Comments

@svkim
Copy link

svkim commented Aug 6, 2024

Hello, MPTCP developer.

I'm a newbie to understand MPTCP daemon.
Can I ask for some question?

According to before question #287,

If yes, mptcpd can work with both, it depends on which path manager plugin you use, e.g. add-adv will setup the in-kernel path manager, while sspi will require the userspace PM.

'add-adv' uses in-kernel path manager and,
'sspi' uses Userspace path manager

Q1. Is it possible to co-exist two plugins which are add-adv and sspi, in one mptcpd ?

I think, It's not possible because 'add-adv' uses in-kernel path manager and 'sspi' uses Userspace path manager. so, to use them, net.mptcp.pm_type should be changed flexibly.

Q2. If yes, When pm_type will be changed?

Thanks.

@matttbe
Copy link
Member

matttbe commented Aug 7, 2024

Q1. Is it possible to co-exist two plugins which are add-adv and sspi, in one mptcpd ?

I think, It's not possible because 'add-adv' uses in-kernel path manager and 'sspi' uses Userspace path manager. so, to use them, net.mptcp.pm_type should be changed flexibly.

Indeed, that's not possible with a single mptcpd. But note that the path-manager can be different per network namespace (netns). You can then have one netns with pm_type=0 and one instance of mptcpd using the add-adv plugin, and another netns with pm_type=1 and another instance of mptcpd using the sspi plugin.

Also, changing the pm_type will only affect connections created after the modification. The ones created before will continue to use the previous path-manager. (So yes, on the same netns, you can have connections using different path-managers, but the goal is not using the two at the same time.)

@matttbe matttbe added the question Further information is requested label Aug 7, 2024
@svkim
Copy link
Author

svkim commented Aug 7, 2024

Thank you.
Additionally, When I checked sspi code,

if MPTCP_EVENT_CREATE event occurs, by sspi plugin, mptcpd will call 'send_add_addr" with MPTCP_PM_CMD_ANNOUNCE including an address for specific interface. And, I think sending MPTCP_PM_CMD_ANNOUNCE will lead to trigger to create a subflow.

Q1. Why do sspi call MPTCP_PM_CMD_ANNOUNCE, instead of MPTCP_PM_CMD_SUBFLOW_CREATE?
is there any reason for that?

Q2. sspi is focused on the client side ? or both (server and client) ?

Thanks.

@matttbe
Copy link
Member

matttbe commented Aug 7, 2024

Q1. Why do sspi call MPTCP_PM_CMD_ANNOUNCE, instead of MPTCP_PM_CMD_SUBFLOW_CREATE?
is there any reason for that?

This plugin is just a demo one, to give an example of what can be done with the plugins. Here, it announces addresses, but it doesn't create any subflows.

Q2. sspi is focused on the client side ? or both (server and client) ?

Maybe more the server side. But again, that's just a demo. People can create a plugin that is specific to their use-cases. Typically, when such use-cases are not handled by the in-kernel PM.

I guess this repo can also host new plugins with generic use-cases, e.g. a _single-subflow-per-interface` path-manager, more focussed on the client side. Or add options, but that requires #210.

@svkim
Copy link
Author

svkim commented Aug 8, 2024

Thank you!!

@matttbe matttbe closed this as completed Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants