- From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
- Date: Wed, 31 Jul 2019 21:34:17 +0300 (EEST)
- To: Lucas Pardue <lucaspardue.24.7@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
- CC: Kari Hurtta <hurtta-ietf@elmme-mailer.org>, HTTP Working Group <ietf-http-wg@w3.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Brad Lassey <lassey@chromium.org>, Kari Hurtta <khurtta@welho.com>
> Hi Kari, > > On Tue, Jul 30, 2019 at 4:52 PM Kari Hurtta <hurtta-ietf@elmme-mailer.org> > wrote: > > > Why boolean ("ENABLE") ? > > > > I suggests SETTINGS Parameter > > > > SETTINGS_PRIORITY_SCHEME > > > > > > That is: > > Suggest SETTINGS_PRIORITY_SCHEME once > > and send SETTINGS_PRIORITY_SCHEME second time > > after that when you agreed with peer. > > > > > > That makes SETTINGS_PRIORITY_SCHEME switch to > > new priority scheme (when that is defined). > > > > Boolean gives us the MVP for moving away from RFC7540 priorities. The ( what is MVP ? ) > suggestion to allow also signalling "something else" is valid and has been > mentioned by some others, thanks for sharing your thoughts. > My personal concern is that making this too complicated may result in it > not getting exercised in practice. This, to my mind, includes picking > something that is a fit for HTTP/3 too. > > How would you feel about an an alternative design that uses two settings? > I.e. one for RFC750 enablement, and another to enable a specific > prioritisation scheme. > > HTTP/3 allows only one SETTINGS frame in each direction, so using that as a > negotiation mechanism has problems. Boolean unilateral adverts work better > in that case. We might want to say that HTTP/3 has RFC7540 priorities > always default to disabled and not specify a setting in the core draft to > enable them. Then, using additional boolean settings per scheme would allow > a more common approach to priority scheme selection across H2 and H3. > > Regards > Lucas I perhaps interpret this incorrectly, but I try reword your design. So HTTP/2 you have SETTINGS paramaters • SETTINGS_PROVIDE_HTTP2_PRIORITIES (aka SETTINGS_ENABLE_HTTP2_PRIORITIES) • SETTINGS_HTTP3_PRIORITY_MASK and on HTTP/3 you have on SETTINGS paramater • SETTINGS_HTTP3_PRIORITY_MASK where SETTINGS_HTTP3_PRIORITY_MASK is enable mask (or bitmask) of HTTP/3 priority schemes which sender of SETTINGS frame support. Because SETTINGS_HTTP3_PRIORITY_MASK does not include bit for HTTP/2 tree priorites, HTTP/3 does not support them. Available HTTP/3 priority schemes is intersection (or "binary and") between sent and received SETTINGS_HTTP3_PRIORITY_MASK. Because HTTP/3 there is only one SETTINGS frame per direction, sending of SETTINGS_HTTP3_PRIORITY_MASK can not delayed until SETTINGS_HTTP3_PRIORITY_MASK received from peer is learned. Therefore SETTINGS frame can not used to indicate selected priority scheme (if there more than one priority scheme available). So I assume that HTTP/3 client indicates selected priority scheme by just using it. I my guess correct? ( If priority mask style desing is allowed to include bit for HTTP/2 tree priorites, then SETTINGS_PROVIDE_HTTP2_PRIORITIES and SETTINGS_HTTP3_PRIORITY_MASK SETTINGS parameters collapse to one SETTINGS paramater: SETTINGS_PRIORITY_MASK ) / Kari Hurtta
Received on Wednesday, 31 July 2019 18:34:53 UTC