public enum DSCPValue extends Enum<DSCPValue>
WebRTC recommended values are taken from RFC 8837 https://datatracker.ietf.org/doc/html/rfc8837#section-5 , These are the values from AUDIO_VERYLOW to DATA_HIGH. First element in the name indicates kind of traffic that it should apply to, the second indicates relative priority. For video, a third field would indicate if the traffic is intended for high throughput or not. As indicated on RFC 8837 section 5 diagram: +=======================+==========+=====+============+============+ | Flow Type | Very Low | Low | Medium | High | +=======================+==========+=====+============+============+ | Audio | LE (1) | DF | EF (46) | EF (46) | | | | (0) | | | +-----------------------+----------+-----+------------+------------+ +-----------------------+----------+-----+------------+------------+ | Interactive Video | LE (1) | DF | AF42, AF43 | AF41, AF42 | | with or without Audio | | (0) | (36, 38) | (34, 36) | +-----------------------+----------+-----+------------+------------+ +-----------------------+----------+-----+------------+------------+ | Non-Interactive Video | LE (1) | DF | AF32, AF33 | AF31, AF32 | | with or without Audio | | (0) | (28, 30) | (26, 28) | +-----------------------+----------+-----+------------+------------+ +-----------------------+----------+-----+------------+------------+ | Data | LE (1) | DF | AF11 | AF21 | | | | (0) | | | +-----------------------+----------+-----+------------+------------+ As indicated also in RFC, non interactive video is not considered
Apart from the WebRTC recommended values, we also include all possible values are referenced in http://www.iana.org/assignments/dscp-registry/dscp-registry.xml of course some of those values are synonyms for the WebRTC recommended ones, they are included mainly for completeness
And as a last point, we include a shorthand for Chrome supported markings for low (CS0), very low (CS1), medium (CS7) and high (CS7) priorities in priority property for RTCRtpSender parameters. See https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender/setParameters
This only covers outgoing network packets from KMS, to complete the solution, DSCP must be also requested on client, unfortunately for traffic on the other direction, this must be requested to the browser or client. On browser, the client application needs to use the following API https://www.w3.org/TR/webrtc-priority/
Enum Constant and Description |
---|
AF11 |
AF12 |
AF13 |
AF21 |
AF22 |
AF23 |
AF31 |
AF32 |
AF33 |
AF41 |
AF42 |
AF43 |
AUDIO_HIGH |
AUDIO_LOW |
AUDIO_MEDIUM |
AUDIO_VERYLOW |
CHROME_HIGH |
CHROME_LOW |
CHROME_MEDIUM |
CHROME_VERYLOW |
CS0 |
CS1 |
CS2 |
CS3 |
CS4 |
CS5 |
CS6 |
CS7 |
DATA_HIGH |
DATA_LOW |
DATA_MEDIUM |
DATA_VERYLOW |
EF |
LE |
NO_DSCP |
NO_VALUE |
VIDEO_HIGH |
VIDEO_HIGH_THROUGHPUT |
VIDEO_LOW |
VIDEO_MEDIUM |
VIDEO_MEDIUM_THROUGHPUT |
VIDEO_VERYLOW |
VOICEADMIT |
Modifier and Type | Method and Description |
---|---|
static DSCPValue |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static DSCPValue[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final DSCPValue NO_DSCP
public static final DSCPValue NO_VALUE
public static final DSCPValue AUDIO_VERYLOW
public static final DSCPValue AUDIO_LOW
public static final DSCPValue AUDIO_MEDIUM
public static final DSCPValue AUDIO_HIGH
public static final DSCPValue VIDEO_VERYLOW
public static final DSCPValue VIDEO_LOW
public static final DSCPValue VIDEO_MEDIUM
public static final DSCPValue VIDEO_MEDIUM_THROUGHPUT
public static final DSCPValue VIDEO_HIGH
public static final DSCPValue VIDEO_HIGH_THROUGHPUT
public static final DSCPValue DATA_VERYLOW
public static final DSCPValue DATA_LOW
public static final DSCPValue DATA_MEDIUM
public static final DSCPValue DATA_HIGH
public static final DSCPValue CHROME_HIGH
public static final DSCPValue CHROME_MEDIUM
public static final DSCPValue CHROME_LOW
public static final DSCPValue CHROME_VERYLOW
public static final DSCPValue CS0
public static final DSCPValue CS1
public static final DSCPValue CS2
public static final DSCPValue CS3
public static final DSCPValue CS4
public static final DSCPValue CS5
public static final DSCPValue CS6
public static final DSCPValue CS7
public static final DSCPValue AF11
public static final DSCPValue AF12
public static final DSCPValue AF13
public static final DSCPValue AF21
public static final DSCPValue AF22
public static final DSCPValue AF23
public static final DSCPValue AF31
public static final DSCPValue AF32
public static final DSCPValue AF33
public static final DSCPValue AF41
public static final DSCPValue AF42
public static final DSCPValue AF43
public static final DSCPValue EF
public static final DSCPValue VOICEADMIT
public static final DSCPValue LE
public static DSCPValue[] values()
for (DSCPValue c : DSCPValue.values()) System.out.println(c);
public static DSCPValue valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullCopyright © 2022 Kurento. All rights reserved.