Skip to content

Commit

Permalink
shorten PRIORITY_UPDATE type value
Browse files Browse the repository at this point in the history
  • Loading branch information
LPardue committed Sep 8, 2020
1 parent 357b2ae commit b007e93
Showing 1 changed file with 30 additions and 31 deletions.
61 changes: 30 additions & 31 deletions draft-ietf-httpbis-priority.md
Original file line number Diff line number Diff line change
Expand Up @@ -399,13 +399,13 @@ error of type PROTOCOL_ERROR.

## HTTP/3 PRIORITY_UPDATE Frame {#h3-update-frame}

The HTTP/3 PRIORITY_UPDATE frame (type=0x1CCB8BBF1F0700 or 0x1CCB8BBF1F0701) is
used by clients to signal the initial priority of a response, or to reprioritize
a response or push stream. It carries the identifer of the element that is being
prioritized, and the updated priority in ASCII text, using the same
representation as that of the Priority header field value. PRIORITY_UPDATE with
a frame type of 0x1CCB8BBF1F0700 is used for request streams, PRIORITY_UPDATE
with a frame time of 0x1CCB8BBF1F0701 is used for push streams.
The HTTP/3 PRIORITY_UPDATE frame (type=0xF0700 or 0xF0701) is used by clients to
signal the initial priority of a response, or to reprioritize a response or push
stream. It carries the identifer of the element that is being prioritized, and
the updated priority in ASCII text, using the same representation as that of the
Priority header field value. PRIORITY_UPDATE with a frame type of 0xF0700 is
used for request streams, PRIORITY_UPDATE with a frame time of 0xF0701 is used
for push streams.

The PRIORITY_UPDATE frame MUST be sent on the client control stream
({{!I-D.ietf-quic-http}}, Section 6.2.1). Receiving a PRIORITY_UPDATE frame on a
Expand All @@ -414,7 +414,7 @@ error of type H3_FRAME_UNEXPECTED.

~~~ drawing
HTTP/3 PRIORITY_UPDATE Frame {
Type (i) = 0x1CCB8BBF1F0700..0x1CCB8BBF1F0701,
Type (i) = 0xF0700..0xF0701,
Length (i),
Prioritized Element ID (i),
Priority Field Value (..),
Expand All @@ -430,28 +430,27 @@ Prioritized Element ID:
Priority Field Value:
: The priority update value in ASCII text, encoded using Structured Headers.

The request-stream variant of PRIORITY_UPDATE (type=0x1CCB8BBF1F0700) MUST
reference a request stream. If a server receives a PRIORITY_UPDATE
(type=0x1CCB8BBF1F0700) for a Stream ID that is not a request stream, this MUST
be treated as a connection error of type H3_ID_ERROR. PRIORITY_UPDATE
(type=0x1CCB8BBF1F0700) MAY be sent before the request stream that it references
has been created. The Stream ID MUST be within the client-initiated
bidirectional stream limit. If a server receives a PRIORITY_UPDATE
(type=0x1CCB8BBF1F0700) with a Stream ID that is beyond the stream limits, this
SHOULD be treated as a connection error of type H3_ID_ERROR.

Request-stream variant PRIORITY_UPDATEs (type=0x1CCB8BBF1F0700) received before
the request or response has started SHOULD be buffered until the stream is
opened and applied immediately after the request message has been processed.
Holding PRIORITY_UPDATEs consumes extra state on the peer, although the size of
the state is bounded by bidirectional stream limits. There is no bound on the
number of PRIORITY_UPDATEs that can be sent, so an endpoint SHOULD store only
the most recently received frame.

The push-stream variant PRIORITY_UPDATE (type=0x1CCB8BBF1F0701) MUST reference a
promised push stream. If a server receives a PRIORITY_UPDATE
(type=0x1CCB8BBF1F0701) with Push ID that is beyond the push limit or has not
been promised, this MUST be treated as a connection error of type H3_ID_ERROR.
The request-stream variant of PRIORITY_UPDATE (type=0xF0700) MUST reference a
request stream. If a server receives a PRIORITY_UPDATE (type=0xF0700) for a
Stream ID that is not a request stream, this MUST be treated as a connection
error of type H3_ID_ERROR. PRIORITY_UPDATE (type=0xF0700) MAY be sent before the
request stream that it references has been created. The Stream ID MUST be within
the client-initiated bidirectional stream limit. If a server receives a
PRIORITY_UPDATE (type=0xF0700) with a Stream ID that is beyond the stream
limits, this SHOULD be treated as a connection error of type H3_ID_ERROR.

Request-stream variant PRIORITY_UPDATEs (type=0xF0700) received before the
request or response has started SHOULD be buffered until the stream is opened
and applied immediately after the request message has been processed. Holding
PRIORITY_UPDATEs consumes extra state on the peer, although the size of the
state is bounded by bidirectional stream limits. There is no bound on the number
of PRIORITY_UPDATEs that can be sent, so an endpoint SHOULD store only the most
recently received frame.

The push-stream variant PRIORITY_UPDATE (type=0xF0701) MUST reference a promised
push stream. If a server receives a PRIORITY_UPDATE (type=0xF0701) with Push ID
that is beyond the push limit or has not been promised, this MUST be treated as
a connection error of type H3_ID_ERROR.

PRIORITY_UPDATEs of either type are only sent by a client. If a client receives
a PRIORITY_UPDATE frame, this MUST be treated as a connection error of type
Expand Down Expand Up @@ -670,7 +669,7 @@ Frame Type:
: PRIORITY_UPDATE

Code:
: 0x1CCB8BBF1F0700 and 0x1CCB8BBF1F0701
: 0xF0700 and 0xF0701

Specification:
: This document
Expand Down

0 comments on commit b007e93

Please sign in to comment.