Skip to content

Conversation

@zonyitoo
Copy link
Collaborator

@zonyitoo zonyitoo force-pushed the feat-mptcp branch 3 times, most recently from d5ac1d5 to c7989a2 Compare March 24, 2023 18:37
@dev4u
Copy link

dev4u commented Mar 25, 2023

请教一下,这玩意有什么用途吗?

@database64128
Copy link
Contributor

The MPTCP folks seem to be pushing a lot lately. MPTCP support detection logic just got merged into the Go runtime: golang/go@59d7c69

@zonyitoo
Copy link
Collaborator Author

zonyitoo commented Mar 25, 2023

Some observation:

  • Linux 5.19 (Ubuntu 22.10) doesn't support TCP_KEEPIDLE and TCP_KEEPINTV sockopts.

Accepted socket (13):

accept4(9, {sa_family=AF_INET6, sin6_port=htons(64832), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:192.168.11.186", &sin6_addr), sin6_scope_id=0}, [128 => 28], SOCK_CLOEXEC|SOCK_NONBLOCK) = 13
setsockopt(13, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(13, SOL_TCP, TCP_KEEPIDLE, [15], 4) = -1 EOPNOTSUPP
setsockopt(13, SOL_TCP, TCP_KEEPINTVL, [15], 4) = -1 EOPNOTSUPP

Connected socket (14), target doesn't support MPTCP:

socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP) = 14
connect(14, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("14.119.104.189")}, 16) = -1 EINPROGRESS
setsockopt(14, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(14, SOL_TCP, TCP_KEEPIDLE, [15], 4) = 0
setsockopt(14, SOL_TCP, TCP_KEEPINTVL, [15], 4) = 0

Connected socket (14), target supports MPTCP:

socket(AF_INET6, SOCK_STREAM, IPPROTO_MPTCP) = 14
connect(14, {sa_family=AF_INET6, sin6_port=htons(8388), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_scope_id=0}, 28) = -1 EINPROGRESS
setsockopt(14, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(14, SOL_TCP, TCP_KEEPIDLE, [15], 4) = -1 EOPNOTSUPP
  • macOS supports AF_MULTIPATH only for client sockets. bind() will return EOPNOTSUPP and setsockopt with SO_REUSEADDR will return ENOPROTOOPT.
socket(0x27, 0x1, 0x6)		 = 9 0
bind(0x9, 0x700005C74560, 0x10)		 = -1 102

@zonyitoo zonyitoo force-pushed the feat-mptcp branch 5 times, most recently from b06a871 to e2b27cf Compare March 26, 2023 13:53
  - Currently support macOS (Client Only) and Linux (> 5.19)
  - ref #1156
@zonyitoo zonyitoo marked this pull request as ready for review April 5, 2023 15:19
@zonyitoo zonyitoo merged commit 7d7fb19 into master Apr 5, 2023
@zonyitoo zonyitoo deleted the feat-mptcp branch April 5, 2023 15:19
@zonyitoo
Copy link
Collaborator Author

zonyitoo commented Apr 5, 2023

@wangyoucao577
Copy link

wangyoucao577 commented Jan 23, 2024

@zonyitoo Hi, why does it require Linux > 5.19? It's MPTCPv1, which is available since Linux v5.6, right? https://github.com/multipath-tcp/mptcp_net-next/wiki#changelog

@zonyitoo
Copy link
Collaborator Author

Did you tried to run it under older version of Linux Kernel?

@wangyoucao577
Copy link

I haven't tried this app yet. But I have tried mptcpize run -d iperf3 on Linux v5.15 (both client and server side), which worked well.

@zonyitoo
Copy link
Collaborator Author

You could try to run it under v5.15 and see if any error occured.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants