Hi Matthieu,

On Fri, Aug 09, 2024 at 12:52:04PM +0200, Matthieu Baerts wrote:
> On 09/08/2024 11:32, Willy Tarreau wrote:
> > On Mon, May 06, 2024 at 02:10:02PM +0200, Björn Jacke wrote:
> >> Hi,
> >>
> >> I came up a while ago with a patchset for MPTCP support for HAProxy also,
> >> see https://github.com/haproxy/haproxy/issues/1028
> >>
> >> Back then I also discussed some ideas with Willy how to implement it more
> >> elegantly in HAProxy. It's still somewhere on my todo list but 
> >> unfortunately
> >> I didn't catch that up since then. As I had a good real-world usecase
> >> recently for MPTCP I though of looking into this again also.
> > 
> > I had a look at this series, and am seeing that the largest part of the
> > changes is to use ->sock_prot (either IPPROTO_TCP or IPPROTO_MPTCP) in
> > getsockopt() and setsockopt() calls, which is not in Dorian's patchset.
> > 
> > Thus I'm just wondering if this is mandatory or if there's a compatibility
> > mode in the kernel so that IPPROTO_TCP also works for MPTCP sockets. Maybe
> > Matthieu knows better and could enlighten us on this ?
> 
> There is no need to change anything in the getsockopt() and setsockopt()
> calls: it is still possible to use SOL_TCP (== IPPROTO_TCP). The kernel
> will try to adapt the socket option to the MPTCP case, e.g. applying
> something on all the subflows, or just the first one, or the MPTCP
> socket, depending on the option.
> 
> There are some socket options under SOL_MPTCP (284), but there are
> "new", and specific to MPTCP, e.g. to get info about the different paths
> being used, etc.
> 
> If you replace IPPROTO_TCP in the getsockopt() and setsockopt() calls by
> IPPROTO_MPTCP (262), it means you try to look at socket options with the
> SOL_X25 level, that's not what we want here ;)

OK, thank you for the very detailed explanation!

> > Because if it's required, we definitely need to apply similar changes
> > everywhere (the code has probably evolved a little bit since 2021), and
> > if not, it could mean that only the part that performs the protocol
> > registration (that Matthieu+Dorian also handled) and the doc should
> > suffice. I think we have everything in shape now to decide what's left
> > to do in order to get the feature merged. I hope this time we won't
> > miss the deadline!
> 
> In theory, the last patch I sent should be enough.
> 
> BTW, thank you for your other reply, no issues for the delay. I will try
> to look at the modifications you requested when I can find some time :)

That works for me. We'll release by end of november, with a hard freeze
around a month earlier, so there's no rush, though it always helps to
get feedback from users, of course!

If you'd figure that you can't find the time to complete it in a reasonable
delay, do not hesitate to ping me again about it to let me know, we'll find
how to arrange this together.

Also, I think it would be kind to leave a mention about Björn's work in
your commit message, who attempted the very first implementation 3-4
years ago when haproxy's internals were probably less ready to deal with
this, causing his work to be left pending for a while.

Thanks!
Willy


Reply via email to