Sorry for the delayed response, I think Lucas’s statement is fair here – so if we can agree on t hat – I’d be ok with clearing my discuss on this one
Thanks Andrew From: Lucas Pardue <[email protected]> Sent: Friday, July 1, 2022 3:58 AM To: Martin Thomson <[email protected]> Cc: Andrew Alston - IETF <[email protected]>; The IESG <[email protected]>; [email protected]; WG Chairs <[email protected]>; QUIC WG <[email protected]> Subject: Re: Andrew Alston's Discuss on draft-ietf-quic-bit-grease-04: (with DISCUSS) Hey Martin, all, I think you're correct in pointing out that the term unpredictable is a term of art within the context of QUIC that this draft operates. However, I find also in RFC 9000 that supporting text for various unpredictable elements usually provides a justification or some guidance. Arguably, the justification _is_ the entire document, but in the context of other grease-like mechanisms in the IETF, it seems a single bit might need a more holistic approach beyond just the value itself. The closest parallel, for me, is the spin bit text that goes so far as saying > [if your TPs let you randomize] It is RECOMMENDED that endpoints set the spin bit to a random value either chosen independently for each packet or chosen independently for each connection ID. Stating explicitly that the unpredictability can be per connection or per packet might be all that's need to make the intent crystal clear, while leaving the actual decisions to implementations. Cheers Lucas On Fri, Jul 1, 2022 at 12:45 AM Martin Thomson <[email protected]<mailto:[email protected]>> wrote: I'm surprised at this question. We used the word "unpredictable" in RFC 9000 a few times, with exactly this meaning and had no issue. See for example: > When an Initial packet is sent by a client that has not previously received > an Initial or Retry packet from the server, the client populates the > Destination Connection ID field with an unpredictable value. Or > To initiate path validation, an endpoint sends a PATH_CHALLENGE frame > containing an unpredictable payload on the path to be validated. Or Stateless Reset { Fixed Bits (2) = 1, Unpredictable Bits (38..), Stateless Reset Token (128), } As you say, a bit can assume one of two values, 0 or 1. Setting a bit to a predictable value would mean choosing 0 or 1 in a way that someone might be able to guess the next value. Always 1, always 0, or alternating 0 and 1 are examples of predictable methods of selecting a value. Setting a bit to an unpredictable value would mean setting it to either 0 or 1 such that someone else is unlikely to correctly guess the next value. A random draw is unpredictable, but there are other methods that would also be unpredictable. On Thu, Jun 30, 2022, at 22:52, Andrew Alston via Datatracker wrote: > Andrew Alston has entered the following ballot position for > draft-ietf-quic-bit-grease-04: Discuss > > When responding, please keep the subject line intact and reply to all > email addresses included in the To and CC lines. (Feel free to cut this > introductory paragraph, however.) > > > Please refer to > https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/<https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions> > for more information about how to handle DISCUSS and COMMENT positions. > > > The document, along with other ballot positions, can be found here: > https://datatracker.ietf.org/doc/draft-ietf-quic-bit-grease/<https://datatracker.ietf.org/doc/draft-ietf-quic-bit-grease> > > > > ---------------------------------------------------------------------- > DISCUSS: > ---------------------------------------------------------------------- > > Thanks for the work on this document, > > Hopefully this discuss will be relatively easy to resolve - and may result > from > a lack of understanding - but - > > Endpoints that receive the grease_quic_bit transport parameter from a > peer SHOULD set the QUIC Bit to an unpredictable value unless another > extension assigns specific meaning to the value of the bit. > > Now, this is in reference to a bit - which can only be 0 or 1 - and the > document further goes on to clarify certain situations where this bit should > be > set or unset - so I am not at all sure what this paragraph really means and > hoping this can be clarified because I'm not sure how this will be interpreted > on implementation.
