> We don't know how arbitrary FOO-over-H2 streams will compress and > have no intention of learning about it.
I don't know about other FOOs but for WebSocket for instance, AFAIK it doesn't look possible, so I doubt we could *really* pipe anything besides CONNECT tunnels and H2 streams (and only pretend we are piping the latter). > It's bad enough to pipe half the HTTP streams to one backend and > the other half to the other. Think for instance about how we would > merge the two backend->client HPACK state into one. You're not supposed to do that, HPACK is maintained as a one-way compression between two parties and cannot be shared with third-parties. So I'm afraid we can't share HPACK tables with backends, but fortunately that makes the pipe thing a non problem wrt HPACK. When the session sees HEADER frames it does the HPACK lookups/updates before it handing them to streams. > So unless somebody volunteers to write that code *and* gets it past > my review, "pipe" in 5.0 is per connection only... We need CONNECT piping to comply with the RFC, and as I said in previous comments, I believe that's the only kind of "true" pipe we can do in H2, and it's stream-based. Or we can choose to close all streams that do a pipe transition, I believe it can be done too. Dridi _______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
