actix-net icon indicating copy to clipboard operation
actix-net copied to clipboard

add MPTCP socket protocol (optional)

Open Martichou opened this issue 2 years ago • 1 comments

PR Type

Feature

Overview

Add the possibility to use the MPTCP protocol at the socket level for users of ServerBuilder.

MPTCP is now more widely available since Linux Kernel version >= 5.6. But it still need to be enabled manually using: sysctl net.mptcp.enabled=1 (of course, MPTCP is only available on Linux).

The new MPTCP struct give the user the option to determine how we'll handle the case where MPTCP is not available on the host, either we crash, or we fallback to regular TCP.

Martichou avatar Sep 10 '22 22:09 Martichou

note: this PR will fail until socket2 make a new release with the new Protocol::MPTCP, but the content can still be reviewed

(see https://github.com/rust-lang/socket2/commit/4c436818cddec880c26c4e79aca7106ba88827ff)

Martichou avatar Sep 10 '22 22:09 Martichou

Unfortunately, the socket2 version needed is the 0.5.

I see there was a comment # TODO(MSRV 1.64) update to 0.5. What is the status on that? (cc @robjtede) This is the only thing still needed for MPTCP in Actix :1st_place_medal:

Martichou avatar May 12 '23 14:05 Martichou

Thanks for pushing this. My tweaks are mostly mechanical. We're expecting Windows CI failures atm so no worries there.

robjtede avatar Jul 17 '23 02:07 robjtede