<pre class='metadata'>
Title: WebRTC DSCP Control API
Shortname: webrtc-dscp-exp
Level: 1
Status: ED
Group: webrtc
Repository: w3c/webrtc-dscp-exp
URL: http://w3c.github.io/webrtc-dscp-exp/
Editor: Harald Alvestrand, Google https://google.com, hta@google.com
Abstract: This API defines a control surface for manipulating the network
Abstract: control bits (DSCP bits) of outgoing WebRTC packets.
Markup Shorthands: css no
</pre>
</pre>

<pre class='anchors'>
spec: WEBRTC; urlPrefix: https://w3c.github.io/webrtc-pc/
    type: interface
        for: RTCRtpEncodingParameters; text: RTCRtpEncodingParameters; url: #dom-rtcrtpencodingparameters
    type: enum
        text: RTCPriorityType; url: #dom-rtcprioritytype
    type: attribute
        for: RTCRtpEncodingParameters; text: priority; url: #dom-rtcrtpencodingparameters-priority
</pre>

Introduction {#intro}
======

The [[!WEBRTC]] spec defines a "{{priority}}" field as part of its
RTCRtpEncodingParameters structure, with the possible values "very-low",
"low", "medium" and "high".

This specification adds a field to {{RTCRtpEncodingParameters}} that allows
control over the DSCP markings without affecting local prioritization.

IDL specification {#idl}
====

<pre class='idl'>
partial dictionary RTCRtpEncodingParameters {
    RTCPriorityType networkPriority;  // Note: No default
};
</pre>

networkPriority definition {#networkPriority}
----

<dfn for='RTCRtpEncodingParameters'>networkPriority</dfn> has the same
effect as {{priority}}, except that it only affects the DSCP markings of
the generated packets, as described in [[RTCWEB-TRANSPORT]] section 4.2.

If {{networkPriority}} is unset, the DSCP markings of the generated
packets are controlled by the {{priority}} member.
