- From: Willy Tarreau <w@1wt.eu>
- Date: Fri, 15 Nov 2019 21:38:15 +0100
- To: Tom Bergan <tombergan@chromium.org>
- Cc: Bence Béky <bnc@chromium.org>, Stefan Eissing <stefan.eissing@greenbytes.de>, Mike Bishop <mbishop@evequefou.be>, HTTP Working Group <ietf-http-wg@w3.org>
On Fri, Nov 15, 2019 at 11:35:13AM -0800, Tom Bergan wrote: > It's important to work through these implementation issues. If > implementations are difficult to change, then we'll probably need to take > Bence's suggestion, or something similar. Regardless of these issues, Bence's proposal sounds appealing to me for a better layering. > That said, I don't fully understand the problem here. Can you elaborate? > Assuming the implementation throws away unknown frames immediately, as > suggested by Section 5.5, only the known frames are left. At that point, it > shouldn't matter whether the bit mask describes permitted frames or > forbidden frames -- both approaches are equivalent. Oh it's very simple to understand: due to the rules restricting the frame types depending on the stream state, the frames are matched against the stream state early during the processing. In fact proceeding as you suggest would make the code simpler, it's just that it's changing the logic, and while I do see how to adapt mine for this (with limited risks of regressions when it comes to backport this to deployed maintenance branches), it's easily imaginable that and equivalent level of complexity (not high, just moderate) can affect other deployed implementations, causing some reluctance to changing existing code in field. I *am* personally willing to make the change if there is consensus on this. I even hacked a minimal patch for this after Mike's report. I'm just not assuming that everyone will do so in an eyeblink. Another option could be to refrain from sending new frame types until a setting has been advertised by the other end. I just find this a bit sad. That's exactly what the minor version in the protocol was for. We could have had HTTP/2.1 advertised over ALPN to instantly match both ends, but now we have to do without this possibility. Willy
Received on Friday, 15 November 2019 20:38:25 UTC