Source: https://w3c.github.io/webrtc-priority/
Timestamp: 2020-07-03 20:02:04
Document Index: 324751770

Matched Legal Cases: ['§4', '§3', '§3', '§3', '§3', '§3', '§3', '§3', '§4', '§4', '§3', '§3', '§3', '§3']

Editor’s Draft, 12 February 2020
http://w3c.github.io/webrtc-priority/
public-webrtc@w3.org with subject line “[webrtc-priority] … message topic …” (archives)
This API defines a control surface for manipulating the network control bits (DSCP bits) of outgoing WebRTC packets, and the queueing priority of outgoing WebRTC packets under congestion.
If you wish to make comments regarding this document, please send them to public-webrtc@w3.org (subscribe, archives). When sending e-mail, please put the text “webrtc-priority” in the subject, preferably like this: “[webrtc-priority] …summary of comment…”. All comments are welcome.
2 Priority and QoS Model
3 Extensions for media priority
3.1 RTCPriorityType Enum
3.2 Extension to RTCRtpEncodingParameters
4 Extensions for RTCDataChannel
4.1 New RTCDataChannel attribute
4.2 New RTCDataChannelInit member
4.3 RTCDataChannel processing steps
This document defines a "priority" field as part of the WEBRTC RTCRtpEncodingParameters structure, with the possible values "very-low", "low", "medium" and "high".
This feature was originally part of the [WEBRTC] specification, but was removed in November 2019 due to lack of implementation experience. It is now part of this document.
In addition, this specification adds fields to RTCRtpEncodingParameters that allow control over the DSCP markings without affecting local prioritization, and vice versa.
2. Priority and QoS Model
Many applications have multiple media flows of the same data type and often some of the flows are more important than others. WebRTC uses the priority and Quality of Service (QoS) framework described in [RTCWEB-TRANSPORT] and [TSVWG-RTCWEB-QOS] to provide priority and DSCP marking for packets that will help provide QoS in some networking environments. The priority setting can be used to indicate the relative priority of various flows. The priority API allows the JavaScript applications to tell the browser whether a particular media flow is high, medium, low or of very low importance to the application by setting the priority property of RTCRtpEncodingParameters objects to one of the values defined below.
3. Extensions for media priority
3.1. RTCPriorityType Enum
very-low See [RTCWEB-TRANSPORT], Sections 4.1 and 4.2. Corresponds to "below normal" as defined in [RTCWEB-DATA].
low See [RTCWEB-TRANSPORT], Sections 4.1 and 4.2. Corresponds to "normal" as defined in [RTCWEB-DATA].
medium See [RTCWEB-TRANSPORT], Sections 4.1 and 4.2. Corresponds to "high" as defined in [RTCWEB-DATA].
high See [RTCWEB-TRANSPORT], Sections 4.1 and 4.2. Corresponds to "extra high" as defined in [RTCWEB-DATA].
Applications that use this API should be aware that often better overall user experience is obtained by lowering the priority of things that are not as important rather than raising the priority of the things that are.
3.2. Extension to RTCRtpEncodingParameters
RTCPriorityType networkPriority;
priority of type , of type RTCPriorityTypeRTCPriorityType, defaulting to "low"
Indicates the priority of an RTCRtpSender, which influences the bandwidth allocation among RTCRtpSender objects. It is specified in [RTCWEB-TRANSPORT], Section 4. The user agent is free to sub-allocate bandwidth between the encodings of an RTCRtpSender.
4. Extensions for RTCDataChannel
partial interface RTCDataChannel {
readonly attribute RTCPriorityType priority;
partial dictionary RTCDataChannelInit {
4.1. New RTCDataChannel attribute
priority of type , of type RTCPriorityType, readonlyRTCPriorityType, readonly
The priority attribute returns the priority for this RTCDataChannel. The priority is assigned by the user agent at channel creation time. On getting, the attribute MUST return the value of the [[DataChannelPriority]] slot.
4.2. New RTCDataChannelInit member
priority of type , of type RTCPriorityTypeRTCPriorityType, defaulting to low
Priority of this channel.
4.3. RTCDataChannel processing steps
The following steps are added to the initialization steps for DataChannel:
Let DataChannel have an internal slot [[DataChannelPriority]].
In the processing steps for initializing a DataChannel, insert the following step into processing the option argument:
Initialize channel.[[DataChannelPriority]] to option’s priority member.
For an incoming DataChannel, initialize channel.[[DataChannelPriority]] based on the integer priority value in configuration, according to the following mapping.
configuration priority value
RTCPriorityType value
0 to 128 very-low
129 to 256 low
257 to 512 medium
513 and greater high
[[DataChannelPriority]], in §4.3
"high", in §3.1
high, in §3.1
"low", in §3.1
low, in §3.1
medium, in §3.1
"medium", in §3.1
networkPriority, in §3.2
attribute for RTCDataChannel, in §4.1
dict-member for RTCDataChannelInit, in §4.2
dict-member for RTCRtpEncodingParameters, in §3.2
RTCPriorityType, in §3.1
very-low, in §3.1
"very-low", in §3.1
https://www.w3.org/TR/webrtc/#dom-rtcdatachannelReferenced in:
https://www.w3.org/TR/webrtc/#dom-rtcdatachannelinitReferenced in:
https://www.w3.org/TR/webrtc/#dom-rtcrtpencodingparametersReferenced in:
https://www.w3.org/TR/webrtc/#dom-rtcrtpsenderReferenced in:
3.2. Extension to RTCRtpEncodingParameters (2) (3)
[WEBRTC] defines the following terms:
RTCDataChannelInit
R. Jesup; S. Loreto; M. Tuexen. RTCWeb Data Channels. 14 October 2015. Active Internet-Draft. URL: https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel
[TSVWG-RTCWEB-QOS]
S. Dhesikan; et al. DSCP Packet Markings for WebRTC QoS. 22 August 2016. Internet Draft (work in progress). URL: https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos
Cullen Jennings; et al. WebRTC 1.0: Real-time Communication Between Browsers. 13 December 2019. CR. URL: https://www.w3.org/TR/webrtc/
#enumdef-rtcprioritytypeReferenced in:
3.2. Extension to RTCRtpEncodingParameters (2) (3) (4)
4. Extensions for RTCDataChannel (2)
4.1. New RTCDataChannel attribute (2)
4.2. New RTCDataChannelInit member (2)
#dom-rtcprioritytype-very-lowReferenced in:
#dom-rtcprioritytype-lowReferenced in:
#dom-rtcprioritytype-mediumReferenced in:
#dom-rtcprioritytype-highReferenced in:
#dom-rtcrtpencodingparameters-priorityReferenced in:
3.2. Extension to RTCRtpEncodingParameters (2)
#dom-rtcdatachannel-priorityReferenced in:
#dom-rtcdatachannelinit-priorityReferenced in:
#datachannelpriorityReferenced in:
4.3. RTCDataChannel processing steps (2)