Re: Fwd: [PATCH v2 4/4] FEATURE: add MPTCP per address support
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
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
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
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