Code change:
The PRIORITY frame (type=0x2) specifies the StreamPriority.  It can be sent at any time for an existing stream.  This enables <del> reprioritisation of existing streams. </del> <ins> reprioritization of existing streams. </ins> The payload of a PRIORITY frame contains the following fields: <del> A single reserved bit.  This field is optional and is only present if the PRIORITY_GROUP flag is set. A 31-bit identifier for a priority group, see StreamPriority. This field is optional and is only present if the PRIORITY_GROUP flag is set. An 8-bit weight for the identified priority group, see StreamPriority.  Add one to the value to obtain a weight between 1 and 256.  This field is optional and is only present if the PRIORITY_GROUP flag is set. </del> A single bit flag indicates that the stream dependency is <del> exclusive, see StreamPriority.  This field is optional and is only present if the PRIORITY_DEPENDENCY flag is set. </del> <ins> exclusive, see StreamPriority. </ins> A 31-bit stream identifier for the stream that this stream depends <del> on, see StreamPriority.  This field is optional and is only present if the PRIORITY_DEPENDENCY flag is set. The PRIORITY frame defines the following flags: </del> <ins> on, see StreamPriority. </ins> <del> A PRIORITY frame MUST have exactly one of the PRIORITY_GROUP and PRIORITY_DEPENDENCY flags set.  Receipt of a PRIORITY frame with either none or both these flags set MUST be treated as a StreamErrorHandler of type </del> <ins> An 8-bit weight for the identified stream dependency, see StreamPriority.  Add one to the value to obtain a weight between 1 and 256. </ins> <del> . </del> <ins> The PRIORITY frame does not define any flags. </ins> The PRIORITY frame is associated with an existing stream.  If a PRIORITY frame is received with a stream identifier of 0x0, the

Related discussion:
text: The priority groups are abandoned in favor of a single weighted dependency tree. The root node of the tree is the connection, assigned the stream identifier 0x0. By default, streams are assigned a stream dependency of 0x0 with a weight of 16.
Just read through it, I think it looks good. I'd like to understand how weight of the stream is calculated and changed. Here is my understanding: The effective weight of each stream is determined by traversing tree node, taking into account of distribution of weight of parent stream among siblings. This effective weight is temporal on the tree and initial weight is unchanged for a stream, so when reprioritizing that stream, its weight is initial one. For example, suppose we have the following dependency tree: X<--(w)--Y means that Y depends on X with weight w (and w is initial weight). Calculated effective weight is like this: If parent stream is closed, then its initial weight is distributed to among the child streams and this updates initial weight of child stream. So, after A was closed, the initial weight of streams becomes like this:
NAME thanks for this. I'll have to read through this more carefully before I comment. NAME that seems right. Note that this means that a server might want to maintain more precision on it's weight values than the 8 bits we mandate in the protocol. That said, if there are deep dependency trees and you are killing off nodes that are high up, at some point you will need to round off, so I think that how much precision is allocated is largely a discretionary thing.
Looks good. , Martin Thomson EMAIL:
It seems that we can make a stream to depend on stream 0x0 exclusively, which makes all existing connections its descendant. This is not possible in the current draft version. I wonder this can be directly proxy-able since stream 0x0 is imaginable stream.
Yea, the idea is that '0' is a reserved stream ID, and so it is safe to use it as a flag for saying that (effectively) any stream with '0' as a parent has no parent. , Tatsuhiro Tsujikawa wrote:
Well, then we should explicitly say that receiver must treat exclusive bit as 0 if stream ID field is 0.