Re: [PATCH RFC 0/2] kproxy: Kernel Proxy
flat view
From: Thomas Graf <tgraf@suug.ch>
Date: 2017-06-30 00:49:41
On 29 June 2017 at 16:21, Tom Herbert [off-list ref] wrote:
I think the main part of that discussion was around stream parser which is needed for message delineation. For a 1:1 proxy, KCM is probably overkill (the whole KCM data path and lock becomes superfluous). Also, there's no concept of creating a whole message before routing it, in the 1:1 case we should let the message pass through once it's cleared by the filter (this is the strparser change I referred to). As I mentioned, for L7 load balancing we would want a multiplexor probably also M:N, but the structure is different since there's still no user facing sockets, they're all TCP for instance. IMO, the 1:1 proxy case is compelling to solve in itself...
I see. I was definitely thinking m:n. We should definitely evaluate whether it makes sense to have a specific 1:1 implementation if we need m:n anyway. For L7 LB, m:n seems obvious as a particular L4 connection may act as a transport for multiple requests bidirectional. KCM looks like a good starting point for that. When I talked about enqueueing entire messages, the main concern is to buffer up the payload after the TLS handshake to the point to where a forwarding decision can be made. I would definitely not advocate to buffer entire messages before starting to forward.