target = "https://www.rfc-editor.org/rfc/rfc9000#section-19.7" # 19.7. NEW_TOKEN Frames # # A server sends a NEW_TOKEN frame (type=0x07) to provide the client # with a token to send in the header of an Initial packet for a future # connection. # # NEW_TOKEN frames are formatted as shown in Figure 31. # # NEW_TOKEN Frame { # Type (i) = 0x07, # Token Length (i), # Token (..), # } # # Figure 31: NEW_TOKEN Frame Format # # NEW_TOKEN frames contain the following fields: # # Token Length: A variable-length integer specifying the length of the # token in bytes. # # Token: An opaque blob that the client can use with a future Initial # packet. The token MUST NOT be empty. A client MUST treat receipt # of a NEW_TOKEN frame with an empty Token field as a connection # error of type FRAME_ENCODING_ERROR. # # A client might receive multiple NEW_TOKEN frames that contain the # same token value if packets containing the frame are incorrectly # determined to be lost. Clients are responsible for discarding # duplicate values, which might be used to link connection attempts; # see Section 8.1.3. # # Clients MUST NOT send NEW_TOKEN frames. A server MUST treat receipt # of a NEW_TOKEN frame as a connection error of type # PROTOCOL_VIOLATION. [[spec]] level = "MUST" quote = ''' The token MUST NOT be empty. ''' [[spec]] level = "MUST" quote = ''' A client MUST treat receipt of a NEW_TOKEN frame with an empty Token field as a connection error of type FRAME_ENCODING_ERROR. ''' [[spec]] level = "MUST" quote = ''' Clients MUST NOT send NEW_TOKEN frames. ''' [[spec]] level = "MUST" quote = ''' A server MUST treat receipt of a NEW_TOKEN frame as a connection error of type PROTOCOL_VIOLATION. '''