Userspace PM doesn't have access to allow_join_id0
/ allow_join_initial_addr_port
bit from the SYN-ACK
#532
Labels
allow_join_id0
/ allow_join_initial_addr_port
bit from the SYN-ACK
#532
Pre-requisites
Description
I'm pondering about writing an userspace Path Manager - for an MPTCP client case.
The server can report addresses in two ways:
Typically, the "Do not attempt to establish new subflows to this address and port" flag is set, so a naive userspace PM can assume this. But this seems wrong. The "Do not attempt to establish new subflows to this address and port" flag is set as part of struct mptcp_subflow_request_sock allow_join_id0 member. Unless I read the code wrong, this struct is not passed to the netlink code that generates connected/established events.
I think access to this flag is necessary for any sane userspace PM. Unless I got something wrong and there maybe is a way to read it?
Marek
Solution
I guess another new netlink attribute on created/established message?
Considered alternatives
An alternative would be for userspace PM to do some kind of
ss
query and ping the socket state. But again - I don't think this is going to report much. The extreme hack would be to steal socket from userspace and query its state with MPTCP_FULL_INFO. (does this struct have info on whether server allowed the server address pair reuse?)Additional context
No response
The text was updated successfully, but these errors were encountered: