summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3209.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3209.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3209.txt')
-rw-r--r--doc/rfc/rfc3209.txt3419
1 files changed, 3419 insertions, 0 deletions
diff --git a/doc/rfc/rfc3209.txt b/doc/rfc/rfc3209.txt
new file mode 100644
index 0000000..5575b57
--- /dev/null
+++ b/doc/rfc/rfc3209.txt
@@ -0,0 +1,3419 @@
+
+
+
+
+
+
+Network Working Group D. Awduche
+Request for Comments: 3209 Movaz Networks, Inc.
+Category: Standards Track L. Berger
+ D. Gan
+ Juniper Networks, Inc.
+ T. Li
+ Procket Networks, Inc.
+ V. Srinivasan
+ Cosine Communications, Inc.
+ G. Swallow
+ Cisco Systems, Inc.
+ December 2001
+
+
+ RSVP-TE: Extensions to RSVP for LSP Tunnels
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2001). All Rights Reserved.
+
+Abstract
+
+ This document describes the use of RSVP (Resource Reservation
+ Protocol), including all the necessary extensions, to establish
+ label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching).
+ Since 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 tunnels. A key application of LSP tunnels is traffic engineering
+ with MPLS as specified in RFC 2702.
+
+ We propose several additional objects that extend RSVP, allowing the
+ establishment of explicitly routed label switched paths using RSVP as
+ a signaling protocol. The result is the instantiation of label-
+ switched tunnels which can be automatically routed away from network
+ failures, congestion, and bottlenecks.
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 1]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+Contents
+
+ 1 Introduction .......................................... 3
+ 1.1 Background ............................................. 4
+ 1.2 Terminology ............................................ 6
+ 2 Overview .............................................. 7
+ 2.1 LSP Tunnels and Traffic Engineered Tunnels ............. 7
+ 2.2 Operation of LSP Tunnels ............................... 8
+ 2.3 Service Classes ........................................ 10
+ 2.4 Reservation Styles ..................................... 10
+ 2.4.1 Fixed Filter (FF) Style ................................ 10
+ 2.4.2 Wildcard Filter (WF) Style ............................. 11
+ 2.4.3 Shared Explicit (SE) Style ............................. 11
+ 2.5 Rerouting Traffic Engineered Tunnels ................... 12
+ 2.6 Path MTU ............................................... 13
+ 3 LSP Tunnel related Message Formats ..................... 15
+ 3.1 Path Message ........................................... 15
+ 3.2 Resv Message ........................................... 16
+ 4 LSP Tunnel related Objects ............................. 17
+ 4.1 Label Object ........................................... 17
+ 4.1.1 Handling Label Objects in Resv messages ................ 17
+ 4.1.2 Non-support of the Label Object ........................ 19
+ 4.2 Label Request Object ................................... 19
+ 4.2.1 Label Request without Label Range ...................... 19
+ 4.2.2 Label Request with ATM Label Range ..................... 20
+ 4.2.3 Label Request with Frame Relay Label Range ............. 21
+ 4.2.4 Handling of LABEL_REQUEST .............................. 22
+ 4.2.5 Non-support of the Label Request Object ................ 23
+ 4.3 Explicit Route Object .................................. 23
+ 4.3.1 Applicability .......................................... 24
+ 4.3.2 Semantics of the Explicit Route Object ................. 24
+ 4.3.3 Subobjects ............................................. 25
+ 4.3.4 Processing of the Explicit Route Object ................ 28
+ 4.3.5 Loops .................................................. 30
+ 4.3.6 Forward Compatibility .................................. 30
+ 4.3.7 Non-support of the Explicit Route Object ............... 31
+ 4.4 Record Route Object .................................... 31
+ 4.4.1 Subobjects ............................................. 31
+ 4.4.2 Applicability .......................................... 34
+ 4.4.3 Processing RRO ......................................... 35
+ 4.4.4 Loop Detection ......................................... 36
+ 4.4.5 Forward Compatibility .................................. 37
+ 4.4.6 Non-support of RRO ..................................... 37
+ 4.5 Error Codes for ERO and RRO ............................ 37
+ 4.6 Session, Sender Template, and Filter Spec Objects ...... 38
+ 4.6.1 Session Object ......................................... 39
+ 4.6.2 Sender Template Object ................................. 40
+ 4.6.3 Filter Specification Object ............................ 42
+
+
+
+Awduche, et al. Standards Track [Page 2]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 4.6.4 Reroute and Bandwidth Increase Procedure ............... 42
+ 4.7 Session Attribute Object ............................... 43
+ 4.7.1 Format without resource affinities ..................... 43
+ 4.7.2 Format with resource affinities ........................ 45
+ 4.7.3 Procedures applying to both C-Types .................... 46
+ 4.7.4 Resource Affinity Procedures .......................... 48
+ 5 Hello Extension ........................................ 49
+ 5.1 Hello Message Format ................................... 50
+ 5.2 HELLO Object formats ................................... 51
+ 5.2.1 HELLO REQUEST object ................................... 51
+ 5.2.2 HELLO ACK object ....................................... 51
+ 5.3 Hello Message Usage .................................... 52
+ 5.4 Multi-Link Considerations .............................. 53
+ 5.5 Compatibility .......................................... 54
+ 6 Security Considerations ................................ 54
+ 7 IANA Considerations .................................... 54
+ 7.1 Message Types .......................................... 55
+ 7.2 Class Numbers and C-Types .............................. 55
+ 7.3 Error Codes and Globally-Defined Error Value Sub-Codes . 57
+ 7.4 Subobject Definitions .................................. 57
+ 8 Intellectual Property Considerations ................... 58
+ 9 Acknowledgments ........................................ 58
+ 10 References ............................................. 58
+ 11 Authors' Addresses ..................................... 60
+ 12 Full Copyright Statement ............................... 61
+
+1. Introduction
+
+ Section 2.9 of the MPLS architecture [2] defines a label distribution
+ protocol as a set of procedures by which one Label Switched Router
+ (LSR) informs another of the meaning of labels used to forward
+ traffic between and through them. The MPLS architecture does not
+ assume a single label distribution protocol. This document is a
+ specification of extensions to RSVP for establishing label switched
+ paths (LSPs) in MPLS networks.
+
+ Several of the new features described in this document were motivated
+ by the requirements for traffic engineering over MPLS (see [3]). In
+ particular, the extended RSVP protocol supports the instantiation of
+ explicitly routed LSPs, with or without resource reservations. It
+ also supports smooth rerouting of LSPs, preemption, and loop
+ 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
+
+
+
+Awduche, et al. Standards Track [Page 3]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 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
+ by the label applied at the ingress node of the LSP, these paths can
+ be treated as tunnels, tunneling below normal IP routing and
+ 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
+ to network performance optimization. For example, LSP tunnels can be
+ automatically or manually routed away from network failures,
+ congestion, and bottlenecks. Furthermore, multiple parallel LSP
+ tunnels can be established between two nodes, and traffic between the
+ two nodes can be mapped onto the LSP tunnels according to local
+ policy. Although traffic engineering (that is, performance
+ optimization of operational networks) is expected to be an important
+ application of this specification, the extended RSVP protocol can be
+ used in a much wider context.
+
+ The purpose of this document is to describe the use of RSVP to
+ establish LSP tunnels. The intent is to fully describe all the
+ objects, packet formats, and procedures required to realize
+ interoperable implementations. A few new objects are also defined
+ that enhance management and diagnostics of LSP tunnels.
+
+ The document also describes a means of rapid node failure detection
+ via a new HELLO message.
+
+ All objects and messages described in this specification are optional
+ with respect to RSVP. This document discusses what happens when an
+ object described here is not supported by a node.
+
+ Throughout this document, the discussion will be restricted to
+ unicast label switched paths. Multicast LSPs are left for further
+ study.
+
+1.1. Background
+
+ Hosts and routers that support both RSVP [1] and Multi-Protocol Label
+ Switching [2] can associate labels with RSVP flows. When MPLS and
+ RSVP are combined, the definition of a flow can be made more
+ flexible. Once a label switched path (LSP) is established, 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
+ accomplished using a number of different criteria. The set of
+ packets that are assigned the same label value by a specific node are
+
+
+
+Awduche, et al. Standards Track [Page 4]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ said to belong to the same forwarding equivalence class (FEC) (see
+ [2]), and effectively define the "RSVP flow." When traffic is mapped
+ onto a label-switched path in this way, we call the LSP an "LSP
+ Tunnel". When labels are associated with traffic flows, it becomes
+ possible for a router to identify the appropriate reservation state
+ for a packet based on the packet's label value.
+
+ The signaling protocol model uses downstream-on-demand label
+ distribution. A request to bind labels to a specific LSP tunnel is
+ initiated by an ingress node through the RSVP Path message. For this
+ purpose, the RSVP Path message is augmented with a LABEL_REQUEST
+ object. Labels are allocated downstream and distributed (propagated
+ upstream) by means of the RSVP Resv message. For this purpose, the
+ RSVP Resv message is extended with a special LABEL object. The
+ procedures for label allocation, distribution, binding, and stacking
+ are described in subsequent sections of this document.
+
+ The signaling protocol model also supports explicit routing
+ capability. This is accomplished by incorporating a simple
+ EXPLICIT_ROUTE object into RSVP Path messages. The EXPLICIT_ROUTE
+ object encapsulates a concatenation of hops which constitutes the
+ explicitly routed path. Using this object, the paths taken by
+ label-switched RSVP-MPLS flows can be pre-determined, independent of
+ conventional IP routing. The explicitly routed path can be
+ administratively specified, or automatically computed by a suitable
+ entity based on QoS and policy requirements, taking into
+ consideration the prevailing network state. In general, path
+ computation can be control-driven or data-driven. The mechanisms,
+ processes, and algorithms used to compute explicitly routed paths are
+ beyond the scope of this specification.
+
+ One useful application of explicit routing is traffic engineering.
+ Using explicitly routed LSPs, a node at the ingress edge of an MPLS
+ domain can control the path through which traffic traverses from
+ itself, through the MPLS network, to an egress node. Explicit
+ routing can be used to optimize the utilization of network resources
+ and enhance traffic oriented performance characteristics.
+
+ The concept of explicitly routed label switched paths can be
+ generalized through the notion of abstract nodes. An abstract node
+ is 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. Using this concept of abstraction,
+ an explicitly routed LSP can be specified as a sequence of IP
+ prefixes or a sequence of Autonomous Systems.
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 5]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The signaling protocol model supports the specification of an
+ explicit path as a sequence of strict and loose routes. The
+ combination of abstract nodes, and strict and loose routes
+ significantly enhances the flexibility of path definitions.
+
+ An advantage of using RSVP to establish LSP tunnels is that it
+ enables the allocation of resources along the path. For example,
+ bandwidth can be allocated to an LSP tunnel using standard RSVP
+ reservations and Integrated Services service classes [4].
+
+ While resource reservations are useful, they are not mandatory.
+ Indeed, an LSP can be instantiated without any resource reservations
+ whatsoever. Such LSPs without resource reservations can be used, for
+ example, to carry best effort traffic. They can also be used in many
+ other contexts, including implementation of fall-back and recovery
+ 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
+
+
+
+
+Awduche, et al. Standards Track [Page 6]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ LSP Tunnel
+
+ An LSP which is used to tunnel below normal IP routing and/or
+ filtering mechanisms.
+
+ Traffic Engineered Tunnel (TE Tunnel)
+
+ A set of one or more LSP Tunnels which carries a traffic trunk.
+
+ Traffic Trunk
+
+ A set of flows aggregated by their service class and then placed
+ on an LSP or set of LSPs called a traffic engineered tunnel. For
+ further discussion see [3].
+
+2. Overview
+
+2.1. LSP Tunnels and Traffic Engineered Tunnels
+
+ According to [1], "RSVP defines a 'session' to be a data flow with a
+ particular destination and transport-layer protocol." However, when
+ RSVP and MPLS are combined, a flow or session can be defined with
+ greater flexibility and generality. The ingress node of an LSP can
+ 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
+ label effectively defines the "flow" through the LSP. We refer to
+ such an LSP as an "LSP tunnel" because the traffic through it is
+ opaque to intermediate nodes along the label switched path.
+
+ New RSVP SESSION, SENDER_TEMPLATE, and FILTER_SPEC objects, called
+ LSP_TUNNEL_IPv4 and LSP_TUNNEL_IPv6 have been defined to support the
+ LSP tunnel feature. The semantics of these objects, from the
+ perspective of a node along the label switched path, is that traffic
+ belonging to the LSP tunnel is identified solely on the basis of
+ packets arriving from the PHOP or "previous hop" (see [1]) with the
+ particular label value(s) assigned by this node to upstream senders
+ to the session. In fact, the 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
+ qualifier LSP_TUNNEL.
+
+ In some applications it is useful to associate sets of LSP tunnels.
+ This can be useful during reroute operations or to spread a traffic
+ trunk over multiple paths. In the traffic engineering application
+ such sets are called traffic engineered tunnels (TE tunnels). To
+ enable the identification and association of such LSP tunnels, two
+ identifiers are carried. A tunnel ID is part of the SESSION object.
+ The SESSION object uniquely defines a traffic engineered tunnel. The
+
+
+
+Awduche, et al. Standards Track [Page 7]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ SENDER_TEMPLATE and FILTER_SPEC objects carry an LSP ID. The
+ SENDER_TEMPLATE (or FILTER_SPEC) object together with the SESSION
+ object uniquely identifies an LSP tunnel
+
+2.2. Operation of LSP Tunnels
+
+ This section summarizes some of the features supported by RSVP as
+ extended by this document related to the operation of LSP tunnels.
+ These include: (1) the capability to establish LSP tunnels with or
+ without QoS requirements, (2) the capability to dynamically reroute
+ an established LSP tunnel, (3) the capability to observe the actual
+ route traversed by an established LSP tunnel, (4) the capability to
+ identify and diagnose LSP tunnels, (5) the capability to preempt an
+ established LSP tunnel under administrative policy control, and (6)
+ the capability to perform downstream-on-demand label allocation,
+ distribution, and binding. In the following paragraphs, these
+ features are briefly described. More detailed descriptions can be
+ found in subsequent sections of this document.
+
+ 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
+ message with a session type of LSP_TUNNEL_IPv4 or LSP_TUNNEL_IPv6 and
+ inserts a LABEL_REQUEST object into the Path message. The
+ LABEL_REQUEST object indicates that a label binding for this path is
+ requested and also provides an indication of the network layer
+ protocol that is to be carried over this path. The reason for this
+ is that the network layer protocol sent down an LSP cannot be assumed
+ to be IP and cannot be deduced from the L2 header, which simply
+ identifies the higher layer protocol as MPLS.
+
+ 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 network resources, or that satisfies some policy criteria, the
+ 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
+ Path message. The EXPLICIT_ROUTE object specifies the route as a
+ sequence of abstract nodes.
+
+ If, after a session has been successfully established, the sender
+ node discovers a better route, the sender can dynamically reroute the
+ session by simply changing the EXPLICIT_ROUTE object. If problems
+ are encountered with an EXPLICIT_ROUTE object, either because it
+ causes a routing loop or because some intermediate routers do not
+ support it, the sender node is notified.
+
+ By adding a RECORD_ROUTE object to the Path message, the sender node
+ can receive information about the actual route that the LSP tunnel
+ traverses. The sender node can also use this object to request
+
+
+
+Awduche, et al. Standards Track [Page 8]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ notification from the network concerning changes to the routing path.
+ The RECORD_ROUTE object is analogous to a path vector, and hence can
+ be used for loop detection.
+
+ Finally, a SESSION_ATTRIBUTE object can be added to Path messages to
+ aid in session identification and diagnostics. Additional control
+ information, such as setup and hold priorities, resource affinities
+ (see [3]), and local-protection, are also included in this object.
+
+ Routers along the path may use the setup and hold priorities along
+ with SENDER_TSPEC and any POLICY_DATA objects contained in Path
+ messages as input to policy control. For instance, in the traffic
+ engineering application, it is very useful to use the Path message as
+ a means of verifying that bandwidth exists at a particular priority
+ along an entire path before preempting any lower priority
+ reservations. If a Path message is allowed to progress when there
+ are insufficient resources, then there is a danger that lower
+ priority reservations downstream of this point will unnecessarily be
+ preempted in a futile attempt to service this request.
+
+ When the EXPLICIT_ROUTE object (ERO) is present, the Path message is
+ forwarded towards its destination along a path specified by the ERO.
+ 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
+ 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
+ nodes to provide a label binding for the session. If a node is
+ incapable of providing a label binding, it sends a PathErr message
+ 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
+ first node which does not provide this support.
+
+ The destination node of a label-switched path responds to a
+ LABEL_REQUEST by including a LABEL object in its response RSVP Resv
+ message. The LABEL object is inserted in the filter spec list
+ immediately following the filter spec to which it pertains.
+
+ The Resv message is sent back upstream towards the sender, following
+ the path state created by the Path message, in reverse order. Note
+ that if the path state was created by use of an ERO, then the Resv
+ message will follow the reverse path of the ERO.
+
+ 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
+
+
+
+Awduche, et al. Standards Track [Page 9]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ sends upstream to the PHOP. The label sent upstream in the LABEL
+ object is the label which this node will use to identify incoming
+ traffic associated with this LSP tunnel. This label also serves as
+ 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
+ "Next Hop Label Forwarding Entry" (NHLFE), see [2].
+
+ When the Resv message propagates upstream to the sender node, a
+ label-switched path is effectively established.
+
+2.3. Service Classes
+
+ This document does not restrict the type of Integrated Service
+ requests for reservations. However, an implementation SHOULD support
+ the Controlled-Load service [4] and the Null Service [16].
+
+2.4. Reservation Styles
+
+ The receiver node can select from among a set of possible reservation
+ styles for each session, and each RSVP session must have a particular
+ style. Senders have no influence on the choice of reservation style.
+ The receiver can choose different reservation styles for different
+ LSPs.
+
+ An RSVP session can result in one or more LSPs, depending on the
+ reservation style chosen.
+
+ Some reservation styles, such as FF, dedicate a particular
+ reservation to an individual sender node. Other reservation styles,
+ such as WF and SE, can share a reservation among several sender
+ nodes. The following sections discuss the different reservation
+ styles and their advantages and disadvantages. A more detailed
+ discussion of reservation styles can be found in [1].
+
+2.4.1. Fixed Filter (FF) Style
+
+ The Fixed Filter (FF) reservation style creates a distinct
+ reservation for traffic from each sender that is not shared by other
+ senders. This style is common for applications in which traffic from
+ each sender is likely to be concurrent and independent. The total
+ amount of reserved bandwidth on a link for sessions using FF is the
+ sum of the reservations for the individual senders.
+
+ Because each sender has its own reservation, a unique label is
+ assigned to each sender. This can result in a point-to-point LSP
+ between every sender/receiver pair.
+
+
+
+
+
+Awduche, et al. Standards Track [Page 10]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+2.4.2. Wildcard Filter (WF) Style
+
+ With the Wildcard Filter (WF) reservation style, a single shared
+ reservation is used for all senders to a session. The total
+ reservation on a link remains the same regardless of the number of
+ senders.
+
+ 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 single label value is allocated to the session. If there is only
+ one sender, the LSP looks like a normal point-to-point connection.
+ When multiple senders are present, a multipoint-to-point LSP (a
+ reversed tree) is created.
+
+ This style is useful for applications in which not all senders send
+ traffic at the same time. A phone conference, for example, is an
+ application where not all speakers talk at the same time. If,
+ however, all senders send simultaneously, then there is no means of
+ getting the proper reservations made. Either the reserved bandwidth
+ on links close to the destination will be less than what is required
+ or then the reserved bandwidth on links close to some senders will be
+ greater than what is required. This restricts the applicability of
+ WF for traffic engineering purposes.
+
+ Furthermore, because of the merging rules of WF, EXPLICIT_ROUTE
+ objects cannot be used with WF reservations. As a result of this
+ issue and the lack of applicability to traffic engineering, use of WF
+ is not considered in this document.
+
+2.4.3. Shared Explicit (SE) Style
+
+ The Shared Explicit (SE) style allows a receiver to explicitly
+ specify the senders to be included in a reservation. There is a
+ single reservation on a link for all the senders listed. Because
+ each sender is explicitly listed in the Resv message, different
+ labels may be assigned to different senders, thereby creating
+ separate LSPs.
+
+ SE style reservations can be provided using multipoint-to-point
+ label-switched-path or LSP per sender. Multipoint-to-point LSPs may
+ be used when path messages do not carry the EXPLICIT_ROUTE object, or
+ when Path messages have identical EXPLICIT_ROUTE objects. In either
+ of these cases a common label may be assigned.
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 11]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Path messages from different senders can each carry their own ERO,
+ and the paths taken by the senders can converge and diverge at any
+ point in the network topology. When Path messages have differing
+ EXPLICIT_ROUTE objects, separate LSPs for each EXPLICIT_ROUTE object
+ must be established.
+
+2.5. Rerouting Traffic Engineered Tunnels
+
+ One of the requirements for Traffic Engineering is the capability to
+ reroute an established TE tunnel under a number of conditions, based
+ on administrative policy. For example, in some contexts, an
+ administrative policy may dictate that a given TE tunnel is to be
+ rerouted when a more "optimal" route becomes available. Another
+ important context when TE tunnel reroute is usually required is upon
+ failure of a resource along the TE tunnel's established path. Under
+ some policies, it may also be necessary to return the TE tunnel to
+ its original path when the failed resource becomes re-activated.
+
+ In general, it is highly desirable not to disrupt traffic, or
+ adversely impact network operations while TE tunnel rerouting is in
+ progress. This adaptive and smooth rerouting requirement
+ necessitates establishing a new LSP tunnel and transferring traffic
+ from the old LSP tunnel onto it before tearing down the old LSP
+ tunnel. This concept is called "make-before-break." A problem can
+ arise because the old and new LSP tunnels might compete with each
+ other for resources on network segments which they have in common.
+ Depending on availability of resources, this competition can cause
+ Admission Control to prevent the new LSP tunnel from being
+ established. An advantage of using RSVP to establish LSP tunnels is
+ that it solves this problem very elegantly.
+
+ 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
+ by the old LSP tunnel should not be released before traffic is
+ transitioned to the new LSP tunnel, and reservations should not be
+ counted twice because this might cause Admission Control to reject
+ the new LSP tunnel.
+
+ A similar situation can arise when one wants to increase the
+ bandwidth of a TE tunnel. The new reservation will be for the full
+ amount needed, but the actual allocation needed is only the delta
+ between the new and old bandwidth. If policy is being applied to
+ PATH messages by intermediate nodes, then a PATH message requesting
+ too much bandwidth will be rejected. In this situation simply
+ increasing the bandwidth request without changing the
+ SENDER_TEMPLATE, could result in a tunnel being torn down, depending
+ upon local policy.
+
+
+
+
+Awduche, et al. Standards Track [Page 12]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The combination of the LSP_TUNNEL SESSION object and the SE
+ reservation style naturally accommodates smooth transitions in
+ bandwidth and routing. The idea is that the old and new LSP tunnels
+ share resources along links which they have in common. The
+ LSP_TUNNEL SESSION object is used to narrow the scope of the RSVP
+ session to the particular TE tunnel in question. To uniquely
+ identify a TE tunnel, we use the combination of 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 address, which is placed
+ in the Extended Tunnel ID field.
+
+ During the reroute or bandwidth-increase operation, the tunnel
+ ingress needs to appear as two different senders to the RSVP session.
+ This is achieved by the inclusion of the "LSP ID", which is carried
+ in the SENDER_TEMPLATE and FILTER_SPEC objects. Since the semantics
+ of these objects are changed, a new C-Types are assigned.
+
+ To effect a reroute, the ingress node picks a new LSP ID and forms a
+ new SENDER_TEMPLATE. The ingress node then creates a new ERO to
+ define the new path. Thereafter the node sends a new Path Message
+ using the original SESSION object and the new SENDER_TEMPLATE and
+ ERO. It continues to use the old LSP and refresh the old Path
+ message. On links that are not held in common, the new Path message
+ is treated as a conventional new LSP tunnel setup. On links held in
+ common, the shared SESSION object and SE style allow the LSP to be
+ established sharing resources with the old LSP. Once the ingress
+ node receives a Resv message for the new LSP, it can transition
+ traffic to it and tear down the old LSP.
+
+ To effect a bandwidth-increase, a new Path Message with a new LSP_ID
+ can be used to attempt a larger bandwidth reservation while the
+ current LSP_ID continues to be refreshed to ensure that the
+ reservation is not lost if the larger reservation fails.
+
+2.6. Path MTU
+
+ Standard RSVP [1] and Int-Serv [11] provide the RSVP sender with the
+ minimum MTU available between the sender and the receiver. This path
+ MTU identification capability is also provided for LSPs established
+ via RSVP.
+
+ Path MTU information is carried, depending on which is present, in
+ the Integrated Services or Null Service objects. When using
+ Integrated Services objects, path MTU is provided based on the
+ procedures defined in [11]. Path MTU identification when using Null
+ Service objects is defined in [16].
+
+
+
+
+
+Awduche, et al. Standards Track [Page 13]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ With standard RSVP, the path MTU information is used by the sender to
+ check which IP packets exceed the path MTU. For packets that exceed
+ the path MTU, the sender either fragments the packets or, when the IP
+ datagram has the "Don't Fragment" bit set, issues an ICMP destination
+ unreachable message. This path MTU related handling is also required
+ for LSPs established via RSVP.
+
+ The following algorithm applies to all unlabeled IP datagrams and to
+ any labeled packets which the node knows to be IP datagrams, to which
+ labels need to be added before forwarding. For labeled packets the
+ bottom of stack is found, the IP header examined.
+
+ Using the terminology defined in [5], an LSR MUST execute the
+ following algorithm:
+
+ 1. Let N be the number of bytes in the label stack (i.e, 4 times the
+ number of label stack entries) including labels to be added by
+ this node.
+
+ 2. Let M be the smaller of the "Maximum Initially Labeled IP Datagram
+ Size" or of (Path MTU - N).
+
+ When the size of an IPv4 datagram (without labels) exceeds the value
+ of M,
+
+ If the DF bit is not set in the IPv4 header, then
+
+ (a) the datagram MUST be broken into fragments, each of whose
+ size is no greater than M, and
+
+ (b) each fragment MUST be labeled and then forwarded.
+
+ If the DF bit is set in the IPv4 header, then
+
+ (a) the datagram MUST NOT be forwarded
+
+ (b) Create an ICMP Destination Unreachable Message:
+
+ i. set its Code field [12] to "Fragmentation Required and
+ DF Set",
+ ii. set its Next-Hop MTU field [13] to M
+
+ (c) If possible, transmit the ICMP Destination Unreachable
+ Message to the source of the of the discarded datagram.
+
+ When the size of an IPv6 datagram (without labels) exceeds the
+ value of M,
+
+
+
+
+Awduche, et al. Standards Track [Page 14]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ (a) the datagram MUST NOT be forwarded
+
+ (b) Create an ICMP Packet too Big Message with the Next-Hop
+ link MTU field [14] set to M
+
+ (c) If possible, transmit the ICMP Packet too Big Message to
+ the source of the of the discarded datagram.
+
+3. LSP Tunnel related Message Formats
+
+ Five new objects are defined in this section:
+
+ Object name Applicable RSVP messages
+ --------------- ------------------------
+ LABEL_REQUEST Path
+ LABEL Resv
+ EXPLICIT_ROUTE Path
+ RECORD_ROUTE Path, Resv
+ SESSION_ATTRIBUTE Path
+
+ New C-Types are also assigned for the SESSION, SENDER_TEMPLATE, and
+ FILTER_SPEC, objects.
+
+ Detailed descriptions of the new objects are given in later sections.
+ All new objects are OPTIONAL with respect to RSVP. An implementation
+ can choose to support a subset of objects. However, the
+ LABEL_REQUEST and LABEL objects are mandatory with respect to this
+ specification.
+
+ The LABEL and RECORD_ROUTE objects, are sender specific. In Resv
+ messages they MUST appear after the associated FILTER_SPEC and prior
+ to any subsequent FILTER_SPEC.
+
+ The relative placement of EXPLICIT_ROUTE, LABEL_REQUEST, and
+ SESSION_ATTRIBUTE objects is simply a recommendation. The ordering
+ of these objects is not important, so an implementation MUST be
+ prepared to accept objects in any order.
+
+3.1. Path Message
+
+ The format of the Path message is as follows:
+
+ <Path Message> ::= <Common Header> [ <INTEGRITY> ]
+ <SESSION> <RSVP_HOP>
+ <TIME_VALUES>
+ [ <EXPLICIT_ROUTE> ]
+ <LABEL_REQUEST>
+ [ <SESSION_ATTRIBUTE> ]
+
+
+
+Awduche, et al. Standards Track [Page 15]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ [ <POLICY_DATA> ... ]
+ <sender descriptor>
+
+ <sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
+ [ <ADSPEC> ]
+ [ <RECORD_ROUTE> ]
+
+3.2. Resv Message
+
+ The format of the Resv message is as follows:
+
+ <Resv Message> ::= <Common Header> [ <INTEGRITY> ]
+ <SESSION> <RSVP_HOP>
+ <TIME_VALUES>
+ [ <RESV_CONFIRM> ] [ <SCOPE> ]
+ [ <POLICY_DATA> ... ]
+ <STYLE> <flow descriptor list>
+
+ <flow descriptor list> ::= <FF flow descriptor list>
+ | <SE flow descriptor>
+
+
+ <FF flow descriptor list> ::= <FLOWSPEC> <FILTER_SPEC>
+ <LABEL> [ <RECORD_ROUTE> ]
+ | <FF flow descriptor list>
+ <FF flow descriptor>
+
+ <FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC> <LABEL>
+ [ <RECORD_ROUTE> ]
+
+ <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> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ]
+
+ Note: LABEL and RECORD_ROUTE (if present), are bound to the
+ preceding FILTER_SPEC. No more than one LABEL and/or
+ RECORD_ROUTE may follow each FILTER_SPEC.
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 16]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4. LSP Tunnel related Objects
+
+4.1. Label Object
+
+ Labels MAY be carried in Resv messages. For the FF and SE styles, a
+ label is associated with each sender. The label for a sender MUST
+ immediately follow the FILTER_SPEC for that sender in the Resv
+ message.
+
+ The LABEL object has the following format:
+
+ LABEL class = 16, C_Type = 1
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | (top label) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The contents of a LABEL is a single label, encoded in 4 octets. 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.
+
+4.1.1. Handling Label Objects in Resv messages
+
+ In MPLS a node may support multiple label spaces, perhaps associating
+ a unique space with each incoming interface. For the purposes of the
+ following discussion, the term "same label" means the identical label
+ value drawn from the identical label space. Further, the following
+ applies only to unicast sessions.
+
+ Labels received in Resv messages on different interfaces are always
+ considered to be different even if the label value is the same.
+
+4.1.1.1. Downstream
+
+ The downstream node selects a label to represent the flow. If a
+ label range has been specified in the label request, the label MUST
+ be drawn from that range. If no label is available the node sends a
+ PathErr message with an error code of "routing problem" and an error
+ value of "label allocation failure".
+
+ If a node receives a Resv message that has assigned the same label
+ value to multiple senders, then that node MAY also assign a single
+ value to those same senders or to any subset of those senders. Note
+
+
+
+
+Awduche, et al. Standards Track [Page 17]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ that if a node intends to police individual senders to a session, it
+ MUST assign unique labels to those senders.
+
+ In the case of ATM, one further condition applies. Some ATM nodes
+ are not capable of merging streams. These nodes MAY indicate this by
+ setting a bit in the label request to zero. The M-bit in the
+ LABEL_REQUEST object of C-Type 2, label request with ATM label range,
+ serves this purpose. The M-bit SHOULD be set by nodes which are
+ merge capable. If for any senders the M-bit is not set, the
+ downstream node MUST assign unique labels to those senders.
+
+ Once a label is allocated, the node formats a new LABEL object. The
+ node then sends the new LABEL object as part of the Resv message to
+ the previous hop. The node SHOULD be prepared to forward packets
+ carrying the assigned label prior to sending the Resv message. The
+ LABEL object SHOULD be kept in the Reservation State Block. It is
+ then used in the next Resv refresh event for formatting the Resv
+ message.
+
+ A node is expected to send a Resv message before its refresh timers
+ expire if the contents of the LABEL object change.
+
+4.1.1.2. Upstream
+
+ A node uses the label carried in the LABEL object as the outgoing
+ label associated with the sender. The router allocates a new label
+ and binds it to the incoming interface of this session/sender. This
+ is the same interface that the router uses to forward Resv messages
+ to the previous hops.
+
+ Several circumstance can lead to an unacceptable label.
+
+ 1. the node is a merge incapable ATM switch but the downstream
+ node has assigned the same label to two senders
+
+ 2. The implicit null label was assigned, but the node is not
+ capable of doing a penultimate pop for the associated L3PID
+
+ 3. The assigned label is outside the requested label range
+
+ In any of these events the node send a ResvErr message with an error
+ code of "routing problem" and an error value of "unacceptable label
+ value".
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 18]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4.1.2. Non-support of the Label Object
+
+ Under normal circumstances, a node should never receive a LABEL
+ object in a Resv message unless it had included a LABEL_REQUEST
+ object in the corresponding Path message. However, an RSVP router
+ that does not recognize the LABEL object sends a ResvErr with the
+ error code "Unknown object class" toward the receiver. This causes
+ the reservation to fail.
+
+4.2. Label Request Object
+
+ The Label Request Class is 19. Currently there are three possible
+ C_Types. Type 1 is a Label Request without label range. Type 2 is a
+ label request with an ATM label range. Type 3 is a label request
+ with a Frame Relay label range. The LABEL_REQUEST object formats are
+ shown below.
+
+4.2.1. Label Request without Label Range
+
+ Class = 19, C_Type = 1
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved | L3PID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved
+
+ This field is reserved. It MUST be set to zero on transmission
+ and MUST be ignored on receipt.
+
+ L3PID
+
+ an identifier of the layer 3 protocol using this path.
+ Standard Ethertype values are used.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 19]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4.2.2. Label Request with ATM Label Range
+
+ Class = 19, C_Type = 2
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved | L3PID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |M| Res | Minimum VPI | Minimum VCI |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Res | Maximum VPI | Maximum VCI |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved (Res)
+
+ This field is reserved. It MUST be set to zero on transmission
+ and MUST be ignored on receipt.
+
+ L3PID
+
+ an identifier of the layer 3 protocol using this path.
+ Standard Ethertype values are used.
+
+ M
+
+ Setting this bit to one indicates that the node is capable of
+ merging in the data plane
+
+ Minimum VPI (12 bits)
+
+ This 12 bit field specifies the lower bound of a block of
+ Virtual Path Identifiers that is supported on the originating
+ switch. If the VPI is less than 12-bits it MUST be right
+ justified in this field and preceding bits MUST be set to zero.
+
+ Minimum VCI (16 bits)
+
+ This 16 bit field specifies the lower bound of a block of
+ Virtual Connection Identifiers that is supported on the
+ originating switch. If the VCI is less than 16-bits it MUST be
+ right justified in this field and preceding bits MUST be set to
+ zero.
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 20]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Maximum VPI (12 bits)
+
+ This 12 bit field specifies the upper bound of a block of
+ Virtual Path Identifiers that is supported on the originating
+ switch. If the VPI is less than 12-bits it MUST be right
+ justified in this field and preceding bits MUST be set to zero.
+
+ Maximum VCI (16 bits)
+
+ This 16 bit field specifies the upper bound of a block of
+ Virtual Connection Identifiers that is supported on the
+ originating switch. If the VCI is less than 16-bits it MUST be
+ right justified in this field and preceding bits MUST be set to
+ zero.
+
+4.2.3. Label Request with Frame Relay Label Range
+
+ Class = 19, C_Type = 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved | L3PID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |DLI| Minimum DLCI |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved | Maximum DLCI |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved
+
+ This field is reserved. It MUST be set to zero on transmission
+ and ignored on receipt.
+
+ L3PID
+
+ an identifier of the layer 3 protocol using this path.
+ Standard Ethertype values are used.
+
+ DLI
+
+ DLCI Length Indicator. The number of bits in the DLCI. The
+ following values are supported:
+
+ Len DLCI bits
+
+ 0 10
+ 2 23
+
+
+
+Awduche, et al. Standards Track [Page 21]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Minimum DLCI
+
+ This 23-bit field specifies the lower bound of a block of Data
+ Link Connection Identifiers (DLCIs) that is supported on the
+ originating switch. The DLCI MUST be right justified in this
+ field and unused bits MUST be set to 0.
+
+ Maximum DLCI
+
+ This 23-bit field specifies the upper bound of a block of Data
+ Link Connection Identifiers (DLCIs) that is supported on the
+ originating switch. The DLCI MUST be right justified in this
+ field and unused bits MUST be set to 0.
+
+4.2.4. Handling of LABEL_REQUEST
+
+ To establish an LSP tunnel the sender creates a Path message with a
+ LABEL_REQUEST object. The LABEL_REQUEST object indicates that a
+ label binding for this path is requested and provides an indication
+ of the network layer protocol that is to be carried over this path.
+ This permits non-IP network layer protocols to be sent down an LSP.
+ This information can also be useful in actual label allocation,
+ because some reserved labels are protocol specific, see [5].
+
+ The LABEL_REQUEST SHOULD be stored in the Path State Block, so that
+ Path refresh messages will also contain the LABEL_REQUEST object.
+ When the Path message reaches the receiver, the presence of the
+ LABEL_REQUEST object triggers the receiver to allocate a label and to
+ place the label in the LABEL object for the corresponding Resv
+ message. If a label range was specified, the label MUST be allocated
+ from that range. A receiver that accepts a LABEL_REQUEST object MUST
+ include a LABEL object in Resv messages pertaining to that Path
+ message. If a LABEL_REQUEST object was not present in the Path
+ message, a node MUST NOT include a LABEL object in a Resv message for
+ that Path message's session and PHOP.
+
+ A node that sends a LABEL_REQUEST object MUST be ready to accept and
+ correctly process a LABEL object in the corresponding Resv messages.
+
+ A node that recognizes a LABEL_REQUEST object, but that is unable to
+ support it (possibly because of a failure to allocate labels) SHOULD
+ send a PathErr with the error code "Routing problem" and the error
+ value "MPLS label allocation failure." This includes the case where
+ a label range has been specified and a label cannot be allocated from
+ that range.
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 22]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ A node which receives and forwards a Path message each with a
+ LABEL_REQUEST object, MUST copy the L3PID from the received
+ LABEL_REQUEST object to the forwarded LABEL_REQUEST object.
+
+ If the receiver cannot support the protocol L3PID, it SHOULD send a
+ PathErr with the error code "Routing problem" and the error value
+ "Unsupported L3PID." This causes the RSVP session to fail.
+
+4.2.5. Non-support of the Label Request Object
+
+ An RSVP router that does not recognize the LABEL_REQUEST object sends
+ a PathErr with the error code "Unknown object class" toward the
+ sender. An RSVP router that recognizes the LABEL_REQUEST object but
+ does not recognize the C_Type sends a PathErr with the error code
+ "Unknown object C_Type" toward the sender. This causes the path
+ setup to fail. The sender should notify management that a LSP cannot
+ be established and possibly take action to continue the reservation
+ without the LABEL_REQUEST.
+
+ RSVP is designed to cope gracefully with non-RSVP routers anywhere
+ between senders and receivers. However, obviously, non-RSVP routers
+ cannot convey labels via RSVP. This means that if a router has a
+ neighbor that is known to not be RSVP capable, the router MUST NOT
+ advertise the LABEL_REQUEST object when sending messages that pass
+ through the non-RSVP routers. The router SHOULD send a PathErr back
+ to the sender, with the error code "Routing problem" and the error
+ 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
+ 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 presence of non-RSVP routers.
+
+4.3. Explicit Route Object
+
+ Explicit routes are specified via the EXPLICIT_ROUTE object (ERO).
+ The Explicit Route Class is 20. Currently one C_Type is defined,
+ Type 1 Explicit Route. The EXPLICIT_ROUTE object has the following
+ format:
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 23]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Class = 20, C_Type = 1
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ // (Subobjects) //
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Subobjects
+
+ The contents of an EXPLICIT_ROUTE object are a series of 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
+ first object is meaningful. Subsequent EXPLICIT_ROUTE objects MAY be
+ ignored and SHOULD NOT be propagated.
+
+4.3.1. Applicability
+
+ The EXPLICIT_ROUTE object is intended to be used only for unicast
+ situations. Applications of explicit routing to multicast are a
+ topic for further research.
+
+ The EXPLICIT_ROUTE object is to be used only when all routers along
+ the explicit route support RSVP and the EXPLICIT_ROUTE object. The
+ EXPLICIT_ROUTE object is assigned a class value of the form 0bbbbbbb.
+ RSVP routers that do not support the object will therefore respond
+ with an "Unknown Object Class" error.
+
+4.3.2. Semantics of the Explicit Route Object
+
+ An explicit route is a particular path in the network topology.
+ Typically, the explicit route is determined by a node, with the
+ intent of directing traffic along that path.
+
+ An explicit route is described as a list of groups of nodes along the
+ explicit route. In addition to the ability to identify specific
+ nodes along the path, an explicit route can identify a group of nodes
+ that must be traversed along the path. This capability allows the
+ routing system a significant amount of local flexibility in
+ fulfilling a request for an explicit route. This capability allows
+ the generator of the explicit route to have imperfect information
+ about the details of the path.
+
+
+
+
+
+Awduche, et al. Standards Track [Page 24]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The explicit route is encoded as a series of subobjects contained in
+ an EXPLICIT_ROUTE object. Each subobject identifies a group of nodes
+ in the explicit route. An explicit route is thus a specification of
+ groups of nodes to be traversed.
+
+ To formalize the discussion, we call each group of nodes an abstract
+ node. Thus, we say that an explicit route is a specification of a
+ set of abstract nodes to be traversed. If an abstract node consists
+ of only one node, we refer to it as a simple abstract node.
+
+ As an example of the concept of abstract nodes, consider an explicit
+ route that consists solely of Autonomous System number subobjects.
+ Each subobject corresponds to an Autonomous System in the global
+ topology. In this case, each Autonomous System is an abstract node,
+ and the explicit route is a path that includes each of the specified
+ Autonomous Systems. There may be multiple hops within each
+ Autonomous System, but these are opaque to the source node for the
+ explicit route.
+
+4.3.3. Subobjects
+
+ The contents of an EXPLICIT_ROUTE object are a series of variable-
+ length data items called subobjects. Each subobject has the form:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
+ |L| Type | Length | (Subobject contents) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
+
+ L
+
+ 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 bit is not set, the subobject represents a strict hop in
+ the explicit route.
+
+ Type
+
+ The Type indicates the type of contents of the subobject.
+ Currently defined values are:
+
+ 1 IPv4 prefix
+ 2 IPv6 prefix
+ 32 Autonomous system number
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 25]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the L, Type and Length fields. The Length MUST be at
+ least 4, and MUST be a multiple of 4.
+
+4.3.3.1. Strict and Loose Subobjects
+
+ 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
+ value of the attribute is 'strict.' For brevity, we say that if the
+ value of the subobject attribute is 'loose' then it is a 'loose
+ subobject.' Otherwise, it's a 'strict subobject.' Further, we say
+ that the abstract node of a strict or loose subobject is a strict or
+ a loose node, respectively. Loose and strict nodes are always
+ interpreted relative to their prior abstract nodes.
+
+ The path between a strict node and its preceding node MUST include
+ only network nodes from the strict node and its preceding abstract
+ node.
+
+ The path between a loose node and its preceding node MAY include
+ other network nodes that are not part of the strict node or its
+ preceding abstract node.
+
+4.3.3.2. Subobject 1: IPv4 prefix
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |L| Type | Length | IPv4 address (4 bytes) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv4 address (continued) | Prefix Length | Resvd |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ L
+
+ 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 bit is not set, the subobject represents a strict hop in
+ the explicit route.
+
+ Type
+
+ 0x01 IPv4 address
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 26]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the Type and Length fields. The Length is always 8.
+
+ IPv4 address
+
+ An IPv4 address. This address is treated as a prefix based on
+ the prefix length value below. Bits beyond the prefix are
+ ignored on receipt and SHOULD be set to zero on transmission.
+
+ Prefix length
+
+ Length in bits of the IPv4 prefix
+
+ Padding
+
+ Zero on transmission. Ignored on receipt.
+
+ The contents of an IPv4 prefix subobject are a 4-octet IPv4 address,
+ a 1-octet prefix length, and a 1-octet pad. The abstract node
+ represented by this subobject is the set of nodes that have an IP
+ address which lies within this prefix. Note that a prefix length of
+ 32 indicates a single IPv4 node.
+
+4.3.3.3. Subobject 2: IPv6 Prefix
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |L| Type | Length | IPv6 address (16 bytes) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) | Prefix Length | Resvd |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ L
+
+ 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 bit is not set, the subobject represents a strict hop in
+ the explicit route.
+
+
+
+
+Awduche, et al. Standards Track [Page 27]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Type
+
+ 0x02 IPv6 address
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the Type and Length fields. The Length is always 20.
+
+ IPv6 address
+
+ An IPv6 address. This address is treated as a prefix based on
+ the prefix length value below. Bits beyond the prefix are
+ ignored on receipt and SHOULD be set to zero on transmission.
+
+ Prefix Length
+
+ Length in bits of the IPv6 prefix.
+
+ Padding
+
+ Zero on transmission. Ignored on receipt.
+
+ The contents of an IPv6 prefix subobject are a 16-octet IPv6 address,
+ a 1-octet prefix length, and a 1-octet pad. The abstract node
+ represented by this subobject is the set of nodes that have an IP
+ address which lies within this prefix. Note that a prefix length of
+ 128 indicates a single IPv6 node.
+
+4.3.3.4. Subobject 32: Autonomous System Number
+
+ The contents of an Autonomous System (AS) number subobject are a 2-
+ octet AS number. The abstract node represented by this subobject is
+ the set of nodes belonging to the autonomous system.
+
+ The length of the AS number subobject is 4 octets.
+
+4.3.4. Processing of the Explicit Route Object
+
+4.3.4.1. Selection of the Next Hop
+
+ A node receiving a Path message containing an EXPLICIT_ROUTE object
+ 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
+ or an Autonomous System. Therefore, selection of this next hop may
+ involve a decision from a set of feasible alternatives. The criteria
+ used to make a selection from feasible alternatives is implementation
+ dependent and can also be impacted by local policy, and is beyond the
+
+
+
+Awduche, et al. Standards Track [Page 28]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ scope of this specification. However, it is assumed that each node
+ will make a best effort attempt to determine a loop-free path. Note
+ that paths so determined can be overridden by local policy.
+
+ To determine the next hop for the path, a node performs the following
+ steps:
+
+ 1) The node receiving the RSVP message MUST first evaluate the first
+ subobject. If the node is not part of the abstract node described
+ by the first subobject, it has received the message in error and
+ SHOULD return a "Bad initial subobject" error. If there is no
+ first subobject, the message is also in error and the system
+ SHOULD return a "Bad EXPLICIT_ROUTE object" error.
+
+ 2) If there is no second subobject, this indicates the end of the
+ explicit route. The EXPLICIT_ROUTE object SHOULD be removed from
+ the Path message. This node may or may not be the end of the
+ path. Processing continues with section 4.3.4.2, where a new
+ EXPLICIT_ROUTE object MAY be added to the Path message.
+
+ 3) Next, the node evaluates the second subobject. If the node is
+ also a part of the abstract node described by the second
+ subobject, then the node deletes the first subobject and continues
+ processing with step 2, above. Note that this makes the second
+ subobject into the first subobject of the next iteration and
+ allows the node to identify the next abstract node on the path of
+ the message after possible repeated application(s) of steps 2 and
+ 3.
+
+ 4) Abstract Node Border Case: The node determines whether it is
+ topologically adjacent to the abstract node described by the
+ second subobject. If so, the node selects a particular next hop
+ which is a member of the abstract node. The node then deletes the
+ first subobject and continues processing with section 4.3.4.2.
+
+ 5) Interior of the Abstract Node Case: Otherwise, the node selects a
+ next hop within the abstract node of the first subobject (which
+ the node belongs to) that is along the path to the abstract node
+ of the second subobject (which is the next abstract node). If no
+ such path exists then there are two cases:
+
+ 5a) If the second subobject is a strict subobject, there is an error
+ and the node SHOULD return a "Bad strict node" error.
+
+ 5b) Otherwise, if the second subobject is a loose subobject, the node
+ selects any next hop that is along the path to the next abstract
+ node. If no path exists, there is an error, and the node SHOULD
+ return a "Bad loose node" error.
+
+
+
+Awduche, et al. Standards Track [Page 29]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 6) Finally, the node replaces the first subobject with any subobject
+ that denotes an abstract node containing the next hop. This is
+ necessary so that when the explicit route is received by the next
+ hop, it will be accepted.
+
+4.3.4.2. Adding subobjects to the Explicit Route Object
+
+ After selecting a next hop, the node MAY alter the explicit route in
+ the following ways.
+
+ If, as part of executing the algorithm in section 4.3.4.1, the
+
+ EXPLICIT_ROUTE object is removed, the node MAY add a new
+ EXPLICIT_ROUTE object.
+
+ Otherwise, if the node is a member of the abstract node for the first
+ subobject, a series of subobjects MAY be inserted before the first
+ subobject or MAY replace the first subobject. Each subobject in this
+ series MUST denote an abstract node that is a subset of the current
+ abstract node.
+
+ Alternately, if the first subobject is a loose subobject, an
+ arbitrary series of subobjects MAY be inserted prior to the first
+ subobject.
+
+4.3.5. Loops
+
+ While the EXPLICIT_ROUTE object is of finite length, the existence of
+ loose nodes implies that it is possible to construct forwarding loops
+ during transients in the underlying routing protocol. This can be
+ detected by the originator of the explicit route through the use of
+ another opaque route object called the RECORD_ROUTE object. The
+ RECORD_ROUTE object is used to collect detailed path information and
+ is useful for loop detection and for diagnostics.
+
+4.3.6. Forward Compatibility
+
+ It is anticipated that new subobjects may be defined over time. A
+ node which encounters an unrecognized subobject during its normal ERO
+ processing sends a PathErr with the error code "Routing Error" and
+ error value of "Bad Explicit Route Object" toward the sender. The
+ EXPLICIT_ROUTE object is included, truncated (on the left) to the
+ offending subobject. The presence of an unrecognized subobject which
+ is not encountered in a node's ERO processing SHOULD be ignored. It
+ is passed forward along with the rest of the remaining ERO stack.
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 30]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4.3.7. Non-support of 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
+ sender. This causes the path setup to fail. The sender should
+ notify management that a LSP cannot be established and possibly take
+ action to continue the reservation without the EXPLICIT_ROUTE or via
+ a different explicit route.
+
+4.4. Record Route Object
+
+ Routes can be recorded via the RECORD_ROUTE object (RRO).
+ Optionally, labels may also be recorded. 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 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
+
+ The contents of a RECORD_ROUTE object are a series of
+ 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
+ Path message contains multiple RROs, only the first RRO is
+ meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be
+ propagated. Similarly, if in a Resv message multiple RROs are
+ encountered following a FILTER_SPEC before another FILTER_SPEC is
+ encountered, only the first RRO is meaningful. Subsequent RROs
+ SHOULD be ignored and SHOULD NOT be propagated.
+
+4.4.1. Subobjects
+
+ The contents of a RECORD_ROUTE object are a series of variable-length
+ data items called subobjects. Each subobject has its own Length
+ field. The length contains the total length of the subobject in
+ bytes, including the Type and Length fields. The length MUST always
+ be a multiple of 4, and at least 4.
+
+
+
+
+Awduche, et al. Standards Track [Page 31]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Subobjects are organized as a last-in-first-out stack. The first
+ subobject relative to the beginning of RRO is considered the top.
+ The last subobject is considered the bottom. When a new subobject is
+ added, it is always added to the top.
+
+ An empty RRO with no subobjects is considered illegal.
+
+ Three kinds of subobjects are currently defined.
+
+4.4.1.1. Subobject 1: IPv4 address
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | IPv4 address (4 bytes) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv4 address (continued) | Prefix Length | Flags |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 0x01 IPv4 address
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the Type and Length fields. The Length is always 8.
+
+ IPv4 address
+
+ A 32-bit unicast, host address. Any network-reachable
+ interface address is allowed here. Illegal addresses, such as
+ certain loopback addresses, SHOULD NOT be used.
+
+ Prefix length
+
+ 32
+
+ Flags
+
+ 0x01 Local protection available
+
+ Indicates that the link downstream of this node is
+ protected via a local repair mechanism. This flag can
+ only be set if the Local protection flag was set in the
+ SESSION_ATTRIBUTE object of the corresponding Path
+ message.
+
+
+
+
+Awduche, et al. Standards Track [Page 32]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 0x02 Local protection in use
+
+ Indicates that a local repair mechanism is in use to
+ maintain this tunnel (usually in the face of an outage
+ of the link it was previously routed over).
+
+4.4.1.2. Subobject 2: IPv6 address
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | IPv6 address (16 bytes) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv6 address (continued) | Prefix Length | Flags |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 0x02 IPv6 address
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the Type and Length fields. The Length is always 20.
+
+ IPv6 address
+
+ A 128-bit unicast host address.
+
+ Prefix length
+
+ 128
+
+ Flags
+
+ 0x01 Local protection available
+
+ Indicates that the link downstream of this node is
+ protected via a local repair mechanism. This flag can
+ only be set if the Local protection flag was set in the
+ SESSION_ATTRIBUTE object of the corresponding Path
+ message.
+
+
+
+Awduche, et al. Standards Track [Page 33]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 0x02 Local protection in use
+
+ Indicates that a local repair mechanism is in use to
+ maintain this tunnel (usually in the face of an outage
+ of the link it was previously routed over).
+
+4.4.1.3. Subobject 3, Label
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | Flags | C-Type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Contents of Label Object |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 0x03 Label
+
+ Length
+
+ The Length contains the total length of the subobject in bytes,
+ including the Type and Length fields.
+
+ Flags
+
+ 0x01 = Global label
+ This flag indicates that the label will be understood
+ if received on any interface.
+
+ C-Type
+
+ The C-Type of the included Label Object. Copied from the Label
+ Object.
+
+ Contents of Label Object
+
+ The contents of the Label Object. Copied from the Label Object
+
+4.4.2. Applicability
+
+ Only the procedures for use in unicast sessions are defined here.
+
+ There are three possible uses of RRO in RSVP. First, an RRO can
+ function as a loop detection mechanism to discover L3 routing loops,
+ or loops inherent in the explicit route. The exact procedure for
+ doing so is described later in this document.
+
+
+
+Awduche, et al. Standards Track [Page 34]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Second, an RRO collects up-to-date detailed path information hop-by-
+ hop about RSVP sessions, providing valuable information to the sender
+ or receiver. Any path change (due to network topology changes) will
+ be reported.
+
+ Third, RRO syntax is designed so that, with minor changes, the whole
+ object can be used as input to the EXPLICIT_ROUTE object. This is
+ useful if the sender receives RRO from the receiver in a Resv
+ message, applies it to EXPLICIT_ROUTE object in the next Path message
+ in order to "pin down session path".
+
+4.4.3. Processing RRO
+
+ Typically, a node initiates an RSVP session by adding the RRO to the
+ Path message. The initial RRO contains only one subobject - the
+ sender's IP addresses. If the node also desires label recording, it
+ sets the Label_Recording flag in the SESSION_ATTRIBUTE object.
+
+ When a Path message containing an RRO is received by an intermediate
+ router, the router stores a copy of it in the Path State Block. The
+ RRO is then used in the next Path refresh event for formatting Path
+ messages. When a new Path message is to be sent, the router adds a
+ new subobject to the RRO and appends the resulting RRO to the Path
+ message before transmission.
+
+ The newly added subobject MUST be this router's IP address. The
+ address to be added SHOULD be the interface address of the outgoing
+ Path messages. If there are multiple addresses to choose from, the
+ decision is a local matter. However, it is RECOMMENDED that the same
+ address be chosen consistently.
+
+ When the Label_Recording flag is set in the SESSION_ATTRIBUTE object,
+ nodes doing route recording SHOULD include a Label Record subobject.
+ If the node is using a global label space, then it SHOULD set the
+ Global Label flag.
+
+ The Label Record subobject is pushed onto the RECORD_ROUTE object
+ prior to pushing on the node's IP address. A node MUST NOT push on a
+ Label Record subobject without also pushing on an IPv4 or IPv6
+ subobject.
+
+ Note that on receipt of the initial Path message, a node is unlikely
+ to have a label to include. Once a label is obtained, the node
+ SHOULD include the label in the RRO in the next Path refresh event.
+
+ If the newly added subobject causes the RRO to be too big to fit in a
+ Path (or Resv) message, the RRO object SHALL be dropped from the
+ message and message processing continues as normal. A PathErr (or
+
+
+
+Awduche, et al. Standards Track [Page 35]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ ResvErr) message SHOULD be sent back to the sender (or receiver). An
+ error code of "Notify" and an error value of "RRO too large for MTU"
+ is used. If the receiver receives such a ResvErr, it SHOULD send a
+ PathErr message with error code of "Notify" and an error value of
+ "RRO notification".
+
+ A sender receiving either of these error values SHOULD remove the RRO
+ from the Path message.
+
+ Nodes SHOULD resend the above PathErr or ResvErr message each n
+ seconds where n is the greater of 15 and the refresh interval for the
+ associated Path or RESV message. The node MAY apply limits and/or
+ back-off timers to limit the number of messages sent.
+
+ An RSVP router can decide to send Path messages before its refresh
+ time if the RRO in the next Path message is different from the
+ previous one. This can happen if the contents of the RRO received
+ from the previous hop router changes or if this RRO is newly added to
+ (or deleted from) the Path message.
+
+ When the destination node of an RSVP session receives a Path message
+ with an RRO, this indicates that the sender node needs route
+ recording. The destination node initiates the RRO process by adding
+ an RRO to Resv messages. The processing mirrors that of the Path
+ messages. The only difference is that the RRO in a Resv message
+ records the path information in the reverse direction.
+
+ Note that each node along the path will now have the complete route
+ from source to destination. The Path RRO will have the route from
+ the source to this node; the Resv RRO will have the route from this
+ node to the destination. This is useful for network management.
+
+ A received Path message without an RRO indicates that the sender node
+ no longer needs route recording. Subsequent Resv messages SHALL NOT
+ contain an RRO.
+
+4.4.4. Loop Detection
+
+ As part of processing an incoming RRO, an intermediate router looks
+ into all subobjects contained within the RRO. If the router
+ determines that it is already in the list, a forwarding loop exists.
+
+ An RSVP session is loop-free if downstream nodes receive Path
+ messages or upstream nodes receive Resv messages with no routing
+ loops detected in the contained RRO.
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 36]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ There are two broad classifications of forwarding loops. The first
+ class is the transient loop, which occurs as a normal part of
+ operations as L3 routing tries to converge on a consistent forwarding
+ path for all destinations. The second class of forwarding loop is
+ the permanent loop, which normally results from network mis-
+ configuration.
+
+ The action performed by a node on receipt of an RRO depends on the
+ message type in which the RRO is received.
+
+ For Path messages containing a forwarding loop, the router builds and
+ sends a "Routing problem" PathErr message, with the error value "loop
+ detected," and drops the Path message. Until the loop is eliminated,
+ this session is not suitable for forwarding data packets. How the
+ loop eliminated is beyond the scope of this document.
+
+ For Resv messages containing a forwarding loop, the router simply
+ drops the message. Resv messages should not loop if Path messages do
+ not loop.
+
+4.4.5. Forward Compatibility
+
+ New subobjects may be defined for the RRO. When processing an RRO,
+ unrecognized subobjects SHOULD be ignored and passed on. When
+ processing an RRO for loop detection, a node SHOULD parse over any
+ unrecognized objects. Loop detection works by detecting subobjects
+ which were inserted by the node itself on an earlier pass of the
+ object. This ensures that the subobjects necessary for loop
+ detection are always understood.
+
+4.4.6. Non-support of RRO
+
+ 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
+ value of the form 0bbbbbbb. RSVP routers that do not support the
+ object will therefore respond with an "Unknown Object Class" error.
+
+4.5. Error Codes for ERO and RRO
+
+ In the processing described above, certain errors must be reported as
+ either a "Routing Problem" or "Notify". The value of the "Routing
+ Problem" error code is 24; the value of the "Notify" error code is
+ 25.
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 37]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The following defines error values for the Routing Problem Error
+ Code:
+
+ Value Error:
+
+ 1 Bad EXPLICIT_ROUTE object
+
+ 2 Bad strict node
+
+ 3 Bad loose node
+
+ 4 Bad initial subobject
+
+ 5 No route available toward destination
+
+ 6 Unacceptable label value
+
+ 7 RRO indicated routing loops
+
+ 8 MPLS being negotiated, but a non-RSVP-capable router
+ stands in the path
+
+ 9 MPLS label allocation failure
+
+ 10 Unsupported L3PID
+
+ For the Notify Error Code, the 16 bits of the Error Value field are:
+
+ ss00 cccc cccc cccc
+
+ The high order bits are as defined under Error Code 1. (See [1]).
+
+ When ss = 00, the following subcodes are defined:
+
+ 1 RRO too large for MTU
+
+ 2 RRO notification
+
+ 3 Tunnel locally repaired
+
+4.6. Session, Sender Template, and Filter Spec Objects
+
+ New C-Types are defined for the SESSION, SENDER_TEMPLATE and
+ FILTER_SPEC objects.
+
+ The LSP_TUNNEL objects have the following format:
+
+
+
+
+
+Awduche, et al. Standards Track [Page 38]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4.6.1. Session Object
+
+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 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MUST be zero | Tunnel ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Tunnel ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ IPv4 tunnel end point address
+
+ IPv4 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 32-bit 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 IPv4 address here as a
+ globally unique identifier.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 39]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+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.1. LSP_TUNNEL_IPv4 Sender Template Object
+
+ Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7
+
+
+
+Awduche, et al. Standards Track [Page 40]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | IPv4 tunnel sender address |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MUST be zero | LSP ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ IPv4 tunnel sender address
+
+ IPv4 address for a sender node
+
+ LSP ID
+
+ A 16-bit identifier used in the SENDER_TEMPLATE and the
+ FILTER_SPEC that can be changed to allow a sender to share
+ resources with itself.
+
+4.6.2.2. LSP_TUNNEL_IPv6 Sender Template Object
+
+ Class = SENDER_TEMPLATE, 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 sender address |
+ + +
+ | (16 bytes) |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MUST be zero | LSP ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ IPv6 tunnel sender address
+
+ IPv6 address for a sender node
+
+ LSP ID
+
+ A 16-bit identifier used in the SENDER_TEMPLATE and the
+ FILTER_SPEC that can be changed to allow a sender to share
+ resources with itself.
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 41]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+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 and Bandwidth Increase Procedure
+
+ This section describes how to setup a tunnel that is capable of
+ maintaining resource reservations (without double counting) while it
+ is being rerouted or while it is attempting to increase its
+ bandwidth. In the initial Path message, the ingress node forms a
+ 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 LSP_ID. Tunnel setup then proceeds according to the normal
+ procedure.
+
+ On receipt of the Path message, the egress node sends a Resv message
+ with the STYLE Shared Explicit toward the ingress node.
+
+ When an ingress node with an established path wants to change that
+ path, it forms a new Path message as follows. The existing SESSION
+ object is used. In particular the Tunnel_ID and Extended_Tunnel_ID
+ are unchanged. The ingress node picks a new LSP_ID to form a new
+ SENDER_TEMPLATE. It creates an EXPLICIT_ROUTE object for the new
+ route. The new Path message is sent. The ingress node refreshes
+ both the old and new path messages.
+
+ The egress node responds with a Resv message with an SE flow
+ descriptor formatted as:
+
+ <FLOWSPEC><old_FILTER_SPEC><old_LABEL_OBJECT><new_FILTER_SPEC>
+ <new_LABEL_OBJECT>
+
+ (Note that if the PHOPs are different, then two messages are sent
+ each with the appropriate FILTER_SPEC and LABEL_OBJECT.)
+
+
+
+
+
+Awduche, et al. Standards Track [Page 42]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 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
+ route.
+
+4.7. Session Attribute Object
+
+ The Session Attribute Class is 207. Two C_Types are defined,
+ LSP_TUNNEL, C-Type = 7 and LSP_TUNNEL_RA, C-Type = 1. The
+ LSP_TUNNEL_RA C-Type includes all the same fields as the LSP_TUNNEL
+ C-Type. Additionally it carries resource affinity information. The
+ formats are as follows:
+
+4.7.1. Format without resource affinities
+
+ SESSION_ATTRIBUTE class = 207, LSP_TUNNEL C-Type = 7
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Setup Prio | Holding Prio | Flags | Name Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ // Session Name (NULL padded display string) //
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Setup Priority
+
+ The priority of the session with respect to taking resources,
+ 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
+ preempt another session.
+
+ Holding Priority
+
+ The priority of the session with respect to holding resources,
+ in the range of 0 to 7. The value 0 is the highest priority.
+ Holding Priority is used in deciding whether this session can
+ be preempted by another session.
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 43]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Flags
+
+ 0x01 Local protection desired
+
+ This flag permits transit routers to use a local repair
+ mechanism which may result in violation of the explicit
+ route object. When a fault is detected on an adjacent
+ downstream link or node, a transit router can reroute
+ traffic for fast service restoration.
+
+ 0x02 Label recording desired
+
+ This flag indicates that label information should be
+ included when doing a route record.
+
+ 0x04 SE Style desired
+
+ This flag indicates that the tunnel ingress node may
+ choose to reroute this tunnel without tearing it down.
+ A tunnel egress node SHOULD use the SE Style when
+ responding with a Resv message.
+
+ Name Length
+
+ The length of the display string before padding, in bytes.
+
+ Session Name
+
+ A null padded string of characters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 44]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+4.7.2. Format with resource affinities
+
+ SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Exclude-any |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Include-any |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Include-all |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Setup Prio | Holding Prio | Flags | Name Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ // Session Name (NULL padded display string) //
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Exclude-any
+
+ A 32-bit vector representing a set of attribute filters
+ associated with a tunnel any of which renders a link
+ unacceptable.
+
+ Include-any
+
+ A 32-bit vector representing a set of attribute filters
+ associated with a tunnel any of which renders a link acceptable
+ (with respect to this test). A null set (all bits set to zero)
+ automatically passes.
+
+ Include-all
+
+ A 32-bit vector representing a set of attribute filters
+ associated with a tunnel all of which must be present for a
+ link to be acceptable (with respect to this test). A null set
+ (all bits set to zero) automatically passes.
+
+ Setup Priority
+
+ The priority of the session with respect to taking resources,
+ 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
+ preempt another session.
+
+
+
+
+
+Awduche, et al. Standards Track [Page 45]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Holding Priority
+
+ The priority of the session with respect to holding resources,
+ in the range of 0 to 7. The value 0 is the highest priority.
+ Holding Priority is used in deciding whether this session can
+ be preempted by another session.
+
+ Flags
+
+ 0x01 Local protection desired
+
+ This flag permits transit routers to use a local repair
+ mechanism which may result in violation of the explicit
+ route object. When a fault is detected on an adjacent
+ downstream link or node, a transit router can reroute
+ traffic for fast service restoration.
+
+ 0x02 Label recording desired
+
+ This flag indicates that label information should be
+ included when doing a route record.
+
+ 0x04 SE Style desired
+
+ This flag indicates that the tunnel ingress node may
+ choose to reroute this tunnel without tearing it down.
+ A tunnel egress node SHOULD use the SE Style when
+ responding with a Resv message.
+
+ Name Length
+
+ The length of the display string before padding, in bytes.
+
+ Session Name
+
+ A null padded string of characters.
+
+4.7.3. Procedures applying to both C-Types
+
+ The support of setup and holding priorities is OPTIONAL. A node can
+ recognize this information but be unable to perform the requested
+ operation. The node SHOULD pass the information downstream
+ unchanged.
+
+ As noted above, preemption is implemented by two priorities. The
+ Setup Priority is the priority for taking resources. The Holding
+ Priority is the priority for holding a resource. Specifically, the
+
+
+
+
+Awduche, et al. Standards Track [Page 46]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Holding Priority is the priority at which resources assigned to this
+ session will be reserved. The Setup Priority SHOULD never be higher
+ 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 [9]. 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 Path message is considered for admission, the bandwidth
+ requested is compared with the bandwidth available at the priority
+ specified in the Setup Priority.
+
+ If the requested bandwidth is not available a PathErr message is
+ 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
+ globally defined subcode and is not informational. The 002 indicates
+ "requested bandwidth unavailable".
+
+ If the requested bandwidth is less than the unused bandwidth then
+ processing is complete. If the requested bandwidth is available, but
+ is in use by lower priority sessions, then lower priority sessions
+ (beginning with the lowest priority) MAY be preempted to free the
+ necessary bandwidth.
+
+ When preemption is supported, each preempted reservation triggers a
+ TC_Preempt() upcall to local clients, passing a subcode that
+ indicates the reason. A ResvErr and/or PathErr with the code "Policy
+ Control failure" SHOULD be sent toward the downstream receivers and
+ upstream senders.
+
+
+
+
+Awduche, et al. Standards Track [Page 47]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The support of local-protection is OPTIONAL. A node may recognize
+ the local-protection Flag but may be unable to perform the requested
+ operation. In this case, the node SHOULD pass the information
+ downstream unchanged.
+
+ The recording of the Label subobject in the ROUTE_RECORD object is
+ controlled by the label-recording-desired flag in the
+ SESSION_ATTRIBUTE object. Since the Label subobject is not needed
+ for all applications, it is not automatically recorded. The flag
+ allows applications to request this only when needed.
+
+ The contents of the Session Name field are a string, typically of
+ display-able characters. The Length MUST always be a multiple of 4
+ and MUST be at least 8. For an object length that is not a multiple
+ of 4, the object is padded with trailing NULL characters. The Name
+ Length field contains the actual string length.
+
+4.7.4. Resource Affinity Procedures
+
+ Resource classes and resource class affinities are described in [3].
+ In this document we use the briefer term resource affinities for the
+ latter term. Resource classes can be associated with links and
+ advertised in routing protocols. Resource class affinities are used
+ by RSVP in two ways. In order to be validated a link MUST pass the
+ three tests below. If the test fails a PathErr with the code "policy
+ control failure" SHOULD be sent.
+
+ When a new reservation is considered for admission over a strict node
+ in an ERO, a node MAY validate the resource affinities with the
+ resource classes of that link. When a node is choosing links in
+ order to extend a loose node of an ERO, the node MUST validate the
+ resource classes of those links against the resource affinities. If
+ no acceptable links can be found to extend the ERO, the node SHOULD
+ send a PathErr message with an error code of "Routing Problem" and an
+ error value of "no route available toward destination".
+
+ In order to be validated a link MUST pass the following three tests.
+
+ To precisely describe the tests use the definitions in the object
+ description above. We also define
+
+ Link-attr A 32-bit vector representing attributes associated
+ with a link.
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 48]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The three tests are
+
+ 1. Exclude-any
+
+ This test excludes a link from consideration if the link
+ carries any of the attributes in the set.
+
+ (link-attr & exclude-any) == 0
+
+ 2. Include-any
+
+ This test accepts a link if the link carries any of the
+ attributes in the set.
+
+ (include-any == 0) | ((link-attr & include-any) != 0)
+
+ 3. Include-all
+
+ This test accepts a link only if the link carries all of the
+ attributes in the set.
+
+ (include-all == 0) | (((link-attr & include-all) ^ include-
+ all) == 0)
+
+ For a link to be acceptable, all three tests MUST pass. If the test
+ fails, the node SHOULD send a PathErr message with an error code of
+ "Routing Problem" and an error value of "no route available toward
+ destination".
+
+ If a Path message contains multiple SESSION_ATTRIBUTE objects, only
+ the first SESSION_ATTRIBUTE object is meaningful. Subsequent
+ SESSION_ATTRIBUTE objects can be ignored and need not be forwarded.
+
+ All RSVP routers, whether they support the SESSION_ATTRIBUTE object
+ or not, SHALL forward the object unmodified. The presence of non-
+ RSVP routers anywhere between senders and receivers has no impact on
+ this object.
+
+5. Hello Extension
+
+ The RSVP Hello extension enables RSVP nodes to detect when a
+ neighboring node is not reachable. The mechanism provides node to
+ node failure detection. When such a failure is detected it is
+ handled much the same as a link layer communication failure. This
+ mechanism is intended to be used when notification of link layer
+ failures is not available and unnumbered links are not used, or when
+ the failure detection mechanisms provided by the link layer are not
+ sufficient for timely node failure detection.
+
+
+
+Awduche, et al. Standards Track [Page 49]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ It should be noted that node failure detection is not the same as a
+ link failure detection mechanism, particularly in the case of
+ multiple parallel unnumbered links.
+
+ The Hello extension is specifically designed so that one side can use
+ the mechanism while the other side does not. Neighbor failure
+ detection may be initiated at any time. This includes when neighbors
+ first learn about each other, or just when neighbors are sharing Resv
+ or Path state.
+
+ The Hello extension is composed of a Hello message, a HELLO REQUEST
+ object and a HELLO ACK object. Hello processing between two
+ neighbors supports independent selection of, typically configured,
+ failure detection intervals. Each neighbor can autonomously issue
+ HELLO REQUEST objects. Each request is answered by an
+ acknowledgment. Hello Messages also contain enough information so
+ that one neighbor can suppress issuing hello requests and still
+ perform neighbor failure detection. A Hello message may be included
+ as a sub-message within a bundle message.
+
+ Neighbor failure detection is accomplished by collecting and storing
+ a neighbor's "instance" value. If a change in value is seen or if
+ the neighbor is not properly reporting the locally advertised value,
+ then the neighbor is presumed to have reset. When a neighbor's value
+ is seen to change or when communication is lost with a neighbor, then
+ the instance value advertised to that neighbor is also changed. The
+ HELLO objects provide a mechanism for polling for and providing an
+ instance value. A poll request also includes the sender's instance
+ value. This allows the receiver of a poll to optionally treat the
+ poll as an implicit poll response. This optional handling is an
+ optimization that can reduce the total number of polls and responses
+ processed by a pair of neighbors. In all cases, when both sides
+ support the optimization the result will be only one set of polls and
+ responses per failure detection interval. Depending on selected
+ intervals, the same benefit can occur even when only one neighbor
+ supports the optimization.
+
+5.1. Hello Message Format
+
+ Hello Messages are always sent between two RSVP neighbors. The IP
+ source address is the IP address of the sending node. The IP
+ destination address is the IP address of the neighbor node.
+
+ The HELLO mechanism is intended for use between immediate neighbors.
+ When HELLO messages are being the exchanged between immediate
+ neighbors, the IP TTL field of all outgoing HELLO messages SHOULD be
+ set to 1.
+
+
+
+
+Awduche, et al. Standards Track [Page 50]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ The Hello message has a Msg Type of 20. The Hello message format is
+ as follows:
+
+ <Hello Message> ::= <Common Header> [ <INTEGRITY> ]
+ <HELLO>
+
+5.2. HELLO Object formats
+
+ The HELLO Class is 22. There are two C_Types defined.
+
+5.2.1. HELLO REQUEST object
+
+ Class = HELLO Class, C_Type = 1
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Src_Instance |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Dst_Instance |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+5.2.2. HELLO ACK object
+
+ Class = HELLO Class, C_Type = 2
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Src_Instance |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Dst_Instance |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Src_Instance: 32 bits
+
+ a 32 bit value that represents the sender's instance. The
+ advertiser maintains a per neighbor representation/value. This
+ value MUST change when the sender is reset, when the node reboots,
+ or when communication is lost to the neighboring node and
+ otherwise remains the same. This field MUST NOT be set to zero
+ (0).
+
+ Dst_Instance: 32 bits
+
+ The most recently received Src_Instance value received from the
+ neighbor. This field MUST be set to zero (0) when no value has
+ ever been seen from the neighbor.
+
+
+
+Awduche, et al. Standards Track [Page 51]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+5.3. Hello Message Usage
+
+ The Hello Message is completely OPTIONAL. All messages may be
+ ignored by nodes which do not wish to participate in Hello message
+ processing. The balance of this section is written assuming that the
+ receiver as well as the sender is participating. In particular, the
+ use of MUST and SHOULD with respect to the receiver applies only to a
+ node that supports Hello message processing.
+
+ A node periodically generates a Hello message containing a HELLO
+ REQUEST object for each neighbor who's status is being tracked. The
+ periodicity is governed by the hello_interval. This value MAY be
+ configured on a per neighbor basis. The default value is 5 ms.
+
+ 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. For reference, call this
+ variable Neighbor_Src_Instance. If no value has ever been received
+ from the neighbor or this node considers communication to the
+ neighbor to have been lost, the Neighbor_Src_Instance is set to zero
+ (0). 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
+ receiver MUST generate a Hello message containing a HELLO ACK object.
+ The receiver SHOULD also verify that the neighbor has not reset.
+ This is done by comparing the sender's Src_Instance field value with
+ the previously received value. If the Neighbor_Src_Instance value is
+ zero, and the Src_Instance field is non-zero, the
+ Neighbor_Src_Instance is updated with the new value. If the value
+ differs or the Src_Instance field is zero, then the node MUST treat
+ the neighbor as if communication has been lost.
+
+ The receiver of a HELLO REQUEST object SHOULD also verify that the
+ neighbor is reflecting back the receiver's Instance value. This is
+ done by comparing the received Dst_Instance field with the
+ Src_Instance field value most recently transmitted to that neighbor.
+ If the neighbor continues to advertise a wrong non-zero value after a
+ configured number of intervals, then the node MUST treat the neighbor
+ as if communication has been lost.
+
+ On receipt of a message containing a HELLO ACK object, the receiver
+ MUST verify that the neighbor has not reset. This is done by
+ comparing the sender's Src_Instance field value with the previously
+
+
+
+Awduche, et al. Standards Track [Page 52]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ received value. If the Neighbor_Src_Instance value is zero, and the
+ Src_Instance field is non-zero, the Neighbor_Src_Instance is updated
+ with the new value. If the value differs or the Src_Instance field
+ is zero, then the node MUST treat the neighbor as if communication
+ has been lost.
+
+ The receiver of a HELLO ACK object MUST also verify that the neighbor
+ is reflecting back the receiver's Instance value. If the neighbor
+ 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
+ objects, from a neighbor within a configured number of
+ hello_intervals, then a node MUST presume that it cannot communicate
+ with the neighbor. The default for this number is 3.5.
+
+ When communication is lost or presumed to be lost as described above,
+ a node MAY re-initiate HELLOs. If a node does re-initiate it MUST
+ use a Src_Instance value different than the one advertised in the
+ 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
+
+ As previously noted, the Hello extension is targeted at detecting
+ node failures not per link failures. When there is only one link
+ between neighboring nodes or when all links between a pair of nodes
+ fail, the distinction between node and link failures is not really
+ meaningful and handling of such failures has already been covered.
+ When there are multiple links shared between neighbors, there are
+ special considerations. When the links between neighbors are
+ numbered, then Hellos MUST be run on each link and the previously
+ described mechanisms apply.
+
+ When the links are unnumbered, link failure detection MUST be
+ provided by some means other than Hellos. Each node SHOULD use a
+ single Hello exchange with the neighbor. The case where all links
+ have failed, is the same as the no received value case mentioned in
+ the previous section.
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 53]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+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
+ is assigned a class value of the form 0bbbbbbb. Depending on the
+ implementation, implementations that do not support the extension
+ will either silently discard Hello messages or will respond with an
+ "Unknown Object Class" error. In either case the sender will fail to
+ see an acknowledgment for the issued Hello.
+
+6. Security Considerations
+
+ In principle these extensions to RSVP pose no security exposures over
+ 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
+ according to source and destination addresses as well as port
+ numbers. In this specification, filtering occurs only on the basis
+ of an incoming label. For this reason an administration may wish to
+ limit the domain over which LSP tunnels can be established. This can
+ 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 (7)
+ or LSP_TUNNEL_IPv6 (8).
+
+7. IANA Considerations
+
+ IANA assigns values to RSVP protocol parameters. Within 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" [15].
+
+ 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 are available for assignment.
+
+ Following the policies outlined in [15], subobject types in the
+ range 0 - 63 (0x00 - 0x3F) are allocated through an IETF Consensus
+ action, codes in the range 64 - 95 (0x40 - 0x5F) are allocated as
+ First Come First Served, and codes in the range 96 - 127 (0x60 -
+ 0x7F) are reserved for Private Use.
+
+
+
+
+Awduche, et al. Standards Track [Page 54]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 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 are available for assignment.
+
+ Following the policies outlined in [15], subobject types in the
+ range 0 - 127 (0x00 - 0x7F) are allocated through an IETF
+ Consensus action, codes in the range 128 - 191 (0x80 - 0xBF) are
+ allocated as First Come First Served, and codes in the range 192 -
+ 255 (0xC0 - 0xFF) are reserved for Private Use.
+
+ The following assignments are made in this document.
+
+7.1. Message Types
+
+ Message Message
+ Number Name
+
+ 20 Hello
+
+7.2. Class Numbers and C-Types
+
+ Class Class
+ Number Name
+
+ 1 SESSION
+
+ Class Types or C-Types:
+
+ 7 LSP Tunnel IPv4
+ 8 LSP Tunnel IPv6
+
+ 10 FILTER_SPEC
+
+ Class Types or C-Types:
+
+ 7 LSP Tunnel IPv4
+ 8 LSP Tunnel IPv6
+
+ 11 SENDER_TEMPLATE
+
+ Class Types or C-Types:
+
+ 7 LSP Tunnel IPv4
+ 8 LSP Tunnel IPv6
+
+
+
+
+
+Awduche, et al. Standards Track [Page 55]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ 16 RSVP_LABEL
+
+ Class Types or C-Types:
+
+ 1 Type 1 Label
+
+ 19 LABEL_REQUEST
+
+ Class Types or C-Types:
+
+ 1 Without Label Range
+ 2 With ATM Label Range
+ 3 With Frame Relay Label Range
+
+ 20 EXPLICIT_ROUTE
+
+ Class Types or C-Types:
+
+ 1 Type 1 Explicit Route
+
+ 21 ROUTE_RECORD
+
+ Class Types or C-Types:
+
+ 1 Type 1 Route Record
+
+ 22 HELLO
+
+ Class Types or C-Types:
+
+ 1 Request
+ 2 Acknowledgment
+
+
+ 207 SESSION_ATTRIBUTE
+
+ Class Types or C-Types:
+
+ 1 LSP_TUNNEL_RA
+ 7 LSP Tunnel
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 56]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+7.3. Error Codes and Globally-Defined Error Value Sub-Codes
+
+ The following list extends the basic list of Error Codes and Values
+ that are defined in [RFC2205].
+
+ Error Code Meaning
+
+ 24 Routing Problem
+
+ This Error Code has the following globally-defined
+ Error Value sub-codes:
+
+ 1 Bad EXPLICIT_ROUTE object
+ 2 Bad strict node
+ 3 Bad loose node
+ 4 Bad initial subobject
+ 5 No route available toward
+ destination
+ 6 Unacceptable label value
+ 7 RRO indicated routing loops
+ 8 MPLS being negotiated, but a
+ non-RSVP-capable router stands
+ in the path
+ 9 MPLS label allocation failure
+ 10 Unsupported L3PID
+
+ 25 Notify Error
+
+ This Error Code has the following globally-defined
+ Error Value sub-codes:
+
+ 1 RRO too large for MTU
+ 2 RRO Notification
+ 3 Tunnel locally repaired
+
+7.4. Subobject Definitions
+
+ Subobjects of the EXPLICIT_ROUTE object with C-Type 1:
+
+ 1 IPv4 prefix
+ 2 IPv6 prefix
+ 32 Autonomous system number
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 57]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ Subobjects of the RECORD_ROUTE object with C-Type 1:
+
+ 1 IPv4 address
+ 2 IPv6 address
+ 3 Label
+
+8. Intellectual Property Considerations
+
+ The IETF has been notified of intellectual property rights claimed in
+ regard to some or all of the specification contained in this
+ document. For more information consult the online list of claimed
+ rights.
+
+9. Acknowledgments
+
+ This document contains ideas as well as text that have appeared in
+ previous Internet Drafts. The authors of the current document wish
+ to thank the authors of those drafts. They are Steven Blake, Bruce
+ Davie, Roch Guerin, Sanjay Kamat, Yakov Rekhter, Eric Rosen, and Arun
+ Viswanathan. We also wish to thank Bora Akyol, Yoram Bernet and Alex
+ Mondrus for their comments on this document.
+
+10. References
+
+ [1] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
+ "Resource ReSerVation Protocol (RSVP) -- Version 1, Functional
+ Specification", RFC 2205, September 1997.
+
+ [2] Rosen, E., Viswanathan, A. and R. Callon, "Multiprotocol Label
+ Switching Architecture", RFC 3031, January 2001.
+
+ [3] Awduche, D., Malcolm, J., Agogbua, J., O'Dell and J. McManus,
+ "Requirements for Traffic Engineering over MPLS", RFC 2702,
+ September 1999.
+
+ [4] Wroclawski, J., "Specification of the Controlled-Load Network
+ Element Service", RFC 2211, September 1997.
+
+ [5] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D.,
+ Li, T. and A. Conta, "MPLS Label Stack Encoding", RFC 3032,
+ January 2001.
+
+ [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [7] Almquist, P., "Type of Service in the Internet Protocol Suite",
+ RFC 1349, July 1992.
+
+
+
+
+Awduche, et al. Standards Track [Page 58]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+ [8] Nichols, K., Blake, S., Baker, F. and D. Black, "Definition of
+ the Differentiated Services Field (DS Field) in the IPv4 and
+ IPv6 Headers", RFC 2474, December 1998.
+
+ [9] Herzog, S., "Signaled Preemption Priority Policy Element", RFC
+ 2751, January 2000.
+
+ [10] Awduche, D., Hannan, A. and X. Xiao, "Applicability Statement
+ for Extensions to RSVP for LSP-Tunnels", RFC 3210, December
+ 2001.
+
+ [11] Wroclawski, J., "The Use of RSVP with IETF Integrated Services",
+ RFC 2210, September 1997.
+
+ [12] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792,
+ September 1981.
+
+ [13] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191,
+ November 1990.
+
+ [14] Conta, A. and S. Deering, "Internet Control Message Protocol
+ (ICMPv6) for the Internet Protocol Version 6 (IPv6)", RFC 2463,
+ December 1998.
+
+ [15] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
+ Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
+
+ [16] Bernet, Y., Smiht, A. and B. Davie, "Specification of the Null
+ Service Type", RFC 2997, November 2000.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 59]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+11. Authors' Addresses
+
+ Daniel O. Awduche
+ Movaz Networks, Inc.
+ 7926 Jones Branch Drive, Suite 615
+ McLean, VA 22102
+ Voice: +1 703-298-5291
+ EMail: awduche@movaz.com
+
+
+ Lou Berger
+ Movaz Networks, Inc.
+ 7926 Jones Branch Drive, Suite 615
+ McLean, VA 22102
+ Voice: +1 703 847 1801
+ EMail: lberger@movaz.com
+
+
+ Der-Hwa Gan
+ Juniper Networks, Inc.
+ 385 Ravendale Drive
+ Mountain View, CA 94043
+ EMail: dhg@juniper.net
+
+
+ Tony Li
+ Procket Networks
+ 3910 Freedom Circle, Ste. 102A
+ Santa Clara CA 95054
+ EMail: tli@procket.com
+
+
+ Vijay Srinivasan
+ Cosine Communications, Inc.
+ 1200 Bridge Parkway
+ Redwood City, CA 94065
+ Voice: +1 650 628 4892
+ EMail: vsriniva@cosinecom.com
+
+
+ George Swallow
+ Cisco Systems, Inc.
+ 250 Apollo Drive
+ Chelmsford, MA 01824
+ Voice: +1 978 244 8143
+ EMail: swallow@cisco.com
+
+
+
+
+
+Awduche, et al. Standards Track [Page 60]
+
+RFC 3209 Extensions to RSVP for LSP Tunnels December 2001
+
+
+12. Full Copyright Statement
+
+ Copyright (C) The Internet Society (2001). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Awduche, et al. Standards Track [Page 61]
+