Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
MPTCP on RPI4B with armbian + patched rpi-sources
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3498

PostPosted: Sat Feb 08, 2025 3:55 pm    Post subject: MPTCP on RPI4B with armbian + patched rpi-sources Reply with quote

Long story short, I wanted to enable MPTCP on my RPI4B with armbian.

I've been using it successfully on AMD64 via a kernel patch that attempts to upgrade all TCP sockets to MPTCP. If MPTCP is not supported by the remote end, kernel automagically fails back to TCP anyway, so there is no harm carpet-bombing it like that. Anyway, I though it would be a good idea to apply the same patch to my rpi. post 8826211

I crosscompiled raspberrypi-sources according to https://www.raspberrypi.com/documentation/computers/linux_kernel.html and transplanted it into previously installed armbian I've been using for a while. It boots, services work, I even recompiled an out-of-tree wifi module to get a USB dongle back. So far so good... But mptcp doesn't work.
Tried again with IPv6 permanently built into kernel instead of as a module, enabled MPTCP for IPv6, and it still doesn't activate.
The only difference compared to earlier is that when I ssh to it from a laptop where MPTCP actually works, I see 2 of those lines instead of 1:
Quote:
setsockopt socket 3 IPV6_TCLASS 72: Operation not supported
It still connects though.
Connecting via ipv4 doesn't print any errors at all. In either case, the session does not transfer between ethernet and wifi like expected (It does work with my VPS; I can switch between wifi and a cellphone modem without dropping SSH session; RPI has multiple interfaces and VPS only 1, but AFAIK it shouldn't matter)

There are no firewalls, independently of each other both links work, it's just not using multipath.
Code:
rpi # sysctl -a | grep mptcp
net.ipv4.tcp_available_ulp = mptcp
net.mptcp.add_addr_timeout = 120
net.mptcp.allow_join_initial_addr_port = 1
net.mptcp.checksum_enabled = 0
net.mptcp.enabled = 1
net.mptcp.pm_type = 0
net.mptcp.scheduler = default
net.mptcp.stale_loss_cnt = 4
Code:
laptop  # sysctl -a | grep mptcp
net.ipv4.tcp_available_ulp = mptcp
net.mptcp.add_addr_timeout = 120
net.mptcp.allow_join_initial_addr_port = 1
net.mptcp.available_schedulers = default
net.mptcp.blackhole_timeout = 3600
net.mptcp.checksum_enabled = 0
net.mptcp.close_timeout = 60
net.mptcp.enabled = 1
net.mptcp.pm_type = 0
net.mptcp.scheduler = default
net.mptcp.stale_loss_cnt = 4

So, any ideas?


Edit: I snooped on the traffic with Wireshark, it does recognize the conversation as an MPTCP stream, however there is only 1 substream with index 0. I'm pretty sure endpoints should advertise their other IPs, so maybe I need to play with routing rules a bit to get them to advertise the other IPs....
_________________
Make Computing Fun Again
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum