| 1 |
|
| 2 |
|
| 3 |
|
| 4 | #ifndef __DSCP_H__
|
| 5 | #define __DSCP_H__
|
| 6 |
|
| 7 | |
| 8 | * DSCP Pools and Codepoint Space Division:
|
| 9 | *
|
| 10 | * The Differentiated Services (Diffserv) architecture defines a method for
|
| 11 | * classifying and managing network traffic using the DS field in IPv4 and IPv6
|
| 12 | * packet headers. This field can carry one of 64 distinct DSCP (Differentiated
|
| 13 | * Services Code Point) values, which are divided into three pools based on
|
| 14 | * their Least Significant Bits (LSB) patterns and intended usage. Each pool has
|
| 15 | * a specific registration procedure for assigning DSCP values:
|
| 16 | *
|
| 17 | * Pool 1 (Standards Action Pool):
|
| 18 | * - Codepoint Space: xxxxx0
|
| 19 | * This pool includes DSCP values ending in '0' (binary), allocated via
|
| 20 | * Standards Action. It is intended for globally recognized traffic classes,
|
| 21 | * ensuring interoperability across the internet. This pool encompasses
|
| 22 | * well-known DSCP values such as CS0-CS7, AFxx, EF, and VOICE-ADMIT.
|
| 23 | *
|
| 24 | * Pool 2 (Experimental/Local Use Pool):
|
| 25 | * - Codepoint Space: xxxx11
|
| 26 | * Reserved for DSCP values ending in '11' (binary), this pool is designated
|
| 27 | * for Experimental or Local Use. It allows for private or temporary traffic
|
| 28 | * marking schemes not intended for standardized global use, facilitating
|
| 29 | * testing and network-specific configurations without impacting
|
| 30 | * interoperability.
|
| 31 | *
|
| 32 | * Pool 3 (Preferential Standardization Pool):
|
| 33 | * - Codepoint Space: xxxx01
|
| 34 | * Initially reserved for experimental or local use, this pool now serves as
|
| 35 | * a secondary standardization resource should Pool 1 become exhausted. DSCP
|
| 36 | * values ending in '01' (binary) are assigned via Standards Action, with a
|
| 37 | * focus on adopting new, standardized traffic classes as the need arises.
|
| 38 | *
|
| 39 | * For pool updates see:
|
| 40 | * https://www.iana.org/assignments/dscp-registry/dscp-registry.xhtml
|
| 41 |
|
| 42 |
|
| 43 |
|
| 44 | #define DSCP_CS0 0
|
| 45 |
|
| 46 | #define DSCP_DF 0
|
| 47 | #define DSCP_CS1 8
|
| 48 | #define DSCP_CS2 16
|
| 49 | #define DSCP_CS3 24
|
| 50 | #define DSCP_CS4 32
|
| 51 | #define DSCP_CS5 40
|
| 52 | #define DSCP_CS6 48
|
| 53 | #define DSCP_CS7 56
|
| 54 | #define DSCP_AF11 10
|
| 55 | #define DSCP_AF12 12
|
| 56 | #define DSCP_AF13 14
|
| 57 | #define DSCP_AF21 18
|
| 58 | #define DSCP_AF22 20
|
| 59 | #define DSCP_AF23 22
|
| 60 | #define DSCP_AF31 26
|
| 61 | #define DSCP_AF32 28
|
| 62 | #define DSCP_AF33 30
|
| 63 | #define DSCP_AF41 34
|
| 64 | #define DSCP_AF42 36
|
| 65 | #define DSCP_AF43 38
|
| 66 | #define DSCP_EF 46
|
| 67 | #define DSCP_VOICE_ADMIT 44
|
| 68 |
|
| 69 | |
| 70 | * use
|
| 71 |
|
| 72 | #define DSCP_LE 1
|
| 73 |
|
| 74 | #define DSCP_MAX 64
|
| 75 |
|
| 76 | #endif
|