draft-ietf-mpls-rsvp-lsp-tunnel-09.txt   rfc3209.txt 
Network Working Group Daniel O. Awduche Network Working Group D. Awduche
Internet Draft Movaz Networks, Inc. Request for Comments: 3209 Movaz Networks, Inc.
Expiration Date: February 2002 Category: Standards Track L. Berger
Lou Berger D. Gan
Movaz Networks, Inc.
Der-Hwa Gan
Juniper Networks, Inc. Juniper Networks, Inc.
T. Li
Tony Li
Procket Networks, Inc. Procket Networks, Inc.
V. Srinivasan
Vijay Srinivasan
Cosine Communications, Inc. Cosine Communications, Inc.
G. Swallow
George Swallow
Cisco Systems, Inc. Cisco Systems, Inc.
December 2001
August 2001
RSVP-TE: Extensions to RSVP for LSP Tunnels RSVP-TE: Extensions to RSVP for LSP Tunnels
draft-ietf-mpls-rsvp-lsp-tunnel-09.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document specifies an Internet standards track protocol for the
all provisions of Section 10 of RFC2026. Internet-Drafts are working Internet community, and requests discussion and suggestions for
documents of the Internet Engineering Task Force (IETF), its areas, improvements. Please refer to the current edition of the "Internet
and its working groups. Note that other groups may also distribute Official Protocol Standards" (STD 1) for the standardization state
working documents as Internet-Drafts. and status of this protocol. Distribution of this memo is unlimited.
Internet-Drafts are draft documents valid for a maximum of six months Copyright Notice
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
To view the current status of any Internet-Draft, please check the Copyright (C) The Internet Society (2001). All Rights Reserved.
"1id-abstracts.txt" listing contained in an Internet-Drafts Shadow
Directory, see http://www.ietf.org/shadow.html.
Abstract Abstract
This document describes the use of RSVP, including all the necessary This document describes the use of RSVP (Resource Reservation
extensions, to establish label-switched paths (LSPs) in MPLS. Since Protocol), including all the necessary extensions, to establish
the flow along an LSP is completely identified by the label applied label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching).
at the ingress node of the path, these paths may be treated as Since the flow along an LSP is completely identified by the label
tunnels. A key application of LSP tunnels is traffic engineering applied at the ingress node of the path, these paths may be treated
with MPLS as specified in [3]. 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 We propose several additional objects that extend RSVP, allowing the
establishment of explicitly routed label switched paths using RSVP as establishment of explicitly routed label switched paths using RSVP as
a signaling protocol. The result is the instantiation of label- a signaling protocol. The result is the instantiation of label-
switched tunnels which can be automatically routed away from network switched tunnels which can be automatically routed away from network
failures, congestion, and bottlenecks. failures, congestion, and bottlenecks.
Contents Contents
1 Introduction .......................................... 5 1 Introduction .......................................... 3
1.1 Background ............................................. 6 1.1 Background ............................................. 4
1.2 Terminology ............................................ 7 1.2 Terminology ............................................ 6
2 Overview .............................................. 9 2 Overview .............................................. 7
2.1 LSP Tunnels and Traffic Engineered Tunnels ............. 9 2.1 LSP Tunnels and Traffic Engineered Tunnels ............. 7
2.2 Operation of LSP Tunnels ............................... 9 2.2 Operation of LSP Tunnels ............................... 8
2.3 Service Classes ........................................ 12 2.3 Service Classes ........................................ 10
2.4 Reservation Styles ..................................... 12 2.4 Reservation Styles ..................................... 10
2.4.1 Fixed Filter (FF) Style ................................ 12 2.4.1 Fixed Filter (FF) Style ................................ 10
2.4.2 Wildcard Filter (WF) Style ............................. 12 2.4.2 Wildcard Filter (WF) Style ............................. 11
2.4.3 Shared Explicit (SE) Style ............................. 13 2.4.3 Shared Explicit (SE) Style ............................. 11
2.5 Rerouting Traffic Engineered Tunnels ................... 14 2.5 Rerouting Traffic Engineered Tunnels ................... 12
2.6 Path MTU ............................................... 15 2.6 Path MTU ............................................... 13
3 LSP Tunnel related Message Formats ..................... 17 3 LSP Tunnel related Message Formats ..................... 15
3.1 Path Message ........................................... 17 3.1 Path Message ........................................... 15
3.2 Resv Message ........................................... 18 3.2 Resv Message ........................................... 16
4 LSP Tunnel related Objects ............................. 18 4 LSP Tunnel related Objects ............................. 17
4.1 Label Object ........................................... 18 4.1 Label Object ........................................... 17
4.1.1 Handling Label Objects in Resv messages ................ 19 4.1.1 Handling Label Objects in Resv messages ................ 17
4.1.2 Non-support of the Label Object ........................ 20 4.1.2 Non-support of the Label Object ........................ 19
4.2 Label Request Object ................................... 21 4.2 Label Request Object ................................... 19
4.2.1 Label Request without Label Range ...................... 21 4.2.1 Label Request without Label Range ...................... 19
4.2.2 Label Request with ATM Label Range ..................... 21 4.2.2 Label Request with ATM Label Range ..................... 20
4.2.3 Label Request with Frame Relay Label Range ............. 23 4.2.3 Label Request with Frame Relay Label Range ............. 21
4.2.4 Handling of LABEL_REQUEST .............................. 24 4.2.4 Handling of LABEL_REQUEST .............................. 22
4.2.5 Non-support of the Label Request Object ................ 24 4.2.5 Non-support of the Label Request Object ................ 23
4.3 Explicit Route Object .................................. 25 4.3 Explicit Route Object .................................. 23
4.3.1 Applicability .......................................... 26 4.3.1 Applicability .......................................... 24
4.3.2 Semantics of the Explicit Route Object ................. 26 4.3.2 Semantics of the Explicit Route Object ................. 24
4.3.3 Subobjects ............................................. 27 4.3.3 Subobjects ............................................. 25
4.3.4 Processing of the Explicit Route Object ................ 30 4.3.4 Processing of the Explicit Route Object ................ 28
4.3.5 Loops .................................................. 32 4.3.5 Loops .................................................. 30
4.3.6 Forward Compatibility .................................. 32 4.3.6 Forward Compatibility .................................. 30
4.3.7 Non-support of the Explicit Route Object ............... 32 4.3.7 Non-support of the Explicit Route Object ............... 31
4.4 Record Route Object .................................... 33 4.4 Record Route Object .................................... 31
4.4.1 Subobjects ............................................. 33 4.4.1 Subobjects ............................................. 31
4.4.2 Applicability .......................................... 37 4.4.2 Applicability .......................................... 34
4.4.3 Processing RRO ......................................... 37 4.4.3 Processing RRO ......................................... 35
4.4.4 Loop Detection ......................................... 39 4.4.4 Loop Detection ......................................... 36
4.4.5 Forward Compatibility .................................. 39 4.4.5 Forward Compatibility .................................. 37
4.4.6 Non-support of RRO ..................................... 40 4.4.6 Non-support of RRO ..................................... 37
4.5 Error Codes for ERO and RRO ............................ 40 4.5 Error Codes for ERO and RRO ............................ 37
4.6 Session, Sender Template, and Filter Spec Objects ...... 41 4.6 Session, Sender Template, and Filter Spec Objects ...... 38
4.6.1 Session Object ......................................... 41 4.6.1 Session Object ......................................... 39
4.6.2 Sender Template Object ................................. 43 4.6.2 Sender Template Object ................................. 40
4.6.3 Filter Specification Object ............................ 44 4.6.3 Filter Specification Object ............................ 42
4.6.4 Reroute and Bandwidth Increase Procedure ............... 45 4.6.4 Reroute and Bandwidth Increase Procedure ............... 42
4.7 Session Attribute Object ............................... 46 4.7 Session Attribute Object ............................... 43
4.7.1 Format without resource affinities ..................... 46 4.7.1 Format without resource affinities ..................... 43
4.7.2 Format with resource affinities ........................ 48 4.7.2 Format with resource affinities ........................ 45
4.7.3 Procedures applying to both C-Types .................... 49 4.7.3 Procedures applying to both C-Types .................... 46
4.7.4 Resource Affinity Procedures .......................... 51 4.7.4 Resource Affinity Procedures .......................... 48
5 Hello Extension ........................................ 53 5 Hello Extension ........................................ 49
5.1 Hello Message Format ................................... 54 5.1 Hello Message Format ................................... 50
5.2 HELLO Object formats ................................... 54 5.2 HELLO Object formats ................................... 51
5.2.1 HELLO REQUEST object ................................... 54 5.2.1 HELLO REQUEST object ................................... 51
5.2.2 HELLO ACK object ....................................... 55 5.2.2 HELLO ACK object ....................................... 51
5.3 Hello Message Usage .................................... 55 5.3 Hello Message Usage .................................... 52
5.4 Multi-Link Considerations .............................. 57 5.4 Multi-Link Considerations .............................. 53
5.5 Compatibility .......................................... 57 5.5 Compatibility .......................................... 54
6 Security Considerations ................................ 58 6 Security Considerations ................................ 54
7 IANA Considerations .................................... 58 7 IANA Considerations .................................... 54
7.1 Message Types .......................................... 59 7.1 Message Types .......................................... 55
7.2 Class Numbers and C-Types .............................. 59 7.2 Class Numbers and C-Types .............................. 55
7.3 Error Codes and Globally-Defined Error Value Sub-Codes . 60 7.3 Error Codes and Globally-Defined Error Value Sub-Codes . 57
7.4 Subobject Definitions .................................. 61 7.4 Subobject Definitions .................................. 57
8 Intellectual Property Considerations ................... 62 8 Intellectual Property Considerations ................... 58
9 Acknowledgments ........................................ 62 9 Acknowledgments ........................................ 58
10 References ............................................. 62 10 References ............................................. 58
11 Authors' Addresses ..................................... 63 11 Authors' Addresses ..................................... 60
12 Full Copyright Statement ............................... 61
1. Introduction 1. Introduction
Section 2.9 of the MPLS architecture [2] defines a label distribution Section 2.9 of the MPLS architecture [2] defines a label distribution
protocol as a set of procedures by which one Label Switched Router protocol as a set of procedures by which one Label Switched Router
(LSR) informs another of the meaning of labels used to forward (LSR) informs another of the meaning of labels used to forward
traffic between and through them. The MPLS architecture does not traffic between and through them. The MPLS architecture does not
assume a single label distribution protocol. This document is a assume a single label distribution protocol. This document is a
specification of extensions to RSVP for establishing label switched specification of extensions to RSVP for establishing label switched
paths (LSPs) in Multi-protocol Label Switching (MPLS) networks. paths (LSPs) in MPLS networks.
Several of the new features described in this document were motivated Several of the new features described in this document were motivated
by the requirements for traffic engineering over MPLS (see [3]). In by the requirements for traffic engineering over MPLS (see [3]). In
particular, the extended RSVP protocol supports the instantiation of particular, the extended RSVP protocol supports the instantiation of
explicitly routed LSPs, with or without resource reservations. It explicitly routed LSPs, with or without resource reservations. It
also supports smooth rerouting of LSPs, preemption, and loop also supports smooth rerouting of LSPs, preemption, and loop
detection. detection.
The LSPs created with RSVP can be used to carry the "Traffic Trunks" 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 described in [3]. The LSP which carries a traffic trunk and a
traffic trunk are distinct though closely related concepts. For traffic trunk are distinct though closely related concepts. For
example, two LSPs between the same source and destination could be example, two LSPs between the same source and destination could be
load shared to carry a single traffic trunk. Conversely several load shared to carry a single traffic trunk. Conversely several
skipping to change at page 5, line 40 skipping to change at page 4, line 17
Since the traffic that flows along a label-switched path is defined Since the traffic that flows along a label-switched path is defined
by the label applied at the ingress node of the LSP, these paths can by the label applied at the ingress node of the LSP, these paths can
be treated as tunnels, tunneling below normal IP routing and be treated as tunnels, tunneling below normal IP routing and
filtering mechanisms. When an LSP is used in this way we refer to it filtering mechanisms. When an LSP is used in this way we refer to it
as an LSP tunnel. as an LSP tunnel.
LSP tunnels allow the implementation of a variety of policies related LSP tunnels allow the implementation of a variety of policies related
to network performance optimization. For example, LSP tunnels can be to network performance optimization. For example, LSP tunnels can be
automatically or manually routed away from network failures, automatically or manually routed away from network failures,
congestion, and bottlenecks. Furthermore, multiple parallel LSP congestion, and bottlenecks. Furthermore, multiple parallel LSP
tunnels can be established between two nodes, and traffic between the tunnels can be established between two nodes, and traffic between the
two nodes can be mapped onto the LSP tunnels according to local two nodes can be mapped onto the LSP tunnels according to local
policy. Although traffic engineering (that is, performance policy. Although traffic engineering (that is, performance
optimization of operational networks) is expected to be an important optimization of operational networks) is expected to be an important
application of this specification, the extended RSVP protocol can be application of this specification, the extended RSVP protocol can be
used in a much wider context. used in a much wider context.
The purpose of this document is to describe the use of RSVP to The purpose of this document is to describe the use of RSVP to
establish LSP tunnels. The intent is to fully describe all the establish LSP tunnels. The intent is to fully describe all the
objects, packet formats, and procedures required to realize objects, packet formats, and procedures required to realize
interoperable implementations. A few new objects are also defined interoperable implementations. A few new objects are also defined
that enhance management and diagnostics of LSP tunnels. that enhance management and diagnostics of LSP tunnels.
skipping to change at page 6, line 19 skipping to change at page 4, line 45
with respect to RSVP. This document discusses what happens when an with respect to RSVP. This document discusses what happens when an
object described here is not supported by a node. object described here is not supported by a node.
Throughout this document, the discussion will be restricted to Throughout this document, the discussion will be restricted to
unicast label switched paths. Multicast LSPs are left for further unicast label switched paths. Multicast LSPs are left for further
study. study.
1.1. Background 1.1. Background
Hosts and routers that support both RSVP [1] and Multi-Protocol Label Hosts and routers that support both RSVP [1] and Multi-Protocol Label
Switching [2] can associate labels with RSVP flows. When MPLS and Switching [2] can associate labels with RSVP flows. When MPLS and
RSVP are combined, the definition of a flow can be made more RSVP are combined, the definition of a flow can be made more
flexible. Once a label switched path (LSP) is established, the flexible. Once a label switched path (LSP) is established, the
traffic through the path is defined by the label applied at the traffic through the path is defined by the label applied at the
ingress node of the LSP. The mapping of label to traffic can be ingress node of the LSP. The mapping of label to traffic can be
accomplished using a number of different criteria. The set of accomplished using a number of different criteria. The set of
packets that are assigned the same label value by a specific node are packets that are assigned the same label value by a specific node are
said to belong to the same forwarding equivalence class (FEC) (see said to belong to the same forwarding equivalence class (FEC) (see
[2]), and effectively define the "RSVP flow." When traffic is mapped [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 onto a label-switched path in this way, we call the LSP an "LSP
Tunnel". When labels are associated with traffic flows, it becomes Tunnel". When labels are associated with traffic flows, it becomes
possible for a router to identify the appropriate reservation state possible for a router to identify the appropriate reservation state
for a packet based on the packet's label value. for a packet based on the packet's label value.
The signaling protocol model uses downstream-on-demand label The signaling protocol model uses downstream-on-demand label
distribution. A request to bind labels to a specific LSP tunnel is distribution. A request to bind labels to a specific LSP tunnel is
initiated by an ingress node through the RSVP Path message. For this initiated by an ingress node through the RSVP Path message. For this
purpose, the RSVP Path message is augmented with a LABEL_REQUEST purpose, the RSVP Path message is augmented with a LABEL_REQUEST
object. Labels are allocated downstream and distributed (propagated object. Labels are allocated downstream and distributed (propagated
upstream) by means of the RSVP Resv message. For this purpose, the upstream) by means of the RSVP Resv message. For this purpose, the
RSVP Resv message is extended with a special LABEL object. The RSVP Resv message is extended with a special LABEL object. The
procedures for label allocation, distribution, binding, and stacking procedures for label allocation, distribution, binding, and stacking
are described in subsequent sections of this document. are described in subsequent sections of this document.
The signaling protocol model also supports explicit routing The signaling protocol model also supports explicit routing
capability. This is accomplished by incorporating a simple capability. This is accomplished by incorporating a simple
EXPLICIT_ROUTE object into RSVP Path messages. The EXPLICIT_ROUTE EXPLICIT_ROUTE object into RSVP Path messages. The EXPLICIT_ROUTE
object encapsulates a concatenation of hops which constitutes the object encapsulates a concatenation of hops which constitutes the
explicitly routed path. Using this object, the paths taken by label- explicitly routed path. Using this object, the paths taken by
switched RSVP-MPLS flows can be pre-determined, independent of label-switched RSVP-MPLS flows can be pre-determined, independent of
conventional IP routing. The explicitly routed path can be conventional IP routing. The explicitly routed path can be
administratively specified, or automatically computed by a suitable administratively specified, or automatically computed by a suitable
entity based on QoS and policy requirements, taking into entity based on QoS and policy requirements, taking into
consideration the prevailing network state. In general, path consideration the prevailing network state. In general, path
computation can be control-driven or data-driven. The mechanisms, computation can be control-driven or data-driven. The mechanisms,
processes, and algorithms used to compute explicitly routed paths are processes, and algorithms used to compute explicitly routed paths are
beyond the scope of this specification. beyond the scope of this specification.
One useful application of explicit routing is traffic engineering. One useful application of explicit routing is traffic engineering.
Using explicitly routed LSPs, a node at the ingress edge of an MPLS Using explicitly routed LSPs, a node at the ingress edge of an MPLS
domain can control the path through which traffic traverses from domain can control the path through which traffic traverses from
itself, through the MPLS network, to an egress node. Explicit itself, through the MPLS network, to an egress node. Explicit
routing can be used to optimize the utilization of network resources routing can be used to optimize the utilization of network resources
and enhance traffic oriented performance characteristics. and enhance traffic oriented performance characteristics.
The concept of explicitly routed label switched paths can be The concept of explicitly routed label switched paths can be
generalized through the notion of abstract nodes. An abstract node is generalized through the notion of abstract nodes. An abstract node
a group of nodes whose internal topology is opaque to the ingress 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 node of the LSP. An abstract node is said to be simple if it
only one physical node. Using this concept of abstraction, an contains only one physical node. Using this concept of abstraction,
explicitly routed LSP can be specified as a sequence of IP prefixes an explicitly routed LSP can be specified as a sequence of IP
or a sequence of Autonomous Systems. prefixes or a sequence of Autonomous Systems.
The signaling protocol model supports the specification of an The signaling protocol model supports the specification of an
explicit path as a sequence of strict and loose routes. The explicit path as a sequence of strict and loose routes. The
combination of abstract nodes, and strict and loose routes combination of abstract nodes, and strict and loose routes
significantly enhances the flexibility of path definitions. significantly enhances the flexibility of path definitions.
An advantage of using RSVP to establish LSP tunnels is that it An advantage of using RSVP to establish LSP tunnels is that it
enables the allocation of resources along the path. For example, enables the allocation of resources along the path. For example,
bandwidth can be allocated to an LSP tunnel using standard RSVP bandwidth can be allocated to an LSP tunnel using standard RSVP
reservations and Integrated Services service classes [4]. reservations and Integrated Services service classes [4].
While resource reservations are useful, they are not mandatory. While resource reservations are useful, they are not mandatory.
Indeed, an LSP can be instantiated without any resource reservations Indeed, an LSP can be instantiated without any resource reservations
whatsoever. Such LSPs without resource reservations can be used, for whatsoever. Such LSPs without resource reservations can be used, for
example, to carry best effort traffic. They can also be used in many example, to carry best effort traffic. They can also be used in many
other contexts, including implementation of fall-back and recovery other contexts, including implementation of fall-back and recovery
policies under fault conditions, and so forth. policies under fault conditions, and so forth.
1.2. Terminology 1.2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC2119 [6]. document are to be interpreted as described in RFC2119 [6].
The reader is assumed to be familiar with the terminology in [1], [2] The reader is assumed to be familiar with the terminology in [1], [2]
and [3]. and [3].
Abstract Node 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 A group of nodes whose internal topology is opaque to the ingress
if it contains only one physical node. node of the LSP. An abstract node is said to be simple if it
contains only one physical node.
Explicitly Routed LSP Explicitly Routed LSP
An LSP whose path is established by a means other than normal An LSP whose path is established by a means other than normal IP
IP routing. routing.
Label Switched Path Label Switched Path
The path created by the concatenation of one or more label The path created by the concatenation of one or more label
switched hops, allowing a packet to be forwarded by swapping switched hops, allowing a packet to be forwarded by swapping
labels from an MPLS node to another MPLS node. For a more labels from an MPLS node to another MPLS node. For a more precise
precise definition see [2]. definition see [2].
LSP LSP
A Label Switched Path
A Label Switched Path
LSP Tunnel LSP Tunnel
An LSP which is used to tunnel below normal IP routing and/or An LSP which is used to tunnel below normal IP routing and/or
filtering mechanisms. filtering mechanisms.
Traffic Engineered Tunnel (TE Tunnel) Traffic Engineered Tunnel (TE Tunnel)
A set of one or more LSP Tunnels which carries a traffic trunk. A set of one or more LSP Tunnels which carries a traffic trunk.
Traffic Trunk Traffic Trunk
A set of flows aggregated by their service class and then A set of flows aggregated by their service class and then placed
placed on an LSP or set of LSPs called a traffic engineered on an LSP or set of LSPs called a traffic engineered tunnel. For
tunnel. For further discussion see [3]. further discussion see [3].
2. Overview 2. Overview
2.1. LSP Tunnels and Traffic Engineered Tunnels 2.1. LSP Tunnels and Traffic Engineered Tunnels
According to [1], "RSVP defines a 'session' to be a data flow with a According to [1], "RSVP defines a 'session' to be a data flow with a
particular destination and transport-layer protocol." However, when particular destination and transport-layer protocol." However, when
RSVP and MPLS are combined, a flow or session can be defined with RSVP and MPLS are combined, a flow or session can be defined with
greater flexibility and generality. The ingress node of an LSP can greater flexibility and generality. The ingress node of an LSP can
use a variety of means to determine which packets are assigned a use a variety of means to determine which packets are assigned a
particular label. Once a label is assigned to a set of packets, the particular label. Once a label is assigned to a set of packets, the
label effectively defines the "flow" through the LSP. We refer to label effectively defines the "flow" through the LSP. We refer to
such an LSP as an "LSP tunnel" because the traffic through it is such an LSP as an "LSP tunnel" because the traffic through it is
opaque to intermediate nodes along the label switched path. opaque to intermediate nodes along the label switched path.
New RSVP SESSION, SENDER_TEMPLATE, and FILTER_SPEC objects, called 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_IPv4 and LSP_TUNNEL_IPv6 have been defined to support the
LSP tunnel feature. The semantics of these objects, from the LSP tunnel feature. The semantics of these objects, from the
perspective of a node along the label switched path, is that traffic perspective of a node along the label switched path, is that traffic
belonging to the LSP tunnel is identified solely on the basis of belonging to the LSP tunnel is identified solely on the basis of
packets arriving from the PHOP or "previous hop" (see [1]) with the packets arriving from the PHOP or "previous hop" (see [1]) with the
particular label value(s) assigned by this node to upstream senders particular label value(s) assigned by this node to upstream senders
to the session. In fact, the IPv4(v6) that appears in the object to the session. In fact, the IPv4(v6) that appears in the object
skipping to change at page 10, line 6 skipping to change at page 8, line 19
This section summarizes some of the features supported by RSVP as This section summarizes some of the features supported by RSVP as
extended by this document related to the operation of LSP tunnels. extended by this document related to the operation of LSP tunnels.
These include: (1) the capability to establish LSP tunnels with or These include: (1) the capability to establish LSP tunnels with or
without QoS requirements, (2) the capability to dynamically reroute without QoS requirements, (2) the capability to dynamically reroute
an established LSP tunnel, (3) the capability to observe the actual an established LSP tunnel, (3) the capability to observe the actual
route traversed by an established LSP tunnel, (4) the capability to route traversed by an established LSP tunnel, (4) the capability to
identify and diagnose LSP tunnels, (5) the capability to preempt an identify and diagnose LSP tunnels, (5) the capability to preempt an
established LSP tunnel under administrative policy control, and (6) established LSP tunnel under administrative policy control, and (6)
the capability to perform downstream-on-demand label allocation, the capability to perform downstream-on-demand label allocation,
distribution, and binding. In the following paragraphs, these distribution, and binding. In the following paragraphs, these
features are briefly described. More detailed descriptions can be features are briefly described. More detailed descriptions can be
found in subsequent sections of this document. found in subsequent sections of this document.
To create an LSP tunnel, the first MPLS node on the path -- that is, To create an LSP tunnel, the first MPLS node on the path -- that is,
the sender node with respect to the path -- creates an RSVP Path the sender node with respect to the path -- creates an RSVP Path
message with a session type of LSP_TUNNEL_IPv4 or LSP_TUNNEL_IPv6 and message with a session type of LSP_TUNNEL_IPv4 or LSP_TUNNEL_IPv6 and
inserts a LABEL_REQUEST object into the Path message. The inserts a LABEL_REQUEST object into the Path message. The
LABEL_REQUEST object indicates that a label binding for this path is LABEL_REQUEST object indicates that a label binding for this path is
requested and also provides an indication of the network layer requested and also provides an indication of the network layer
protocol that is to be carried over this path. The reason for this is protocol that is to be carried over this path. The reason for this
that the network layer protocol sent down an LSP cannot be assumed to is that the network layer protocol sent down an LSP cannot be assumed
be IP and cannot be deduced from the L2 header, which simply to be IP and cannot be deduced from the L2 header, which simply
identifies the higher layer protocol as MPLS. identifies the higher layer protocol as MPLS.
If the sender node has knowledge of a route that has high likelihood If the sender node has knowledge of a route that has high likelihood
of meeting the tunnel's QoS requirements, or that makes efficient use of meeting the tunnel's QoS requirements, or that makes efficient use
of network resources, or that satisfies some policy criteria, the of network resources, or that satisfies some policy criteria, the
node can decide to use the route for some or all of its sessions. To node can decide to use the route for some or all of its sessions. To
do this, the sender node adds an EXPLICIT_ROUTE object to the RSVP do this, the sender node adds an EXPLICIT_ROUTE object to the RSVP
Path message. The EXPLICIT_ROUTE object specifies the route as a Path message. The EXPLICIT_ROUTE object specifies the route as a
sequence of abstract nodes. sequence of abstract nodes.
If, after a session has been successfully established, the sender If, after a session has been successfully established, the sender
node discovers a better route, the sender can dynamically reroute the node discovers a better route, the sender can dynamically reroute the
session by simply changing the EXPLICIT_ROUTE object. If problems session by simply changing the EXPLICIT_ROUTE object. If problems
are encountered with an EXPLICIT_ROUTE object, either because it are encountered with an EXPLICIT_ROUTE object, either because it
causes a routing loop or because some intermediate routers do not causes a routing loop or because some intermediate routers do not
support it, the sender node is notified. support it, the sender node is notified.
By adding a RECORD_ROUTE object to the Path message, the sender node By adding a RECORD_ROUTE object to the Path message, the sender node
can receive information about the actual route that the LSP tunnel can receive information about the actual route that the LSP tunnel
traverses. The sender node can also use this object to request traverses. The sender node can also use this object to request
notification from the network concerning changes to the routing path. notification from the network concerning changes to the routing path.
The RECORD_ROUTE object is analogous to a path vector, and hence can The RECORD_ROUTE object is analogous to a path vector, and hence can
be used for loop detection. be used for loop detection.
Finally, a SESSION_ATTRIBUTE object can be added to Path messages to Finally, a SESSION_ATTRIBUTE object can be added to Path messages to
aid in session identification and diagnostics. Additional control aid in session identification and diagnostics. Additional control
information, such as setup and hold priorities, resource affinities information, such as setup and hold priorities, resource affinities
(see [3]), and local-protection, are also included in this object. (see [3]), and local-protection, are also included in this object.
Routers along the path may use the setup and hold priorities along Routers along the path may use the setup and hold priorities along
skipping to change at page 11, line 14 skipping to change at page 9, line 27
a means of verifying that bandwidth exists at a particular priority a means of verifying that bandwidth exists at a particular priority
along an entire path before preempting any lower priority along an entire path before preempting any lower priority
reservations. If a Path message is allowed to progress when there reservations. If a Path message is allowed to progress when there
are insufficient resources, then there is a danger that lower are insufficient resources, then there is a danger that lower
priority reservations downstream of this point will unnecessarily be priority reservations downstream of this point will unnecessarily be
preempted in a futile attempt to service this request. preempted in a futile attempt to service this request.
When the EXPLICIT_ROUTE object (ERO) is present, the Path message is When the EXPLICIT_ROUTE object (ERO) is present, the Path message is
forwarded towards its destination along a path specified by the ERO. forwarded towards its destination along a path specified by the ERO.
Each node along the path records the ERO in its path state block. Each node along the path records the ERO in its path state block.
Nodes may also modify the ERO before forwarding the Path message. In Nodes may also modify the ERO before forwarding the Path message. In
this case the modified ERO SHOULD be stored in the path state block this case the modified ERO SHOULD be stored in the path state block
in addition to the received ERO. in addition to the received ERO.
The LABEL_REQUEST object requests intermediate routers and receiver The LABEL_REQUEST object requests intermediate routers and receiver
nodes to provide a label binding for the session. If a node is nodes to provide a label binding for the session. If a node is
incapable of providing a label binding, it sends a PathErr message incapable of providing a label binding, it sends a PathErr message
with an "unknown object class" error. If the LABEL_REQUEST object is with an "unknown object class" error. If the LABEL_REQUEST object is
not supported end to end, the sender node will be notified by the not supported end to end, the sender node will be notified by the
first node which does not provide this support. first node which does not provide this support.
skipping to change at page 11, line 39 skipping to change at page 10, line 4
The Resv message is sent back upstream towards the sender, following The Resv message is sent back upstream towards the sender, following
the path state created by the Path message, in reverse order. Note 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 that if the path state was created by use of an ERO, then the Resv
message will follow the reverse path of the ERO. message will follow the reverse path of the ERO.
Each node that receives a Resv message containing a LABEL object uses Each node that receives a Resv message containing a LABEL object uses
that label for outgoing traffic associated with this LSP tunnel. If 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 the node is not the sender, it allocates a new label and places that
label in the corresponding LABEL object of the Resv message which it label in the corresponding LABEL object of the Resv message which it
sends upstream to the PHOP. The label sent upstream in the LABEL sends upstream to the PHOP. The label sent upstream in the LABEL
object is the label which this node will use to identify incoming object is the label which this node will use to identify incoming
traffic associated with this LSP tunnel. This label also serves as traffic associated with this LSP tunnel. This label also serves as
shorthand for the Filter Spec. The node can now update its "Incoming shorthand for the Filter Spec. The node can now update its "Incoming
Label Map" (ILM), which is used to map incoming labeled packets to a Label Map" (ILM), which is used to map incoming labeled packets to a
"Next Hop Label Forwarding Entry" (NHLFE), see [2]. "Next Hop Label Forwarding Entry" (NHLFE), see [2].
When the Resv message propagates upstream to the sender node, a When the Resv message propagates upstream to the sender node, a
label-switched path is effectively established. label-switched path is effectively established.
2.3. Service Classes 2.3. Service Classes
This document does not restrict the type of Integrated Service This document does not restrict the type of Integrated Service
requests for reservations. However, an implementation SHOULD support requests for reservations. However, an implementation SHOULD support
skipping to change at page 13, line 4 skipping to change at page 11, line 13
between every sender/receiver pair. between every sender/receiver pair.
2.4.2. Wildcard Filter (WF) Style 2.4.2. Wildcard Filter (WF) Style
With the Wildcard Filter (WF) reservation style, a single shared With the Wildcard Filter (WF) reservation style, a single shared
reservation is used for all senders to a session. The total reservation is used for all senders to a session. The total
reservation on a link remains the same regardless of the number of reservation on a link remains the same regardless of the number of
senders. senders.
A single multipoint-to-point label-switched-path is created for all A single multipoint-to-point label-switched-path is created for all
senders to the session. On links that senders to the session share, a senders to the session. On links that senders to the session share,
single label value is allocated to the session. If there is only one a single label value is allocated to the session. If there is only
sender, the LSP looks like a normal point-to-point connection. When one sender, the LSP looks like a normal point-to-point connection.
multiple senders are present, a multipoint-to-point LSP (a reversed When multiple senders are present, a multipoint-to-point LSP (a
tree) is created. reversed tree) is created.
This style is useful for applications in which not all senders send This style is useful for applications in which not all senders send
traffic at the same time. A phone conference, for example, is an traffic at the same time. A phone conference, for example, is an
application where not all speakers talk at the same time. If, application where not all speakers talk at the same time. If,
however, all senders send simultaneously, then there is no means of however, all senders send simultaneously, then there is no means of
getting the proper reservations made. Either the reserved bandwidth getting the proper reservations made. Either the reserved bandwidth
on links close to the destination will be less than what is required 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 or then the reserved bandwidth on links close to some senders will be
greater than what is required. This restricts the applicability of greater than what is required. This restricts the applicability of
WF for traffic engineering purposes. WF for traffic engineering purposes.
skipping to change at page 14, line 9 skipping to change at page 12, line 15
Path messages from different senders can each carry their own ERO, Path messages from different senders can each carry their own ERO,
and the paths taken by the senders can converge and diverge at any and the paths taken by the senders can converge and diverge at any
point in the network topology. When Path messages have differing point in the network topology. When Path messages have differing
EXPLICIT_ROUTE objects, separate LSPs for each EXPLICIT_ROUTE object EXPLICIT_ROUTE objects, separate LSPs for each EXPLICIT_ROUTE object
must be established. must be established.
2.5. Rerouting Traffic Engineered Tunnels 2.5. Rerouting Traffic Engineered Tunnels
One of the requirements for Traffic Engineering is the capability to One of the requirements for Traffic Engineering is the capability to
reroute an established TE tunnel under a number of conditions, based reroute an established TE tunnel under a number of conditions, based
on administrative policy. For example, in some contexts, an on administrative policy. For example, in some contexts, an
administrative policy may dictate that a given TE tunnel is to be administrative policy may dictate that a given TE tunnel is to be
rerouted when a more "optimal" route becomes available. Another rerouted when a more "optimal" route becomes available. Another
important context when TE tunnel reroute is usually required is upon important context when TE tunnel reroute is usually required is upon
failure of a resource along the TE tunnel's established path. Under 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 some policies, it may also be necessary to return the TE tunnel to
its original path when the failed resource becomes re-activated. its original path when the failed resource becomes re-activated.
In general, it is highly desirable not to disrupt traffic, or In general, it is highly desirable not to disrupt traffic, or
adversely impact network operations while TE tunnel rerouting is in adversely impact network operations while TE tunnel rerouting is in
progress. This adaptive and smooth rerouting requirement progress. This adaptive and smooth rerouting requirement
necessitates establishing a new LSP tunnel and transferring traffic necessitates establishing a new LSP tunnel and transferring traffic
from the old LSP tunnel onto it before tearing down the old LSP from the old LSP tunnel onto it before tearing down the old LSP
tunnel. This concept is called "make-before-break." A problem can tunnel. This concept is called "make-before-break." A problem can
arise because the old and new LSP tunnels might compete with each arise because the old and new LSP tunnels might compete with each
other for resources on network segments which they have in common. other for resources on network segments which they have in common.
Depending on availability of resources, this competition can cause Depending on availability of resources, this competition can cause
Admission Control to prevent the new LSP tunnel from being Admission Control to prevent the new LSP tunnel from being
established. An advantage of using RSVP to establish LSP tunnels is established. An advantage of using RSVP to establish LSP tunnels is
that it solves this problem very elegantly. that it solves this problem very elegantly.
To support make-before-break in a smooth fashion, it is necessary To support make-before-break in a smooth fashion, it is necessary
that on links that are common to the old and new LSPs, resources used that on links that are common to the old and new LSPs, resources used
by the old LSP tunnel should not be released before traffic is by the old LSP tunnel should not be released before traffic is
skipping to change at page 14, line 50 skipping to change at page 13, line 8
between the new and old bandwidth. If policy is being applied to between the new and old bandwidth. If policy is being applied to
PATH messages by intermediate nodes, then a PATH message requesting PATH messages by intermediate nodes, then a PATH message requesting
too much bandwidth will be rejected. In this situation simply too much bandwidth will be rejected. In this situation simply
increasing the bandwidth request without changing the increasing the bandwidth request without changing the
SENDER_TEMPLATE, could result in a tunnel being torn down, depending SENDER_TEMPLATE, could result in a tunnel being torn down, depending
upon local policy. upon local policy.
The combination of the LSP_TUNNEL SESSION object and the SE The combination of the LSP_TUNNEL SESSION object and the SE
reservation style naturally accommodates smooth transitions in reservation style naturally accommodates smooth transitions in
bandwidth and routing. The idea is that the old and new LSP tunnels 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 share resources along links which they have in common. The
SESSION object is used to narrow the scope of the RSVP session to the LSP_TUNNEL SESSION object is used to narrow the scope of the RSVP
particular TE tunnel in question. To uniquely identify a TE tunnel, session to the particular TE tunnel in question. To uniquely
we use the combination of the destination IP address (an address of identify a TE tunnel, we use the combination of the destination IP
the node which is the egress of the tunnel), a Tunnel ID, and the address (an address of the node which is the egress of the tunnel), a
tunnel ingress node's IP address, which is placed in the Extended Tunnel ID, and the tunnel ingress node's IP address, which is placed
Tunnel ID field. in the Extended Tunnel ID field.
During the reroute or bandwidth-increase operation, the tunnel During the reroute or bandwidth-increase operation, the tunnel
ingress needs to appear as two different senders to the RSVP session. 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 This is achieved by the inclusion of the "LSP ID", which is carried
in the SENDER_TEMPLATE and FILTER_SPEC objects. Since the semantics in the SENDER_TEMPLATE and FILTER_SPEC objects. Since the semantics
of these objects are changed, a new C-Types are assigned. 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 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 new SENDER_TEMPLATE. The ingress node then creates a new ERO to
define the new path. Thereafter the node sends a new Path Message define the new path. Thereafter the node sends a new Path Message
skipping to change at page 15, line 40 skipping to change at page 13, line 47
reservation is not lost if the larger reservation fails. reservation is not lost if the larger reservation fails.
2.6. Path MTU 2.6. Path MTU
Standard RSVP [1] and Int-Serv [11] provide the RSVP sender with the Standard RSVP [1] and Int-Serv [11] provide the RSVP sender with the
minimum MTU available between the sender and the receiver. This path minimum MTU available between the sender and the receiver. This path
MTU identification capability is also provided for LSPs established MTU identification capability is also provided for LSPs established
via RSVP. via RSVP.
Path MTU information is carried, depending on which is present, in Path MTU information is carried, depending on which is present, in
the Integrated Services or Class-of-Service objects. When using the Integrated Services or Null Service objects. When using
Integrated Services objects, path MTU is provided based on the Integrated Services objects, path MTU is provided based on the
procedures defined in [11]. Path MTU identification when using Null procedures defined in [11]. Path MTU identification when using Null
Service objects is defined in [16]. Service objects is defined in [16].
With standard RSVP, the path MTU information is used by the sender to 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 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 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 datagram has the "Don't Fragment" bit set, issues an ICMP destination
unreachable message. This path MTU related handling is also required unreachable message. This path MTU related handling is also required
for LSPs established via RSVP. for LSPs established via RSVP.
The following algorithm applies to all unlabeled IP datagrams and to The following algorithm applies to all unlabeled IP datagrams and to
any labeled packets which the node knows to be IP datagrams, to which any labeled packets which the node knows to be IP datagrams, to which
labels need to be added before forwarding. For labeled packets the labels need to be added before forwarding. For labeled packets the
bottom of stack is found, the IP header examined. bottom of stack is found, the IP header examined.
Using the terminology defined in [5], an LSR MUST execute the Using the terminology defined in [5], an LSR MUST execute the
following algorithm: following algorithm:
1. Let N be the number of bytes in the label stack (i.e, 4 times 1. Let N be the number of bytes in the label stack (i.e, 4 times the
the number of label stack entries) including labels to be added number of label stack entries) including labels to be added by
by this node. this node.
2. Let M be the smaller of the "Maximum Initially Labeled IP 2. Let M be the smaller of the "Maximum Initially Labeled IP Datagram
Datagram Size" or of (Path MTU - N). Size" or of (Path MTU - N).
When the size of an IPv4 datagram (without labels) exceeds the When the size of an IPv4 datagram (without labels) exceeds the value
value of M, of M,
If the DF bit is not set in the IPv4 header, then If the DF bit is not set in the IPv4 header, then
(a) the datagram MUST be broken into fragments, each of whose (a) the datagram MUST be broken into fragments, each of whose
size is no greater than M, and size is no greater than M, and
(b) each fragment MUST be labeled and then forwarded. (b) each fragment MUST be labeled and then forwarded.
If the DF bit is set in the IPv4 header, then If the DF bit is set in the IPv4 header, then
(a) the datagram MUST NOT be forwarded (a) the datagram MUST NOT be forwarded
(b) Create an ICMP Destination Unreachable Message: (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 i. set its Code field [12] to "Fragmentation Required and
Message to the source of the of the discarded datagram. 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 When the size of an IPv6 datagram (without labels) exceeds the
value of M, value of M,
(a) the datagram MUST NOT be forwarded (a) the datagram MUST NOT be forwarded
(b) Create an ICMP Packet too Big Message with the (b) Create an ICMP Packet too Big Message with the Next-Hop
Next-Hop link MTU field [14] set to M link MTU field [14] set to M
(c) If possible, transmit the ICMP Packet too Big Message (c) If possible, transmit the ICMP Packet too Big Message to
to the source of the of the discarded datagram. the source of the of the discarded datagram.
3. LSP Tunnel related Message Formats 3. LSP Tunnel related Message Formats
Five new objects are defined in this section: Five new objects are defined in this section:
Object name Applicable RSVP messages Object name Applicable RSVP messages
--------------- ------------------------ --------------- ------------------------
LABEL_REQUEST Path LABEL_REQUEST Path
LABEL Resv LABEL Resv
EXPLICIT_ROUTE Path EXPLICIT_ROUTE Path
skipping to change at page 18, line 42 skipping to change at page 17, line 9
<SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ] <SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ]
Note: LABEL and RECORD_ROUTE (if present), are bound to the Note: LABEL and RECORD_ROUTE (if present), are bound to the
preceding FILTER_SPEC. No more than one LABEL and/or preceding FILTER_SPEC. No more than one LABEL and/or
RECORD_ROUTE may follow each FILTER_SPEC. RECORD_ROUTE may follow each FILTER_SPEC.
4. LSP Tunnel related Objects 4. LSP Tunnel related Objects
4.1. Label Object 4.1. Label Object
Labels MAY be carried in Resv messages. For the FF and SE styles, a 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 label is associated with each sender. The label for a sender MUST
immediately follow the FILTER_SPEC for that sender in the Resv immediately follow the FILTER_SPEC for that sender in the Resv
message. message.
The LABEL object has the following format: The LABEL object has the following format:
LABEL class = 16, C_Type = 1 LABEL class = 16, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (top label) | | (top label) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The contents of a LABEL is a single label, encoded in 4 octets. Each 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 generic MPLS label is an unsigned integer in the range 0 through
1048575. Generic MPLS labels and FR labels are encoded right aligned 1048575. Generic MPLS labels and FR labels are encoded right aligned
in 4 octets. ATM labels are encoded with the VPI right justified in 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. bits 0-15 and the VCI right justified in bits 16-31.
4.1.1. Handling Label Objects in Resv messages 4.1.1. Handling Label Objects in Resv messages
In MPLS a node may support multiple label spaces, perhaps associating In MPLS a node may support multiple label spaces, perhaps associating
a unique space with each incoming interface. For the purposes of the a unique space with each incoming interface. For the purposes of the
following discussion, the term "same label" means the identical label following discussion, the term "same label" means the identical label
skipping to change at page 20, line 26 skipping to change at page 18, line 36
4.1.1.2. Upstream 4.1.1.2. Upstream
A node uses the label carried in the LABEL object as the outgoing A node uses the label carried in the LABEL object as the outgoing
label associated with the sender. The router allocates a new label label associated with the sender. The router allocates a new label
and binds it to the incoming interface of this session/sender. This and binds it to the incoming interface of this session/sender. This
is the same interface that the router uses to forward Resv messages is the same interface that the router uses to forward Resv messages
to the previous hops. to the previous hops.
Several circumstance can lead to an unacceptable label. Several circumstance can lead to an unacceptable label.
1. the node is a merge incapable ATM switch but the downstream node 1. the node is a merge incapable ATM switch but the downstream
has assigned the same label to two senders node has assigned the same label to two senders
2. The implicit null label was assigned, but the node is not 2. The implicit null label was assigned, but the node is not
capable of doing a penultimate pop for the associated L3PID capable of doing a penultimate pop for the associated L3PID
3. The assigned label is outside the requested label range 3. The assigned label is outside the requested label range
In any of these events the node send a ResvErr message with an error 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 code of "routing problem" and an error value of "unacceptable label
value". value".
4.1.2. Non-support of the Label Object 4.1.2. Non-support of the Label Object
Under normal circumstances, a node should never receive a LABEL Under normal circumstances, a node should never receive a LABEL
object in a Resv message unless it had included a LABEL_REQUEST object in a Resv message unless it had included a LABEL_REQUEST
object in the corresponding Path message. However, an RSVP router object in the corresponding Path message. However, an RSVP router
that does not recognize the LABEL object sends a ResvErr with the that does not recognize the LABEL object sends a ResvErr with the
error code "Unknown object class" toward the receiver. This causes error code "Unknown object class" toward the receiver. This causes
the reservation to fail. the reservation to fail.
4.2. Label Request Object 4.2. Label Request Object
The Label Request Class is 19. Currently there three possible 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 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 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 with a Frame Relay label range. The LABEL_REQUEST object formats are
shown below. shown below.
4.2.1. Label Request without Label Range 4.2.1. Label Request without Label Range
Class = 19, C_Type = 1 Class = 19, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved Reserved
This field is reserved. It MUST be set to zero on transmis- This field is reserved. It MUST be set to zero on transmission
sion and MUST be ignored on receipt. and MUST be ignored on receipt.
L3PID L3PID
an identifier of the layer 3 protocol using this path. an identifier of the layer 3 protocol using this path.
Standard Ethertype values are used. Standard Ethertype values are used.
4.2.2. Label Request with ATM Label Range 4.2.2. Label Request with ATM Label Range
Class = 19, C_Type = 2 Class = 19, C_Type = 2
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|M| Res | Minimum VPI | Minimum VCI | |M| Res | Minimum VPI | Minimum VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Res | Maximum VPI | Maximum VCI | | Res | Maximum VPI | Maximum VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved (Res) Reserved (Res)
This field is reserved. It MUST be set to zero on transmis-
sion and MUST be ignored on receipt. This field is reserved. It MUST be set to zero on transmission
and MUST be ignored on receipt.
L3PID L3PID
an identifier of the layer 3 protocol using this path. an identifier of the layer 3 protocol using this path.
Standard Ethertype values are used. Standard Ethertype values are used.
M M
Setting this bit to one indicates that the node is capable Setting this bit to one indicates that the node is capable of
of merging in the data plane merging in the data plane
Minimum VPI (12 bits) Minimum VPI (12 bits)
This 12 bit field specifies the lower bound of a block of This 12 bit field specifies the lower bound of a block of
Virtual Path Identifiers that is supported on the originating Virtual Path Identifiers that is supported on the originating
switch. If the VPI is less than 12-bits it MUST be right 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. justified in this field and preceding bits MUST be set to zero.
Minimum VCI (16 bits) Minimum VCI (16 bits)
This 16 bit field specifies the lower bound of a block of This 16 bit field specifies the lower bound of a block of
Virtual Connection Identifiers that is supported on the ori- Virtual Connection Identifiers that is supported on the
ginating switch. If the VCI is less than 16-bits it MUST be 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 right justified in this field and preceding bits MUST be set to
zero. zero.
Maximum VPI (12 bits) Maximum VPI (12 bits)
This 12 bit field specifies the upper bound of a block of This 12 bit field specifies the upper bound of a block of
Virtual Path Identifiers that is supported on the originating Virtual Path Identifiers that is supported on the originating
switch. If the VPI is less than 12-bits it MUST be right 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. justified in this field and preceding bits MUST be set to zero.
Maximum VCI (16 bits) Maximum VCI (16 bits)
This 16 bit field specifies the upper bound of a block of This 16 bit field specifies the upper bound of a block of
Virtual Connection Identifiers that is supported on the ori- Virtual Connection Identifiers that is supported on the
ginating switch. If the VCI is less than 16-bits it MUST be 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 right justified in this field and preceding bits MUST be set to
zero. zero.
4.2.3. Label Request with Frame Relay Label Range 4.2.3. Label Request with Frame Relay Label Range
Class = 19, C_Type = 3 Class = 19, C_Type = 3
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | L3PID | | Reserved | L3PID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |DLI| Minimum DLCI | | Reserved |DLI| Minimum DLCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Maximum DLCI | | Reserved | Maximum DLCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved Reserved
This field is reserved. It MUST be set to zero on transmis- This field is reserved. It MUST be set to zero on transmission
sion and ignored on receipt. and ignored on receipt.
L3PID L3PID
an identifier of the layer 3 protocol using this path. an identifier of the layer 3 protocol using this path.
Standard Ethertype values are used. Standard Ethertype values are used.
DLI DLI
DLCI Length Indicator. The number of bits in the DLCI. DLCI Length Indicator. The number of bits in the DLCI. The
The following values are supported: following values are supported:
Len DLCI bits Len DLCI bits
0 10 0 10
2 23 2 23
Minimum DLCI Minimum DLCI
This 23-bit field specifies the lower bound of a block of Data This 23-bit field specifies the lower bound of a block of Data
Link Connection Identifiers (DLCIs) that is supported on the Link Connection Identifiers (DLCIs) that is supported on the
originating switch. The DLCI MUST be right justified in this originating switch. The DLCI MUST be right justified in this
field and unused bits MUST be set to 0. field and unused bits MUST be set to 0.
Maximum DLCI Maximum DLCI
This 23-bit field specifies the upper bound of a block of Data This 23-bit field specifies the upper bound of a block of Data
Link Connection Identifiers (DLCIs) that is supported on the Link Connection Identifiers (DLCIs) that is supported on the
originating switch. The DLCI MUST be right justified in this originating switch. The DLCI MUST be right justified in this
field and unused bits MUST be set to 0. field and unused bits MUST be set to 0.
4.2.4. Handling of LABEL_REQUEST 4.2.4. Handling of LABEL_REQUEST
To establish an LSP tunnel the sender creates a Path message with a To establish an LSP tunnel the sender creates a Path message with a
LABEL_REQUEST object. The LABEL_REQUEST object indicates that a LABEL_REQUEST object. The LABEL_REQUEST object indicates that a
label binding for this path is requested and provides an indication label binding for this path is requested and provides an indication
of the network layer protocol that is to be carried over this path. 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 permits non-IP network layer protocols to be sent down an LSP.
This information can also be useful in actual label allocation, This information can also be useful in actual label allocation,
skipping to change at page 25, line 9 skipping to change at page 23, line 25
An RSVP router that does not recognize the LABEL_REQUEST object sends An RSVP router that does not recognize the LABEL_REQUEST object sends
a PathErr with the error code "Unknown object class" toward the a PathErr with the error code "Unknown object class" toward the
sender. An RSVP router that recognizes the LABEL_REQUEST object but sender. An RSVP router that recognizes the LABEL_REQUEST object but
does not recognize the C_Type sends a PathErr with the error code does not recognize the C_Type sends a PathErr with the error code
"Unknown object C_Type" toward the sender. This causes the path "Unknown object C_Type" toward the sender. This causes the path
setup to fail. The sender should notify management that a LSP cannot setup to fail. The sender should notify management that a LSP cannot
be established and possibly take action to continue the reservation be established and possibly take action to continue the reservation
without the LABEL_REQUEST. without the LABEL_REQUEST.
RSVP is designed to cope gracefully with non-RSVP routers anywhere RSVP is designed to cope gracefully with non-RSVP routers anywhere
between senders and receivers. However, obviously, non-RSVP routers between senders and receivers. However, obviously, non-RSVP routers
cannot convey labels via RSVP. This means that if a router has a 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 neighbor that is known to not be RSVP capable, the router MUST NOT
advertise the LABEL_REQUEST object when sending messages that pass advertise the LABEL_REQUEST object when sending messages that pass
through the non-RSVP routers. The router SHOULD send a PathErr back through the non-RSVP routers. The router SHOULD send a PathErr back
to the sender, with the error code "Routing problem" and the error to the sender, with the error code "Routing problem" and the error
value "MPLS being negotiated, but a non-RSVP capable router stands in value "MPLS being negotiated, but a non-RSVP capable router stands in
the path." This same message SHOULD be sent, if a router receives a the path." This same message SHOULD be sent, if a router receives a
LABEL_REQUEST object in a message from a non-RSVP capable router. See LABEL_REQUEST object in a message from a non-RSVP capable router.
[1] for a description of how a downstream router can determine the See [1] for a description of how a downstream router can determine
presence of non-RSVP routers. the presence of non-RSVP routers.
4.3. Explicit Route Object 4.3. Explicit Route Object
Explicit routes are specified via the EXPLICIT_ROUTE object (ERO). Explicit routes are specified via the EXPLICIT_ROUTE object (ERO).
The Explicit Route Class is 20. Currently one C_Type is defined, The Explicit Route Class is 20. Currently one C_Type is defined,
Type 1 Explicit Route. The EXPLICIT_ROUTE object has the following Type 1 Explicit Route. The EXPLICIT_ROUTE object has the following
format: format:
Class = 20, C_Type = 1 Class = 20, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// (Subobjects) // // (Subobjects) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobjects Subobjects
The contents of an EXPLICIT_ROUTE object are a series of The contents of an EXPLICIT_ROUTE object are a series of variable-
variable-length data items called subobjects. The subobjects length data items called subobjects. The subobjects are defined in
are defined in section 4.3.3 below. section 4.3.3 below.
If a Path message contains multiple EXPLICIT_ROUTE objects, only the If a Path message contains multiple EXPLICIT_ROUTE objects, only the
first object is meaningful. Subsequent EXPLICIT_ROUTE objects MAY be first object is meaningful. Subsequent EXPLICIT_ROUTE objects MAY be
ignored and SHOULD NOT be propagated. ignored and SHOULD NOT be propagated.
4.3.1. Applicability 4.3.1. Applicability
The EXPLICIT_ROUTE object is intended to be used only for unicast The EXPLICIT_ROUTE object is intended to be used only for unicast
situations. Applications of explicit routing to multicast are a situations. Applications of explicit routing to multicast are a
topic for further research. topic for further research.
The EXPLICIT_ROUTE object is to be used only when all routers along The EXPLICIT_ROUTE object is to be used only when all routers along
the explicit route support RSVP and the EXPLICIT_ROUTE object. The the explicit route support RSVP and the EXPLICIT_ROUTE object. The
EXPLICIT_ROUTE object is assigned a class value of the form 0bbbbbbb. EXPLICIT_ROUTE object is assigned a class value of the form 0bbbbbbb.
RSVP routers that do not support the object will therefore respond RSVP routers that do not support the object will therefore respond
with an "Unknown Object Class" error. with an "Unknown Object Class" error.
4.3.2. Semantics of the Explicit Route Object 4.3.2. Semantics of the Explicit Route Object
An explicit route is a particular path in the network topology. An explicit route is a particular path in the network topology.
Typically, the explicit route is determined by a node, with the Typically, the explicit route is determined by a node, with the
intent of directing traffic along that path. intent of directing traffic along that path.
skipping to change at page 27, line 7 skipping to change at page 25, line 26
route that consists solely of Autonomous System number subobjects. route that consists solely of Autonomous System number subobjects.
Each subobject corresponds to an Autonomous System in the global Each subobject corresponds to an Autonomous System in the global
topology. In this case, each Autonomous System is an abstract node, topology. In this case, each Autonomous System is an abstract node,
and the explicit route is a path that includes each of the specified and the explicit route is a path that includes each of the specified
Autonomous Systems. There may be multiple hops within each Autonomous Systems. There may be multiple hops within each
Autonomous System, but these are opaque to the source node for the Autonomous System, but these are opaque to the source node for the
explicit route. explicit route.
4.3.3. Subobjects 4.3.3. Subobjects
The contents of an EXPLICIT_ROUTE object are a series of variable- The contents of an EXPLICIT_ROUTE object are a series of variable-
length data items called subobjects. Each subobject has the form: length data items called subobjects. Each subobject has the form:
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
|L| Type | Length | (Subobject contents) | |L| Type | Length | (Subobject contents) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
L L
The L bit is an attribute of the subobject. The L bit is set The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route. if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in If the bit is not set, the subobject represents a strict hop in
the explicit route. the explicit route.
Type Type
The Type indicates the type of contents of the subobject. The Type indicates the type of contents of the subobject.
Currently defined values are: Currently defined values are:
1 IPv4 prefix 1 IPv4 prefix
2 IPv6 prefix 2 IPv6 prefix
32 Autonomous system number 32 Autonomous system number
Length Length
The Length contains the total length of the subobject in bytes, The Length contains the total length of the subobject in bytes,
including the L, Type and Length fields. The Length MUST be at including the L, Type and Length fields. The Length MUST be at
least 4, and MUST be a multiple of 4. least 4, and MUST be a multiple of 4.
4.3.3.1. Strict and Loose Subobjects 4.3.3.1. Strict and Loose Subobjects
The L bit in the subobject is a one-bit attribute. If the L bit is The L bit in the subobject is a one-bit attribute. If the L bit is
skipping to change at page 28, line 12 skipping to change at page 26, line 32
The path between a strict node and its preceding node MUST include The path between a strict node and its preceding node MUST include
only network nodes from the strict node and its preceding abstract only network nodes from the strict node and its preceding abstract
node. node.
The path between a loose node and its preceding node MAY include 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 other network nodes that are not part of the strict node or its
preceding abstract node. preceding abstract node.
4.3.3.2. Subobject 1: IPv4 prefix 4.3.3.2. Subobject 1: IPv4 prefix
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | IPv4 address (4 bytes) | |L| Type | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix Length | Resvd | | IPv4 address (continued) | Prefix Length | Resvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L L
The L bit is an attribute of the subobject. The L bit is set The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route. if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in If the bit is not set, the subobject represents a strict hop in
the explicit route. the explicit route.
Type Type
0x01 IPv4 address 0x01 IPv4 address
Length Length
The Length contains the total length of the subobject in The Length contains the total length of the subobject in bytes,
bytes, including the Type and Length fields. The Length including the Type and Length fields. The Length is always 8.
is always 8.
IPv4 address IPv4 address
An IPv4 address. This address is treated as a prefix based on An IPv4 address. This address is treated as a prefix based on
the prefix length value below. Bits beyond the prefix are the prefix length value below. Bits beyond the prefix are
ignored on receipt and SHOULD be set to zero on transmission. ignored on receipt and SHOULD be set to zero on transmission.
Prefix length Prefix length
Length in bits of the IPv4 prefix Length in bits of the IPv4 prefix
skipping to change at page 29, line 13 skipping to change at page 27, line 32
Zero on transmission. Ignored on receipt. Zero on transmission. Ignored on receipt.
The contents of an IPv4 prefix subobject are a 4-octet IPv4 address, 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 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 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 address which lies within this prefix. Note that a prefix length of
32 indicates a single IPv4 node. 32 indicates a single IPv4 node.
4.3.3.3. Subobject 2: IPv6 Prefix 4.3.3.3. Subobject 2: IPv6 Prefix
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | IPv6 address (16 bytes) | |L| Type | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix Length | Resvd | | IPv6 address (continued) | Prefix Length | Resvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L L
The L bit is an attribute of the subobject. The L bit is set The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route. if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in If the bit is not set, the subobject represents a strict hop in
the explicit route. the explicit route.
Type Type
0x02 IPv6 address 0x02 IPv6 address
Length Length
The Length contains the total length of the subobject in The Length contains the total length of the subobject in bytes,
bytes, including the Type and Length fields. The Length including the Type and Length fields. The Length is always 20.
is always 20.
IPv6 address IPv6 address
An IPv6 address. This address is treated as a prefix based on An IPv6 address. This address is treated as a prefix based on
the prefix length value below. Bits beyond the prefix are the prefix length value below. Bits beyond the prefix are
ignored on receipt and SHOULD be set to zero on transmission. ignored on receipt and SHOULD be set to zero on transmission.
Prefix Length Prefix Length
Length in bits of the IPv6 prefix. Length in bits of the IPv6 prefix.
Padding Padding
Zero on transmission. Ignored on receipt. Zero on transmission. Ignored on receipt.
The contents of an IPv6 prefix subobject are a 16-octet IPv6 address, 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 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 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 address which lies within this prefix. Note that a prefix length of
128 indicates a single IPv6 node. 128 indicates a single IPv6 node.
4.3.3.4. Subobject 32: Autonomous System Number 4.3.3.4. Subobject 32: Autonomous System Number
The contents of an Autonomous System (AS) number subobject are a 2- The contents of an Autonomous System (AS) number subobject are a 2-
octet AS number. The abstract node represented by this subobject is octet AS number. The abstract node represented by this subobject is
the set of nodes belonging to the autonomous system. the set of nodes belonging to the autonomous system.
The length of the AS number subobject is 4 octets. The length of the AS number subobject is 4 octets.
4.3.4. Processing of the Explicit Route Object 4.3.4. Processing of the Explicit Route Object
4.3.4.1. Selection of the Next Hop 4.3.4.1. Selection of the Next Hop
A node receiving a Path message containing an EXPLICIT_ROUTE object A node receiving a Path message containing an EXPLICIT_ROUTE object
must determine the next hop for this path. This is necessary because must determine the next hop for this path. This is necessary because
the next abstract node along the explicit route might be an IP subnet the next abstract node along the explicit route might be an IP subnet
or an Autonomous System. Therefore, selection of this next hop may or an Autonomous System. Therefore, selection of this next hop may
involve a decision from a set of feasible alternatives. The criteria involve a decision from a set of feasible alternatives. The criteria
used to make a selection from feasible alternatives is implementation used to make a selection from feasible alternatives is implementation
dependent and can also be impacted by local policy, and is beyond the dependent and can also be impacted by local policy, and is beyond the
scope of this specification. However, it is assumed that each node scope of this specification. However, it is assumed that each node
will make a best effort attempt to determine a loop-free path. Note will make a best effort attempt to determine a loop-free path. Note
that paths so determined can be overridden by local policy. that paths so determined can be overridden by local policy.
To determine the next hop for the path, a node performs the following To determine the next hop for the path, a node performs the following
steps: steps:
1) The node receiving the RSVP message MUST first evaluate the first 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 subobject. If the node is not part of the abstract node described
the first subobject, it has received the message in error and SHOULD by the first subobject, it has received the message in error and
return a "Bad initial subobject" error. If there is no first SHOULD return a "Bad initial subobject" error. If there is no
subobject, the message is also in error and the system SHOULD return first subobject, the message is also in error and the system
a "Bad EXPLICIT_ROUTE object" error. SHOULD return a "Bad EXPLICIT_ROUTE object" error.
2) If there is no second subobject, this indicates the end of the 2) If there is no second subobject, this indicates the end of the
explicit route. The EXPLICIT_ROUTE object SHOULD be removed from the explicit route. The EXPLICIT_ROUTE object SHOULD be removed from
Path message. This node may or may not be the end of the path. the Path message. This node may or may not be the end of the
Processing continues with section 4.3.4.2, where a new EXPLICIT_ROUTE path. Processing continues with section 4.3.4.2, where a new
object MAY be added to the Path message. EXPLICIT_ROUTE object MAY be added to the Path message.
3) Next, the node evaluates the second subobject. If the node is 3) Next, the node evaluates the second subobject. If the node is
also a part of the abstract node described by the second subobject, also a part of the abstract node described by the second
then the node deletes the first subobject and continues processing subobject, then the node deletes the first subobject and continues
with step 2, above. Note that this makes the second subobject into processing with step 2, above. Note that this makes the second
the first subobject of the next iteration and allows the node to subobject into the first subobject of the next iteration and
identify the next abstract node on the path of the message after allows the node to identify the next abstract node on the path of
possible repeated application(s) of steps 2 and 3. the message after possible repeated application(s) of steps 2 and
3.
4) Abstract Node Border Case: The node determines whether it is 4) Abstract Node Border Case: The node determines whether it is
topologically adjacent to the abstract node described by the second topologically adjacent to the abstract node described by the
subobject. If so, the node selects a particular next hop which is a second subobject. If so, the node selects a particular next hop
member of the abstract node. The node then deletes the first which is a member of the abstract node. The node then deletes the
subobject and continues processing with section 4.3.4.2. first subobject and continues processing with section 4.3.4.2.
5) Interior of the Abstract Node Case: Otherwise, the node selects a 5) Interior of the Abstract Node Case: Otherwise, the node selects a
next hop within the abstract node of the first subobject (which the next hop within the abstract node of the first subobject (which
node belongs to) that is along the path to the abstract node of the the node belongs to) that is along the path to the abstract node
second subobject (which is the next abstract node). If no such path of the second subobject (which is the next abstract node). If no
exists then there are two cases: such path exists then there are two cases:
5a) If the second subobject is a strict subobject, there is an error 5a) If the second subobject is a strict subobject, there is an error
and the node SHOULD return a "Bad strict node" error. and the node SHOULD return a "Bad strict node" error.
5b) Otherwise, if the second subobject is a loose subobject, the node 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 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 node. If no path exists, there is an error, and the node SHOULD
return a "Bad loose node" error. return a "Bad loose node" error.
6) Finally, the node replaces the first subobject with any subobject 6) Finally, the node replaces the first subobject with any subobject
that denotes an abstract node containing the next hop. This is that denotes an abstract node containing the next hop. This is
necessary so that when the explicit route is received by the next necessary so that when the explicit route is received by the next
hop, it will be accepted. hop, it will be accepted.
4.3.4.2. Adding subobjects to the Explicit Route Object 4.3.4.2. Adding subobjects to the Explicit Route Object
After selecting a next hop, the node MAY alter the explicit route in After selecting a next hop, the node MAY alter the explicit route in
the following ways. the following ways.
If, as part of executing the algorithm in section 4.3.4.1, the 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 is removed, the node MAY add a new
EXPLICIT_ROUTE object. EXPLICIT_ROUTE object.
Otherwise, if the node is a member of the abstract node for the first 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, a series of subobjects MAY be inserted before the first
subobject or MAY replace the first subobject. Each subobject in this subobject or MAY replace the first subobject. Each subobject in this
series MUST denote an abstract node that is a subset of the current series MUST denote an abstract node that is a subset of the current
abstract node. abstract node.
Alternately, if the first subobject is a loose subobject, an Alternately, if the first subobject is a loose subobject, an
skipping to change at page 33, line 7 skipping to change at page 31, line 16
An RSVP router that does not recognize the EXPLICIT_ROUTE object An RSVP router that does not recognize the EXPLICIT_ROUTE object
sends a PathErr with the error code "Unknown object class" toward the sends a PathErr with the error code "Unknown object class" toward the
sender. This causes the path setup to fail. The sender should sender. This causes the path setup to fail. The sender should
notify management that a LSP cannot be established and possibly take notify management that a LSP cannot be established and possibly take
action to continue the reservation without the EXPLICIT_ROUTE or via action to continue the reservation without the EXPLICIT_ROUTE or via
a different explicit route. a different explicit route.
4.4. Record Route Object 4.4. Record Route Object
Routes can be recorded via the RECORD_ROUTE object (RRO). Routes can be recorded via the RECORD_ROUTE object (RRO).
Optionally, labels may also be recorded. The Record Route Class is Optionally, labels may also be recorded. The Record Route Class is
21. Currently one C_Type is defined, Type 1 Record Route. The 21. Currently one C_Type is defined, Type 1 Record Route. The
RECORD_ROUTE object has the following format: RECORD_ROUTE object has the following format:
Class = 21, C_Type = 1 Class = 21, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// (Subobjects) // // (Subobjects) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobjects Subobjects
The contents of a RECORD_ROUTE object are a series of The contents of a RECORD_ROUTE object are a series of
variable-length data items called subobjects. The subobjects variable-length data items called subobjects. The subobjects
are defined in section 4.4.1 below. are defined in section 4.4.1 below.
The RRO can be present in both RSVP Path and Resv messages. If a The RRO can be present in both RSVP Path and Resv messages. If a
Path message contains multiple RROs, only the first RRO is Path message contains multiple RROs, only the first RRO is
meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be meaningful. Subsequent RROs SHOULD be ignored and SHOULD NOT be
propagated. Similarly, if in a Resv message multiple RROs are propagated. Similarly, if in a Resv message multiple RROs are
encountered following a FILTER_SPEC before another FILTER_SPEC is encountered following a FILTER_SPEC before another FILTER_SPEC is
encountered, only the first RRO is meaningful. Subsequent RROs encountered, only the first RRO is meaningful. Subsequent RROs
SHOULD be ignored and SHOULD NOT be propagated. SHOULD be ignored and SHOULD NOT be propagated.
skipping to change at page 34, line 11 skipping to change at page 32, line 16
subobject relative to the beginning of RRO is considered the top. subobject relative to the beginning of RRO is considered the top.
The last subobject is considered the bottom. When a new subobject is The last subobject is considered the bottom. When a new subobject is
added, it is always added to the top. added, it is always added to the top.
An empty RRO with no subobjects is considered illegal. An empty RRO with no subobjects is considered illegal.
Three kinds of subobjects are currently defined. Three kinds of subobjects are currently defined.
4.4.1.1. Subobject 1: IPv4 address 4.4.1.1. Subobject 1: IPv4 address
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | IPv4 address (4 bytes) | | Type | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix Length | Flags | | IPv4 address (continued) | Prefix Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
0x01 IPv4 address 0x01 IPv4 address
Length Length
The Length contains the total length of the subobject in The Length contains the total length of the subobject in bytes,
bytes, including the Type and Length fields. The Length including the Type and Length fields. The Length is always 8.
is always 8.
IPv4 address IPv4 address
A 32-bit unicast, host address. Any network-reachable A 32-bit unicast, host address. Any network-reachable
interface address is allowed here. Illegal addresses, interface address is allowed here. Illegal addresses, such as
such as certain loopback addresses, SHOULD NOT be used. certain loopback addresses, SHOULD NOT be used.
Prefix length Prefix length
32 32
Flags Flags
0x01 Local protection available 0x01 Local protection available
Indicates that the link downstream of this node is Indicates that the link downstream of this node is
protected via a local repair mechanism. This flag can protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the only be set if the Local protection flag was set in the
SESSION_ATTRIBUTE object of the corresponding Path SESSION_ATTRIBUTE object of the corresponding Path
message. message.
0x02 Local protection in use 0x02 Local protection in use
Indicates that a local repair mechanism is in use to Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face of an outage maintain this tunnel (usually in the face of an outage
of the link it was previously routed over). of the link it was previously routed over).
4.4.1.2. Subobject 2: IPv6 address 4.4.1.2. Subobject 2: IPv6 address
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | IPv6 address (16 bytes) | | Type | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | | IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix Length | Flags | | IPv6 address (continued) | Prefix Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
0x02 IPv6 address 0x02 IPv6 address
Length Length
The Length contains the total length of the subobject in The Length contains the total length of the subobject in bytes,
bytes, including the Type and Length fields. The Length including the Type and Length fields. The Length is always 20.
is always 20.
IPv6 address IPv6 address
A 128-bit unicast host address. A 128-bit unicast host address.
Prefix length Prefix length
128 128
Flags Flags
0x01 Local protection available 0x01 Local protection available
Indicates that the link downstream of this node is Indicates that the link downstream of this node is
protected via a local repair mechanism. This flag can protected via a local repair mechanism. This flag can
only be set if the Local protection flag was set in the only be set if the Local protection flag was set in the
SESSION_ATTRIBUTE object of the corresponding Path SESSION_ATTRIBUTE object of the corresponding Path
message. message.
0x02 Local protection in use 0x02 Local protection in use
Indicates that a local repair mechanism is in use to Indicates that a local repair mechanism is in use to
maintain this tunnel (usually in the face of an outage maintain this tunnel (usually in the face of an outage
of the link it was previously routed over). of the link it was previously routed over).
4.4.1.3. Subobject 3, Label 4.4.1.3. Subobject 3, Label
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | C-Type | | Type | Length | Flags | C-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Contents of Label Object | | Contents of Label Object |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
0x03 Label 0x03 Label
Length Length
The Length contains the total length of the subobject in The Length contains the total length of the subobject in bytes,
bytes, including the Type and Length fields. including the Type and Length fields.
Flags Flags
0x01 = Global label 0x01 = Global label
This flag indicates that the label will be understood This flag indicates that the label will be understood
if received on any interface. if received on any interface.
C-Type C-Type
The C-Type of the included Label Object. Copied from the The C-Type of the included Label Object. Copied from the Label
Label Object. Object.
Contents of Label Object Contents of Label Object
The contents of the Label Object. Copied from the Label The contents of the Label Object. Copied from the Label Object
Object
4.4.2. Applicability 4.4.2. Applicability
Only the procedures for use in unicast sessions are defined here. Only the procedures for use in unicast sessions are defined here.
There are three possible uses of RRO in RSVP. First, an RRO can There are three possible uses of RRO in RSVP. First, an RRO can
function as a loop detection mechanism to discover L3 routing loops, function as a loop detection mechanism to discover L3 routing loops,
or loops inherent in the explicit route. The exact procedure for or loops inherent in the explicit route. The exact procedure for
doing so is described later in this document. doing so is described later in this document.
Second, an RRO collects up-to-date detailed path information hop-by- Second, an RRO collects up-to-date detailed path information hop-by-
hop about RSVP sessions, providing valuable information to the sender hop about RSVP sessions, providing valuable information to the sender
or receiver. Any path change (due to network topology changes) will or receiver. Any path change (due to network topology changes) will
be reported. be reported.
Third, RRO syntax is designed so that, with minor changes, the whole 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 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 useful if the sender receives RRO from the receiver in a Resv
skipping to change at page 40, line 4 skipping to change at page 37, line 32
drops the message. Resv messages should not loop if Path messages do drops the message. Resv messages should not loop if Path messages do
not loop. not loop.
4.4.5. Forward Compatibility 4.4.5. Forward Compatibility
New subobjects may be defined for the RRO. When processing an RRO, New subobjects may be defined for the RRO. When processing an RRO,
unrecognized subobjects SHOULD be ignored and passed on. When unrecognized subobjects SHOULD be ignored and passed on. When
processing an RRO for loop detection, a node SHOULD parse over any processing an RRO for loop detection, a node SHOULD parse over any
unrecognized objects. Loop detection works by detecting subobjects unrecognized objects. Loop detection works by detecting subobjects
which were inserted by the node itself on an earlier pass of the which were inserted by the node itself on an earlier pass of the
object. This ensures that the subobjects necessary for loop detection object. This ensures that the subobjects necessary for loop
are always understood. detection are always understood.
4.4.6. Non-support of RRO 4.4.6. Non-support of RRO
The RRO object is to be used only when all routers along the path The RRO object is to be used only when all routers along the path
support RSVP and the RRO object. The RRO object is assigned a class support RSVP and the RRO object. The RRO object is assigned a class
value of the form 0bbbbbbb. RSVP routers that do not support the value of the form 0bbbbbbb. RSVP routers that do not support the
object will therefore respond with an "Unknown Object Class" error. object will therefore respond with an "Unknown Object Class" error.
4.5. Error Codes for ERO and RRO 4.5. Error Codes for ERO and RRO
In the processing described above, certain errors must be reported as In the processing described above, certain errors must be reported as
either a "Routing Problem" or "Notify". The value of the "Routing either a "Routing Problem" or "Notify". The value of the "Routing
Problem" error code is 24; the value of the "Notify" error code is Problem" error code is 24; the value of the "Notify" error code is
25. 25.
The following defines error values for the Routing Problem Error The following defines error values for the Routing Problem Error
Code: Code:
Value Error: Value Error:
1 Bad EXPLICIT_ROUTE object 1 Bad EXPLICIT_ROUTE object
2 Bad strict node 2 Bad strict node
3 Bad loose node 3 Bad loose node
4 Bad initial subobject 4 Bad initial subobject
5 No route available toward destination 5 No route available toward destination
6 Unacceptable label value 6 Unacceptable label value
7 RRO indicated routing loops 7 RRO indicated routing loops
8 MPLS being negotiated, but a non-RSVP-capable router 8 MPLS being negotiated, but a non-RSVP-capable router
stands in the path stands in the path
9 MPLS label allocation failure 9 MPLS label allocation failure
10 Unsupported L3PID 10 Unsupported L3PID
For the Notify Error Code, the 16 bits of the Error Value field are: For the Notify Error Code, the 16 bits of the Error Value field are:
ss00 cccc cccc cccc ss00 cccc cccc cccc
The high order bits are as defined under Error Code 1. (See [1]). The high order bits are as defined under Error Code 1. (See [1]).
When ss = 00, the following subcodes are defined: When ss = 00, the following subcodes are defined:
1 RRO too large for MTU 1 RRO too large for MTU
2 RRO notification 2 RRO notification
3 Tunnel locally repaired 3 Tunnel locally repaired
4.6. Session, Sender Template, and Filter Spec Objects 4.6. Session, Sender Template, and Filter Spec Objects
New C-Types are defined for the SESSION, SENDER_TEMPLATE and New C-Types are defined for the SESSION, SENDER_TEMPLATE and
FILTER_SPEC objects. FILTER_SPEC objects.
The LSP_TUNNEL objects have the following format: The LSP_TUNNEL objects have the following format:
4.6.1. Session Object 4.6.1. Session Object
4.6.1.1. LSP_TUNNEL_IPv4 Session Object 4.6.1.1. LSP_TUNNEL_IPv4 Session Object
Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7 Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel end point address | | IPv4 tunnel end point address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID | | MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Extended Tunnel ID | | Extended Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 tunnel end point address IPv4 tunnel end point address
IPv4 address of the egress node for the tunnel. IPv4 address of the egress node for the tunnel.
Tunnel ID Tunnel ID
A 16-bit identifier used in the SESSION that remains constant A 16-bit identifier used in the SESSION that remains constant
over the life of the tunnel. over the life of the tunnel.
Extended Tunnel ID Extended Tunnel ID
A 32-bit identifier used in the SESSION that remains constant A 32-bit identifier used in the SESSION that remains constant
over the life of the tunnel. Normally set to all zeros. over the life of the tunnel. Normally set to all zeros.
Ingress nodes that wish to narrow the scope of a SESSION to the Ingress nodes that wish to narrow the scope of a SESSION to the
ingress-egress pair may place their IPv4 address here as a ingress-egress pair may place their IPv4 address here as a
globally unique identifier. globally unique identifier.
4.6.1.2. LSP_TUNNEL_IPv6 Session Object 4.6.1.2. LSP_TUNNEL_IPv6 Session Object
Class = SESSION, LSP_TUNNEL_IPv6 C_Type = 8 Class = SESSION, LSP_TUNNEL_IPv6 C_Type = 8
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| IPv6 tunnel end point address | | IPv6 tunnel end point address |
+ + + +
| (16 bytes) | | (16 bytes) |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID | | MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| Extended Tunnel ID | | Extended Tunnel ID |
+ + + +
| (16 bytes) | | (16 bytes) |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 tunnel end point address IPv6 tunnel end point address
IPv6 address of the egress node for the tunnel. IPv6 address of the egress node for the tunnel.
Tunnel ID Tunnel ID
A 16-bit identifier used in the SESSION that remains constant A 16-bit identifier used in the SESSION that remains constant
over the life of the tunnel. over the life of the tunnel.
Extended Tunnel ID Extended Tunnel ID
A 16-byte identifier used in the SESSION that remains constant A 16-byte identifier used in the SESSION that remains constant
over the life of the tunnel. Normally set to all zeros. over the life of the tunnel. Normally set to all zeros.
Ingress nodes that wish to narrow the scope of a SESSION to the Ingress nodes that wish to narrow the scope of a SESSION to the
ingress-egress pair may place their IPv6 address here as a ingress-egress pair may place their IPv6 address here as a
globally unique identifier. globally unique identifier.
4.6.2. Sender Template Object 4.6.2. Sender Template Object
4.6.2.1. LSP_TUNNEL_IPv4 Sender Template Object 4.6.2.1. LSP_TUNNEL_IPv4 Sender Template Object
Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7 Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7
0 1 2 3
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 tunnel sender address |
| IPv4 tunnel sender address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MUST be zero | LSP ID |
| MUST be zero | LSP ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 tunnel sender address IPv4 tunnel sender address
IPv4 address for a sender node IPv4 address for a sender node
LSP ID LSP ID
A 16-bit identifier used in the SENDER_TEMPLATE and the A 16-bit identifier used in the SENDER_TEMPLATE and the
FILTER_SPEC that can be changed to allow a sender to share FILTER_SPEC that can be changed to allow a sender to share
resources with itself. resources with itself.
4.6.2.2. LSP_TUNNEL_IPv6 Sender Template Object 4.6.2.2. LSP_TUNNEL_IPv6 Sender Template Object
Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv6 C_Type = 8 Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv6 C_Type = 8
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| IPv6 tunnel sender address | | IPv6 tunnel sender address |
+ + + +
| (16 bytes) | | (16 bytes) |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | LSP ID | | MUST be zero | LSP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 tunnel sender address IPv6 tunnel sender address
IPv6 address for a sender node IPv6 address for a sender node
LSP ID LSP ID
A 16-bit identifier used in the SENDER_TEMPLATE and the A 16-bit identifier used in the SENDER_TEMPLATE and the
FILTER_SPEC that can be changed to allow a sender to share FILTER_SPEC that can be changed to allow a sender to share
resources with itself. resources with itself.
4.6.3. Filter Specification Object 4.6.3. Filter Specification Object
4.6.3.1. LSP_TUNNEL_IPv4 Filter Specification Object 4.6.3.1. LSP_TUNNEL_IPv4 Filter Specification Object
Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv4 C-Type = 7 Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv4 C-Type = 7
The format of the LSP_TUNNEL_IPv4 FILTER_SPEC object is identical to The format of the LSP_TUNNEL_IPv4 FILTER_SPEC object is identical to
the LSP_TUNNEL_IPv4 SENDER_TEMPLATE object. the LSP_TUNNEL_IPv4 SENDER_TEMPLATE object.
4.6.3.2. LSP_TUNNEL_IPv6 Filter Specification Object 4.6.3.2. LSP_TUNNEL_IPv6 Filter Specification Object
Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv6 C_Type = 8 Class = FILTER SPECIFICATION, LSP_TUNNEL_IPv6 C_Type = 8
The format of the LSP_TUNNEL_IPv6 FILTER_SPEC object is identical to The format of the LSP_TUNNEL_IPv6 FILTER_SPEC object is identical to
the LSP_TUNNEL_IPv6 SENDER_TEMPLATE object. the LSP_TUNNEL_IPv6 SENDER_TEMPLATE object.
4.6.4. Reroute and Bandwidth Increase Procedure 4.6.4. Reroute and Bandwidth Increase Procedure
This section describes how to setup a tunnel that is capable of This section describes how to setup a tunnel that is capable of
maintaining resource reservations (without double counting) while it maintaining resource reservations (without double counting) while it
is being rerouted or while it is attempting to increase its is being rerouted or while it is attempting to increase its
bandwidth. In the initial Path message, the ingress node forms a bandwidth. In the initial Path message, the ingress node forms a
SESSION object, assigns a Tunnel_ID, and places its IPv4 address in SESSION object, assigns a Tunnel_ID, and places its IPv4 address in
the Extended_Tunnel_ID. It also forms a SENDER_TEMPLATE and assigns the Extended_Tunnel_ID. It also forms a SENDER_TEMPLATE and assigns
a LSP_ID. Tunnel setup then proceeds according to the normal a LSP_ID. Tunnel setup then proceeds according to the normal
procedure. procedure.
On receipt of the Path message, the egress node sends a Resv message On receipt of the Path message, the egress node sends a Resv message
with the STYLE Shared Explicit toward the ingress node. with the STYLE Shared Explicit toward the ingress node.
When an ingress node with an established path wants to change that When an ingress node with an established path wants to change that
path, it forms a new Path message as follows. The existing SESSION path, it forms a new Path message as follows. The existing SESSION
object is used. In particular the Tunnel_ID and Extended_Tunnel_ID 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 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 SENDER_TEMPLATE. It creates an EXPLICIT_ROUTE object for the new
route. The new Path message is sent. The ingress node refreshes route. The new Path message is sent. The ingress node refreshes
both the old and new path messages. both the old and new path messages.
The egress node responds with a Resv message with an SE flow The egress node responds with a Resv message with an SE flow
descriptor formatted as: descriptor formatted as:
<FLOWSPEC><old_FILTER_SPEC><old_LABEL_OBJECT><new_FILTER_SPEC> <FLOWSPEC><old_FILTER_SPEC><old_LABEL_OBJECT><new_FILTER_SPEC>
<new_LABEL_OBJECT> <new_LABEL_OBJECT>
(Note that if the PHOPs are different, then two messages are sent (Note that if the PHOPs are different, then two messages are sent
each with the appropriate FILTER_SPEC and LABEL_OBJECT.) each with the appropriate FILTER_SPEC and LABEL_OBJECT.)
When the ingress node receives the Resv Message(s), it may begin When the ingress node receives the Resv Message(s), it may begin
using the new route. It SHOULD send a PathTear message for the old using the new route. It SHOULD send a PathTear message for the old
route. route.
4.7. Session Attribute Object 4.7. Session Attribute Object
The Session Attribute Class is 207. Two C_Types are defined, 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, 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 LSP_TUNNEL_RA C-Type includes all the same fields as the LSP_TUNNEL
C-Type. Additionally it carries resource affinity information. The C-Type. Additionally it carries resource affinity information. The
formats are as follows: formats are as follows:
4.7.1. Format without resource affinities 4.7.1. Format without resource affinities
SESSION_ATTRIBUTE class = 207, LSP_TUNNEL C-Type = 7 SESSION_ATTRIBUTE class = 207, LSP_TUNNEL C-Type = 7
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Setup Prio | Holding Prio | Flags | Name Length | | Setup Prio | Holding Prio | Flags | Name Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// Session Name (NULL padded display string) // // Session Name (NULL padded display string) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Setup Priority Setup Priority
The priority of the session with respect to taking resources, The priority of the session with respect to taking resources,
in the range of 0 to 7. The value 0 is the highest priority. in the range of 0 to 7. The value 0 is the highest priority.
The Setup Priority is used in deciding whether this session can The Setup Priority is used in deciding whether this session can
preempt another session. preempt another session.
Holding Priority Holding Priority
The priority of the session with respect to holding resources, The priority of the session with respect to holding resources,
in the range of 0 to 7. The value 0 is the highest priority. in the range of 0 to 7. The value 0 is the highest priority.
Holding Priority is used in deciding whether this session can Holding Priority is used in deciding whether this session can
be preempted by another session. be preempted by another session.
Flags Flags
0x01 Local protection desired 0x01 Local protection desired
This flag permits transit routers to use a local repair This flag permits transit routers to use a local repair
mechanism which may result in violation of the explicit mechanism which may result in violation of the explicit
route object. When a fault is detected on an adjacent route object. When a fault is detected on an adjacent
downstream link or node, a transit router can reroute downstream link or node, a transit router can reroute
traffic for fast service restoration. traffic for fast service restoration.
0x02 Label recording desired 0x02 Label recording desired
This flag indicates that label information should be This flag indicates that label information should be
included when doing a route record. included when doing a route record.
0x04 SE Style desired 0x04 SE Style desired
This flag indicates that the tunnel ingress node may This flag indicates that the tunnel ingress node may
choose to reroute this tunnel without tearing it down. choose to reroute this tunnel without tearing it down.
A tunnel egress node SHOULD use the SE Style when A tunnel egress node SHOULD use the SE Style when
responding with a Resv message. responding with a Resv message.
Name Length Name Length
The length of the display string before padding, in bytes. The length of the display string before padding, in bytes.
Session Name Session Name
A null padded string of characters. A null padded string of characters.
4.7.2. Format with resource affinities 4.7.2. Format with resource affinities
SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1 SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Exclude-any | | Exclude-any |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-any | | Include-any |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-all | | Include-all |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Setup Prio | Holding Prio | Flags | Name Length | | Setup Prio | Holding Prio | Flags | Name Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// Session Name (NULL padded display string) // // Session Name (NULL padded display string) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Exclude-any Exclude-any
A 32-bit vector representing a set of attribute filters A 32-bit vector representing a set of attribute filters
associated with a tunnel any of which renders a link associated with a tunnel any of which renders a link
unacceptable. unacceptable.
Include-any Include-any
A 32-bit vector representing a set of attribute filters A 32-bit vector representing a set of attribute filters
associated with a tunnel any of which renders a link acceptable associated with a tunnel any of which renders a link acceptable
(with respect to this test). A null set (all bits set to zero) (with respect to this test). A null set (all bits set to zero)
automatically passes. automatically passes.
Include-all Include-all
A 32-bit vector representing a set of attribute filters A 32-bit vector representing a set of attribute filters
associated with a tunnel all of which must be present for a associated with a tunnel all of which must be present for a
link to be acceptable (with respect to this test). A null set link to be acceptable (with respect to this test). A null set
(all bits set to zero) automatically passes. (all bits set to zero) automatically passes.
Setup Priority Setup Priority
The priority of the session with respect to taking resources, The priority of the session with respect to taking resources,
in the range of 0 to 7. The value 0 is the highest priority. in the range of 0 to 7. The value 0 is the highest priority.
The Setup Priority is used in deciding whether this session can The Setup Priority is used in deciding whether this session can
preempt another session. preempt another session.
Holding Priority Holding Priority
The priority of the session with respect to holding resources, The priority of the session with respect to holding resources,
in the range of 0 to 7. The value 0 is the highest priority. in the range of 0 to 7. The value 0 is the highest priority.
Holding Priority is used in deciding whether this session can Holding Priority is used in deciding whether this session can
be preempted by another session. be preempted by another session.
Flags Flags
0x01 Local protection desired 0x01 Local protection desired
This flag permits transit routers to use a local repair This flag permits transit routers to use a local repair
mechanism which may result in violation of the explicit mechanism which may result in violation of the explicit
route object. When a fault is detected on an adjacent route object. When a fault is detected on an adjacent
downstream link or node, a transit router can reroute downstream link or node, a transit router can reroute
traffic for fast service restoration. traffic for fast service restoration.
0x02 Label recording desired 0x02 Label recording desired
This flag indicates that label information should be This flag indicates that label information should be
included when doing a route record. included when doing a route record.
0x04 SE Style desired 0x04 SE Style desired
This flag indicates that the tunnel ingress node may This flag indicates that the tunnel ingress node may
choose to reroute this tunnel without tearing it down. choose to reroute this tunnel without tearing it down.
A tunnel egress node SHOULD use the SE Style when A tunnel egress node SHOULD use the SE Style when
responding with a Resv message. responding with a Resv message.
Name Length Name Length
The length of the display string before padding, in bytes. The length of the display string before padding, in bytes.
Session Name Session Name
A null padded string of characters. A null padded string of characters.
4.7.3. Procedures applying to both C-Types 4.7.3. Procedures applying to both C-Types
The support of setup and holding priorities is OPTIONAL. A node can The support of setup and holding priorities is OPTIONAL. A node can
recognize this information but be unable to perform the requested recognize this information but be unable to perform the requested
operation. The node SHOULD pass the information downstream operation. The node SHOULD pass the information downstream
unchanged. unchanged.
As noted above, preemption is implemented by two priorities. The As noted above, preemption is implemented by two priorities. The
Setup Priority is the priority for taking resources. The Holding Setup Priority is the priority for taking resources. The Holding
Priority is the priority for holding a resource. Specifically, the Priority is the priority for holding a resource. Specifically, the
Holding Priority is the priority at which resources assigned to this Holding Priority is the priority at which resources assigned to this
session will be reserved. The Setup Priority SHOULD never be higher session will be reserved. The Setup Priority SHOULD never be higher
than the Holding Priority for a given session. than the Holding Priority for a given session.
The setup and holding priorities are directly analogous to the The setup and holding priorities are directly analogous to the
preemption and defending priorities as defined in [9]. While the preemption and defending priorities as defined in [9]. While the
interaction of these two objects is ultimately a matter of policy, interaction of these two objects is ultimately a matter of policy,
the following default interaction is RECOMMENDED. the following default interaction is RECOMMENDED.
When both objects are present, the preemption priority policy element When both objects are present, the preemption priority policy element
is used. A mapping between the priority spaces is defined as is used. A mapping between the priority spaces is defined as
follows. A session attribute priority S is mapped to a preemption follows. A session attribute priority S is mapped to a preemption
skipping to change at page 52, line 7 skipping to change at page 49, line 7
In order to be validated a link MUST pass the following three tests. In order to be validated a link MUST pass the following three tests.
To precisely describe the tests use the definitions in the object To precisely describe the tests use the definitions in the object
description above. We also define description above. We also define
Link-attr A 32-bit vector representing attributes associated Link-attr A 32-bit vector representing attributes associated
with a link. with a link.
The three tests are The three tests are
1. Exclude-any 1. Exclude-any
This test excludes a link from consideration if the link carries any This test excludes a link from consideration if the link
of the attributes in the set. carries any of the attributes in the set.
(link-attr & exclude-any) == 0 (link-attr & exclude-any) == 0
2. Include-any 2. Include-any
This test accepts a link if the link carries any of the This test accepts a link if the link carries any of the
attributes in the set. attributes in the set.
(include-any == 0) | ((link-attr & include-any) != 0) (include-any == 0) | ((link-attr & include-any) != 0)
3. Include-all 3. Include-all
This test accepts a link only if the link carries all of the This test accepts a link only if the link carries all of the
attributes in the set. attributes in the set.
(include-all == 0) | (((link-attr & include-all) ^ include- (include-all == 0) | (((link-attr & include-all) ^ include-
all) == 0) all) == 0)
For a link to be acceptable, all three tests MUST pass. If the test 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 fails, the node SHOULD send a PathErr message with an error code of
"Routing Problem" and an error value of "no route available toward "Routing Problem" and an error value of "no route available toward
destination". destination".
If a Path message contains multiple SESSION_ATTRIBUTE objects, only If a Path message contains multiple SESSION_ATTRIBUTE objects, only
the first SESSION_ATTRIBUTE object is meaningful. Subsequent the first SESSION_ATTRIBUTE object is meaningful. Subsequent
SESSION_ATTRIBUTE objects can be ignored and need not be forwarded. SESSION_ATTRIBUTE objects can be ignored and need not be forwarded.
skipping to change at page 54, line 19 skipping to change at page 51, line 8
destination address is the IP address of the neighbor node. destination address is the IP address of the neighbor node.
The HELLO mechanism is intended for use between immediate neighbors. The HELLO mechanism is intended for use between immediate neighbors.
When HELLO messages are being the exchanged between immediate When HELLO messages are being the exchanged between immediate
neighbors, the IP TTL field of all outgoing HELLO messages SHOULD be neighbors, the IP TTL field of all outgoing HELLO messages SHOULD be
set to 1. set to 1.
The Hello message has a Msg Type of 20. The Hello message format is The Hello message has a Msg Type of 20. The Hello message format is
as follows: as follows:
<Hello Message> ::= <Common Header> [ <INTEGRITY> ] <Hello Message> ::= <Common Header> [ <INTEGRITY> ]
<HELLO> <HELLO>
5.2. HELLO Object formats 5.2. HELLO Object formats
The HELLO Class is 22. There are two C_Types defined. The HELLO Class is 22. There are two C_Types defined.
5.2.1. HELLO REQUEST object 5.2.1. HELLO REQUEST object
Class = HELLO Class, C_Type = 1 Class = HELLO Class, C_Type = 1
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Src_Instance | | Src_Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dst_Instance | | Dst_Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5.2.2. HELLO ACK object 5.2.2. HELLO ACK object
Class = HELLO Class, C_Type = 2 Class = HELLO Class, C_Type = 2
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Src_Instance | | Src_Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dst_Instance | | Dst_Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Src_Instance: 32 bits Src_Instance: 32 bits
a 32 bit value that represents the sender's instance. The a 32 bit value that represents the sender's instance. The
advertiser maintains a per neighbor representation/value. This advertiser maintains a per neighbor representation/value. This
value MUST change when the sender is reset, when the node value MUST change when the sender is reset, when the node reboots,
reboots, or when communication is lost to the neighboring node or when communication is lost to the neighboring node and
and otherwise remains the same. This field MUST NOT be set to otherwise remains the same. This field MUST NOT be set to zero
zero (0). (0).
Dst_Instance: 32 bits Dst_Instance: 32 bits
The most recently received Src_Instance value received from the The most recently received Src_Instance value received from the
neighbor. This field MUST be set to zero (0) when no value has neighbor. This field MUST be set to zero (0) when no value has
ever been seen from the neighbor. ever been seen from the neighbor.
5.3. Hello Message Usage 5.3. Hello Message Usage
The Hello Message is completely OPTIONAL. All messages may be The Hello Message is completely OPTIONAL. All messages may be
ignored by nodes which do not wish to participate in Hello message ignored by nodes which do not wish to participate in Hello message
processing. The balance of this section is written assuming that the processing. The balance of this section is written assuming that the
receiver as well as the sender is participating. In particular, 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 use of MUST and SHOULD with respect to the receiver applies only to a
node that supports Hello message processing. node that supports Hello message processing.
skipping to change at page 59, line 5 skipping to change at page 55, line 17
ROUTE_RECORD Subobject Type is an 8-bit number that identifies the ROUTE_RECORD Subobject Type is an 8-bit number that identifies the
function of the subobject. There are no range restrictions. All function of the subobject. There are no range restrictions. All
possible values are available for assignment. possible values are available for assignment.
Following the policies outlined in [15], subobject types in the Following the policies outlined in [15], subobject types in the
range 0 - 127 (0x00 - 0x7F) are allocated through an IETF range 0 - 127 (0x00 - 0x7F) are allocated through an IETF
Consensus action, codes in the range 128 - 191 (0x80 - 0xBF) are Consensus action, codes in the range 128 - 191 (0x80 - 0xBF) are
allocated as First Come First Served, and codes in the range 192 - allocated as First Come First Served, and codes in the range 192 -
255 (0xC0 - 0xFF) are reserved for Private Use. 255 (0xC0 - 0xFF) are reserved for Private Use.
The following assignments are made in this document. The following assignments are made in this document.
7.1. Message Types 7.1. Message Types
Message Message Message Message
Number Name Number Name
20 Hello 20 Hello
7.2. Class Numbers and C-Types 7.2. Class Numbers and C-Types
Class Class Class Class
Number Name Number Name
1 SESSION 1 SESSION
Class Types or C-Types: Class Types or C-Types:
7 LSP Tunnel IPv4 7 LSP Tunnel IPv4
8 LSP Tunnel IPv6 8 LSP Tunnel IPv6
10 FILTER_SPEC 10 FILTER_SPEC
Class Types or C-Types: Class Types or C-Types:
7 LSP Tunnel IPv4 7 LSP Tunnel IPv4
8 LSP Tunnel IPv6 8 LSP Tunnel IPv6
11 SENDER_TEMPLATE 11 SENDER_TEMPLATE
Class Types or C-Types: Class Types or C-Types:
7 LSP Tunnel IPv4 7 LSP Tunnel IPv4
8 LSP Tunnel IPv6 8 LSP Tunnel IPv6
16 RSVP_LABEL 16 RSVP_LABEL
Class Types or C-Types: Class Types or C-Types:
1 Type 1 Label 1 Type 1 Label
19 LABEL_REQUEST 19 LABEL_REQUEST
Class Types or C-Types: Class Types or C-Types:
1 Without Label Range 1 Without Label Range
2 With ATM Label Range 2 With ATM Label Range
3 With Frame Relay Label Range 3 With Frame Relay Label Range
20 EXPLICIT_ROUTE 20 EXPLICIT_ROUTE
Class Types or C-Types: Class Types or C-Types:
1 Type 1 Explicit Route 1 Type 1 Explicit Route
21 ROUTE_RECORD 21 ROUTE_RECORD
Class Types or C-Types: Class Types or C-Types:
1 Type 1 Route Record 1 Type 1 Route Record
22 HELLO 22 HELLO
Class Types or C-Types: Class Types or C-Types:
1 Request 1 Request
2 Acknowledgment 2 Acknowledgment
207 SESSION_ATTRIBUTE 207 SESSION_ATTRIBUTE
Class Types or C-Types: Class Types or C-Types:
1 LSP_TUNNEL_RA 1 LSP_TUNNEL_RA
7 LSP Tunnel 7 LSP Tunnel
7.3. Error Codes and Globally-Defined Error Value Sub-Codes 7.3. Error Codes and Globally-Defined Error Value Sub-Codes
The following list extends the basic list of Error Codes and Values The following list extends the basic list of Error Codes and Values
that are defined in [RFC2205]. that are defined in [RFC2205].
Error Code Meaning Error Code Meaning
24 Routing Problem 24 Routing Problem
This Error Code has the following globally-defined Error This Error Code has the following globally-defined
Value sub-codes: Error Value sub-codes:
1 Bad EXPLICIT_ROUTE object 1 Bad EXPLICIT_ROUTE object
2 Bad strict node 2 Bad strict node
3 Bad loose node 3 Bad loose node
4 Bad initial subobject 4 Bad initial subobject
5 No route available toward 5 No route available toward
destination destination
6 Unacceptable label value 6 Unacceptable label value
7 RRO indicated routing loops 7 RRO indicated routing loops
8 MPLS being negotiated, but a 8 MPLS being negotiated, but a
non-RSVP-capable router stands non-RSVP-capable router stands
in the path in the path
9 MPLS label allocation failure 9 MPLS label allocation failure
10 Unsupported L3PID 10 Unsupported L3PID
25 Notify Error 25 Notify Error
This Error Code has the following globally-defined Error This Error Code has the following globally-defined
Value sub-codes: Error Value sub-codes:
1 RRO too large for MTU 1 RRO too large for MTU
2 RRO Notification 2 RRO Notification
3 Tunnel locally repaired 3 Tunnel locally repaired
7.4. Subobject Definitions 7.4. Subobject Definitions
Subobjects of the EXPLICIT_ROUTE object with C-Type 1: Subobjects of the EXPLICIT_ROUTE object with C-Type 1:
1 IPv4 prefix 1 IPv4 prefix
2 IPv6 prefix 2 IPv6 prefix
32 Autonomous system number 32 Autonomous system number
Subobjects of the RECORD_ROUTE object with C-Type 1: Subobjects of the RECORD_ROUTE object with C-Type 1:
1 IPv4 address 1 IPv4 address
2 IPv6 address 2 IPv6 address
3 Label 3 Label
8. Intellectual Property Considerations 8. Intellectual Property Considerations
The IETF has been notified of intellectual property rights claimed in The IETF has been notified of intellectual property rights claimed in
regard to some or all of the specification contained in this regard to some or all of the specification contained in this
document. For more information consult the online list of claimed document. For more information consult the online list of claimed
rights. rights.
9. Acknowledgments 9. Acknowledgments
This document contains ideas as well as text that have appeared in This document contains ideas as well as text that have appeared in
previous Internet Drafts. The authors of the current draft wish to previous Internet Drafts. The authors of the current document wish
thank the authors of those drafts. They are Steven Blake, Bruce to thank the authors of those drafts. They are Steven Blake, Bruce
Davie, Roch Guerin, Sanjay Kamat, Yakov Rekhter, Eric Rosen, and Arun Davie, Roch Guerin, Sanjay Kamat, Yakov Rekhter, Eric Rosen, and Arun
Viswanathan. We also wish to thank Bora Akyol, Yoram Bernet and Alex Viswanathan. We also wish to thank Bora Akyol, Yoram Bernet and Alex
Mondrus for their comments on this draft. Mondrus for their comments on this document.
10. References 10. References
[1] Braden, R. et al., "Resource ReSerVation Protocol (RSVP) -- [1] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
Version 1, Functional Specification", RFC 2205, September 1997. "Resource ReSerVation Protocol (RSVP) -- Version 1, Functional
Specification", RFC 2205, September 1997.
[2] Rosen, E. et al., "Multiprotocol Label Switching Architecture", [2] Rosen, E., Viswanathan, A. and R. Callon, "Multiprotocol Label
RFC 3031, January 2001. Switching Architecture", RFC 3031, January 2001.
[3] Awduche, D. et al., "Requirements for Traffic Engineering over [3] Awduche, D., Malcolm, J., Agogbua, J., O'Dell and J. McManus,
MPLS", RFC 2702, September 1999. "Requirements for Traffic Engineering over MPLS", RFC 2702,
September 1999.
[4] Wroclawski, J., "Specification of the Controlled-Load Network [4] Wroclawski, J., "Specification of the Controlled-Load Network
Element Service", RFC 2211, September 1997. Element Service", RFC 2211, September 1997.
[5] Rosen, E. et al., "MPLS Label Stack Encoding", RFC 3032, [5] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D.,
January 2001. 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 [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[7] Almquist, P., "Type of Service in the Internet Protocol Suite", [7] Almquist, P., "Type of Service in the Internet Protocol Suite",
RFC 1349, July 1992. RFC 1349, July 1992.
[8] Nichols, K. et al., "Definition of the Differentiated Services [8] Nichols, K., Blake, S., Baker, F. and D. Black, "Definition of
Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, the Differentiated Services Field (DS Field) in the IPv4 and
December 1998. IPv6 Headers", RFC 2474, December 1998.
[9] Herzog, S., "Signaled Preemption Priority Policy Element", [9] Herzog, S., "Signaled Preemption Priority Policy Element", RFC
RFC 2751, January 2000. 2751, January 2000.
[10] Awduche, D. et al., "Applicability Statement for Extensions to RSVP [10] Awduche, D., Hannan, A. and X. Xiao, "Applicability Statement
for LSP-Tunnels", draft-ietf-mpls-rsvp-tunnel-applicability-00.txt, for Extensions to RSVP for LSP-Tunnels", RFC 3210, December
September 1999. 2001.
[11] Wroclawski, J., "The Use of RSVP with IETF Integrated Services", [11] Wroclawski, J., "The Use of RSVP with IETF Integrated Services",
RFC 2210, September 1997. RFC 2210, September 1997.
[12] Postel, J., "Internet Control Message Protocol", RFC 792, [12] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792,
September 1981. September 1981.
[13] Mogul, J. & Deering, S., "Path MTU Discovery", RFC 1191, [13] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191,
November 1990. November 1990.
[14] Conta, A. & Deering, S., "Internet Control Message Protocol [14] Conta, A. and S. Deering, "Internet Control Message Protocol
(ICMPv6) for the Internet Protocol Version 6 (IPv6)", RFC 2463, (ICMPv6) for the Internet Protocol Version 6 (IPv6)", RFC 2463,
December 1998. December 1998.
[15] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA [15] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[16] Bernet, Y. et al., "Specification of the Null Service Type", [16] Bernet, Y., Smiht, A. and B. Davie, "Specification of the Null
RFC 2997, November 2000. Service Type", RFC 2997, November 2000.
11. Authors' Addresses 11. Authors' Addresses
Daniel O. Awduche Daniel O. Awduche
Movaz Networks, Inc. Movaz Networks, Inc.
7926 Jones Branch Drive, Suite 615 7926 Jones Branch Drive, Suite 615
McLean, VA 22102 McLean, VA 22102
Voice: +1 703 847 7350 Voice: +1 703-298-5291
Email: awduche@movaz.com EMail: awduche@movaz.com
Lou Berger Lou Berger
Movaz Networks, Inc. Movaz Networks, Inc.
7926 Jones Branch Drive, Suite 615 7926 Jones Branch Drive, Suite 615
McLean, VA 22102 McLean, VA 22102
Voice: +1 703 847 1801 Voice: +1 703 847 1801
Email: lberger@movaz.com EMail: lberger@movaz.com
Der-Hwa Gan Der-Hwa Gan
Juniper Networks, Inc. Juniper Networks, Inc.
385 Ravendale Drive 385 Ravendale Drive
Mountain View, CA 94043 Mountain View, CA 94043
Email: dhg@juniper.net EMail: dhg@juniper.net
Tony Li Tony Li
Procket Networks Procket Networks
3910 Freedom Circle, Ste. 102A 3910 Freedom Circle, Ste. 102A
Santa Clara CA 95054 Santa Clara CA 95054
Email: tony1@home.net EMail: tli@procket.com
Vijay Srinivasan Vijay Srinivasan
Cosine Communications, Inc. Cosine Communications, Inc.
1200 Bridge Parkway 1200 Bridge Parkway
Redwood City, CA 94065 Redwood City, CA 94065
Voice: +1 650 628 4892 Voice: +1 650 628 4892
Email: vsriniva@cosinecom.com EMail: vsriniva@cosinecom.com
George Swallow George Swallow
Cisco Systems, Inc. Cisco Systems, Inc.
250 Apollo Drive 250 Apollo Drive
Chelmsford, MA 01824 Chelmsford, MA 01824
Voice: +1 978 244 8143 Voice: +1 978 244 8143
Email: swallow@cisco.com EMail: swallow@cisco.com
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.
 End of changes. 294 change blocks. 
774 lines changed or deleted 765 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/