Quality of Service |
Each RSVP message consists of a common header. The fields of the common header are listed in Table 9.2.
Table 9.2 Fields of the Common Header
Field | Size | Description |
---|---|---|
Vers | 4 bits | RSVP version number (this implementation is version 1.) |
Flags | 4 bits | Reserved. As of this implementation, no flag bits have been defined. |
Message Type | 8 bits | 1 = PATH
2 = RESV 3 = PATH-ERR 4 = RESV-ERR 5 = PATH-TEAR 6 = RESV-TEAR 7 = RESV-CONF |
RSVP Checksum | 16 bits | A checksum to provide message integrity. An all-zero value means that no checksum was transmitted. |
Send TTL | 8 bits | Provides the IP Time to Live (TTL) value contained in the message. With normal IP forwarding, RSVP can detect a non-RSVP hop by comparing the IP TTL when the PATH message is sent to the TTL when it is received; for this purpose, the transmission TTL is placed in the common header. |
RSVP Length | 16 bits | The total length of the RSVP message in bytes, including the common header and the variable length objects that follow. |
Every object consists of one or more 32-bit words with a one-word header. Table 9.3 lists the fields in the object header.
Table 9.3 Object Formats
Field | Size | Description |
---|---|---|
Length | 16 bits | Contains the total object length in bytes. It must be a multiple of 4, and a minimum of 4. |
Class-Num | The object class. Implementations of RSVP must recognize certain classes. For a list of classes implementations of RSVP must recognize, see Table 9.3a. | |
C-Type | The object type. Unique within Class-Num. The Class-Num and C-Type fields can be used together as a 16-bit number to define a unique type for each object. C-Types are defined for the two Internet address families IPv4 and IPv6 (only IPv4 is shown here). All unused fields must be sent as zero and ignored on receipt. For a list of C-Type field values, see Table 9.3b. |
Table 9.3a Class-Num Fields
Field | Description |
---|---|
Null | Length must be at least 4, or any multiple of 4. Can appear anywhere within a sequence of objects; contents are ignored by the receiver. |
Session | The destination IP address, protocol ID, and destination port. Defines a specific session for the other objects that follow. Required field. |
RSVP_Hop | IP address of the RSVP-capable node that sent the message, and a logical outgoing interface handle. |
Time_Values | Refresh period. Required for PATH and RESV messages. |
Style | The reservation style, and style-specific information not already contained in the FLOWSPEC or FILTER_SPEC. Required for RESV messages. |
Flowspec | The requested QoS parameters. Part of a RESV message. |
Filter_Spec | Defines which session data packets must receive the requested QoS. Part of a RESV message. |
Sender_Template | The sender's IP address and possibly de-multiplexing information to identify the sender. Required for PATH messages. |
Sender_Tspec | The traffic characteristics of a sender's data flow. Required for PATH messages. |
Adspec | Carries OPWA data, in PATH messages. OPWA is the abbreviation for "One Pass With Advertising," and identifies a reservation setup model in which PATH messages gather information (the advertisement) that the receivers can use to estimate the end-to-end service. |
Error_Spec | The actual error in a PATH-ERR, RESV-ERR or the confirmation in a RESV-CONF message. |
Policy_Data | Carries the information that the local policy module uses to determine if the reservation is administratively permitted. In PATH, RESV, PATH-ERR, or RESV-ERR messages. This object is not fully specified at this time. |
Integrity | Contains cryptographic data that authenticates the sender node and verifies the contents of the RSVP message. |
Scope | An explicit list of sender nodes towards which the information in the message must be forwarded. In a RESV, ResvErr, or ResvTear message. |
RESV_Confirm | The IP address of the receiver node that requested confirmation. In RESV or ResvConf messages. |
Table 9.3b C-Type Fields
Object Name | C-Type | Class | Contains | Additional Information |
---|---|---|---|---|
IPv4/UDP SESSION object | 1 | 1 | IPv4 DestAddress (4 bytes), Protocol ID, Flags, DestPort |
Used in PATH messages to determine the network boundary, to control traffic policing. If the sender is not capable of policing, it sets this bit On in all PATH messages it sends, indicating to the first RSVP-capable hop to perform policing (and turn the flag off). |
IPv4 RSVP_HOP object | 1 | 3 | IPv4 Next/Previous Hop Address, Logical Interface Handle (LIH) | LIH distinguishes logical outgoing interfaces. The LIH must be zero if there is no logical interface handle. |
Time_Values | 1 | 5 | Refresh Period R | The refresh time-out period R used to generate this RSVP message, in milliseconds. |
IPv4 Error_Spec | 1 | 6 | IPv4 Error Node Address (4 bytes), Flags, Error Code, Error Value, Error Node Address | Error Node Address is the IP address of the node in which the error was detected.
Flags: 0x01 = InPlace. This flag is used only for an ERROR_SPEC object in a RESV-ERR message. If On, this flag indicates that there was, and still is, a reservation in place at the failure point. 0x02 = NotGuilty. This flag is used only for an ERROR_SPEC object in a RESV-ERRmessage, and it is only set in the interface for the receiver application. If On, this flag indicates that the FLOWSPEC that failed was strictly greater than the FLOWSPEC requested by this receiver. Error Code is a one-octet error description. Error Value is a two-octet field containing additional information about the error. Its contents depend upon the Error Type. See Table 9.12 for more information. |
Scope | 7 | This object contains a list of IP addresses used for routing messages by using a wildcard scope without loops. | The addresses must be listed in ascending numerical order. | |
IPv4 Scope_List | 1 | 7 | IPv4 Source Address (4 bytes) | |
Style | 1 | 8 | Flags (8 bits), Option Vector (24 bits) | A set of bit fields giving values for the reservation options. If new options are added in the future, corresponding fields in the option vector are assigned from the least-significant end. If a node does not recognize a style ID, it can interpret as much of the option vector as it can, ignoring new fields that might have been defined.
Flags: None yet assigned. Option Vector, assigned (from the left): 19 bits: Reserved 2 bits: Sharing control 00b: Reserved 01b: Distinct reservations 10b: Shared reservations 11b: Reserved 3 bits: Sender selection control 000b: Reserved 001b: Wildcard 010b: Explicit 011b - 111b: Reserved The low order bits of the option vector are determined by the Style: WF 10001b FF 01010b SE 10010b |
Flowspec | 1 | 9 | Reserved (obsolete), Flowspec object | |
Intserv Flowspec | 2 | 9 | The contents and encoding rules for this object are specified in documents prepared by the Intserv working group (as described in RFC 2210). | |
IPv4 Filter_Spec | 1 | 10 | IPv4 SourceAddress (4 bytes), SourcePort | |
IPv4 Sender_Template | 1 | 11 | IPv4 SourceAddress (4 bytes), SourcePort | |
Intserv Sender_Tspec | 2 | 12 | The contents and encoding rules for this object are specified in documents prepared by the Intserv working group. | |
Intserv Adspec | 2 | 13 | The contents and encoding rules for this object are specified in documents prepared by the Intserv working group. | |
Type 1 Policy_Data | 1 | 14 | The contents of this object are set aside for further study. | |
IPv4 RESV_Confirm | 1 | 15 | IPv4 Receiver Address (4bytes) |