Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upAllow enabling MPTCP on a listening socket through the records.config #4203
Conversation
This comment has been minimized.
This comment has been minimized.
|
[approve ci] |
This comment has been minimized.
This comment has been minimized.
|
Talking to Bryan, I think we should do a couple of changes, I'll talk to Christoph off-line. |
This comment has been minimized.
This comment has been minimized.
|
I updated the PR such that one can now configure MPTCP through the "mptcp" port-keyword. That way, one can enable it on a case-by-case basis. There is no default opt-in anymore. |
| @@ -1025,6 +1049,19 @@ LocalManager::bindProxyPort(HttpProxyPort &port) | |||
| } | |||
| } | |||
|
|
|||
| if (port.m_mptcp && mptcp_supported()) { | |||
This comment has been minimized.
This comment has been minimized.
SolidWallOfCode
Sep 9, 2018
•
Member
I think it it would be better to not allow m_mptcp to be set if it is not supported. Please look at the transparency support code, which dealt with a similar issue back when transparency support required a special kernel mod. In essence, if the port descriptor has "mptcp" and it's not supported, issue a warning at that point and don't enable m_mptcp. The state of support isn't going to change while TS is running.
This comment has been minimized.
This comment has been minimized.
cpaasch
Sep 10, 2018
Author
Thanks for the feedback. I did it the way you described, checking for mptcp_supported in processOptions and based on that enable m_mptcp or not.
I just pushed the update to my branch here.
| @@ -1025,6 +1033,21 @@ LocalManager::bindProxyPort(HttpProxyPort &port) | |||
| } | |||
| } | |||
|
|
|||
| if (port.m_mptcp) { | |||
| #if defined(MPTCP_ENABLED) | |||
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
This looks good to me, but would like for @SolidWallOfCode to review before we merge. |
This comment has been minimized.
This comment has been minimized.
|
Cherry picked to 8.1.0 |
cpaasch commentedSep 5, 2018
This change allows to enable MPTCP on a listener socket. We check whether the running host has the necessary sysctl that indicates that the kernel has been built with the right support.
When the socket-option fails, we just log a message and gracefully continue.
P.S.: Multipath TCP is currently in a forked Linux Kernel at https://multipath-tcp.org.