Format of the RSVP DCLASS Object
Extracted elements (13)
The Class-Num 225 was selected from the range of unknown RSVP object classes that must be ignored and forwarded by unrecognized nodes. This choice ensures that DCLASS objects pass through non-DCLASS-aware RSVP nodes without disruption, maximizing backward compatibility in deployments with mixed RSVP implementations.
The DCLASS object is designed as a general tool for conveying DSCP information in RSVP messages, not limited to upstream marking. A secondary use case is carrying marking decisions from a DS network egress router (where the appropriate behavior aggregate is determined) to the ingress router (where actual packet marking occurs), decoupling the decision point from the enforcement point.
It must be possible to configure two tables in the router for simple admission control: a service type to DSCP mapping table and a quantitative resource availability table mapping DSCPs to token bucket profiles.
Admission control in a diff-serv network considers both resource availability and policy. Network elements may use identity objects describing users and applications included in RSVP requests, and may act as PEP/PDP consulting a policy database or directory to make admission decisions.
For simple configurable resource-based admission control, routers should support two tables: a service-type-to-DSCP mapping table (mapping intserv service types such as Guaranteed, Controlled Load, and Best-Effort to DSCPs) and a quantitative resource availability table (mapping DSCPs to token bucket profiles representing total available resources for that service class).
The Class-Num for the DCLASS object is 225, chosen from the space of unknown class objects that should be ignored and forwarded by nodes that do not recognize it, ensuring maximal backward compatibility with non-DCLASS-aware RSVP nodes.
The DCLASS object is used to represent and carry Differentiated Services Code Points (DSCPs) within RSVP messages, enabling RSVP signaling to request QoS services in a differentiated service network. It is added to RESV messages by RSVP-aware network elements to convey upstream packet marking information.
The DCLASS object may carry multiple DSCPs to enable the host to discriminate sub-flows within a behavior aggregate. For example, for the AF PHB group, the network may return DSCPs 001010, 001100, and 001110 corresponding to increasing levels of drop precedence within Class 1. The significance of DSCP ordering is not defined by this document.
When a DS network element determines an RSVP request is admissible, it adds a DCLASS object containing one or more DSCPs corresponding to the appropriate behavior aggregate to the RESV message, which is then forwarded upstream toward the RSVP sender. If the request is not admissible, a RESV error message is sent toward the receiver with no DCLASS object required.
If the protection function and marking function have been pushed upstream to a trusted intermediate node, correct transmission of the DCLASS object must be ensured to prevent theft-of-service attacks via DSCP elevation. The existing DS network boundary protection against arbitrary DSCP marking also covers modified DCLASS objects when protection is at the boundary.
Inappropriate modification of the DCLASS object by a third party between the DS network ingress node and the upstream marker constitutes a possible denial-of-service attack, as it can reduce QoS to an unacceptably low level without completely cutting off data flow, making the attack harder to detect.
Observation of DCLASS object values in RSVP messages may reveal that different flows receive different QoS levels, that a single flow's QoS has changed (potentially signaling significant application events), or internal DS network operational details useful for theft-of-service attacks.
The DCLASS object begins with a standard 4-byte RSVP object header (Class-Num 225, C-Type 1) with a length field indicating total object size in bytes. It is followed by one or more 32-bit words, each carrying a DSCP in the six high-order bits of the least significant byte. The number of DSCPs equals (Length - 4) / 4.