Open asirir opened 5 days ago
Update:- it appears I can achieve what I desire with the following endpoint setup:
# HOST_1:
ENDPOINT B => fullmesh backup
# HOST_2:
ENDPOINT Q => signal
In this case the backup
flag is observed on the B <-> Q
. Reading the documentation for fullmesh
:
If the peer did not announce any additional addresses using the MPTCP ADD_ADDR sub-option, this will behave the same as a plain subflow endpoint. When the peer does announce addresses, each received ADD_ADDR sub-option will trigger creation of an additional subflow to generate a full mesh topology.
So I suppose as long as I can guarantee that my peer (in this case, my server program) always announce an endpoint, this setup should work for me? Specifically, I do not want the client to open regular subflows.
Interestingly, fullmesh backup
isn't totally legal as per https://www.mptcp.dev/pm.html#in-kernel-path-manager
fullmesh: The MPTCP path manager will try to create an additional subflow for each known peer address, using this endpoint as the source IP address. It requires the subflow flag, and it is not compatible with the signal one.
Hello,
I'm on kernel
6.5.0-41
(Ubuntu 22). I have a very simple host / network configuration like so:Where
A,B,P,Q
are IP addresses (so each host has 2 interfaces) and routing tables are setup so that traffic is pinned down between those IPs. My client is onHOST_1
, server onHOST_2
, the client program opens the initial connection toHOST_2:P
(for some port).I would like to have my primary connection between
A <-> P
and a backup subflow betweenB <-> Q
.This is what I tried:
But
mptcp monitor
shows no backup flag in the established subflow betweenB <-> Q
. And this seems to agree with what @pabeni said in https://github.com/multipath-tcp/mptcp_net-next/issues/237:But then @matttbe also mentioned:
But in that case I expect the
B <-> Q
subflow to bear the backup flag (as endpoint B has backup flag in my setup).Note that I could make a backup subflow with:
But the problem with this setup is, the subflow is established between
B <-> P
- becauseA <-> P
is where the primary connection is, the client is not aware of the addressB
on the server (without a signal endpoint). I also tried several other variations with similar results.Put another way, what I'd like is for the server to advertise an endpoint, and then for the client to open a backup subflow to that endpoint. Is this not possible?
Many thanks!