draft-ietf-mpls-rsvp-lsp-tunnel-04.txt   draft-ietf-mpls-rsvp-lsp-tunnel-05.txt 
MPLS Working Group Daniel O. Awduche
Network Working Group Daniel O. Awduche
Internet Draft UUNET (MCI Worldcom), Inc. Internet Draft UUNET (MCI Worldcom), Inc.
Expiration Date: March 2000 Expiration Date: August 2000
Lou Berger Lou Berger
LabN Consulting LabN Consulting, LLC
Der-Hwa Gan Der-Hwa Gan
Juniper Networks, Inc. Juniper Networks, Inc.
Tony Li Tony Li
Procket Networks, Inc. Procket Networks, Inc.
George Swallow George Swallow
Cisco Systems, Inc. Cisco Systems, Inc.
Vijay Srinivasan Vijay Srinivasan
Torrent Networks, Inc. Torrent Networks, Inc.
September 1999 February 2000
Extensions to RSVP for LSP Tunnels RSVP-TE: Extensions to RSVP for LSP Tunnels
draft-ietf-mpls-rsvp-lsp-tunnel-04.txt draft-ietf-mpls-rsvp-lsp-tunnel-05.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are working all provisions of Section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at To view the current status of any Internet-Draft, please check the
http://www.ietf.org/ietf/1id-abstracts.txt "1id-abstracts.txt" listing contained in an Internet-Drafts Shadow
Directory, see http://www.ietf.org/shadow.html.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract Abstract
This document describes the use of RSVP, including all the necessary This document describes the use of RSVP, including all the necessary
extensions, to establish label-switched paths (LSPs) in MPLS. Since extensions, to establish label-switched paths (LSPs) in MPLS. Since
the flow along an LSP is completely identified by the label applied the flow along an LSP is completely identified by the label applied
at the ingress node of the path, these paths may be treated as at the ingress node of the path, these paths may be treated as
tunnels. A key application of LSP tunnels is traffic engineering tunnels. A key application of LSP tunnels is traffic engineering
with MPLS as specified in [3]. with MPLS as specified in [3].
We propose several additional objects that extend RSVP, allowing the We propose several additional objects that extend RSVP, allowing the
establishment of explicitly routed label switched paths using RSVP as establishment of explicitly routed label switched paths using RSVP as
a signaling protocol. The result is the instantiation of label- a signaling protocol. The result is the instantiation of label-
switched tunnels which can be automatically routed away from network switched tunnels which can be automatically routed away from network
failures, congestion, and bottlenecks. failures, congestion, and bottlenecks.
Contents Contents
1 Introduction and Background ............................ 5 1 Introduction .......................................... 5
1.1 Introduction ........................................... 5 1.1 Background ............................................. 6
1.2 Background ............................................. 6 1.2 Terminology ............................................ 7
2 Overview .............................................. 7 2 Overview .............................................. 8
2.1 LSP Tunnels ............................................ 7 2.1 LSP Tunnels ............................................ 8
2.2 Operation of LSP Tunnels ............................... 8 2.2 Operation of LSP Tunnels ............................... 9
2.3 Service Classes ........................................ 10 2.3 Service Classes ........................................ 11
2.4 Reservation Styles ..................................... 10 2.4 Reservation Styles ..................................... 11
2.4.1 Fixed Filter (FF) Style ................................ 10 2.4.1 Fixed Filter (FF) Style ................................ 11
2.4.2 Wildcard Filter (WF) Style ............................. 10 2.4.2 Wildcard Filter (WF) Style ............................. 12
2.4.3 Shared Explicit (SE) Style ............................. 11 2.4.3 Shared Explicit (SE) Style ............................. 12
2.5 Rerouting LSP Tunnels .................................. 12 2.5 Rerouting LSP Tunnels .................................. 13
3 LSP Tunnel related Message Formats ..................... 13 3 LSP Tunnel related Message Formats ..................... 14
3.1 Path Message ........................................... 14 3.1 Path Message ........................................... 15
3.2 Resv Message ........................................... 14 3.2 Resv Message ........................................... 15
4 LSP Tunnel related Objects ............................. 15 4 LSP Tunnel related Objects ............................. 16
4.1 Label Object ........................................... 15 4.1 Label Object ........................................... 16
4.1.1 Handling Label Objects in Resv messages ................ 16 4.1.1 Handling Label Objects in Resv messages ................ 17
4.1.2 Non-support of the Label Object ........................ 16 4.1.2 Non-support of the Label Object ........................ 17
4.2 Label Request Object ................................... 17 4.2 Label Request Object ................................... 18
4.2.1 Handling of LABEL_REQUEST .............................. 20 4.2.1 Handling of LABEL_REQUEST .............................. 21
4.2.2 Non-support of the Label Request Object ................ 21 4.2.2 Non-support of the Label Request Object ................ 21
4.3 Explicit Route Object .................................. 21 4.3 Explicit Route Object .................................. 22
4.3.1 Applicability .......................................... 22 4.3.1 Applicability .......................................... 22
4.3.2 Semantics of the Explicit Route Object ................. 22 4.3.2 Semantics of the Explicit Route Object ................. 23
4.3.3 Subobjects ............................................. 23 4.3.3 Subobjects ............................................. 24
4.3.4 Processing of the Explicit Route Object ................ 27 4.3.4 Processing of the Explicit Route Object ................ 27
4.3.5 Loops .................................................. 29 4.3.5 Loops .................................................. 29
4.3.6 Non-support of the Explicit Route Object ............... 29 4.3.6 Non-support of the Explicit Route Object ............... 29
4.4 Record Route Object .................................... 29 4.4 Record Route Object .................................... 30
4.4.1 Subobjects ............................................. 30 4.4.1 Subobjects ............................................. 30
4.4.2 Applicability .......................................... 33 4.4.2 Applicability .......................................... 33
4.4.3 Handling RRO ........................................... 33 4.4.3 Handling RRO ........................................... 33
4.4.4 Loop Detection ......................................... 34 4.4.4 Loop Detection ......................................... 35
4.4.5 Non-support of RRO ..................................... 35 4.4.5 Non-support of RRO ..................................... 35
4.5 Error Codes for ERO and RRO ............................ 35 4.5 Error Codes for ERO and RRO ............................ 36
4.6 Session, Sender Template, and Filter Spec Objects ...... 36 4.6 Session, Sender Template, and Filter Spec Objects ...... 37
4.6.1 Session Object ......................................... 37 4.6.1 Session Object ......................................... 37
4.6.2 Sender Template Object ................................. 37 4.6.2 Sender Template Object ................................. 39
4.6.3 Filter Specification Object ............................ 38 4.6.3 Filter Specification Object ............................ 40
4.6.4 Reroute Procedure ...................................... 38 4.6.4 Reroute Procedure ...................................... 40
4.7 Session Attribute Object ............................... 39 4.7 Session Attribute Object ............................... 41
4.8 Tspec and Flowspec Object for Class-of-Service Service ....42 4.8 Tspec and Flowspec Object for Class-of-Service Service... 44
5 Hello Extension ........................................ 43 5 Hello Extension ........................................ 46
5.1 Hello Message Format ................................... 44 5.1 Hello Message Format ................................... 47
5.2 HELLO Object ........................................... 45 5.2 HELLO Object ........................................... 47
5.3 Hello Message Usage .................................... 46 5.3 Hello Message Usage .................................... 48
5.4 Multi-Link Considerations .............................. 47 5.4 Multi-Link Considerations .............................. 49
5.5 Compatibility .......................................... 47 5.5 Compatibility .......................................... 50
6 Security Considerations ................................ 47 6 Security Considerations ................................ 50
7 Intellectual Property Considerations ................... 48 7 IANA Considerations .................................... 50
8 Acknowledgments ........................................ 48 8 Intellectual Property Considerations ................... 51
9 References ............................................. 48 9 Acknowledgments ........................................ 51
10 Authors' Addresses ..................................... 49 10 References ............................................. 51
11 Authors' Addresses ..................................... 52
1. Introduction and Background
1.1. Introduction 1. Introduction
Section 2.9 of the MPLS architecture [2] defines a label distribution Section 2.9 of the MPLS architecture [2] defines a label distribution
protocol as a set of procedures by which one Label Switched Router protocol as a set of procedures by which one Label Switched Router
(LSR) informs another of the meaning of labels used to forward (LSR) informs another of the meaning of labels used to forward
traffic between and through them. The MPLS architecture does not traffic between and through them. The MPLS architecture does not
assume a single label distribution protocol. This document is a assume a single label distribution protocol. This document is a
specification of extensions to RSVP for establishing label switched specification of extensions to RSVP for establishing label switched
paths (LSPs) in Multi-protocol Label Switching (MPLS) networks. paths (LSPs) in Multi-protocol Label Switching (MPLS) networks.
Several of the new features described in this document were motivated Several of the new features described in this document were motivated
by the requirements for traffic engineering over MPLS (see [3]). In by the requirements for traffic engineering over MPLS (see [3]). In
particular, the extended RSVP protocol supports the instantiation of particular, the extended RSVP protocol supports the instantiation of
explicitly routed LSPs, with or without resource reservations. It explicitly routed LSPs, with or without resource reservations. It
also supports smooth rerouting of LSPs, preemption, and loop also supports smooth rerouting of LSPs, preemption, and loop
detection. detection.
The LSPs created with RSVP can be used to carry the "Traffic Trunks"
described in [3]. The LSP which carries a traffic trunk and a
traffic trunk are distinct though closely related concepts. For
example, two LSPs between the same source and destination could be
load shared to carry a single traffic trunk. Conversely several
traffic trunks could be carried in the same LSP if, for instance, the
LSP were capable of carrying several service classes. The
applicability of these extensions is discussed further in [10].
Since the traffic that flows along a label-switched path is defined Since the traffic that flows along a label-switched path is defined
by the label applied at the ingress node of the LSP, these paths can by the label applied at the ingress node of the LSP, these paths can
be treated as tunnels. When an LSP is used in this way we refer to be treated as tunnels, tunneling below normal IP routing and
it as an LSP tunnel. filtering mechanisms. When an LSP is used in this way we refer to it
as an LSP tunnel.
LSP tunnels allow the implementation of a variety of policies related LSP tunnels allow the implementation of a variety of policies related
to network performance optimization. For example, LSP tunnels can be to network performance optimization. For example, LSP tunnels can be
automatically or manually routed away from network failures, automatically or manually routed away from network failures,
congestion, and bottlenecks. Furthermore, multiple parallel LSP congestion, and bottlenecks. Furthermore, multiple parallel LSP
tunnels can be established between two nodes, and traffic between the tunnels can be established between two nodes, and traffic between the
two nodes can be mapped onto the LSP tunnels according to local two nodes can be mapped onto the LSP tunnels according to local
policy. Although traffic engineering (that is, performance policy. Although traffic engineering (that is, performance
optimization of operational networks) is expected to be an important optimization of operational networks) is expected to be an important
application of this specification, the extended RSVP protocol can be application of this specification, the extended RSVP protocol can be
skipping to change at page 6, line 9 skipping to change at page 6, line 16
via a new HELLO message. via a new HELLO message.
All objects and messages described in this specification are optional All objects and messages described in this specification are optional
with respect to RSVP. This document discusses what happens when an with respect to RSVP. This document discusses what happens when an
object described here is not supported by a node. object described here is not supported by a node.
Throughout this document, the discussion will be restricted to Throughout this document, the discussion will be restricted to
unicast label switched paths. Multicast LSPs are left for further unicast label switched paths. Multicast LSPs are left for further
study. study.
1.2. Background 1.1. Background
Hosts and routers that support both RSVP [1] and Multi-Protocol Label Hosts and routers that support both RSVP [1] and Multi-Protocol Label
Switching [2] can associate labels with RSVP flows. When MPLS and Switching [2] can associate labels with RSVP flows. When MPLS and
RSVP are combined, the definition of a flow can be made more RSVP are combined, the definition of a flow can be made more
flexible. Once a label switched path (LSP) is established, the flexible. Once a label switched path (LSP) is established, the
traffic through the path is defined by the label applied at the traffic through the path is defined by the label applied at the
ingress node of the LSP. The mapping of label to traffic can be ingress node of the LSP. The mapping of label to traffic can be
accomplished using a number of different criteria. The set of accomplished using a number of different criteria. The set of
packets that are assigned the same label value by a specific node are packets that are assigned the same label value by a specific node are
said to belong to the same forwarding equivalence class (FEC) (see said to belong to the same forwarding equivalence class (FEC) (see
skipping to change at page 7, line 4 skipping to change at page 7, line 11
switched RSVP-MPLS flows can be pre-determined, independent of switched RSVP-MPLS flows can be pre-determined, independent of
conventional IP routing. The explicitly routed path can be conventional IP routing. The explicitly routed path can be
administratively specified, or automatically computed by a suitable administratively specified, or automatically computed by a suitable
entity based on QoS and policy requirements, taking into entity based on QoS and policy requirements, taking into
consideration the prevailing network state. In general, path consideration the prevailing network state. In general, path
computation can be control-driven or data-driven. The mechanisms, computation can be control-driven or data-driven. The mechanisms,
processes, and algorithms used to compute explicitly routed paths are processes, and algorithms used to compute explicitly routed paths are
beyond the scope of this specification. beyond the scope of this specification.
One useful application of explicit routing is traffic engineering. One useful application of explicit routing is traffic engineering.
Using explicitly routed LSPs, a node at the ingress edge of an MPLS Using explicitly routed LSPs, a node at the ingress edge of an MPLS
domain can control the path through which traffic traverses from domain can control the path through which traffic traverses from
itself, through the MPLS network, to an egress node. Explicit itself, through the MPLS network, to an egress node. Explicit
routing can be used to optimize the utilization of network resources routing can be used to optimize the utilization of network resources
and enhance traffic oriented performance characteristics. and enhance traffic oriented performance characteristics.
The concept of explicitly routed label switched paths can be The concept of explicitly routed label switched paths can be
generalized through the notion of abstract nodes. An abstract node is generalized through the notion of abstract nodes. An abstract node is
a group of nodes whose internal topology is opaque to the ingress a group of nodes whose internal topology is opaque to the ingress
node of the LSP. An abstract node is said to be trivial if it is a node of the LSP. An abstract node is said to be simple if it contains
singleton, that is if it contains only one physical node. Using this only one physical node. Using this concept of abstraction, an
concept of abstraction, an explicitly routed LSP can be specified as explicitly routed LSP can be specified as a sequence of IP prefixes
a sequence of IP prefixes or a sequence of Autonomous Systems. or a sequence of Autonomous Systems.
The signaling protocol model supports the specification of an The signaling protocol model supports the specification of an
explicit path as a sequence of strict and loose routes. The explicit path as a sequence of strict and loose routes. The
combination of abstract nodes, and strict and loose routes combination of abstract nodes, and strict and loose routes
significantly enhances the flexibility of path definitions. significantly enhances the flexibility of path definitions.
An advantage of using RSVP to establish LSP tunnels is that it An advantage of using RSVP to establish LSP tunnels is that it
enables the allocation of resources along the path. For example, enables the allocation of resources along the path. For example,
bandwidth can be allocated to an LSP tunnel using standard RSVP bandwidth can be allocated to an LSP tunnel using standard RSVP
reservations and Integrated Services service classes [4]. reservations and Integrated Services service classes [4].
While resource reservations are useful, they are not mandatory. While resource reservations are useful, they are not mandatory.
Indeed, an LSP can be instantiated without any resource reservations Indeed, an LSP can be instantiated without any resource reservations
whatsoever. Such LSPs without resource reservations can be used, for whatsoever. Such LSPs without resource reservations can be used, for
example, to carry best effort traffic. They can also be used in many example, to carry best effort traffic. They can also be used in many
other contexts, including implementation of fall-back and recovery other contexts, including implementation of fall-back and recovery
policies under fault conditions, and so forth. policies under fault conditions, and so forth.
1.2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC2119 [6].
The reader is assumed to be familiar with the terminology in [1], [2]
and [3].
Abstract Node
A group of nodes whose internal topology is opaque to the
ingress node of the LSP. An abstract node is said to be simple
if it contains only one physical node.
Explicitly Routed LSP
An LSP whose path is established by a means other than normal
IP routing.
Label Switched Path
The path created by the concatenation of one or more label
switched hops, allowing a packet to be forwarded by swapping
labels from an MPLS node to another MPLS node. For a more
precise definition see [2].
LSP
A Label Switched Path
LSP Tunnel
An LSP which is used to tunnel below normal IP routing and/or
filtering mechanisms.
Traffic Trunk
An set of flows aggregated by their service class and then
placed on an LSP or set of LSPs. For further discussion see
[3].
2. Overview 2. Overview
2.1. LSP Tunnels 2.1. LSP Tunnels
According to [1], "RSVP defines a 'session' to be a data flow with a According to [1], "RSVP defines a 'session' to be a data flow with a
particular destination and transport-layer protocol." However, when particular destination and transport-layer protocol." However, when
RSVP and MPLS are combined, a flow or session can be defined with RSVP and MPLS are combined, a flow or session can be defined with
greater flexibility and generality. The ingress node of an LSP can greater flexibility and generality. The ingress node of an LSP can
use a variety of means to determine which packets are assigned a use a variety of means to determine which packets are assigned a
particular label. Once a label is assigned to a set of packets, the particular label. Once a label is assigned to a set of packets, the
label effectively defines the "flow" through the LSP. We refer to label effectively defines the "flow" through the LSP. We refer to
such an LSP as an "LSP tunnel" because the traffic through it is such an LSP as an "LSP tunnel" because the traffic through it is
opaque to intermediate nodes along the label switched path. opaque to intermediate nodes along the label switched path.
A new RSVP SESSION object, called LSP_TUNNEL_IPv4, has been defined New RSVP SESSION objects, called LSP_TUNNEL_IPv4 and LSP_TUNNEL_IPv6
to support the LSP tunnel feature. The semantics of this object, have been defined to support the LSP tunnel feature. The semantics
from the perspective of a node along the label switched path, is that of these objects, from the perspective of a node along the label
traffic belonging to the LSP tunnel is identified solely on the basis switched path, is that traffic belonging to the LSP tunnel is
of packets arriving from the PHOP or "previous hop" (see [1]) with identified solely on the basis of packets arriving from the PHOP or
the particular label value(s) assigned by this node to upstream "previous hop" (see [1]) with the particular label value(s) assigned
senders to the session. In fact, the IPv4 that appears in the object by this node to upstream senders to the session. In fact, the
name only denotes that the destination address is an IPv4 address. IPv4(v6) that appears in the object name only denotes that the
destination address is an IPv4(v6) address. When we refer to these
objects generically, we use the term LSP_TUNNEL Session.
2.2. Operation of LSP Tunnels 2.2. Operation of LSP Tunnels
This section summarizes some of the features supported by RSVP as This section summarizes some of the features supported by RSVP as
extended by this document related to the operation of LSP tunnels. extended by this document related to the operation of LSP tunnels.
These include: (1) the capability to establish LSP tunnels with or These include: (1) the capability to establish LSP tunnels with or
without QoS requirements, (2) the capability to dynamically reroute without QoS requirements, (2) the capability to dynamically reroute
an established LSP tunnel, (3) the capability to observe the actual an established LSP tunnel, (3) the capability to observe the actual
route traversed by an established LSP tunnel, (4) the capability to route traversed by an established LSP tunnel, (4) the capability to
identify and diagnose LSP tunnels, (5) the capability to preempt an identify and diagnose LSP tunnels, (5) the capability to preempt an
established LSP tunnel under administrative policy control, and (6) established LSP tunnel under administrative policy control, and (6)
the capability to perform downstream-on-demand label allocation, the capability to perform downstream-on-demand label allocation,
distribution, and binding. In the following paragraphs, these distribution, and binding. In the following paragraphs, these
features are briefly described. More detailed descriptions can be features are briefly described. More detailed descriptions can be
found in subsequent sections of this document. found in subsequent sections of this document.
To create an LSP tunnel, the first MPLS node on the path -- that is, To create an LSP tunnel, the first MPLS node on the path -- that is,
the sender node with respect to the path -- creates an RSVP Path the sender node with respect to the path -- creates an RSVP Path
message with a session type of LSP_Tunnel_IPv4 and inserts a message with a session type of LSP_TUNNEL_IPv4 or LSP_TUNNEL_IPv6 and
LABEL_REQUEST object into the Path message. The LABEL_REQUEST object inserts a LABEL_REQUEST object into the Path message. The
indicates that a label binding for this path is requested and also LABEL_REQUEST object indicates that a label binding for this path is
provides an indication of the network layer protocol that is to be requested and also provides an indication of the network layer
carried over this path. The reason for this is that the network layer protocol that is to be carried over this path. The reason for this is
protocol sent down an LSP cannot be assumed to be IPv4 and cannot be that the network layer protocol sent down an LSP cannot be assumed to
deduced from the L2 header, which simply identifies the higher layer be IP and cannot be deduced from the L2 header, which simply
protocol as MPLS. identifies the higher layer protocol as MPLS.
If the sender node has knowledge of a route that has high likelihood If the sender node has knowledge of a route that has high likelihood
of meeting the tunnel's QoS requirements, or that makes efficient use of meeting the tunnel's QoS requirements, or that makes efficient use
of network resources, or that satisfies some policy criteria, the of network resources, or that satisfies some policy criteria, the
node can decide to use the route for some or all of its sessions. To node can decide to use the route for some or all of its sessions. To
do this, the sender node adds an EXPLICIT_ROUTE object to the RSVP do this, the sender node adds an EXPLICIT_ROUTE object to the RSVP
Path message. The EXPLICIT_ROUTE object specifies the route as a Path message. The EXPLICIT_ROUTE object specifies the route as a
sequence of abstract nodes. sequence of abstract nodes.
If, after a session has been successfully established and the sender If, after a session has been successfully established and the sender
skipping to change at page 9, line 22 skipping to change at page 10, line 28
Finally, a SESSION_ATTRIBUTE object can be added to Path messages to Finally, a SESSION_ATTRIBUTE object can be added to Path messages to
aid in session identification and diagnostics. Additional control aid in session identification and diagnostics. Additional control
information, such as preemption, priority, and local-protection, are information, such as preemption, priority, and local-protection, are
also included in this object. also included in this object.
When the EXPLICIT_ROUTE object (ERO) is present, the Path message is When the EXPLICIT_ROUTE object (ERO) is present, the Path message is
forwarded towards its destination along a path specified by the ERO. forwarded towards its destination along a path specified by the ERO.
Each node along the path records the ERO in its path state block. Each node along the path records the ERO in its path state block.
Nodes may also modify the ERO before forwarding the Path message. In Nodes may also modify the ERO before forwarding the Path message. In
this case the modified ERO SHOULD be stored in the path state block. this case the modified ERO SHOULD be stored in the path state block
in addition to the received ERO.
The LABEL_REQUEST object requests intermediate routers and receiver The LABEL_REQUEST object requests intermediate routers and receiver
nodes to provide a label binding for the session. If a node is nodes to provide a label binding for the session. If a node is
incapable of providing a label binding, it sends a PathErr message incapable of providing a label binding, it sends a PathErr message
with an "unknown object class" error. If the LABEL_REQUEST object is with an "unknown object class" error. If the LABEL_REQUEST object is
not supported end to end, the sender node will be notified by the not supported end to end, the sender node will be notified by the
first node which does not provide this support. first node which does not provide this support.
The destination node of a label-switched path responds to a The destination node of a label-switched path responds to a
LABEL_REQUEST by including a LABEL object in its response RSVP Resv LABEL_REQUEST by including a LABEL object in its response RSVP Resv
message. The LABEL object is inserted in the filter spec list message. The LABEL object is inserted in the filter spec list
immediately following the filter spec to which it pertains. immediately following the filter spec to which it pertains.
The Resv message is sent back upstream towards the sender, in a The Resv message is sent back upstream towards the sender, following
direction opposite to that followed by the Path message. Each node the path state created by the Path message, in reverse order. Note
that receives a Resv message containing a LABEL object uses that that if the path state was created by use of an ERO, then the Resv
label for outgoing traffic associated with this LSP tunnel. If the message will follow the reverse path of the ERO.
node is not the sender, it allocates a new label and places that
Each node that receives a Resv message containing a LABEL object uses
that label for outgoing traffic associated with this LSP tunnel. If
the node is not the sender, it allocates a new label and places that
label in the corresponding LABEL object of the Resv message which it label in the corresponding LABEL object of the Resv message which it
sends upstream to the PHOP. The label sent upstream in the LABEL sends upstream to the PHOP. The label sent upstream in the LABEL
object is the label which this node will use to identify incoming object is the label which this node will use to identify incoming
traffic associated with this LSP tunnel. This label also serves as traffic associated with this LSP tunnel. This label also serves as
shorthand for the Filter Spec. The node can now update its "Incoming shorthand for the Filter Spec. The node can now update its "Incoming
Label Map" (ILM), which is used to map incoming labeled packets to a Label Map" (ILM), which is used to map incoming labeled packets to a
"Next Hop Label Forwarding Entry" (NHLFE), see [2]. "Next Hop Label Forwarding Entry" (NHLFE), see [2].
When the Resv message propagates upstream to the sender node, a When the Resv message propagates upstream to the sender node, a
label-switched path is effectively established. label-switched path is effectively established.
skipping to change at page 10, line 39 skipping to change at page 11, line 47
2.4.1. Fixed Filter (FF) Style 2.4.1. Fixed Filter (FF) Style
The Fixed Filter (FF) reservation style creates a distinct The Fixed Filter (FF) reservation style creates a distinct
reservation for traffic from each sender that is not shared by other reservation for traffic from each sender that is not shared by other
senders. This style is common for applications in which traffic from senders. This style is common for applications in which traffic from
each sender is likely to be concurrent and independent. The total each sender is likely to be concurrent and independent. The total
amount of reserved bandwidth on a link for sessions using FF is the amount of reserved bandwidth on a link for sessions using FF is the
sum of the reservations for the individual senders. sum of the reservations for the individual senders.
Because each sender has its own reservation, a unique label and a Because each sender has its own reservation, a unique label is
separate label-switched-path can be assigned to each sender. This assigned to each sender. This can result in a point-to-point LSP
can result in a point-to-point LSP between every sender/receiver between every sender/receiver pair.
pair.
2.4.2. Wildcard Filter (WF) Style 2.4.2. Wildcard Filter (WF) Style
With the Wildcard Filter (WF) reservation style, a single shared With the Wildcard Filter (WF) reservation style, a single shared
reservation is used for all senders to a session. The total reservation is used for all senders to a session. The total
reservation on a link remains the same regardless of the number of reservation on a link remains the same regardless of the number of
senders. senders.
A single multipoint-to-point label-switched-path is created for all A single multipoint-to-point label-switched-path is created for all
senders to the session. On links that senders to the session share, a senders to the session. On links that senders to the session share, a
skipping to change at page 12, line 37 skipping to change at page 13, line 43
An advantage of using RSVP to establish LSP tunnels is that it solves An advantage of using RSVP to establish LSP tunnels is that it solves
this problem very elegantly. this problem very elegantly.
To support make-before-break in a smooth fashion, it is necessary To support make-before-break in a smooth fashion, it is necessary
that on links that are common to the old and new LSPs, resources used that on links that are common to the old and new LSPs, resources used
by the old LSP tunnel should not be released before traffic is by the old LSP tunnel should not be released before traffic is
transitioned to the new LSP tunnel, and reservations should not be transitioned to the new LSP tunnel, and reservations should not be
counted twice because this might cause Admission Control to reject counted twice because this might cause Admission Control to reject
the new LSP tunnel. the new LSP tunnel.
The combination of the LSP_TUNNEL_IPv4 SESSION object and the SE The combination of the LSP_TUNNEL SESSION object and the SE
reservation style naturally achieves smooth transitions. The basic reservation style naturally achieves smooth transitions. The basic
idea is that the old and new LSP tunnels share resources along links idea is that the old and new LSP tunnels share resources along links
which they have in common. The LSP_TUNNEL_IPv4 SESSION object is used which they have in common. The LSP_TUNNEL SESSION object is used to
to narrow the scope of the RSVP session to the particular tunnel in narrow the scope of the RSVP session to the particular tunnel in
question. To uniquely identify a tunnel, we use the combination of question. To uniquely identify a tunnel, we use the combination of
the destination IP address (an address of the node which is the the destination IP address (an address of the node which is the
egress of the tunnel), a Tunnel ID, and the tunnel ingress node's IP egress of the tunnel), a Tunnel ID, and the tunnel ingress node's IP
address, which is placed in the Extended Tunnel ID field. address, which is placed in the Extended Tunnel ID field.
During the reroute operation, the tunnel ingress needs to appear as During the reroute operation, the tunnel ingress needs to appear as
two different senders to the RSVP session. This is achieved by the two different senders to the RSVP session. This is achieved by the
inclusion of an "LSP ID", which is carried in the SENDER_TEMPLATE and inclusion of an "LSP ID", which is carried in the SENDER_TEMPLATE and
FILTER_SPEC objects. Since the semantics of these objects are FILTER_SPEC objects. Since the semantics of these objects are
changed, a new C-Type is assigned. changed, a new C-Type is assigned.
skipping to change at page 13, line 38 skipping to change at page 14, line 44
New C-Types are also assigned for the SESSION, SENDER_TEMPLATE, New C-Types are also assigned for the SESSION, SENDER_TEMPLATE,
FILTER_SPEC, FLOWSPEC objects. FILTER_SPEC, FLOWSPEC objects.
Detailed descriptions of the new objects are given in later sections. Detailed descriptions of the new objects are given in later sections.
All new objects are OPTIONAL with respect to RSVP. An implementation All new objects are OPTIONAL with respect to RSVP. An implementation
can choose to support a subset of objects. However, the can choose to support a subset of objects. However, the
LABEL_REQUEST and LABEL objects are mandatory with respect to this LABEL_REQUEST and LABEL objects are mandatory with respect to this
specification. specification.
The LABEL and RECORD_ROUTE objects, are sender specific. They MUST The LABEL and RECORD_ROUTE objects, are sender specific. In Resv
follow either the SENDER_TEMPLATE in Path messages, or the associated messages they MUST appear after the associated FILTER_SPEC and prior
FILTER_SPEC in Resv messages. In Resv messages they MUST appear to any subsequent FILTER_SPEC.
prior to any subsequent FILTER_SPEC.
The relative placement of EXPLICIT_ROUTE, LABEL_REQUEST, and The relative placement of EXPLICIT_ROUTE, LABEL_REQUEST, and
SESSION_ATTRIBUTE objects is simply a recommendation. The ordering SESSION_ATTRIBUTE objects is simply a recommendation. The ordering
of these objects is not important, so an implementation MUST be of these objects is not important, so an implementation MUST be
prepared to accept objects in any order. prepared to accept objects in any order.
3.1. Path Message 3.1. Path Message
The format of the Path message is as follows: The format of the Path message is as follows:
<Path Message> ::= <Common Header> [ <INTEGRITY> ] <Path Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
<TIME_VALUES> <TIME_VALUES>
[ <EXPLICIT_ROUTE> ] [ <EXPLICIT_ROUTE> ]
<LABEL_REQUEST> <LABEL_REQUEST>
[ <SESSION_ATTRIBUTE> ] [ <SESSION_ATTRIBUTE> ]
[ <POLICY_DATA> ... ] [ <POLICY_DATA> ... ]
[ <sender descriptor> ] [ <sender descriptor> ]
<sender descriptor> ::= <SENDER_TEMPLATE> [ <SENDER_TSPEC> ] <sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ] [ <ADSPEC> ]
[ <RECORD_ROUTE> ] [ <RECORD_ROUTE> ]
3.2. Resv Message 3.2. Resv Message
The format of the Resv message is as follows: The format of the Resv message is as follows:
<Resv Message> ::= <Common Header> [ <INTEGRITY> ] <Resv Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
<TIME_VALUES> <TIME_VALUES>
[ <RESV_CONFIRM> ] [ <SCOPE> ] [ <RESV_CONFIRM> ] [ <SCOPE> ]
[ <POLICY_DATA> ... ] [ <POLICY_DATA> ... ]
<STYLE> <flow descriptor list> <STYLE> <flow descriptor list>
<flow descriptor list> ::= <FF flow descriptor list> <flow descriptor list> ::= <FF flow descriptor list>
| <SE flow descriptor> | <SE flow descriptor>
<FF flow descriptor list> ::= <FF flow descriptor> <FF flow descriptor list> ::= <FF flow descriptor>
| <FF flow descriptor list> <FF flow | <FF flow descriptor list> <FF flow descriptor>
descriptor>
<FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC> <LABEL> <FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC> <LABEL>
[ <RECORD_ROUTE> ] [ <RECORD_ROUTE> ]
<SE flow descriptor> ::= <FLOWSPEC> <SE filter spec list> <SE flow descriptor> ::= <FLOWSPEC> <SE filter spec list>
<SE filter spec list> ::= <SE filter spec> <SE filter spec list> ::= <SE filter spec>
| <SE filter spec list> <SE filter spec> | <SE filter spec list> <SE filter spec>
<SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ] <SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ]
skipping to change at page 15, line 32 skipping to change at page 16, line 32
message. message.
The LABEL object has the following format: The LABEL object has the following format:
LABEL class = 16, C_Type = 1 LABEL class = 16, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// (Object contents) // // (lower labels if any) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (top label) | | (top label) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The contents of a LABEL object are a stack of labels, where each The contents of a LABEL object are a stack of labels, where each
label is encoded right aligned in 4 octets. The top of the stack is label is encoded in 4 octets. The top of the stack is in the right 4
in the right 4 octets of the object contents. A LABEL object that octets of the object contents. A LABEL object that contains no
contains no labels is illegal. labels is illegal.
Each label is an unsigned integer in the range 0 through 1048575. Each generic MPLS label is an unsigned integer in the range 0 through
1048575. Generic MPLS labels and FR labels are encoded right aligned
in 4 octets. ATM labels are encoded with the VPI right justified in
bits 0-15 and the VCI right justified in bits 16-31.
The decision concerning whether to create a label stack with more The decision concerning whether to create a label stack with more
than one label, when to push a new label, and when to pop the label than one label, when to push a new label, and when to pop the label
stack is not addressed in this document. For implementations that do stack is not addressed in this document. For implementations that do
not support a label stack, only the top label is examined. The rest not support a label stack, only the top label is examined. The rest
of the label stack SHOULD be passed through unchanged. Such of the label stack SHOULD be passed through unchanged. Such
implementations are REQUIRED to generate a label stack of depth 1 implementations are REQUIRED to generate a label stack of depth 1
when initiating the first LABEL. when initiating the first LABEL.
4.1.1. Handling Label Objects in Resv messages 4.1.1. Handling Label Objects in Resv messages
skipping to change at page 17, line 7 skipping to change at page 18, line 8
Under normal circumstances, a node should never receive a LABEL Under normal circumstances, a node should never receive a LABEL
object in a Resv message unless it had included a LABEL_REQUEST object in a Resv message unless it had included a LABEL_REQUEST
object in the corresponding Path message. However, an RSVP router object in the corresponding Path message. However, an RSVP router
that does not recognize the LABEL object sends a ResvErr with the that does not recognize the LABEL object sends a ResvErr with the
error code "Unknown object class" toward the receiver. This causes error code "Unknown object class" toward the receiver. This causes
the reservation to fail. the reservation to fail.
4.2. Label Request Object 4.2. Label Request Object
The LABEL_REQUEST object formats are shown below. Currently there The Label Request Class is 19. Currently there three possible
three possible C_Types. Type 1 is a Label Request without label C_Types. Type 1 is a Label Request without label range. Type 2 is a
range. Type 2 is a label request with an ATM label range. Type 3 is label request with an ATM label range. Type 3 is a label request
a label request with a Frame Relay label range. with a Frame Relay label range. The LABEL_REQUEST object formats are
shown below.
Label Request without Label Range Label Request without Label Range
class = 19, C_Type = 1 (need to get an official class num from Class = 19, C_Type = 1
the IANA)
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved Reserved
This field is reserved. It MUST be set to zero on transmis- This field is reserved. It MUST be set to zero on transmis-
sion and MUST be ignored on receipt. sion and MUST be ignored on receipt.
L3PID L3PID
an identifier of the layer 3 protocol using this path. an identifier of the layer 3 protocol using this path.
Standard Ethertype values are used. Standard Ethertype values are used.
Label Request with ATM Label Range Label Request with ATM Label Range
class = 19, C_Type = 2 (need to get an official class num from Class = 19, C_Type = 2
the IANA)
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Res | Minimum VPI | Minimum VCI | | Res | Minimum VPI | Minimum VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Res | Maximum VPI | Maximum VCI | | Res | Maximum VPI | Maximum VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 19, line 7 skipping to change at page 20, line 7
Maximum VCI (16 bits) Maximum VCI (16 bits)
This 16 bit field specifies the upper bound of a block of This 16 bit field specifies the upper bound of a block of
Virtual Connection Identifiers that is supported on the ori- Virtual Connection Identifiers that is supported on the ori-
ginating switch. If the VCI is less than 16-bits it MUST be ginating switch. If the VCI is less than 16-bits it MUST be
right justified in this field and preceding bits MUST be set to right justified in this field and preceding bits MUST be set to
zero. zero.
Label Request with Frame Relay Label Range Label Request with Frame Relay Label Range
class = 19, C_Type = 3 (need to get an official class num from Class = 19, C_Type = 3
the IANA)
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |DLI| Minimum DLCI | | Reserved |DLI| Minimum DLCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Maximum DLCI | | Reserved | Maximum DLCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 21, line 31 skipping to change at page 22, line 20
through the non-RSVP routers. The router SHOULD send a PathErr back through the non-RSVP routers. The router SHOULD send a PathErr back
to the sender, with the error code "Routing problem" and the error to the sender, with the error code "Routing problem" and the error
value "MPLS being negotiated, but a non-RSVP capable router stands in value "MPLS being negotiated, but a non-RSVP capable router stands in
the path." This same message SHOULD be sent, if a router receives a the path." This same message SHOULD be sent, if a router receives a
LABEL_REQUEST object in a message from a non-RSVP capable router. See LABEL_REQUEST object in a message from a non-RSVP capable router. See
[1] for a description of how a downstream router can determine the [1] for a description of how a downstream router can determine the
presence of non-RSVP routers. presence of non-RSVP routers.
4.3. Explicit Route Object 4.3. Explicit Route Object
As stated earlier, explicit routes are to be specified through a new Explicit routes are specified via the EXPLICIT_ROUTE object (ERO).
EXPLICIT_ROUTE object (ERO) in RSVP Path messages. The The Explicit Route Class is 20. Currently one C_Type is defined,
EXPLICIT_ROUTE object has the following format: Type 1 Explicit Route. The EXPLICIT_ROUTE object has the following
format:
Class = 20, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// (Object contents) // // (Subobjects) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Class-Num Subobjects
The Class-Num for an EXPLICIT_ROUTE object is 20 (need to get
an official one from the IANA with the form 0bbbbbbb to ensure
that non-supporting implementations reject the message.)
C-Type
The C-Type for an EXPLICIT_ROUTE object is 1 (need to get an The contents of an EXPLICIT_ROUTE object are a series of
official one from the IANA) variable-length data items called subobjects. The subobjects
are defined in section 4.3.3 below.
If a Path message contains multiple EXPLICIT_ROUTE objects, only the If a Path message contains multiple EXPLICIT_ROUTE objects, only the
first object is meaningful. Subsequent EXPLICIT_ROUTE objects MAY be first object is meaningful. Subsequent EXPLICIT_ROUTE objects MAY be
ignored and SHOULD NOT be propagated. ignored and SHOULD NOT be propagated.
4.3.1. Applicability 4.3.1. Applicability
The EXPLICIT_ROUTE object is intended to be used only for unicast The EXPLICIT_ROUTE object is intended to be used only for unicast
situations. Applications of explicit routing to multicast are a situations. Applications of explicit routing to multicast are a
topic for further research. topic for further research.
skipping to change at page 23, line 47 skipping to change at page 24, line 32
Type Type
The Type indicates the type of contents of the subobject. The Type indicates the type of contents of the subobject.
Currently defined values are: Currently defined values are:
0 Reserved 0 Reserved
1 IPv4 prefix 1 IPv4 prefix
2 IPv6 prefix 2 IPv6 prefix
32 Autonomous system number 32 Autonomous system number
64 MPLS label switched path termination
Length Length
The Length contains the total length of the subobject in bytes, The Length contains the total length of the subobject in bytes,
including the L, Type and Length fields. The Length MUST be at including the L, Type and Length fields. The Length MUST be at
least 4, and MUST be a multiple of 4. least 4, and MUST be a multiple of 4.
4.3.3.1. Strict and Loose Subobjects 4.3.3.1. Strict and Loose Subobjects
The L bit in the subobject is a one-bit attribute. If the L bit is The L bit in the subobject is a one-bit attribute. If the L bit is
set, then the value of the attribute is 'loose.' Otherwise, the set, then the value of the attribute is 'loose.' Otherwise, the
skipping to change at page 24, line 38 skipping to change at page 25, line 20
The L bit has no meaning in operation subobjects. The L bit has no meaning in operation subobjects.
4.3.3.2. Subobject 1: IPv4 prefix 4.3.3.2. Subobject 1: IPv4 prefix
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | IPv4 address (4 bytes) | |L| Type | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix Length | Flags | | IPv4 address (continued) | Prefix Length | Resvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L L
The L bit is an attribute of the subobject. The L bit is set The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route. if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in If the bit is not set, the subobject represents a strict hop in
the explicit route. the explicit route.
Type Type
skipping to change at page 25, line 48 skipping to change at page 26, line 27
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | IPv6 address (16 bytes) | |L| Type | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix Length | Flags | | IPv6 address (continued) | Prefix Length | Resvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L L
The L bit is an attribute of the subobject. The L bit is set The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route. if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in If the bit is not set, the subobject represents a strict hop in
the explicit route. the explicit route.
Type Type
0x02 IPv6 address 0x02 IPv6 address
skipping to change at page 27, line 5 skipping to change at page 27, line 33
128 indicates a single IPv6 node. 128 indicates a single IPv6 node.
4.3.3.4. Subobject 32: Autonomous System Number 4.3.3.4. Subobject 32: Autonomous System Number
The contents of an Autonomous System (AS) number subobject are a 2- The contents of an Autonomous System (AS) number subobject are a 2-
octet AS number. The abstract node represented by this subobject is octet AS number. The abstract node represented by this subobject is
the set of nodes belonging to the autonomous system. the set of nodes belonging to the autonomous system.
The length of the AS number subobject is 4 octets. The length of the AS number subobject is 4 octets.
4.3.3.5. Subobject 64: MPLS Label Switched Path Termination
The contents of an MPLS label switched path termination subobject are
2 octets of padding. This subobject is an operation subobject. This
object is only meaningful if there is a LABEL_REQUEST object in the
Path message.
If a LABEL_REQUEST object is present in the Path message, this Path
message is being used to establish a label-switched path. In this
case, this subobject indicates that the prior abstract node SHOULD
remove one level of label from all packets following this label-
switched path.
The length of the MPLS label termination subobject is 4 octets.
4.3.4. Processing of the Explicit Route Object 4.3.4. Processing of the Explicit Route Object
4.3.4.1. Selection of the Next Hop 4.3.4.1. Selection of the Next Hop
A node receiving a Path message containing an EXPLICIT_ROUTE object A node receiving a Path message containing an EXPLICIT_ROUTE object
must determine the next hop for this path. This is necessary because must determine the next hop for this path. This is necessary because
the next abstract node along the explicit route might be an IP subnet the next abstract node along the explicit route might be an IP subnet
or an Autonomous System. Therefore, selection of this next hop may or an Autonomous System. Therefore, selection of this next hop may
involve a decision from a set of feasible alternatives. The criteria involve a decision from a set of feasible alternatives. The criteria
used to make a selection from feasible alternatives is implementation used to make a selection from feasible alternatives is implementation
skipping to change at page 29, line 37 skipping to change at page 30, line 8
An RSVP router that does not recognize the EXPLICIT_ROUTE object An RSVP router that does not recognize the EXPLICIT_ROUTE object
sends a PathErr with the error code "Unknown object class" toward the sends a PathErr with the error code "Unknown object class" toward the
sender. This causes the path setup to fail. The sender should sender. This causes the path setup to fail. The sender should
notify management that a LSP cannot be established and possibly take notify management that a LSP cannot be established and possibly take
action to continue the reservation without the EXPLICIT_ROUTE or via action to continue the reservation without the EXPLICIT_ROUTE or via
a different explicit route. a different explicit route.
4.4. Record Route Object 4.4. Record Route Object
The format of the RECORD_ROUTE object (RRO) is as follows: Routes can be recorded via the RECORD_ROUTE object (RRO). The Record
Route Class is 21. Currently one C_Type is defined, Type 1 Record
Route. The RECORD_ROUTE object has the following format:
Class = 21, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// (Subobjects) // // (Subobjects) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Class-Num
The Class-Num for a RECORD_ROUTE object is 21 (need to get an
official one from the IANA with the form 0bbbbbbb to ensure
that non-supporting implementations reject the message.)
C-Type Subobjects
The C-Type for a RECORD_ROUTE object is 1 (need to get an The contents of a RECORD_ROUTE object are a series of
official one from the IANA) variable-length data items called subobjects. The subobjects
are defined in section 4.4.1 below.
The RRO can be present in both RSVP Path and Resv messages. If a The RRO can be present in both RSVP Path and Resv messages. If a
Path message contains multiple RROs, only the first RRO is Path message contains multiple RROs, only the first RRO is
meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be
propagated. Similarly, if in a Resv message multiple RROs are propagated. Similarly, if in a Resv message multiple RROs are
encountered following a FILTER_SPEC before another FILTER_SPEC is encountered following a FILTER_SPEC before another FILTER_SPEC is
encountered, only the first RRO is meaningful. Subsequent RROs encountered, only the first RRO is meaningful. Subsequent RROs
SHOULD be ignored and SHOULD NOT be propagated. SHOULD be ignored and SHOULD NOT be propagated.
4.4.1. Subobjects 4.4.1. Subobjects
skipping to change at page 31, line 34 skipping to change at page 32, line 4
IPv4 address IPv4 address
A 32-bit unicast, host address. Any network-reachable A 32-bit unicast, host address. Any network-reachable
interface address is allowed here. Illegal addresses, interface address is allowed here. Illegal addresses,
such as certain loopback addresses, SHOULD NOT be used. such as certain loopback addresses, SHOULD NOT be used.
Prefix length Prefix length
32 32
Flags Flags
0x01 Local protection available 0x01 Local protection available
Indicates that the link downstream of this node is Indicates that the link downstream of this node is
protected via a local repair mechanism protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the
SESSION_ATTRIBUITE object of the cooresponding Path
nessage.
0x02 Local protection in use 0x02 Local protection in use
Indicates that a local repair mechanism is in use to Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face a an outage maintain this tunnel (usually in the face a an outage
of the link it was previously routed over of the link it was previously routed over).
4.4.1.2. Subobject 2: IPv6 address 4.4.1.2. Subobject 2: IPv6 address
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | IPv6 address (16 bytes) | | Type | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 32, line 44 skipping to change at page 33, line 14
Prefix length Prefix length
128 128
Flags Flags
0x01 Local protection available 0x01 Local protection available
Indicates that the link downstream of this node is Indicates that the link downstream of this node is
protected via a local repair mechanism protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the
SESSION_ATTRIBUITE object of the cooresponding Path
nessage.
0x02 Local protection in use 0x02 Local protection in use
Indicates that a local repair mechanism is in use to Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face a an outage maintain this tunnel (usually in the face a an outage
of the link it was previously routed over) of the link it was previously routed over).
4.4.2. Applicability 4.4.2. Applicability
Only the procedures for use in unicast sessions are defined here. Only the procedures for use in unicast sessions are defined here.
There are three possible uses of RRO in RSVP. First, an RRO can There are three possible uses of RRO in RSVP. First, an RRO can
function as a loop detection mechanism to discover L3 routing loops, function as a loop detection mechanism to discover L3 routing loops,
or loops inherent in the explicit route. The exact procedure for or loops inherent in the explicit route. The exact procedure for
doing so is described later in this document. doing so is described later in this document.
skipping to change at page 35, line 30 skipping to change at page 36, line 9
The RRO object is to be used only when all routers along the path The RRO object is to be used only when all routers along the path
support RSVP and the RRO object. The RRO object is assigned a class support RSVP and the RRO object. The RRO object is assigned a class
value of the form 0bbbbbbb. RSVP routers that do not support the value of the form 0bbbbbbb. RSVP routers that do not support the
object will therefore respond with an "Unknown Object Class" error. object will therefore respond with an "Unknown Object Class" error.
4.5. Error Codes for ERO and RRO 4.5. Error Codes for ERO and RRO
In the processing described above, certain errors must be reported as In the processing described above, certain errors must be reported as
either a "Routing Problem" or "Notify". The value of the "Routing either a "Routing Problem" or "Notify". The value of the "Routing
Problem" error code is 24 (TBD); the value of the "Notify" error code Problem" error code is 24; the value of the "Notify" error code is
is 25 (TBD). 25.
The following defines error values for the Routing Problem Error The following defines error values for the Routing Problem Error
Code: Code:
Value Error: Value Error:
1 Bad EXPLICIT_ROUTE object 1 Bad EXPLICIT_ROUTE object
2 Bad strict node 2 Bad strict node
skipping to change at page 36, line 45 skipping to change at page 37, line 8
The high order bits are as defined under Error Code 1. (See [1]). The high order bits are as defined under Error Code 1. (See [1]).
When ss = 00, the following subcode is defined: When ss = 00, the following subcode is defined:
1 RRO too large for MTU 1 RRO too large for MTU
2 RRO notification 2 RRO notification
4.6. Session, Sender Template, and Filter Spec Objects 4.6. Session, Sender Template, and Filter Spec Objects
New C-Types are defined for the SESSION, SENDER_TEMPLATE and New C-Types are defined for the SESSION, SENDER_TEMPLATE and
FILTER_SPEC objects. The LSP_TUNNEL_IPv4 objects have the following FILTER_SPEC objects.
format:
The LSP_TUNNEL objects have the following format:
4.6.1. Session Object 4.6.1. Session Object
Class = SESSION, C-Type = LSP_TUNNEL_IPv4 (7) 4.6.1.1. LSP_TUNNEL_IPv4 Session Object
Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel end point address | | IPv4 tunnel end point address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID | | MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Extended Tunnel ID | | Extended Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 37, line 36 skipping to change at page 38, line 5
over the life of the tunnel. over the life of the tunnel.
Extended Tunnel ID Extended Tunnel ID
A 32-bit identifier used in the SESSION that remains constant A 32-bit identifier used in the SESSION that remains constant
over the life of the tunnel. Normally set to all zeros. over the life of the tunnel. Normally set to all zeros.
Ingress nodes that wish to narrow the scope of a SESSION to the Ingress nodes that wish to narrow the scope of a SESSION to the
ingress-egress pair may place their IPv4 address here as a ingress-egress pair may place their IPv4 address here as a
globally unique identifier. globally unique identifier.
4.6.1.2. LSP_TUNNEL_IPv6 Session Object
Class = SESSION, LSP_TUNNEL_IPv6 C_Type = 8
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| IPv6 tunnel end point address |
+ +
| (16 bytes) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Extended Tunnel ID |
+ +
| (16 bytes) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 tunnel end point address
IPv6 address of the egress node for the tunnel.
Tunnel ID
A 16-bit identifier used in the SESSION that remains constant
over the life of the tunnel.
Extended Tunnel ID
A 16-byte identifier used in the SESSION that remains constant
over the life of the tunnel. Normally set to all zeros.
Ingress nodes that wish to narrow the scope of a SESSION to the
ingress-egress pair may place their IPv6 address here as a
globally unique identifier.
4.6.2. Sender Template Object 4.6.2. Sender Template Object
Class = SENDER_TEMPLATE, C-Type = LSP_TUNNEL_IPv4 (7) 4.6.2.1. LSP_TUNNEL_IPv4 Sender Template Object
Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel sender address | | IPv4 tunnel sender address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | LSP ID | | MUST be zero | LSP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 tunnel sender address IPv4 tunnel sender address
skipping to change at page 38, line 4 skipping to change at page 39, line 22
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel sender address | | IPv4 tunnel sender address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | LSP ID | | MUST be zero | LSP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 tunnel sender address IPv4 tunnel sender address
IPv4 address for a sender node IPv4 address for a sender node
LSP ID LSP ID
A 16-bit identifier used in the SENDER_TEMPLATE and the A 16-bit identifier used in the SENDER_TEMPLATE and the
FILTER_SPEC that can be changed to allow a sender to share FILTER_SPEC that can be changed to allow a sender to share
resources with itself. resources with itself.
4.6.3. Filter Specification Object 4.6.2.2. LSP_TUNNEL_IPv6 Sender Template Object
Class = FILTER SPECIFICATION, C-Type = LSP_TUNNEL_IPv4 (7) Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv6 C_Type = 8
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel sender address | | |
+ +
| IPv6 tunnel end point address |
+ +
| (16 bytes) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | LSP ID | | MUST be zero | LSP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 tunnel sender address IPv6 tunnel sender address
IPv4 address for a sender node
IPv6 address for a sender node
LSP ID LSP ID
A 16-bit identifier used in the SENDER_TEMPLATE and the A 16-bit identifier used in the SENDER_TEMPLATE and the
FILTER_SPEC that can be changed to allow a sender to share FILTER_SPEC that can be changed to allow a sender to share
resources with itself. resources with itself.
4.6.3. Filter Specification Object
4.6.3.1. LSP_TUNNEL_IPv4 Filter Specification Object
Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv4 C-Type = 7
The format of the LSP_TUNNEL_IPv4 FILTER_SPEC object is identical to
the LSP_TUNNEL_IPv4 SENDER_TEMPLATE object.
4.6.3.2. LSP_TUNNEL_IPv6 Filter Specification Object
Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv6 C_Type = 8
The format of the LSP_TUNNEL_IPv6 FILTER_SPEC object is identical to
the LSP_TUNNEL_IPv6 SENDER_TEMPLATE object.
4.6.4. Reroute Procedure 4.6.4. Reroute Procedure
This section describes how to setup a tunnel that is capable of This section describes how to setup a tunnel that is capable of
maintaining resource reservations (without double counting) while it maintaining resource reservations (without double counting) while it
is being rerouted or while it is attempting to increase its is being rerouted or while it is attempting to increase its
bandwidth. In the initial Path message, the ingress node forms a bandwidth. In the initial Path message, the ingress node forms a
SESSION object, assigns a Tunnel_ID, and places its IPv4 address in SESSION object, assigns a Tunnel_ID, and places its IPv4 address in
the Extended_Tunnel_ID It also forms a SENDER_TEMPLATE and assigns a the Extended_Tunnel_ID It also forms a SENDER_TEMPLATE and assigns a
LSP_ID. Tunnel setup then proceeds according to the normal procedure. LSP_ID. Tunnel setup then proceeds according to the normal procedure.
skipping to change at page 39, line 23 skipping to change at page 41, line 18
(Note that if the PHOPs are different, then two messages are sent (Note that if the PHOPs are different, then two messages are sent
each with the appropriate FILTER_SPEC and LABEL_OBJECT.) each with the appropriate FILTER_SPEC and LABEL_OBJECT.)
When the ingress node receives the Resv Message(s), it may begin When the ingress node receives the Resv Message(s), it may begin
using the new route. It SHOULD send a PathTear message for the old using the new route. It SHOULD send a PathTear message for the old
route. route.
4.7. Session Attribute Object 4.7. Session Attribute Object
The format of the SESSION_ATTRIBUTE object is as follows: The Session Attribute Class is 207. One C_Type is defined,
LSP_TUNNEL, C-Type = 7. The format of the LSP_TUNNEL Session
Attribute Object is as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Setup Prio | Holding Prio | Flags | Name Length | | Setup Prio | Holding Prio | Flags | Name Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// Session Name (NULL padded display string) // // Session Name (NULL padded display string) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Class-Num
The Class-Num indicates that the object is 207. (TBD)
C-Type
The C-Type is 7.
Flags Flags
0x01 = Local protection 0x01 Local protection
This flag permits transit routers to use a local repair This flag permits transit routers to use a local repair
mechanism which may result in violation of the explicit mechanism which may result in violation of the explicit
route object. When a fault is detected on an adjacent route object. When a fault is detected on an adjacent
downstream link or node, a transit router can reroute downstream link or node, a transit router can reroute
traffic for fast service restoration. traffic for fast service restoration.
0x02 = Merging permitted 0x02 Merging permitted
This flag permits transit routers to merge this session This flag permits transit routers to merge this session
with other RSVP sessions for the purpose of reducing with other RSVP sessions for the purpose of reducing
resource overhead on downstream transit routers, thereby resource overhead on downstream transit routers, thereby
providing better network scalability. providing better network scalability.
0x04 = Ingress node may reroute 0x04 Ingress node may reroute
This flag indicates that the tunnel ingress node may This flag indicates that the tunnel ingress node may
choose to reroute this tunnel without tearing it down. choose to reroute this tunnel without tearing it down.
A tunnel egress node SHOULD use the SE Style when A tunnel egress node SHOULD use the SE Style when
responding with a Resv message. responding with a Resv message.
Setup Priority Setup Priority
The priority of the session with respect to taking resources, The priority of the session with respect to taking resources,
in the range of 0 to 7. The value 0 is the highest priority. in the range of 0 to 7. The value 0 is the highest priority.
The Setup Priority is used in deciding whether this session can The Setup Priority is used in deciding whether this session can
skipping to change at page 41, line 12 skipping to change at page 43, line 15
operation. The node SHOULD pass the information downstream operation. The node SHOULD pass the information downstream
unchanged. unchanged.
As noted above, preemption is implemented by two priorities. The As noted above, preemption is implemented by two priorities. The
Setup Priority is the priority for taking resources. The Holding Setup Priority is the priority for taking resources. The Holding
Priority is the priority for holding a resource. Specifically, the Priority is the priority for holding a resource. Specifically, the
Holding Priority is the priority at which resources assigned to this Holding Priority is the priority at which resources assigned to this
session will be reserved. The Setup Priority SHOULD never be higher session will be reserved. The Setup Priority SHOULD never be higher
than the Holding Priority for a given session. than the Holding Priority for a given session.
The setup and holding priorities are directly analogous to the
preemption and defending priorities as defined in [3]. While the
interaction of these two objects is ultimately a matter of policy,
the following default interaction is recommended.
When both objects are present, the preemption priority policy element
is used. A mapping between the priority spaces is defined as
follows. A session attribute priority S is mapped to a preemption
priority P by the formula P = 2^(14-2S). The reverse mapping is
shown in the following table.
Preemption Priority Session Attribute Priority
0 - 3 7
4 - 15 6
16 - 63 5
64 - 255 4
256 - 1023 3
1024 - 4095 2
4096 - 16383 1
16384 - 65535 0
When a new reservation is considered for admission, the bandwidth When a new reservation is considered for admission, the bandwidth
requested is compared with the bandwidth available at the priority requested is compared with the bandwidth available at the priority
specified in the Setup Priority. The bandwidth available at a specified in the Setup Priority. The bandwidth available at a
particular Setup Priority is the unused bandwidth plus the bandwidth particular Setup Priority is the unused bandwidth plus the bandwidth
reserved at all Holding Priorities lower than the Setup Priority. reserved at all Holding Priorities lower than the Setup Priority.
If the requested bandwidth is not available a PathErr message is If the requested bandwidth is not available a PathErr message is
returned with an Error Code of 01, Admission Control Failure, and an returned with an Error Code of 01, Admission Control Failure, and an
Error Value of 0x0002. The first 0 in the Error Value indicates a Error Value of 0x0002. The first 0 in the Error Value indicates a
globally defined subcode and is not informational. The 002 indicates globally defined subcode and is not informational. The 002 indicates
skipping to change at page 42, line 25 skipping to change at page 45, line 5
for setting up LSPs. When resources do not have to be allocated to for setting up LSPs. When resources do not have to be allocated to
the LSP, the Class-of-Service service SHOULD be used. the LSP, the Class-of-Service service SHOULD be used.
The Class-of-Service FLOWSPEC allows indication of a Class of Service The Class-of-Service FLOWSPEC allows indication of a Class of Service
(CoS) value that should be used when handling data packets associated (CoS) value that should be used when handling data packets associated
with the request. with the request.
The same format is used both for SENDER_TSPEC object and FLOWSPEC The same format is used both for SENDER_TSPEC object and FLOWSPEC
objects. The formats are: objects. The formats are:
Class-of-Service SENDER_TSPEC object: Class = 12, C-Type = 3 (TBA) Class-of-Service SENDER_TSPEC object: Class = 12, C-Type = 3
Class-of-Service FLOWSPEC object: Class = 9, C-Type = 3 (TBA) Class-of-Service FLOWSPEC object: Class = 9, C-Type = 3
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | CoS | Maximum Packet Size [M] | | Reserved | CoS | Maximum Packet Size [M] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved Reserved
This field is reserved. It MUST be set to zero on transmission This field is reserved. It MUST be set to zero on transmission
skipping to change at page 43, line 21 skipping to change at page 45, line 36
intent is to enable networks to support the IP ToS Octet as intent is to enable networks to support the IP ToS Octet as
defined in RFC1349 [7]. It is noted that there is ongoing work defined in RFC1349 [7]. It is noted that there is ongoing work
within the IETF to update the use of the IP ToS Octet. In within the IETF to update the use of the IP ToS Octet. In
particular, RFC2474 [8], obsoletes RFC1349. However at this particular, RFC2474 [8], obsoletes RFC1349. However at this
time the new uses of this field (now termed the DS byte) are time the new uses of this field (now termed the DS byte) are
still being defined. Non-zero values have local significance. still being defined. Non-zero values have local significance.
The translation from a specific value to an allocation is a The translation from a specific value to an allocation is a
local administrative decision. local administrative decision.
M M
The maximum packet size parameter [M] SHOULD be set to the This parameter is set in Resv messages by the receiver based on
value of the smallest path MTU. This parameter is set in Resv information in arriving RSVP SENDER_TSPEC objects. For shared
messages by the reliever based on information in arriving RSVP reservations, the smallest value received across all associated
ADSPEC objects. This parameter is ignored when the object is senders is used. When the object is contained in Path
contained in Path messages. messages, this parameter is updated at each hop with the lesser
of the received value and the MTU of the outgoing interface.
There is no Adspec associated with the Class-of-Service SENDER_TSPEC. There is no Adspec associated with the Class-of-Service SENDER_TSPEC.
Either the Adspec is omitted or an int-serv adspec with only the Either the Adspec is omitted or an int-serv adspec with only the
Default General Characterization Parameters is used. Default General Characterization Parameters is used.
5. Hello Extension 5. Hello Extension
The RSVP Hello extension enables RSVP nodes to detect when a The RSVP Hello extension enables RSVP nodes to detect when a
neighboring node is not reachable. The mechanism provides node to neighboring node is not reachable. The mechanism provides node to
node failure detection. When such a failure is detected it is node failure detection. When such a failure is detected it is
skipping to change at page 44, line 49 skipping to change at page 47, line 22
When HELLO messages are being the exchanged between immediate When HELLO messages are being the exchanged between immediate
neighbors, the IP TTL field of all outgoing HELLO messages SHOULD be neighbors, the IP TTL field of all outgoing HELLO messages SHOULD be
set to 1. set to 1.
The Hello message format is as follows: The Hello message format is as follows:
<Hello Message> ::= <Common Header> [ <INTEGRITY> ] <Hello Message> ::= <Common Header> [ <INTEGRITY> ]
<HELLO> <HELLO>
For Hello messages, the Msg Type field of the Common Header MUST be For Hello messages, the Msg Type field of the Common Header MUST be
set to 14 (Value to be assigned by IANA). set to 14.
5.2. HELLO Object 5.2. HELLO Object
HELLO Class = 22 (Value to be assigned by IANA of form 0bbbbbbb) HELLO Class = 22
HELLO REQUEST object HELLO REQUEST object
Class = HELLO Class, C_Type = 1 Class = HELLO Class, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Src_Instance | | Src_Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 45, line 44 skipping to change at page 48, line 14
a 32 bit value that represents the sender's instance. The a 32 bit value that represents the sender's instance. The
advertiser maintains a per neighbor representation/value. This advertiser maintains a per neighbor representation/value. This
value MUST change when the sender is reset, when the node value MUST change when the sender is reset, when the node
reboots, or when communication is lost to the neighboring node reboots, or when communication is lost to the neighboring node
and otherwise remains the same. This field MUST NOT be set to and otherwise remains the same. This field MUST NOT be set to
zero (0). zero (0).
Dst_Instance: 32 bits Dst_Instance: 32 bits
The most recently received Src_Instance value received from the The most recently received Src_Instance value received from the
neighbor. This field MUST be be set to zero (0) when no value neighbor. This field MUST be set to zero (0) when no value has
has ever been seen from the neighbor. ever been seen from the neighbor.
5.3. Hello Message Usage 5.3. Hello Message Usage
A Hello message containing a HELLO REQUEST object MUST be generated The Hello Message is completely optional. All messages may be
for each neighbor who's status is being tracked. When generating a ignored by nodes which do not wish to participate in Hello message
message containing a HELLO REQUEST object, the sender fills in the processing. The balance of this section is written assuming that the
Src_Instance field with a value representing it's per neighbor receiver as well as the sender is participating. In particular, the
instance. This value MUST NOT change while the agent is exchanging use of MUST and SHOULD with respect to the receiver applies only to a
Hellos with the corresponding neighbor. The sender also fills in the
Dst_Instance field with the Src_Instance value most recently received A node periodically generates a Hello message containing a HELLO
from the neighbor. If no value has ever been received from the REQUEST object for each neighbor who's status is being tracked. The
neighbor, a value of zero (0) is used. The generation of a message periodicity is governed by the hello_interval. This value MAY be
SHOULD be skipped when a HELLO REQUEST object was received from the configured on a per neighbor basis. The default value is 5 ms.
destination node within the failure detection interval.
When generating a message containing a HELLO REQUEST object, the
sender fills in the Src_Instance field with a value representing it's
per neighbor instance. This value MUST NOT change while the agent is
exchanging Hellos with the corresponding neighbor. The sender also
fills in the Dst_Instance field with the Src_Instance value most
recently received from the neighbor. If no value has ever been
received from the neighbor, a value of zero (0) is used. The
generation of a message SHOULD be suppressed when a HELLO REQUEST
object was received from the destination node within the prior
hello_interval interval.
On receipt of a message containing a HELLO REQUEST object, the On receipt of a message containing a HELLO REQUEST object, the
receiver MUST generate a Hello message containing a HELLO ACK object. receiver MUST generate a Hello message containing a HELLO ACK object.
The receiver SHOULD also verify that the neighbor has not reset. The receiver SHOULD also verify that the neighbor has not reset.
This is done by comparing the sender's Src_Instance field value with This is done by comparing the sender's Src_Instance field value with
the previously received value. If the value differs, than the the previously received value. If the value differs, then a node
neighbor has reset. In this case the receiver SHOULD refresh all MUST treat the neighbor as if communication has been lost.
Path and Resv state advertised to the neighbor. The receiver SHOULD
also verify that the neighbor is reflecting back the receiver's The receiver of a HELLO REQUEST object SHOULD also verify that the
Instance value. This is done by comparing the received Dst_Instance neighbor is reflecting back the receiver's Instance value. This is
field with the Src_Instance field value most recently transmitted to done by comparing the received Dst_Instance field with the
that neighbor. If the neighbor continues to advertise a wrong non- Src_Instance field value most recently transmitted to that neighbor.
zero value after a configured number of intervals, then a node MUST If the neighbor continues to advertise a wrong non-zero value after a
treat the neighbor as if communication has been lost. In this case, configured number of intervals, then the node MUST treat the neighbor
the Src_Instance value advertised in the HELLO ACK object MUST be be as if communication has been lost.
different from the previously advertised value. This new value MUST
continue to be advertised to the corresponding neighbor until a reset
or reboot occurs, or until another communication failure is detected.
On receipt of a message containing a HELLO ACK object, the receiver On receipt of a message containing a HELLO ACK object, the receiver
MUST verify that the neighbor has not reset. This is done by MUST verify that the neighbor has not reset. This is done by
comparing the sender's Src_Instance field value with the previously comparing the sender's Src_Instance field value with the previously
received value. If the value differs, than the neighbor has reset. received value. If the value differs, then the node MUST treat the
In this case the receiver SHOULD refresh all Path and Resv state neighbor as if communication has been lost.
advertised to the neighbor. The receiver MUST also verify that the
neighbor is reflecting back the receiver's Instance value. If the The receiver of a HELLO ACK object MUST also verify that the neighbor
neighbor advertises a wrong value in the Dst_Instance field, then a is reflecting back the receiver's Instance value. If the neighbor
node MUST treat the neighbor as if communication has been lost. advertises a wrong value in the Dst_Instance field, then a node MUST
treat the neighbor as if communication has been lost.
If no Instance values are received, via either REQUEST or ACK If no Instance values are received, via either REQUEST or ACK
objects, from a neighbor within a configured number of failure objects, from a neighbor within a configured number of
detection intervals, then a node MUST presume that it cannot hello_intervals, then a node MUST presume that it cannot communicate
communicate with the neighbor. When this occurs, then a new HELLO with the neighbor. The default for this number is 3.5.
message MUST be immediately issued with a Src_Instance value
different then the one advertised in the previous HELLO message.
This new value MUST continue to be advertised to the corresponding When communication is lost or presumed to be lost as described above,
neighbor until a reset or reboot occurs, or until another a node MAY re-initiate HELLOs. If a node does re-initiate it MUST
communication failure The receiver SHOULD also refresh all Path and use a Src_Instance value different than the one advertised in the
Resv state advertised to the neighbor. previous HELLO message. This new value MUST continue to be
advertised to the corresponding neighbor until a reset or reboot
occurs, or until another communication failure is detected. If a new
instance value has not been received from the neighbor, then the node
MUST advertise zero in the Dst_instance value field.
5.4. Multi-Link Considerations 5.4. Multi-Link Considerations
As previously noted, the Hello extension is targeted at detecting As previously noted, the Hello extension is targeted at detecting
node failures not per link failures. When there is only one link node failures not per link failures. When there is only one link
between neighboring nodes or when all links between a pair of nodes between neighboring nodes or when all links between a pair of nodes
fail, the distinction between node and link failures is not really fail, the distinction between node and link failures is not really
meaningful and handling of such failures has already been covered. meaningful and handling of such failures has already been covered.
When there are multiple links shared between neighbors, there are When there are multiple links shared between neighbors, there are
special considerations. When the links between neighbors are special considerations. When the links between neighbors are
numbered, then Hellos MUST be run on each link and the previously numbered, then Hellos MUST be run on each link and the previously
described mechanisms apply. described mechanisms apply.
When the links are unnumbered, link failure detection MUST be When the links are unnumbered, link failure detection MUST be
provided by some means other than Hellos. Each node SHOULD use a provided by some means other than Hellos. Each node SHOULD use a
single Hello exchange with the neighbor. When a node removes state single Hello exchange with the neighbor. The case where all links
due to a link failure, the node MUST advertise the removal of the have failed, is the same as the no received value case mentioned in
state, via appropriate Tear messages, over a non-failed link. The the previous section.
case where all links have failed, is the same as the no received
value case mentioned in the previous section.
5.5. Compatibility 5.5. Compatibility
The Hello extension does not affect the processing of any other RSVP
message. The only effect is to allow a link (node) down event to be
declared sooner than it would have been. RSVP response to that
condition is unchanged.
The Hello extension is fully backwards compatible. The Hello class The Hello extension is fully backwards compatible. The Hello class
is assigned a class value of the form 0bbbbbbb. Depending on the is assigned a class value of the form 0bbbbbbb. Depending on the
implementation, implementations that do not support the extension implementation, implementations that do not support the extension
will either silently discard Hello messages or will respond with an will either silently discard Hello messages or will respond with an
"Unknown Object Class" error. In either case the sender will fail to "Unknown Object Class" error. In either case the sender will fail to
see an acknowledgment for the issued Hello. see an acknowledgment for the issued Hello.
6. Security Considerations 6. Security Considerations
In principle these extentions to RSVP pose no security exposures over In principle these extentions to RSVP pose no security exposures over
and above RFC 2205[1]. However, there is a slight change in the and above RFC 2205[1]. However, there is a slight change in the
trust model. Traffic sent on a normal RSVP session can be filtered trust model. Traffic sent on a normal RSVP session can be filtered
according to source and destination addresses as well as port according to source and destination addresses as well as port
numbers. In this specification, filtering occurs only on the basis numbers. In this specification, filtering occurs only on the basis
of an incoming label. For this reason an administration may which to of an incoming label. For this reason an administration may which to
limit the domain over which LSP tunnels can be established. This can limit the domain over which LSP tunnels can be established. This can
be accomplished by setting filters on various ports to deny action on be accomplished by setting filters on various ports to deny action on
a RSVP path message with a SESSION object of type LSP_TUNNEL_IPv4 a RSVP path message with a SESSION object of type LSP_TUNNEL_IPv4 (7)
(7). In such a case an implementation MAY generate a Path_Err or LSP_TUNNEL_IPv4 (8).
message with an error code of 02, "Policy Control failure".
7. Intellectual Property Considerations 7. IANA Considerations
The responsible Internet authority (presently called the IANA)
assigns values to RSVP protocol parameters. With the current
document an EXPLICIT_ROUTE object and a ROUTE_RECORD object are
defined. Each of these objects contain subobjects. This section
defines the rules for the assignment of subobject numbers. This
section uses the terminology of BCP 26 "Guidelines for Writing an
IANA Considerations Section in RFCs".
EXPLICIT_ROUTE Subobject Type
EXPLICIT_ROUTE Subobject Type is a 7-bit number that identifies
the function of the subobject. There are no range restrictions.
All possible values except zero are available for assignment.
ROUTE_RECORD Subobject Type
ROUTE_RECORD Subobject Type is an 8-bit number that identifies the
function of the subobject. There are no range restrictions. All
possible values except zero are available for assignment.
8. Intellectual Property Considerations
The IETF has been notified of intellectual property rights claimed in The IETF has been notified of intellectual property rights claimed in
regard to some or all of the specification contained in this regard to some or all of the specification contained in this
document. For more information consult the online list of claimed document. For more information consult the online list of claimed
rights. rights.
8. Acknowledgments 9. Acknowledgments
This document contains ideas as well as text that have appeared in This document contains ideas as well as text that have appeared in
previous Internet Drafts. The authors of the current draft wish to previous Internet Drafts. The authors of the current draft wish to
thank the authors of those drafts. They are Steven Blake, Bruce thank the authors of those drafts. They are Steven Blake, Bruce
Davie, Roch Guerin, Sanjay Kamat, Yakov Rekhter, Eric Rosen, and Arun Davie, Roch Guerin, Sanjay Kamat, Yakov Rekhter, Eric Rosen, and Arun
Viswanathan. We also wish to thank Bora Akyol, Yoram Bernet and Alex Viswanathan. We also wish to thank Bora Akyol, Yoram Bernet and Alex
Mondrus for their comments on this draft. Mondrus for their comments on this draft.
9. References 10. References
[1] Braden, R. et al., "Resource ReSerVation Protocol (RSVP) -- [1] Braden, R. et al., "Resource ReSerVation Protocol (RSVP) --
Version 1, Functional Specification", RFC 2205, September 1997. Version 1, Functional Specification", RFC 2205, September 1997.
[2] Rosen, E. et al., "Multiprotocol Label Switching Architeture", [2] Rosen, E. et al., "Multiprotocol Label Switching Architeture",
Internet Draft, draft-ietf-mpls-arch-04.txt, February 1999. Internet Draft, draft-ietf-mpls-arch-06.txt, August 1999.
[3] Awduche, D. et al., "Requirements for Traffic Engineering over [3] Awduche, D. et al., "Requirements for Traffic Engineering over
MPLS", MPLS", RFC 2702, September 1999.
Internet Draft, draft-ietf-mpls-traffic-eng-00.txt, October 1998.
[4] Wroclawski, J., "Specification of the Controlled-Load Network [4] Wroclawski, J., "Specification of the Controlled-Load Network
Element Service", RFC 2211, September 1997. Element Service", RFC 2211, September 1997.
[5] Rosen, E., "MPLS Label Stack Encoding", Internet Draft, [5] Rosen, E. et al., "MPLS Label Stack Encoding", Internet Draft,
draft-ietf-mpls-label-encaps-03.txt, September 1998. draft-ietf-mpls-label-encaps-07.txt, September 1999.
[6] Bradner, S., "Key words for use in RFCs to Indicate Requirement [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, March 1997. Levels", RFC 2119, March 1997.
[7] Almquist, P., "Type of Service in the Internet Protocol Suite", [7] Almquist, P., "Type of Service in the Internet Protocol Suite",
RFC 1349, July 1992. RFC 1349, July 1992.
[8] Nichols, K. et al., "Definition of the Differentiated Services Field [8] Nichols, K. et al., "Definition of the Differentiated Services
(DS Field) in the IPv4 and IPv6 Headers", RFC 2474, December 1998. Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474,
December 1998.
10. Authors' Addresses [9] Herzog, S., "Signaled Preemption Priority Policy Element",
draft-ietf-rap-signaled-priority-04.txt, September 1999.
[10] Awduche, D. et al., "Applicability Statement for Extensions to RSVP
for LSP-Tunnels", draft-ietf-mpls-rsvp-tunnel-applicability-00.txt,
September 1999.
11. Authors' Addresses
Daniel O. Awduche Daniel O. Awduche
UUNET (MCI Worldcom), Inc UUNET (MCI Worldcom), Inc
3060 Williams Drive 3060 Williams Drive
Fairfax, VA 22031 Fairfax, VA 22031
Voice: +1 703 208 5277 Voice: +1 703 208 5277
Email: awduche@uu.net Email: awduche@uu.net
Lou Berger Lou Berger
LabN Consulting LabN Consulting, LLC
Voice: +1 301 468 9228 Voice: +1 301 468 9228
Email: lberger@labn.net Email: lberger@labn.net
Der-Hwa Gan Der-Hwa Gan
Juniper Networks, Inc. Juniper Networks, Inc.
385 Ravendale Drive 385 Ravendale Drive
Mountain View, CA 94043 Mountain View, CA 94043
Voice: +1 650 526 Voice: +1 650 526
Email: dhg@juniper.net Email: dhg@juniper.net
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/