RSVP Message Structures

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)