RSVP (rsvp)
- Layer: L4 (transport)
- Header: variable length
- Notes: LDP / RSVP-TE / BFD (P2)
Reached from
| Lower layer | Selector | Value |
|---|---|---|
ipv4 | protocol | 46 (0x2e) |
ipv6 | next_header | 46 (0x2e) |
ipv6_hopopts | next_header | 46 (0x2e) |
ipv6_route | next_header | 46 (0x2e) |
ipv6_srh | next_header | 46 (0x2e) |
ipv6_frag | next_header | 46 (0x2e) |
ipv6_dstopts | next_header | 46 (0x2e) |
Fields
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
version | uint(4) | 1 | RSVP version (1). | |
flags | flags(4) | 0x0 | Flags (bit 0: refresh reduction capable, RFC 2961). | |
msg_type | enum(8) | 1 (path) | Message type (1 Path, 2 Resv, 3 PathErr, 4 ResvErr, 5 PathTear, 6 ResvTear, 7 ResvConf, 12 Bundle, 13 Ack, 15 Srefresh, 20 Hello). | |
checksum | uint(16) | Internet checksum over the header | Internet checksum of the whole message with this field zeroed (Auto). | |
send_ttl | uint(8) | 64 | IP TTL the message was sent with. | |
reserved | uint(8) | 0 | Reserved (0). | |
length | uint(16) | Length of the header in octets | Length of the whole message in octets, including the common header (Auto). | |
objects | tlv — length - 8 octets | 7 items | Objects (16-bit length including the 4-octet header, Class-Num, C-Type): SESSION, RSVP_HOP, TIME_VALUES, ERROR_SPEC, SCOPE, STYLE, FLOWSPEC, FILTER_SPEC, SENDER_TEMPLATE, SENDER_TSPEC, RESV_CONFIRM, LABEL, LABEL_REQUEST, EXPLICIT_ROUTE, RECORD_ROUTE, HELLO, MESSAGE_ID, SESSION_ATTRIBUTE. Lengths, the session name length and padding are Auto. |
flags
| Bit | Mask | Name |
|---|---|---|
| 0 | 1 | refresh_reduction_capable |
msg_type
| Value | Name |
|---|---|
| 1 (0x01) | path |
| 2 (0x02) | resv |
| 3 (0x03) | path_err |
| 4 (0x04) | resv_err |
| 5 (0x05) | path_tear |
| 6 (0x06) | resv_tear |
| 7 (0x07) | resv_conf |
| 12 (0x0c) | bundle |
| 13 (0x0d) | ack |
| 15 (0x0f) | srefresh |
| 20 (0x14) | hello |
objects
- Type 16 bits, length 16 bits.
- The length comes before the type.
- The length counts the type and length fields too.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
|---|---|---|---|
| 257 (0x0101) | session_ipv4 | destination, protocol_id, flags, destination_port | |
| 258 (0x0102) | session_ipv6 | destination, protocol_id, flags, destination_port | |
| 263 (0x0107) | session_lsp_tunnel_ipv4 | tunnel_endpoint, reserved, tunnel_id, extended_tunnel_id | |
| 264 (0x0108) | session_lsp_tunnel_ipv6 | tunnel_endpoint, reserved, tunnel_id, extended_tunnel_id | |
| 769 (0x0301) | rsvp_hop_ipv4 | address, logical_interface_handle | |
| 770 (0x0302) | rsvp_hop_ipv6 | address, logical_interface_handle | |
| 1281 (0x0501) | time_values | refresh_period | |
| 1537 (0x0601) | error_spec_ipv4 | node_address, flags, error_code, error_value | |
| 1538 (0x0602) | error_spec_ipv6 | node_address, flags, error_code, error_value | |
| 1793 (0x0701) | scope_ipv4 | addresses | |
| 2049 (0x0801) | style | flags, reserved, sharing, sender_selection | |
| 2306 (0x0902) | flowspec | version, reserved, overall_length, service_number, service_reserved, service_length, parameter_id, parameter_flags, parameter_length, token_bucket_rate, token_bucket_size, peak_data_rate, minimum_policed_unit, maximum_packet_size, parameters | |
| 2561 (0x0a01) | filter_spec_ipv4 | source_address, reserved, source_port | |
| 2567 (0x0a07) | filter_spec_lsp_tunnel_ipv4 | sender_address, reserved, lsp_id | |
| 2568 (0x0a08) | filter_spec_lsp_tunnel_ipv6 | sender_address, reserved, lsp_id | |
| 2817 (0x0b01) | sender_template_ipv4 | source_address, reserved, source_port | |
| 2823 (0x0b07) | sender_template_lsp_tunnel_ipv4 | sender_address, reserved, lsp_id | |
| 2824 (0x0b08) | sender_template_lsp_tunnel_ipv6 | sender_address, reserved, lsp_id | |
| 3074 (0x0c02) | sender_tspec | version, reserved, overall_length, service_number, service_reserved, service_length, parameter_id, parameter_flags, parameter_length, token_bucket_rate, token_bucket_size, peak_data_rate, minimum_policed_unit, maximum_packet_size, parameters | |
| 3841 (0x0f01) | resv_confirm_ipv4 | receiver_address | |
| 4097 (0x1001) | label | label | |
| 4865 (0x1301) | label_request | reserved, l3pid | |
| 5121 (0x1401) | explicit_route | subobjects | |
| 5377 (0x1501) | record_route | subobjects | |
| 5633 (0x1601) | hello_request | source_instance, destination_instance | |
| 5634 (0x1602) | hello_ack | source_instance, destination_instance | |
| 5889 (0x1701) | message_id | flags, epoch, message_id | |
| 6145 (0x1801) | message_id_ack | flags, epoch, message_id | |
| 6146 (0x1802) | message_id_nack | flags, epoch, message_id | |
| 52993 (0xcf01) | session_attribute_ra | exclude_any, include_any, include_all, setup_priority, holding_priority, flags, name_length, name, padding | |
| 52999 (0xcf07) | session_attribute | setup_priority, holding_priority, flags, name_length, name, padding |
objects › session_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
destination | ipv4 | 192.0.2.2 | ||
protocol_id | uint(8) | 17 | ||
flags | uint(8) | 0 | ||
destination_port | uint(16) |
objects › session_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
destination | ipv6 | |||
protocol_id | uint(8) | 17 | ||
flags | uint(8) | 0 | ||
destination_port | uint(16) |
objects › session_lsp_tunnel_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
tunnel_endpoint | ipv4 | 192.0.2.2 | ||
reserved | uint(16) | 0 | ||
tunnel_id | uint(16) | 1 | ||
extended_tunnel_id | ipv4 | 192.0.2.1 |
objects › session_lsp_tunnel_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
tunnel_endpoint | ipv6 | |||
reserved | uint(16) | 0 | ||
tunnel_id | uint(16) | 1 | ||
extended_tunnel_id | ipv6 |
objects › rsvp_hop_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv4 | 192.0.2.1 | ||
logical_interface_handle | uint(32) |
objects › rsvp_hop_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv6 | |||
logical_interface_handle | uint(32) |
objects › time_values
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
refresh_period | uint(32) | 30000 |
objects › error_spec_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
node_address | ipv4 | 192.0.2.2 | ||
flags | uint(8) | 0 | ||
error_code | enum(8) | 0 (confirmation) | ||
error_value | uint(16) |
objects › error_spec_ipv4 › error_code
| Value | Name |
|---|---|
| 0 (0x00) | confirmation |
| 1 (0x01) | admission_control_failure |
| 2 (0x02) | policy_control_failure |
| 3 (0x03) | no_path_information |
| 4 (0x04) | no_sender_information |
| 5 (0x05) | conflicting_reservation_style |
| 6 (0x06) | unknown_reservation_style |
| 7 (0x07) | conflicting_destination_ports |
| 8 (0x08) | conflicting_sender_ports |
| 12 (0x0c) | service_preempted |
| 13 (0x0d) | unknown_object_class |
| 14 (0x0e) | unknown_object_c_type |
| 20 (0x14) | api_error |
| 21 (0x15) | traffic_control_error |
| 22 (0x16) | traffic_control_system_error |
| 23 (0x17) | rsvp_system_error |
| 24 (0x18) | routing_problem |
| 25 (0x19) | notify |
objects › error_spec_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
node_address | ipv6 | |||
flags | uint(8) | 0 | ||
error_code | enum(8) | 0 (confirmation) | ||
error_value | uint(16) |
objects › error_spec_ipv6 › error_code
| Value | Name |
|---|---|
| 0 (0x00) | confirmation |
| 1 (0x01) | admission_control_failure |
| 2 (0x02) | policy_control_failure |
| 3 (0x03) | no_path_information |
| 4 (0x04) | no_sender_information |
| 5 (0x05) | conflicting_reservation_style |
| 6 (0x06) | unknown_reservation_style |
| 7 (0x07) | conflicting_destination_ports |
| 8 (0x08) | conflicting_sender_ports |
| 12 (0x0c) | service_preempted |
| 13 (0x0d) | unknown_object_class |
| 14 (0x0e) | unknown_object_c_type |
| 20 (0x14) | api_error |
| 21 (0x15) | traffic_control_error |
| 22 (0x16) | traffic_control_system_error |
| 23 (0x17) | rsvp_system_error |
| 24 (0x18) | routing_problem |
| 25 (0x19) | notify |
objects › scope_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
addresses | list<ipv4> — rest of the PDU |
objects › style
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 0 | ||
reserved | uint(19) | 0 | ||
sharing | enum(2) | 2 (shared) | ||
sender_selection | enum(3) | 2 (explicit) |
objects › style › sharing
| Value | Name |
|---|---|
| 1 | distinct |
| 2 | shared |
objects › style › sender_selection
| Value | Name |
|---|---|
| 1 | wildcard |
| 2 | explicit |
objects › flowspec
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
version | uint(4) | 0 | ||
reserved | uint(12) | 0 | ||
overall_length | uint(16) | 7 | ||
service_number | uint(8) | 5 | ||
service_reserved | uint(8) | 0 | ||
service_length | uint(16) | 6 | ||
parameter_id | uint(8) | 127 | ||
parameter_flags | uint(8) | 0 | ||
parameter_length | uint(16) | 5 | ||
token_bucket_rate | uint(32) | 1207182336 | ||
token_bucket_size | uint(32) | 1148846080 | ||
peak_data_rate | uint(32) | 2139095040 | ||
minimum_policed_unit | uint(32) | 0 | ||
maximum_packet_size | uint(32) | 1500 | ||
parameters | bytes — rest of the PDU |
objects › filter_spec_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
source_address | ipv4 | 192.0.2.1 | ||
reserved | uint(16) | 0 | ||
source_port | uint(16) |
objects › filter_spec_lsp_tunnel_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
sender_address | ipv4 | 192.0.2.1 | ||
reserved | uint(16) | 0 | ||
lsp_id | uint(16) | 1 |
objects › filter_spec_lsp_tunnel_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
sender_address | ipv6 | |||
reserved | uint(16) | 0 | ||
lsp_id | uint(16) | 1 |
objects › sender_template_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
source_address | ipv4 | 192.0.2.1 | ||
reserved | uint(16) | 0 | ||
source_port | uint(16) |
objects › sender_template_lsp_tunnel_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
sender_address | ipv4 | 192.0.2.1 | ||
reserved | uint(16) | 0 | ||
lsp_id | uint(16) | 1 |
objects › sender_template_lsp_tunnel_ipv6
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
sender_address | ipv6 | |||
reserved | uint(16) | 0 | ||
lsp_id | uint(16) | 1 |
objects › sender_tspec
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
version | uint(4) | 0 | ||
reserved | uint(12) | 0 | ||
overall_length | uint(16) | 7 | ||
service_number | uint(8) | 1 | ||
service_reserved | uint(8) | 0 | ||
service_length | uint(16) | 6 | ||
parameter_id | uint(8) | 127 | ||
parameter_flags | uint(8) | 0 | ||
parameter_length | uint(16) | 5 | ||
token_bucket_rate | uint(32) | 1207182336 | ||
token_bucket_size | uint(32) | 1148846080 | ||
peak_data_rate | uint(32) | 2139095040 | ||
minimum_policed_unit | uint(32) | 0 | ||
maximum_packet_size | uint(32) | 1500 | ||
parameters | bytes — rest of the PDU |
objects › resv_confirm_ipv4
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
receiver_address | ipv4 | 192.0.2.2 |
objects › label
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
label | uint(32) | 16 |
objects › label_request
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
reserved | uint(16) | 0 | ||
l3pid | uint(16) | 2048 |
objects › explicit_route
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
subobjects | tlv — rest of the PDU |
objects › explicit_route › subobjects
- Type 8 bits, length 8 bits.
- The length counts the type and length fields too.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
|---|---|---|---|
| 1 (0x01) | ipv4_prefix | address, prefix_length, reserved | |
| 129 (0x81) | ipv4_prefix_loose | address, prefix_length, reserved | |
| 2 (0x02) | ipv6_prefix | address, prefix_length, reserved | |
| 130 (0x82) | ipv6_prefix_loose | address, prefix_length, reserved | |
| 4 (0x04) | unnumbered_interface | reserved, router_id, interface_id | |
| 132 (0x84) | unnumbered_interface_loose | reserved, router_id, interface_id | |
| 32 (0x20) | as_number | as_number | |
| 160 (0xa0) | as_number_loose | as_number |
objects › explicit_route › subobjects › ipv4_prefix
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv4 | 192.0.2.2 | ||
prefix_length | uint(8) | 32 | ||
reserved | uint(8) | 0 |
objects › explicit_route › subobjects › ipv4_prefix_loose
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv4 | 192.0.2.2 | ||
prefix_length | uint(8) | 32 | ||
reserved | uint(8) | 0 |
objects › explicit_route › subobjects › ipv6_prefix
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv6 | |||
prefix_length | uint(8) | 128 | ||
reserved | uint(8) | 0 |
objects › explicit_route › subobjects › ipv6_prefix_loose
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv6 | |||
prefix_length | uint(8) | 128 | ||
reserved | uint(8) | 0 |
objects › explicit_route › subobjects › unnumbered_interface
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
reserved | uint(16) | 0 | ||
router_id | ipv4 | 192.0.2.2 | ||
interface_id | uint(32) |
objects › explicit_route › subobjects › unnumbered_interface_loose
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
reserved | uint(16) | 0 | ||
router_id | ipv4 | 192.0.2.2 | ||
interface_id | uint(32) |
objects › explicit_route › subobjects › as_number
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
as_number | uint(16) |
objects › explicit_route › subobjects › as_number_loose
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
as_number | uint(16) |
objects › record_route
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
subobjects | tlv — rest of the PDU |
objects › record_route › subobjects
- Type 8 bits, length 8 bits.
- The length counts the type and length fields too.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
|---|---|---|---|
| 1 (0x01) | ipv4_address | address, prefix_length, flags | |
| 2 (0x02) | ipv6_address | address, prefix_length, flags | |
| 3 (0x03) | label | flags, c_type, label | |
| 4 (0x04) | unnumbered_interface | flags, reserved, router_id, interface_id |
objects › record_route › subobjects › ipv4_address
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv4 | 192.0.2.1 | ||
prefix_length | uint(8) | 32 | ||
flags | uint(8) | 0 |
objects › record_route › subobjects › ipv6_address
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
address | ipv6 | |||
prefix_length | uint(8) | 128 | ||
flags | uint(8) | 0 |
objects › record_route › subobjects › label
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 1 | ||
c_type | uint(8) | 1 | ||
label | uint(32) |
objects › record_route › subobjects › unnumbered_interface
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 0 | ||
reserved | uint(8) | 0 | ||
router_id | ipv4 | 192.0.2.1 | ||
interface_id | uint(32) |
objects › hello_request
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
source_instance | uint(32) | |||
destination_instance | uint(32) |
objects › hello_ack
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
source_instance | uint(32) | |||
destination_instance | uint(32) |
objects › message_id
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 0 | ||
epoch | uint(24) | |||
message_id | uint(32) |
objects › message_id_ack
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 0 | ||
epoch | uint(24) | |||
message_id | uint(32) |
objects › message_id_nack
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
flags | uint(8) | 0 | ||
epoch | uint(24) | |||
message_id | uint(32) |
objects › session_attribute_ra
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
exclude_any | uint(32) | |||
include_any | uint(32) | |||
include_all | uint(32) | |||
setup_priority | uint(8) | 7 | ||
holding_priority | uint(8) | 7 | ||
flags | flags(8) | 0x4 | ||
name_length | uint(8) | Size of name in octets | ||
name | bytes — name_length octets | 74 75 6e 6e 65 6c 31 | ||
padding | padding(4) |
objects › session_attribute_ra › flags
| Bit | Mask | Name |
|---|---|---|
| 0 | 1 (0x01) | local_protection_desired |
| 1 | 2 (0x02) | label_recording_desired |
| 2 | 4 (0x04) | se_style_desired |
| 3 | 8 (0x08) | bandwidth_protection_desired |
| 4 | 16 (0x10) | node_protection_desired |
objects › session_attribute
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
setup_priority | uint(8) | 7 | ||
holding_priority | uint(8) | 7 | ||
flags | flags(8) | 0x4 | ||
name_length | uint(8) | Size of name in octets | ||
name | bytes — name_length octets | 74 75 6e 6e 65 6c 31 | ||
padding | padding(4) |
objects › session_attribute › flags
| Bit | Mask | Name |
|---|---|---|
| 0 | 1 (0x01) | local_protection_desired |
| 1 | 2 (0x02) | label_recording_desired |
| 2 | 4 (0x04) | se_style_desired |
| 3 | 8 (0x08) | bandwidth_protection_desired |
| 4 | 16 (0x10) | node_protection_desired |
Constraints
| Level | Rule |
|---|---|
| warning | version = 1 |
| error | header at least 8 octets |
Sample templates
- rsvp-hello —
templates/protocols/mpls/rsvp-hello.wpg.yaml - rsvp-path-err —
templates/protocols/mpls/rsvp-path-err.wpg.yaml - rsvp-path-tear —
templates/protocols/mpls/rsvp-path-tear.wpg.yaml - rsvp-te-path —
templates/protocols/mpls/rsvp-te-path.wpg.yaml - rsvp-te-resv —
templates/protocols/mpls/rsvp-te-resv.wpg.yaml