Re: Fwd: [PATCH v2 4/4] FEATURE: add MPTCP per address support

2024-10-15 Thread Björn Jacke

Hi Willy,

On 14.10.24 21:59, Willy Tarreau wrote:

I would also not write that "MPTCP is usually used on the
frontend". My first productive use case requires mptcp on both the frontend
and the backend side, this isn't an unusual use case at all.


Interesting. Do you have an example of use case that we could use to
better explain in the doc (users often need to recognize what they're
trying to do).


getting any long-running TCP connection in an as-stable-as-possible way 
from one location to another with network-redundancy. In my case it's a 
radio broadcast stream at a location but with 2 redundant small internet 
connections. That TCP stream is being proxied to a hoster with a high 
bandwidth connection, from where it is being delivered to listeners 
then. So haproxy on the one site will serve the audio stream with mptcp 
enabled at the frontend; and at the hoster there is a haproxy which 
pulls the audio stream with mptcp at the backend accordingly. This way 
one of the internet connections at the radio station can have 
interruptions without the TCP connection (the audio stream) experiencing 
any interruption.


I assume there a plenty of use cases similar to this, where one haproxy 
is talking with another haproxy with mptcp to eliminate network glitches.




What confuses me about that mptcp backend example is also the server address
[::], This looks more like a listening address; here should probably be
something like "some-mptcp-enabled-server.example.com" be used, right?


Hmmm possibly, I'd need to have a look. Another possibility is that it's
being used in transparent mode, but I don't like mixing multiple features
in the same example, they make things way more complicated for the reader.


yes, transparent mode in this example is really confusing :)



Last but not least, the current haproxy 3.1-dev9 changelog doesn't mention
mptcp at all, shouldn't this be mentioned here?


It appears in it, the (since) commit is listed there under 3.1-dev7:

 - MEDIUM: protocol: add MPTCP per address support


right, I didn't look at the generic 3.1 changelog, just at the -dev9 
changes, found it now at the right place!


Thank you
Björn





Re: Fwd: [PATCH v2 4/4] FEATURE: add MPTCP per address support

2024-10-14 Thread Willy Tarreau
Hi Björn,

On Mon, Oct 14, 2024 at 01:26:31PM +0200, Björn Jacke wrote:
> Hi,
> 
> On 30.08.24 19:11, Willy Tarreau wrote:
> > Ah! so if there are any bugs left, we should be aware soon ?
> 
> great to see MPTCP landing in haproxy currently! Thanks for everyone having
> worked on this.

Thanks to you as well for having started educating us about it years ago!
Even if it took a while, it made us progressively adapt the internals to
make this eventually possible.

> I've looked at the patch set finally now (I wish I had time
> to do that a bit earlier).
> 
> The syntax to add MPTCP support in the backend is not quite intuitive. From
> the manual I couldn't actually see how it can be done, I initially thought
> from just reading the manual, that the backend wouldn't support mptcp. Until
> I looked at the patchset and the examples/mptcp.cfg file, which contains
> this:
> 
> # MPTCP is usually used on the frontend, but it is also possible
> # to enable it to communicate with the backend
> backend mptcp_backend
> server mptcp_server mptcp@[::]:4331
> 
> I have to admit I never used the proto@ syntax in backend definitions,
> didn't even know it was possible here :). I think it would be good if the
> manual would explain a little lit more verbose how mptcp is being activated
> for backends.

You're absolutely right. From time to time we extend certain existing
features and don't complete the doc enough to clearly explain how to use
them, and that's bad. I think it's about time that we'd add examples for
about each supported protocol, both on "bind" lines and "server" lines.
Or maybe we should even have a section dedicated to address format, since
it's also usable on "peers", "log" etc.

> I would also not write that "MPTCP is usually used on the
> frontend". My first productive use case requires mptcp on both the frontend
> and the backend side, this isn't an unusual use case at all.

Interesting. Do you have an example of use case that we could use to
better explain in the doc (users often need to recognize what they're
trying to do).

> What confuses me about that mptcp backend example is also the server address
> [::], This looks more like a listening address; here should probably be
> something like "some-mptcp-enabled-server.example.com" be used, right?

Hmmm possibly, I'd need to have a look. Another possibility is that it's
being used in transparent mode, but I don't like mixing multiple features
in the same example, they make things way more complicated for the reader.

> Last but not least, the current haproxy 3.1-dev9 changelog doesn't mention
> mptcp at all, shouldn't this be mentioned here?

It appears in it, the (since) commit is listed there under 3.1-dev7:

- MEDIUM: protocol: add MPTCP per address support

We definitely need to do a new pass on the doc to improve it. We're
about 1.5 mo before the release, usually the last weeks are dedicated
to cleanups and doc rework, let's keep that one in mind.

Thanks for your feedback, much appreciated!
Willy




Re: Fwd: [PATCH v2 4/4] FEATURE: add MPTCP per address support

2024-10-14 Thread Björn Jacke

Hi,

On 30.08.24 19:11, Willy Tarreau wrote:

Ah! so if there are any bugs left, we should be aware soon 😉


great to see MPTCP landing in haproxy currently! Thanks for everyone 
having worked on this. I've looked at the patch set finally now (I wish 
I had time to do that a bit earlier).


The syntax to add MPTCP support in the backend is not quite intuitive. 
From the manual I couldn't actually see how it can be done, I initially 
thought from just reading the manual, that the backend wouldn't support 
mptcp. Until I looked at the patchset and the examples/mptcp.cfg file, 
which contains this:


# MPTCP is usually used on the frontend, but it is also possible
# to enable it to communicate with the backend
backend mptcp_backend
server mptcp_server mptcp@[::]:4331

I have to admit I never used the proto@ syntax in backend definitions, 
didn't even know it was possible here :). I think it would be good if 
the manual would explain a little lit more verbose how mptcp is being 
activated for backends. I would also not write that "MPTCP is usually 
used on the frontend". My first productive use case requires mptcp on 
both the frontend and the backend side, this isn't an unusual use case 
at all.


What confuses me about that mptcp backend example is also the server 
address [::], This looks more like a listening address; here should 
probably be something like "some-mptcp-enabled-server.example.com" be 
used, right?


Last but not least, the current haproxy 3.1-dev9 changelog doesn't 
mention mptcp at all, shouldn't this be mentioned here?


Björn




Re: Fwd: [PATCH v2 4/4] FEATURE: add MPTCP per address support

2024-08-30 Thread Willy Tarreau
On Fri, Aug 30, 2024 at 03:32:54PM +0200, Anthony Doeraene wrote:
> > Otherwise let me know if I can apply it as-is.
> 
> Seems good to me ! Thank you again for your reviews.

OK now pushed, thank you!

> > I'm very happy that after so long this topic has been alive, with your,
> > Matt's and Dorian's help we're finally reaching the end of the tunnel!
> 
> Thank you also for being open to these changes ! The fact that haproxy
> should support soon MPTCP could encourage even more application
> developers to use it, as it becomes easier for them to enable it on the
> server side :D. For the anecdote, we had a debate with some application
> developers that lacked support for MPTCP in haproxy just 3 days ago, that
> should help them too !

Ah! so if there are any bugs left, we should be aware soon ;-)

Have a nice week-end!
Willy