draft-ietf-mpls-cr-ldp-00.txt | draft-ietf-mpls-cr-ldp-01.txt | |||
---|---|---|---|---|
MPLS Working Group L. Andersson, A. Fredette, B. Jamoussi | MPLS Working Group Bilel Jamoussi, Editor | |||
Internet Draft Nortel Networks | Internet Draft Nortel Networks | |||
Expiration Date: July 1999 | Expiration Date: August 1999 | |||
R. Callon | ||||
IronBridge Networks | ||||
P. Doolan | ||||
Ennovate Networks | ||||
N. Feldman | ||||
IBM Corp | ||||
E. Gray | ||||
Lucent Technologies | ||||
J. Halpern | ||||
Newbridge Networks | ||||
J. Heinanen | ||||
Telia Finland | ||||
T. E. Kilty | ||||
Northchurch Communications | ||||
A. G. Malis | ||||
Ascend Communications, Inc. | ||||
M. Girish | ||||
SBC Technology Resources, Inc. | ||||
K. Sundell | ||||
Ericsson | ||||
P. Vaananen | ||||
Nokia Telecommunications | ||||
T. Worster | ||||
General DataComm, Inc. | ||||
L. Wu, R. Dantu | ||||
Alcatel | ||||
January 1998 | February 1999 | |||
Constraint-Based LSP Setup using LDP | Constraint-Based LSP Setup using LDP | |||
draft-ietf-mpls-cr-ldp-00.txt | draft-ietf-mpls-cr-ldp-01.txt | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft. Internet-Drafts are working | This document is an Internet-Draft and is in full conformance with | |||
all provisions of Section 10 of RFC2026. | ||||
CR-LDP Specification - 2 - Exp. Apr 1999 | ||||
documents of the Internet Engineering Task Force (IETF), its areas, | Internet-Drafts are working documents of the Internet Engineering | |||
and its working groups. Note that other groups may also distribute | Task Force (IETF), its areas, and its working groups. Note that | |||
working documents as Internet-Drafts. | other groups may also distribute working documents as Internet- | |||
Drafts. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
To learn the current status of any Internet-Draft, please check the | The list of current Internet-Drafts can be accessed at | |||
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow | http://www.ietf.org/ietf/1id-abstracts.txt | |||
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), | ||||
munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or | The list of Internet-Draft Shadow Directories can be accessed at | |||
ftp.isi.edu (US West Coast). | http://www.ietf.org/shadow.html. | |||
Distribution of this memo is unlimited. | ||||
Copyright Notice | ||||
Copyright (C) The Internet Society (1998). All Rights Reserved. | ||||
Abstract | Abstract | |||
Label Distribution Protocol (LDP) is defined in [LDP] for | Label Distribution Protocol (LDP) is defined in [LDP] for | |||
distribution of labels inside one MPLS domain. One of the most | distribution of labels inside one MPLS domain. One of the most | |||
important services that may be offered using MPLS in general and LDP | important services that may be offered using MPLS in general and LDP | |||
in particular is support for constraint-based routing of traffic | in particular is support for constraint-based routing of traffic | |||
across the routed network. Constraint-based routing offers the | across the routed network. Constraint-based routing offers the | |||
opportunity to extend the information used to setup paths beyond what | opportunity to extend the information used to setup paths beyond what | |||
is available for the routing protocol. For instance, an LSP can be | is available for the routing protocol. For instance, an LSP can be | |||
setup based on an explicit route constraint, a Service Class (SC) | setup based on explicit route constraints, QoS constraints, and | |||
constraint, or both. Constraint-based routing (CR) and Traffic | others. Constraint-based routing (CR) is a mechanism used to meet | |||
Engineering requirements have been proposed by [FRAME], [ARCH] and | Traffic Engineering requirements that have been proposed by [FRAME], | |||
[TER]. These requirements may be met by extending LDP for support of | [ARCH] and [TER]. These requirements may be met by extending LDP for | |||
constraint-based routed label switched paths (CRLSPs). Other uses | support of constraint-based routed label switched paths (CRLSPs). | |||
exist for CRLSPs as well ([VPN1] and [VPN2]). | ||||
CR-LDP Specification - 2 - Exp. August 1999 | ||||
Other uses exist for CRLSPs as well ([VPN1], [VPN2] and [VPN3]). | ||||
This draft specifies mechanisms and TLVs for support of CRLSPs using | This draft specifies mechanisms and TLVs for support of CRLSPs using | |||
LDP. The Explicit Route object and procedures are extracted from | LDP. The Explicit Route object and procedures are extracted from | |||
[ER]. | [ER]. | |||
Table of Contents | ||||
1. Introduction ......................................... 3 | ||||
2. Constraint-based Routing Overview .................... 3 | ||||
2.1 Strict and Loose Explicit Routes ..................... 4 | ||||
2.2 Traffic Characteristics .............................. 4 | ||||
2.3 Pre-emption .......................................... 5 | ||||
2.4 Route Pinning ........................................ 5 | ||||
2.5 Resource Class ....................................... 5 | ||||
3. Solution Overview .................................... 5 | ||||
3.1 Required Messages and TLVs ........................... 7 | ||||
3.2 Label Request Message ................................ 7 | ||||
3.3 Label Mapping Message ................................ 8 | ||||
3.4 Notification Message ................................. 9 | ||||
3.5 Release & Withdraw Messages .......................... 9 | ||||
4. Protocol Specification .............................. 9 | ||||
4.1 Explicit Route TLV (ER-TLV) ......................... 10 | ||||
4.2 Explicit Route Hop TLV .............................. 10 | ||||
4.3 Traffic Parameters TLV .............................. 12 | ||||
4.3.1 Semantics ........................................... 13 | ||||
4.3.1.1 Frequency ........................................... 13 | ||||
4.3.1.2 Peak Rate ........................................... 14 | ||||
4.3.1.3 Committed Rate ...................................... 14 | ||||
4.3.1.4 Excess Burst Size .................................... 14 | ||||
4.3.1.5 Peak Rate Token Bucket................................ 14 | ||||
4.3.1.6 Committed Data Rate Token Bucket ..................... 15 | ||||
4.3.1.7 Weight ......................... ..................... 16 | ||||
4.3.2 Procedures ........................................... 16 | ||||
4.3.2.1 Label Request Message ................................ 16 | ||||
4.3.2.2 Label Mapping Message ................................ 16 | ||||
4.3.2.3 Notification Message ................................. 17 | ||||
4.4 Preemption TLV ....................................... 18 | ||||
4.5 LSPID TLV ........................................... 18 | ||||
4.6 Resource Class TLV .................................. 19 | ||||
4.7 ER-Hop Semantics ..................................... 19 | ||||
4.7.1 ER-Hop 1 TLV IPv4 Prefix ............................. 20 | ||||
4.7.2 ER-Hop 2 TLV IPv6 Prefix ............................. 20 | ||||
4.7.3 ER-Hop 3 TLV AS Number ............................... 21 | ||||
4.7.4 ER-Hop 4 TLV LSPID ................................... 21 | ||||
4.8 Processing of the ER-TLV ............................. 22 | ||||
4.8.1 Selection of the next hop ............................ 22 | ||||
4.8.2 Adding the Label Request Message to the next hop ..... 24 | ||||
4.9 Route Pinning TLV ................................... 24 | ||||
4.10 CR-LSP FEC Element ................................... 24 | ||||
4.11 Error Subcodes ...................................... 25 | ||||
CR-LDP Specification - 3 - Exp. August 1999 | ||||
5. Security Considerations .............................. 26 | ||||
6. Acknowledgement ...................................... 26 | ||||
7. References ........................................... 26 | ||||
8. Author Information ................................... 28 | ||||
Appendix A CRLSP Establishment Examples ......................... 30 | ||||
A.1 Strict Explicit Route Example ........................ 30 | ||||
A.2 Node Groups and Specific Nodes Example ............... 31 | ||||
Appendix B QoS Service Examples ................................. 34 | ||||
B.1 Service Examples ..................................... 34 | ||||
B.2 Establishing CR-LSP Supporting Real-Time Applications. 35 | ||||
B.3 Establishing CR-LSP Delay Insensitive Applications ... 36 | ||||
1. Introduction | 1. Introduction | |||
The need for constraint-based routing (CR) in MPLS has been explored | The need for constraint-based routing (CR) in MPLS has been explored | |||
elsewhere [ARCH], [FRAME], and [TER]. Explicit routing is a subset | elsewhere [ARCH], [FRAME], and [TER]. Explicit routing is a subset | |||
of the more general constraint-based routing function. At the MPLS WG | of the more general constraint-based routing function. At the MPLS WG | |||
meeting held during the Washington IETF there was consensus that LDP | meeting held during the Washington IETF there was consensus that LDP | |||
should support explicit routing of LSPs with provision for indication | should support explicit routing of LSPs with provision for indication | |||
of associated (forwarding) priority. In the Chicago meeting, the | of associated (forwarding) priority. In the Chicago meeting, a | |||
decision was made that support for explicit path setup in LDP will be | decision was made that support for explicit path setup in LDP will be | |||
moved to a separate document. This document provides that support. We | moved to a separate document. This document provides that support and | |||
propose an end-to-end setup mechanism of a constraint-based routed | it has been accepted as a working document in the Orlando meeting. | |||
LSP (CRLSP) initiated by the ingress LSR. We also specify mechanisms | This specification proposes an end-to-end setup mechanism of a | |||
to provide means for reservation of resources for the explicitly | constraint-based routed LSP (CRLSP) initiated by the ingress LSR. We | |||
routed LSP. | also specify mechanisms to provide means for reservation of resources | |||
using LDP. | ||||
We introduce TLVs and procedures that provide support for: | ||||
CR-LDP Specification - 3 - Exp. Apr 1999 | This document introduce TLVs and procedures that provide support for: | |||
- Strict and Loose Explicit Routing | - Strict and Loose Explicit Routing | |||
- Specification of Service Class | ||||
- Specification of Traffic Parameters | - Specification of Traffic Parameters | |||
- Route Pinning | - Route Pinning | |||
- CRLSP bumping though setup/holding priority | - CRLSP Pre-emption though setup/holding priorities | |||
- Handling Failures | - Handling Failures | |||
- LSPID | ||||
- Resource Class | ||||
2. CRLSP Overview | Section 2 introduces the various constraints defined in this | |||
specification. Section 3 outlines the CR-LDP solution. Section 4 | ||||
defines the TLVs and procedures used to setup constraint-based routed | ||||
label switched paths. Appendix A provides several examples of CR-LSP | ||||
path setup. Appendix B provides Service Definition Examples. | ||||
CRLSP over LDP Specification is designed with several goals in mind: | 2. Constraint-based Routing Overview | |||
Constraint-based routing is a mechanism that supports the Traffic | ||||
Engineering requirements defined in [TER]. Explicit Routing is a | ||||
subset of the more general constraint-based routing where the | ||||
CR-LDP Specification - 4 - Exp. August 1999 | ||||
constraint is the explicit route (ER). Other constraints are defined | ||||
to provide a network operator with control over the path taken by an | ||||
LSP. This section is an overview of the various constraints supported | ||||
by this specification. | ||||
2.1 Strict and Loose Explicit Routes | ||||
Like any other LSP an CRLSP is a path through an MPLS network. The | ||||
difference is that while other paths are setup solely based on | ||||
information in routing tables or from a management system, the | ||||
constraint-based route is calculated at one point at the edge of | ||||
network based on criteria, including but not limited to routing | ||||
information. The intention is that this functionality shall give | ||||
desired special characteristics to the LSP in order to better support | ||||
the traffic sent over the LSP. The reason for setting up CRLSPs, | ||||
might be that one wants to assign certain bandwidth or other Service | ||||
Class characteristics to the LSP, or that one wants to make sure that | ||||
alternative routes use physically separate paths through the network. | ||||
An explicit route is represented in a Label Request Message as a | ||||
list of nodes or groups of nodes along the constraint-based route. | ||||
When the CRLSP is established, all or a subset of the nodes in a | ||||
group may be traversed by the LSP. Certain operations to be | ||||
performed along the path can also be encoded in the constraint-based | ||||
route. | ||||
The capability to specify, in addition to specified nodes, groups of | ||||
nodes, of which a subset will be traversed by the CRLSP, allows the | ||||
system a significant amount of local flexibility in fulfilling a | ||||
request for a constraint-based route. This allows the generator of | ||||
the constraint-based route to have some degree of imperfect | ||||
information about the details of the path. | ||||
The constraint-based route is encoded as a series of ER-Hops | ||||
contained in a constraint-based route TLV. Each ER-Hop may identify | ||||
a group of nodes in the constraint-based route. A constraint-based | ||||
route is then a path including all of the identified groups of nodes. | ||||
To simplify the discussion, we call each group of nodes an abstract | ||||
node. Thus, we can also say that a constraint-based route is a path | ||||
including all of the abstract nodes, with the specified operations | ||||
occurring along that path. | ||||
2.2 Traffic Characteristics | ||||
The traffic characteristics of a path are described in the Traffic | ||||
Parameters TLV in terms of a peak rate, committed rate, and service | ||||
granularity. The peak and committed rates describe the bandwidth | ||||
constraints of a path while the service granularity can be used to | ||||
specify a constraint on the delay variation that the CRLDP MPLS | ||||
domain may introduce to a path's traffic. | ||||
CR-LDP Specification - 5 - Exp. August 1999 | ||||
2.3 Pre-emption | ||||
CR-LDP signals the resources required by a path on each hop of the | ||||
route. If a route with sufficient resources can not be found, | ||||
existing paths may be rerouted to reallocate resources to the new | ||||
path. This is the process of path pre-emption. Setup and holding | ||||
priorities are used to rank existing paths (holding priority) and the | ||||
new path (setup priority) to determine if the new path can pre-empt | ||||
an existing path. | ||||
The setupPriority of a new CRLSP and the holdingPriority attributes | ||||
of the existing CRLSP are used to specify priorities. Signaling a | ||||
higher holding priority expresses that the path, once it has been | ||||
established, should have a lower chance of being pre-empted. | ||||
Signaling a higher setup priority expresses the expectation that, in | ||||
the case that resource are unavailable, the path is more likely to | ||||
pre-empt other paths. The exact rules determining bumping are an | ||||
aspect of network policy. | ||||
The allocation of setup and holding priority values to paths is an | ||||
aspect of network policy. | ||||
The setup and holding priority values range from zero (0) to seven | ||||
(7). The value zero (0) is the priority assigned to the most | ||||
important path. It is referred to as the highest priority. Seven (7) | ||||
is the priority for the least important path. The use of default | ||||
priority values is an aspect of network policy. | ||||
The setupPriority of a CRLSP should not be higher (numerically less) | ||||
than its holdingPriority since it might bump an LSP and be bumped by | ||||
next "equivalent" request. | ||||
2.4 Route Pinning | ||||
Route pinning is applicable to segments of an LSP that are loosely | ||||
routed - i.e. those segments which are specified with a next hop with | ||||
the 'L' bit set or where the next hop is an "abstract node". A CRLSP | ||||
may be setup using route pinning if it is undesirable to change the | ||||
path used by an LSP because a better next hop becomes available at | ||||
some LSR along the loosely routed portion of the LSP. | ||||
2.5 Resource Class | ||||
Network resources may be classified in various ways by the network | ||||
operator. These classes are also known as "colors" or "administrative | ||||
groups". When an CR-LSP is being established, it's necessary to | ||||
indicate which resource classes the CR-LSP can draw from. | ||||
3. Solution Overview | ||||
CRLSP over LDP Specification is designed with the following goals: | ||||
CR-LDP Specification - 6 - Exp. August 1999 | ||||
1. Meet the requirements outlined in [TER] for performing traffic | 1. Meet the requirements outlined in [TER] for performing traffic | |||
engineering and provide a solid foundation for performing more | engineering and provide a solid foundation for performing more | |||
general constrain-based routing. | general constraint-based routing. | |||
2. Build on already specified functionality that meets the | 2. Build on already specified functionality that meets the | |||
requirements whenever possible. Hence, this specifications is | requirements whenever possible. Hence, this specifications is | |||
based on [LDP] and the Explicit Route object and procedures | based on [LDP] and the Explicit Route object and procedures | |||
defined in [ER]. | defined in [ER]. | |||
3. Keep the solution simple and tractable. | 3. Keep the solution simple. | |||
In this document, support for unidirectional point-to-point CRLSPs is | In this document, support for unidirectional point-to-point CRLSPs is | |||
specified. Support for point-to-multipoint, multipoint-to-point, is | specified. Support for point-to-multipoint, multipoint-to-point, is | |||
for further study (FFS). | for further study (FFS). | |||
Support for explicitly routed LSPs in this specification depends on | Support for constraint-based routed LSPs in this specification | |||
the following minimal LDP behaviors as specified in [LDP]: | depends on the following minimal LDP behaviors as specified in [LDP]: | |||
- Basic and/or Extended Discovery Mechanisms. | - Basic and/or Extended Discovery Mechanisms. | |||
- Use the Label Request Message defined in [LDP] in downstream on | - Use the Label Request Message defined in [LDP] in downstream on | |||
demand label advertisement mode with ordered control. | demand label advertisement mode with ordered control. | |||
- Use the Label Mapping Message defined in [LDP] in downstream on | - Use the Label Mapping Message defined in [LDP] in downstream on | |||
demand mode with ordered control. | demand mode with ordered control. | |||
- Use the Notification Message defined in [LDP]. | - Use the Notification Message defined in [LDP]. | |||
- Use the Withdraw and Release Messages defined in [LDP]. | - Use the Withdraw and Release Messages defined in [LDP]. | |||
- Loop detection (in the case of loosely routed segments of a | - Use the Loop Detection (in the case of loosely routed segments | |||
CRLSP) mechanisms. | of a CRLSP) mechanisms defined in [LDP]. | |||
In addition, the following functionality is added to what's defined | In addition, the following functionality is added to what's defined | |||
in [LDP]: | in [LDP]: | |||
- The Label Request Message used to setup a CRLSP includes a CR- | - The Label Request Message used to setup a CRLSP includes one or | |||
TLV based on the path vector defined in [ER] and specified in | more CR-TLVs defined in Section 4. For instance, the Label Request | |||
Section 4 of this document. | Message may include the ER-TLV. | |||
CR-LDP Specification - 4 - Exp. Apr 1999 | ||||
- An LSR implicitly infers ordered control from the existence of a | ||||
CR-TLV in the Label Request Message. This means that the LSR can | ||||
still be configured for independent control for LSPs established | ||||
as a result of dynamic routing. However, when a Label Request | ||||
Message includes a CR TLV, then ordered control is used to setup | ||||
the CRLSP. Note that this is also true for the loosely routed | ||||
parts of a CRLSP. | ||||
- Traffic Parameters TLVs may optionally be carried in the Label | - An LSR implicitly infers ordered control from the existence of | |||
Request Message to specify the CRLSP traffic characteristics. | one or more CR-TLVs in the Label Request Message. This means that | |||
the LSR can still be configured for independent control for LSPs | ||||
established as a result of dynamic routing. However, when a Label | ||||
Request Message includes one or more of the CR-TLVs, then ordered | ||||
control is used to setup the CRLSP. Note that this is also true | ||||
for the loosely routed parts of a CRLSP. | ||||
- New status codes are defined to handle error notification for | - New status codes are defined to handle error notification for | |||
failure of established paths specified in the CR-TLV. | failure of established paths specified in the CR-TLV. | |||
CR-LDP Specification - 7 - Exp. August 1999 | ||||
Examples of CRLSP establishment are given in Appendix A to illustrate | Examples of CRLSP establishment are given in Appendix A to illustrate | |||
how the mechanisms described in this draft work. | how the mechanisms described in this draft work. | |||
3. Required Messages and TLVs | 3.1 Required Messages and TLVs | |||
Any Messages, TLVs, and procedures not defined explicitly in this | Any Messages, TLVs, and procedures not defined explicitly in this | |||
document are defined in the [LDP] Specification. The following | document are defined in the [LDP] Specification. The state | |||
subsections are meant as a cross reference to the [LDP] document and | transitions which relate to CR-LDP messages can be found in [LDP- | |||
indication of additional functionality beyond what's defined in [LDP] | STATE]. | |||
where necessary. | ||||
3.1 Label Request Message | The following subsections are meant as a cross reference to the [LDP] | |||
document and indication of additional functionality beyond what's | ||||
defined in [LDP] where necessary. | ||||
3.2 Label Request Message | ||||
The Label Request Message is as defined in 3.5.8 of [LDP] with the | The Label Request Message is as defined in 3.5.8 of [LDP] with the | |||
following modifications (required only if the CR-TLV is included in | following modifications (required only if any of the CR-TLVs is | |||
the Label Request Message): | included in the Label Request Message): | |||
- Only a single FEC-TLV may be included in the Label Request | - Only a single FEC-TLV may be included in the Label Request | |||
Message. | Message. The CR-LSP FEC TLV should be used. | |||
- The Optional Parameters TLV includes the definition of the | - The Return Message ID TLV is MANDATORY. | |||
Constraint-based TLV specified in Section 4 and the Traffic | ||||
Parameters TLV specified in Section 5. | ||||
- The Procedures to handle the Label Request are augmented by the | - The Optional Parameters TLV includes the definition of any of | |||
procedures for processing of the CR-TLV as defined in Section 4. | the Constraint-based TLVs specified in Section 4. | |||
- The Procedures to handle Service Classes are defined in Section | - The Procedures to handle the Label Request Message are augmented | |||
5. | by the procedures for processing of the CR-TLVs as defined in | |||
Section 4. | ||||
3.2 Label Mapping Message | The encoding for the CR-LDP Label Request Message is as follows: | |||
CR-LDP Specification - 8 - Exp. August 1999 | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U| Label Request (0x0401) | Message Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Message ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| FEC TLV | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Return Message ID TLV (mandatory) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| LSPID TLV (CR-LDP, mandatory) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ER-TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Traffic TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Pinning TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Resource Class TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Pre-emption TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
3.3 Label Mapping Message | ||||
The Label Mapping Message is as defined in 3.5.7 of [LDP] with the | The Label Mapping Message is as defined in 3.5.7 of [LDP] with the | |||
following modifications: | following modifications: | |||
- Only a single Label-TLV may be included in the Label Mapping | - Only a single Label-TLV may be included in the Label Mapping | |||
Message. | Message. | |||
CR-LDP Specification - 5 - Exp. Apr 1999 | - The Label Mapping Message MUST include Label Request Message ID | |||
TLV. | ||||
- The FEC-Label Mapping TLV does not include any of the optional | - The Label Mapping Message MUST include LSPID TLV. | |||
TLVs. | ||||
- The Label Mapping Message Procedures are limited to downstream | - The Label Mapping Message Procedures are limited to downstream | |||
on demand ordered control mode of mapping. | on demand ordered control mode. | |||
A Mapping message is transmitted by a downstream LSR to an upstream | A Mapping message is transmitted by a downstream LSR to an upstream | |||
LSR under one of the following conditions: | LSR under one of the following conditions: | |||
1. The LSR is the egress end of the CRLSP and an upstream mapping | 1. The LSR is the egress end of the CRLSP and an upstream mapping | |||
has been requested. | has been requested. | |||
2. The LSR received a mapping from its downstream next hop LSR for | 2. The LSR received a mapping from its downstream next hop LSR for | |||
an CRLSP for which an upstream request is still pending. | an CRLSP for which an upstream request is still pending. | |||
3.3. Notification Message | The encoding for the CR-LDP Label Mapping Message is as follows: | |||
The Notification message is as defined in Section 3.5.1 of [LDP] and | CR-LDP Specification - 9 - Exp. August 1999 | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U| Label Mapping (0x0400) | Message Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Message ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| FEC TLV | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Label TLV | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Label Request Message ID TLV (mandatory) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| LSPID TLV (CR-LDP, mandatory) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Traffic TLV (CR-LDP, optional) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
3.4 Notification Message | ||||
The Notification Message is as defined in Section 3.5.1 of [LDP] and | ||||
the Status TLV encoding is as defined in Section 3.4.7 of [LDP]. | the Status TLV encoding is as defined in Section 3.4.7 of [LDP]. | |||
Establishment of an Explicitly Routed LSP may fail for a variety of | Establishment of an Explicitly Routed LSP may fail for a variety of | |||
reasons. All such failures are considered advisory conditions and | reasons. All such failures are considered advisory conditions and | |||
they are signaled by the Notification Message. | they are signaled by the Notification Message. | |||
Notification messages carry Status TLVs to specify events being | Notification Messages carry Status TLVs to specify events being | |||
signaled. New status codes are defined in Section 4.8.3 to signal | signaled. New status codes are defined in Section 4.11 to signal | |||
error notifications associated with the establishment of a CRLSP and | error notifications associated with the establishment of a CRLSP and | |||
the processing of the CR-TLV. | the processing of the CR-TLV. | |||
4. Constraint-based Routing TLV | The Notification Message must carry the LSPID TLV of the | |||
corresponding CRLSP. | ||||
Label Request Messages defined in [LDP] optionally carry the | 3.5 Release and Withdraw Messages | |||
Constraint-based Routing TLV (CR-TLV) based on the path vector | ||||
defined in [ER] and described in this section of the specification. | ||||
The inclusion of the CR TLV in the Label Request Message indicates | ||||
the path to be taken in the network even if normal routing indicates | ||||
otherwise. | ||||
The format of the CR-TLV is described below. | The Label Release and Label Withdraw Messages are used as specified | |||
in [LDP] to clear CR-LSPs. These message may also carry the LSPID | ||||
TLV. | ||||
4.1 CR-TLV | 4. Protocol Specification | |||
The CR-TLV is an object that specifies the path to be taken by the | The Label Request Messages defined in [LDP] optionally carries one or | |||
LSP being established. In addition, the CR-TLV may also include the | more of the optional Constraint-based Routing TLVs (CR-TLVs) defined | |||
the Service Class (SC) constraints associated with the LSP, a setup | in this section. If needed, other constraints can be supported later | |||
and a holding priority used for path bumping, and an LSP pinning | through the definition of new TLVs. In this specification, the | |||
request flag. Reserved bits in the CR-TLV allow for the | following TLVs are defined: | |||
specification of other LSP attributes in the future. If the reserved | ||||
bits are exhausted, additional TLVs may be specified to allow for the | ||||
indication of other LSP attributes during the CRLSP setup. | ||||
CR-LDP Specification - 6 - Exp. Apr 1999 | - Explicit Route TLV | |||
CR-LDP Specification - 10 - Exp. August 1999 | ||||
- Explicit Route Hop TLV | ||||
- Traffic Parameters TLV | ||||
- Preemption TLV | ||||
- LSPID TLV | ||||
- Route Pinning TLV | ||||
- Resource Class TLV | ||||
- CRLSP FEC TLV | ||||
4.1 Explicit Route TLV (ER-TLV) | ||||
The ER-TLV is an object that specifies the path to be taken by the | ||||
LSP being established. It is composed of one or more Explicit Route | ||||
Hop TLVs (ER-Hop TLVs) defined in Section 4.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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|U|F| CR-TLV (0x0800) | Length | | |U|F| ER-TLV (0x0800) | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Reserved | Reserved | SC |P| Hp | Sp | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ER-Hop TLV 1 | | | ER-Hop TLV 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ER-Hop TLV 2 | | | ER-Hop TLV 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ............ ~ | ~ ............ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ER-Hop TLV n | | | ER-Hop TLV n | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
U bit | U bit | |||
Unknown TLV bit. As defined in [LDP]. | ||||
Unknown TLV bit. Upon receipt of an unknown TLV, if clear (=0), a | ||||
notification must be returned to the message originator and the | ||||
entire message must be ignored; if set (=1), the unknown TLV is | ||||
silently ignored and the rest of the message is processed as if the | ||||
unknown TLV did not exist. | ||||
F bit | F bit | |||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Forward unknown TLV bit. This bit only applies when the U bit is set | ||||
and the LDP message containing the unknown TLV is to be forwarded. | ||||
If clear (=0), the unknown TLV is not forwarded with the containing | ||||
message; if set (=1), the unknown TLV is forwarded with the | ||||
containing message. | ||||
Type | Type | |||
A two byte field carrying the value of the ER-TLV type which | ||||
is 0x800. | ||||
A two byte field carrying the value of the CR-TLV type which is | Length | |||
0x800. | Specifies the length of the value field in bytes. | |||
ER-Hop TLVs | ||||
One or more ER-Hop TLVs defined in Section 4.2. | ||||
4.2 Explicit Route Hop TLV (ER-Hop TLV) | ||||
The contents of an ER-TLV are a series of variable length ER-Hop | ||||
TLVs. Each ER-Hop TLV has the form: | ||||
CR-LDP Specification - 11 - Exp. August 1999 | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| ER-Hop-Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|L| Content // | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
ER-Hop Type | ||||
A fourteen-bit field indicating the type of contents of | ||||
the ER-Hop. Currently defined values are: | ||||
Value Type | ||||
----- ------------------------ | ||||
0x801 IPv4 prefix | ||||
0x802 IPv6 prefix | ||||
0x803 Autonomous system number | ||||
0x804 LSPID | ||||
Length | Length | |||
Specifies the length of the value field in bytes. | ||||
L bit | ||||
The L bit is an attribute of the ER-Hop. The L bit is set if the | ||||
ER-Hop represents a loose hop in the explicit route. If the bit is | ||||
not set, the ER-Hop represents a strict hop in the explicit route. | ||||
The L bit in the ER-Hop is a one-bit attribute. If the L bit is | ||||
set, then the value of the attribute is "loose." Otherwise, the | ||||
value of the attribute is "strict." For brevity, we say that if | ||||
the value of the ER-Hop attribute is loose then it is a "loose | ||||
ER-Hop." Otherwise, it's a "strict ER-Hop." Further, we say that | ||||
the abstract node of a strict or loose ER-Hop is a strict or a | ||||
loose node, respectively. Loose and strict nodes are always | ||||
interpreted relative to their prior abstract nodes. | ||||
The path between a strict node and its prior node MUST include | ||||
only network nodes from the strict node and its prior abstract | ||||
node. | ||||
The path between a loose node and its prior node MAY include other | ||||
network nodes which are not part of the strict node or its prior | ||||
abstract node. | ||||
CR-LDP Specification - 12 - Exp. August 1999 | ||||
Contents | ||||
A variable length field containing the node or abstract node that | ||||
is the consecutive nodes that make up the explicit routed LSP. | ||||
4.3 Traffic Parameters TLV | ||||
The following sections describe the CRLSP Traffic Parameters. The | ||||
required characteristics of a CRLSP are expressed by the Traffic | ||||
Parameter values. | ||||
A Traffic Parameters TLV, is used to signal the Traffic Parameter | ||||
values. The Traffic Parameters are defined in the subsequent | ||||
sections. | ||||
The Traffic Parameters TLV contains a Flags field, a Frequency, a | ||||
Weight, and the five Traffic Parameters PDR, PBS, CDR, CBS, EBS. The | ||||
Traffic Parameters TLV is shown below: | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| Traf. Param. TLV (0x0810)| Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Flags | Frequency | Reserved | Weight | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peak Data Rate (PDR) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peak Burst Size (PBS) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Committed Data Rate (CDR) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Committed Burst Size (CBS) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Excess Burst Size (EBS) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | ||||
A fourteen-bit field carrying the value of the ER-TLV type which | ||||
is 0x810. | ||||
Length | ||||
Specifies the length of the value field in bytes. | Specifies the length of the value field in bytes. | |||
Flags | ||||
The Flags field is shown below: | ||||
CR-LDP Specification - 13 - Exp. August 1999 | ||||
+--+--+--+--+--+--+--+--+ | ||||
| Res |F6|F5|F4|F3|F2|F1| | ||||
+--+--+--+--+--+--+--+--+ | ||||
Res - These bits are reserved. | ||||
Zero on transmission. | ||||
Ignored on receipt. | ||||
F1 - Corresponds to the PDR. | ||||
F2 - Corresponds to the PBS. | ||||
F3 - Corresponds to the CDR. | ||||
F4 - Corresponds to the CBS. | ||||
F5 - Corresponds to the EBS. | ||||
F6 - Corresponds to the Weight. | ||||
Each flag Fi is a Negotiable Flag corresponding to a Traffic | ||||
Parameter. The Negotiable Flag value zero denotes NotNegotiable | ||||
and value one denotes Negotiable. | ||||
Frequency | ||||
The Frequency field is coded as an 8 bit unsigned integer with | ||||
the following code points defined: | ||||
0 - Unspecified | ||||
1 - Frequent | ||||
2 - VeryFrequest | ||||
3-255 - Reserved | ||||
Reserved | Reserved | |||
Zero on transmission. Ignored on receipt. | ||||
This field is reserved. It must be set to zero on transmission and | Weight | |||
must be ignored on receipt. We expect to use these fields for | An 8 bit unsigned integer indicating the weight of the CRLSP. | |||
carrying information that support other constrain-based routing | Valid weight values are from 1 to 255. The value 0 means | |||
information. | that weight is not applicable for the CRLSP. | |||
P bit | Traffic Parameters | |||
Each Traffic Parameter is encoded as a 32 bit IEEE single- | ||||
precision floating point number. A value of positive infinity is | ||||
represented as an IEEE single-precision floating-point number with | ||||
an exponent of all ones (255) and a sign and mantissa of all | ||||
zeros. The values PDR and CDR are in units of bytes per second. | ||||
The values PBS, CBS and EBS are in units of bytes. | ||||
CR-LDP Specification - 7 - Exp. Apr 1999 | The value of PDR MUST be greater than or equal to the value of CDR | |||
in a correctly encoded Traffic Parameters TLV. | ||||
When set indicates that the loosely routed segments must remain | 4.3.1 Semantics | |||
pinned-down. CRLSP must be rerouted only when adjacency is lost | ||||
along the segment. When not set, it indicates that the loose segment | ||||
is not pinned down and must be changed to match the underlying hop- | ||||
by-hop path. | ||||
SC | 4.3.1.1 Frequency | |||
The SC Field is used to specify the Service Class of the CRLSP. This | CR-LDP Specification - 14 - Exp. August 1999 | |||
field allows for the definition of up to 8 different Service Classes. | ||||
Currently, Three Service Classes are defined: Best Effort (0), | ||||
Throughput Sensitive (1), and Delay Sensitive (2) Service Classes. | ||||
These SCs are further defined in Section 5. | ||||
Sp | The Frequency specifies at what granularity the CDR allocated to the | |||
CRLSP is made available. The value VeryFrequently means that the | ||||
available rate should average at least the CDR when measured over any | ||||
time interval equal to or longer than the shortest packet time at the | ||||
CDR. The value Frequently means that the available rate should | ||||
average at least the CDR when measured over any time interval equal | ||||
to or longer than a small number of shortest packet times at the CDR. | ||||
The value Unspecified means that the CDR MAY be provided at any | ||||
granularity. | ||||
A SetupPriority of value zero (0) is the priority assigned to the | 4.3.1.2 Peak Rate | |||
most important path. It is referred to as the highest priority. Four | ||||
(4) is the priority for the least important path. The higher the | ||||
setup priority, the more paths CR-LDP can bump to set up the path. | ||||
The default value is 2. Values 5, 6, and 7 are reserved. | ||||
Hp | The Peak Rate defines the maximum rate at which traffic SHOULD be | |||
sent to the CRLSP. The Peak Rate is useful for the purpose of | ||||
resource allocation. If resource allocation within the MPLS domain | ||||
depends on the Peak Rate value then it should be enforced at the | ||||
ingress to the MPLS domain. | ||||
A HoldingPriority of value zero (0) is the priority assigned to the | The Peak Rate is defined in terms of the two Traffic Parameters PDR | |||
most important path. It is referred to as the highest priority. Four | and PBS, see section 4.3.1.5 below. | |||
(4) is the priority for the least important path. The higher the | ||||
holding priority, the less likely it is for CR-LDP to reallocate its | ||||
bandwidth to a new path. The default value is 2. Values 5, 6, and 7 | ||||
are reserved. | ||||
4.1.1 Setup and holding priorities | 4.3.1.3 Committed Rate | |||
CR-LDP signals the resources required by a path on each hop of the | The Committed Rate defines the rate that the MPLS domain commits to | |||
route. If a route with sufficient resources can not be found, | be available to the CRLSP. | |||
existing paths may be rerouted to reallocate resources to the new | ||||
path. This is the process of bumping paths. Setup and holding | ||||
priorities are used to rank existing paths (holding priority) and the | ||||
new path (setup priority) to determine if the new path can bump an | ||||
existing path. | ||||
The setupPriority of a new CRLSP and the holdingPriority attributes | The Committed Rate is defined in terms of the two Traffic Parameters | |||
of the existing CRLSP are used to specify these priorities. The | CDR and CBS, see section 4.3.1.6 below. | |||
higher the holding priority, the less likely it is for CR-LDP to | ||||
reallocate its bandwidth to a new path. Similarly, the higher the | ||||
setup priority, the more paths CR-LDP can bump to set up the path. | ||||
The setup and holding priority values range from zero (0) to four | 4.3.1.4 Excess Burst Size | |||
(4). The value zero (0) is the priority assigned to the most | ||||
important path. It is referred to as the highest priority. Four (4) | ||||
is the priority for the least important path. The default values for | ||||
CR-LDP Specification - 8 - Exp. Apr 1999 | The Excess Burst Size may be used at the edge of an MPLS domain for | |||
the purpose of traffic conditioning. The EBS MAY be used to measure | ||||
the extent by which the traffic sent on a CRLSP exceeds the committed | ||||
rate. | ||||
both setup and holding priority should be 2. By setting the default | The possible traffic conditioning actions, such as passing, marking | |||
value of both setup and holding priorities at the middle of the | or dropping, are specific to the MPLS domain. | |||
range, all connections are initially treated the same. However, when | ||||
network operators see a need for the use of path bumping, the values | ||||
of setup and holding priorities can be gracefully adjusted up or down | ||||
from the middle of the range. | ||||
An existing path can be bumped if and only if the setupPriority of | The Excess Burst Size is defined together with the Committed Rate, | |||
the new path is numerically less than the holdingPriority of the | see section 4.3.1.6 below. | |||
existing path. | ||||
To illustrate the use of the setup and holding priority, consider a | 4.3.1.5 Peak Rate Token Bucket | |||
network which supports two service types (e.g., video and data | ||||
services). The video traffic is given a low setup priority because | ||||
new video paths can use an alternate public network if the primary | ||||
network cannot accommodate the new path. However, the video traffic | ||||
is given a high holding priority since it is undesirable for the path | ||||
to be rerouted during an active LSP. For data traffic, high setup and | ||||
holding priorities are desirable since data paths cannot be | ||||
established on an alternate network. | ||||
The setup and holding priorities can be different to allow setup at | The Peak Rate of a CRLSP is specified in terms of a token bucket P | |||
one priority and holding at an independent priority. This would allow | with token rate PDR and maximum token bucket size PBS. | |||
some calls not to invoke bumping and not to be bumped at the same | ||||
time. | ||||
The setupPriority of a CRLSP should not be higher (numerically less) | The token bucket P is initially (at time 0) full, i.e., the token | |||
than its holdingPriority since it might bump an LSP and be bumped by | count Tp(0) = PBS. Thereafter, the token count Tp, if less than PBS, | |||
next "equivalent" request. | is incremented by one PDR times per second. When a packet of size B | |||
bytes arrives at time t, the following happens: | ||||
Bumping by default only happens as a last resort when there are no | CR-LDP Specification - 15 - Exp. August 1999 | |||
routes available for a given path. | ||||
During the instantiation of a path that must bump other paths, lower | o If Tp(t)-B >= 0, the packet is not in excess of the peak | |||
holding priority paths are bumped before higher priority paths. The | rate and Tp is decremented by B down to the minimum value | |||
decision as to which of the available paths are bumped at each | of 0, else | |||
intermediate node by the new path is arbitrary. | ||||
4.2 ER-Hop TLV | o the packet is in excess of the peak rate and Tp is | |||
not decremented. | ||||
The contents of a constraint-based route TLV are a series of variable | Note that according to the above definition, a positive infinite | |||
length ER-Hop TLVs. Each ER-Hop TLV has the form: | value of either PDR or PBS implies that arriving packets are never in | |||
excess of the peak rate. | ||||
0 1 | The actual implementation of a LSR doesn't need to be modeled | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | according to the above formal token bucket specification. | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------//--------------+ | ||||
|L| Type | Length | Contents | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------//--------------+ | ||||
L | 4.3.1.6 Committed Data Rate Token Bucket | |||
CR-LDP Specification - 9 - Exp. Apr 1999 | The committed rate of a CRLSP is specified in terms of a token bucket | |||
C with rate CDR. The extent by which the offered rate exceeds the | ||||
committed rate MAY be measured in terms of another token bucket E, | ||||
which also operates at rate CDR. The maximum size of the token | ||||
bucket C is CBS and the maximum size of the token bucket E is EBS. | ||||
The L bit is an attribute of the ER-Hop. The L bit is set if the | The token buckets C and E are initially (at time 0) full, i.e., the | |||
ER-Hop represents a loose hop in the explicit route. If the bit is | token count Tc(0) = CBS and the token count Te(0) = EBS. Thereafter, | |||
not set, the ER-Hop represents a strict hop in the explicit route. | the token counts Tc and Te are updated CDR times per second as | |||
follows: | ||||
Type | o If Tc is less than CBS, Tc is incremented by one, else | |||
A seven-bit field indicating the type of contents of the ER-Hop. | o if Te is less then EBS, Te is incremented by one, else | |||
Currently defined values are: | ||||
Value Type | o neither Tc nor Te is incremented. | |||
----- ------------------------ | ||||
0 Reserved | ||||
1 IPv4 prefix | ||||
2 IPv6 prefix | ||||
32 Autonomous system number | ||||
Length | When a packet of size B bytes arrives at time t, the following | |||
happens: | ||||
The Length field contains the total length of the ER-Hop in bytes. It | o If Tc(t)-B >= 0, the packet is not in excess of the Committed | |||
includes the L bit, Type and Length fields. The length must always be | Rate and Tc is decremented | |||
a multiple of 4, and at least 4. | by B down to the minimum value of 0, else | |||
Contents | o if Te(t)-B >= 0, the packet is in excess of the Committed Rate | |||
but is not in excess of the EBS and Te is | ||||
decremented by B down to the minimum value of 0, else | ||||
A variable length field containing the node or abstract node that is | o the packet is in excess of both the Committed Rate and the EBS | |||
the consecutive nodes that make up the explicit routed LSP. | and neither Tc nor Tc is decremented. | |||
4.3 Applicability | Note that according to the above specification, a CDR value of | |||
positive infinity implies that arriving packets are never in excess | ||||
of either the Committed Rate or EBS. A positive infinite value of | ||||
either CBS or EBS implies that the respective limit cannot be | ||||
The CR-TLV in this version of the specification is intended for | CR-LDP Specification - 16 - Exp. August 1999 | |||
unicast only. CRLSPs for multicast are FFS. | ||||
4.4 Semantics of the CR-TLV | exceeded. | |||
Like any other LSP an CRLSP is a path through a network. The | The actual implementation of a LSR doesn't need to be modeled | |||
difference is that while other paths are setup solely based on | according to the above formal specification. | |||
information in routing tables or from a management system, the | ||||
constraint-based route is calculated at one point at the edge of | ||||
network based on criteria, including but not limited to routing | ||||
information. The intention is that this functionality shall give | ||||
desired special characteristics to the LSP in order to better support | ||||
the traffic sent over the LSP. The reason for setting up CRLSPs, | ||||
might be that one wants to assign certain bandwidth or other Service | ||||
Class characteristics to the LSP, or that one wants to make sure that | ||||
alternative routes use physically separate paths through the network. | ||||
A CRLSP is represented in a Label Request Message as a list of nodes | 4.3.1.7 Weight | |||
or groups of nodes along the constraint-based route. When the CRLSP | ||||
is established, all or a subset of the nodes in a group may be | ||||
CR-LDP Specification - 10 - Exp. Apr 1999 | The weight determines the CRLSP's relative share of the possible | |||
excess bandwidth above its committed rate. The definition of | ||||
"relative share" is MPLS domain specific. | ||||
traversed by the LSP. Certain operations to be performed along the | 4.3.2 Procedures | |||
path can also be encoded in the constraint-based route. | ||||
The capability to specify, in addition to specified nodes, groups of | 4.3.2.1 Label Request Message | |||
nodes, of which a subset will be traversed by the CRLSP, allows the | ||||
system a significant amount of local flexibility in fulfilling a | ||||
request for a constraint-based route. This allows the generator of | ||||
the constraint-based route to have some degree of imperfect | ||||
information about the details of the path. | ||||
The constraint-based route is encoded as a series of ER-Hops | If an LSR receives an incorrectly encoded Traffic Parameters TLV in | |||
contained in a constraint-based route TLV. Each ER-Hop may identify | which the value of PDR is less than the value of CDR then it MUST | |||
a group of nodes in the constraint-based route. A constraint-based | send a Notification Message including the Status code Traffic | |||
route is then a path including all of the identified groups of nodes. | Parameters Unavailable to the upstream LSR from which it received the | |||
erroneous message. | ||||
To simplify the discussion, we call each group of nodes an abstract | If a Traffic Parameter is indicated as Negotiable in the Label | |||
node. Thus, we can also say that a constraint-based route is a path | Request Message by the corresponding Negotiable Flag then an LSR MAY | |||
including all of the abstract nodes, with the specified operations | replace the Traffic Parameter value with a smaller value. | |||
occurring along that path. | ||||
4.5 Strict and Loose ER-Hops | If the Weight is indicated as Negotiable in the Label Request Message | |||
by the corresponding Negotiable Flag then an LSR may adjust replace | ||||
the Weight value with a lower value (down to 1). | ||||
The L bit in the ER-Hop is a one-bit attribute. If the L bit is set, | If, after possible Traffic Parameter negotiation, an LSR can support | |||
then the value of the attribute is "loose." Otherwise, the value of | the CRLSP Traffic Parameters then the LSR MUST reserve the | |||
the attribute is "strict." For brevity, we say that if the value of | corresponding resources for the CRLSP. | |||
the ER-Hop attribute is loose then it is a "loose ER-Hop." | ||||
Otherwise, it's a "strict ER-Hop." Further, we say that the abstract | ||||
node of a strict or loose ER-Hop is a strict or a loose node, | ||||
respectively. Loose and strict nodes are always interpreted relative | ||||
to their prior abstract nodes. | ||||
The path between a strict node and its prior node MUST include only | If, after possible Traffic Parameter negotiation, an LSR cannot | |||
network nodes from the strict node and its prior abstract node. | support the CRLSP Traffic Parameters then the LSR MUST send a | |||
notification message that contains the Resource Unavailable status | ||||
code. | ||||
The path between a loose node and its prior node MAY include other | 4.3.2.2 Label Mapping Message | |||
network nodes which are not part of the strict node or its prior | ||||
abstract node. | ||||
4.6 Loops | If an LSR receives an incorrectly encoded Traffic Parameters TLV in | |||
which the value of PDR is less than the value of CDR then it MUST | ||||
send a Label Release message containing the Status code Traffic | ||||
Parameters Unavailable to the LSR from which it received the | ||||
erroneous message. | ||||
While the constraint-based route TLV is of finite length, the | The egress LSR MUST include the (possibly negotiated) Traffic | |||
existence of loose nodes implies that it is possible to construct | Parameters and Weight in the Label Mapping message. | |||
forwarding loops during transients in the underlying routing | ||||
protocol. This may be detected by the originator of the constraint- | ||||
based route through the use a path vector object as defined in [LDP]. | ||||
4.7 ER-Hop semantics | The Traffic Parameters and the Weight in a Label Mapping message MUST | |||
be forwarded unchanged. | ||||
4.7.1. ER-Hop 1: The IPv4 prefix | CR-LDP Specification - 17 - Exp. August 1999 | |||
The contents of an IPv4 prefix ER-Hop are a 4 byte IPv4 address, 1 | An LSR SHOULD adjust the resources that it reserved for a CRLSP when | |||
it receives a Label Mapping Message if the Traffic Parameters differ | ||||
from those in the corresponding Label Request Message. | ||||
CR-LDP Specification - 11 - Exp. Apr 1999 | 4.3.2.3 Notification Message | |||
byte of prefix length, and 1 byte of padding. The abstract node | If an LSR receives a Notification Message for a CRLSP, it SHOULD | |||
represented by this ER-Hop is the set of nodes which have an IP | release any resources that it possibly had reserved for the CRLSP. | |||
address which lies within this prefix. Note that a prefix length of | ||||
32 indicates a single IPv4 node. | ||||
The length of the IPv4 prefix ER-Hop is 8 bytes. The contents of the | In addition, on receiving a Notification Message from a Downstream | |||
1 byte of padding must be zero on transmission and must not be | LSR that is associated with a Label Request from an upstream LSR, the | |||
checked on receipt. | local LSR MUST propagate the Notification message using the | |||
procedures in [LDP]. | ||||
4.4 Preemption TLV | ||||
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) | | |U|F| Preemption-TLV (0x0820) | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv4 Address (Continued) | Prefix |0 0 0 0 0 0 0 0| | | SetPrio | HoldPrio | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | Type | |||
A fourteen-bit field carrying the value of the Preemption-TLV | ||||
type which is 0x810. | ||||
IPv4 Address 0x01 | Length | |||
Specifies the length of the value field in bytes. | ||||
Reserved | ||||
Zero on transmission. Ignored on receipt. | ||||
SetPrio | ||||
A SetupPriority of value zero (0) is the priority assigned to the | ||||
most important path. It is referred to as the highest priority. | ||||
Seven (7) is the priority for the least important path. The higher | ||||
the setup priority, the more paths CR-LDP can bump to set up the | ||||
path. | ||||
HoldPrio | ||||
A HoldingPriority of value zero (0) is the priority assigned to | ||||
the most important path. It is referred to as the highest | ||||
priority. Seven (7) is the priority for the least important path. | ||||
CR-LDP Specification - 18 - Exp. August 1999 | ||||
The higher the holding priority, the less likely it is for CR-LDP | ||||
to reallocate its bandwidth to a new path. | ||||
4.5 LSPID TLV | ||||
LSPID is a unique identifier of a CRLSP within an MPLS network. | ||||
The LSPID is composed of the ingress LSR Router ID and a Locally | ||||
unique CRLSP ID to that LSR. | ||||
The LSPID is useful in network management, in CR-LSP repair, and in | ||||
using an already established CR-LSP as a hop in an ER-TLV. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| LSPID-TLV (0x0821) | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Reserved | Local CRLSP ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Ingress LSR Router ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | ||||
A fourteen-bit field carrying the value of the LSPID-TLV | ||||
type which is 0x821. | ||||
Length | Length | |||
Specifies the length of the value field in bytes. | ||||
A one byte field indicating the total length of the TLV in bytes. It | Reserved | |||
includes the L-bit, the Type, Length, the IP Address, and the Prefix | Zero on transmission. Ignored on receipt. | |||
fields. The length is always 8 bytes. | ||||
IP Address | Local CRLSP ID | |||
The Local LSP ID is an identifier of the CRLSP locally unique | ||||
within the Ingress LSR originating the CRLDP. | ||||
A four byte field indicating the IP Address. | Ingress LSR Router ID | |||
A 4 byte field indicating the Ingress LSR ID. | ||||
Prefix Length | 4.6 Resource Class (Color) TLV | |||
1-32 | The Resource Class as defined in [TER] is used to specify which links | |||
are acceptable by this CRLSP. This information allows for the | ||||
Padding | CR-LDP Specification - 19 - Exp. August 1999 | |||
networks topology to be pruned. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| ResCls-TLV (0x0822) | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| RsCls | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | ||||
A fourteen-bit field carrying the value of the ResCls-TLV | ||||
type which is 0x822. | ||||
Length | ||||
Specifies the length of the value field in bytes. | ||||
RsCls | ||||
The Resource Class bit mask indicating which of the | ||||
32 "administrative groups" or "colors" of links | ||||
the CRLSP can traverse. | ||||
4.7 ER-Hop semantics | ||||
4.7.1. ER-Hop 1: The IPv4 prefix | ||||
The abstract node represented by this ER-Hop is the set of nodes | ||||
which have an IP address which lies within this prefix. Note that a | ||||
prefix length of 32 indicates a single IPv4 node. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| 0x801 | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|L| Reserved | PreLen | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPv4 Address (4 bytes) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
CR-LDP Specification - 20 - Exp. August 1999 | ||||
Type | ||||
IPv4 Address 0x801 | ||||
Length | ||||
Specifies the length of the value field in bytes. | ||||
L Bit | ||||
Set to indicate Loose hop. | ||||
Cleared to indicate a strict hop. | ||||
Reserved | ||||
Zero on transmission. Ignored on receipt. | Zero on transmission. Ignored on receipt. | |||
4.7.2. ER-Hop 2: The IPv6 address | PreLen | |||
Prefix Length 1-32 | ||||
CR-LDP Specification - 12 - Exp. Apr 1999 | IP Address | |||
A four byte field indicating the IP Address. | ||||
4.7.2. ER-Hop 2: The 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|L| Type | Length | IPV6 address (16 bytes) | | |U|F| 0x802 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPV6 address (continued) | | |L| Reserved | PreLen | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| IPV6 address | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPV6 address (continued) | | | IPV6 address (continued) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPV6 address (continued) | | | IPV6 address (continued) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPV6 address (continued) | Prefix |0 0 0 0 0 0 0 0| | | IPV6 address (continued) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type | U bit | |||
Unknown TLV bit. As defined in [LDP]. | ||||
0x02 IPv6 address | F bit | |||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | ||||
0x802 IPv6 address | ||||
Length | Length | |||
Specifies the length of the value field in bytes. | ||||
The Length contains the total length of the ER-Hop TLV in bytes, | L Bit | |||
including the Type and Length fields. The Length is always 20. | Set to indicate Loose hop. | |||
IPv6 address | CR-LDP Specification - 21 - Exp. August 1999 | |||
Cleared to indicate a strict hop. | ||||
Reserved | ||||
Zero on transmission. Ignored on receipt. | ||||
PreLen | ||||
Prefix Length 1-128 | ||||
IPv6 address | ||||
A 128-bit unicast host address. | A 128-bit unicast host address. | |||
Prefix Length | 4.7.3. ER-Hop 32: The autonomous system number | |||
1-128 | The abstract node represented by this ER-Hop is the set of nodes | |||
belonging to the autonomous system. | ||||
Padding | 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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| 0x803 | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|L| Reserved | AS Number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
U bit | ||||
Unknown TLV bit. As defined in [LDP]. | ||||
F bit | ||||
Forward unknown TLV bit. As defined in [LDP]. | ||||
Type | ||||
AS Number 0x803 | ||||
Length | ||||
Specifies the length of the value field in bytes. | ||||
L Bit | ||||
Set to indicate Loose hop. | ||||
Cleared to indicate a strict hop. | ||||
Reserved | ||||
Zero on transmission. Ignored on receipt. | Zero on transmission. Ignored on receipt. | |||
4.7.3. ER-Hop 32: The autonomous system number | AS Number | |||
Autonomous System number | ||||
The contents of an autonomous system (AS) number ER-Hop are a 2 byte | 4.7.4. ER-Hop 4: LSPID | |||
autonomous system number. The abstract node represented by this ER- | ||||
Hop is the set of nodes belonging to the autonomous system. | ||||
The length of the AS number ER-Hop is 4 bytes. | The LSPID is used to identify the tunnel ingress point as the next | |||
hop in the ER. This ER-Hop allows for stacking new CR-LSPs within an | ||||
already established CR-LSP. It also allows for splicing the CR-LSP | ||||
CR-LDP Specification - 22 - Exp. August 1999 | ||||
being established with an existing CR-LSP. | ||||
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 | Autonomous System number | | |U|F| 0x804 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|L| Reserved | Local LSPID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Ingress LSR Router ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type | U bit | |||
Unknown TLV bit. As defined in [LDP]. | ||||
CR-LDP Specification - 13 - Exp. Apr 1999 | F bit | |||
Forward unknown TLV bit. As defined in [LDP]. | ||||
AS Number 0x20 | Type | |||
LSPID 0x804 | ||||
Length | Length | |||
Specifies the length of the value field in bytes. | ||||
A one byte field indicating the total length of the TLV in bytes. It | L Bit | |||
includes the L-bit, the Type, and Length, and the AS number fields. | Set to indicate Loose hop. | |||
The length is always 4 bytes. | Cleared to indicate a strict hop. | |||
AS number | Reserved | |||
Zero on transmission. Ignored on receipt. | ||||
A two byte field indicating the AS number. | Local LSPID | |||
A 2 byte field indicating the LSPID which is unique | ||||
with reference to the its Ingress LSR. | ||||
4.8. Processing of the Constraint-Based Route TLV | Ingress LSR Router ID | |||
A 4 byte field indicating the Ingress LSR ID. | ||||
4.8. Processing of the Explicit Route TLV | ||||
4.8.1. Selection of the next hop | 4.8.1. Selection of the next hop | |||
A Label Request message containing a constraint-based route TLV must | A Label Request Message containing a explicit route TLV must | |||
determine the next hop for this path. Selection of this next hop may | determine the next hop for this path. Selection of this next hop may | |||
involve a selection from a set of possible alternatives. The | involve a selection from a set of possible alternatives. The | |||
mechanism for making a selection from this set is implementation | mechanism for making a selection from this set is implementation | |||
dependent and is outside of the scope of this specification. | dependent and is outside of the scope of this specification. | |||
Selection of particular paths is also outside of the scope of this | Selection of particular paths is also outside of the scope of this | |||
specification, but it is assumed that each node will make a best | specification, but it is assumed that each node will make a best | |||
effort attempt to determine a loop-free path. Note that such best | effort attempt to determine a loop-free path. Note that such best | |||
CR-LDP Specification - 23 - Exp. August 1999 | ||||
efforts may be overridden by local policy. | efforts may 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 Label Request message must first | 1) The node receiving the Label Request Message must first | |||
evaluate the first ER-Hop. If the L bit is not set in the first | evaluate the first ER-Hop. If the L bit is not set in the first | |||
ER-Hop and if the node is not part of the abstract node described | ER-Hop and if the node is not part of the abstract node described | |||
by the first ER-Hop, it has received the message in error, and | by the first ER-Hop, it has received the message in error, and | |||
should return a "Bad initial ER-Hop" error. If the L bit is set | should return a "Bad initial ER-Hop" error. If the L bit is set | |||
and the local node is not part of the abstract node described by | and the local node is not part of the abstract node described by | |||
the first ER-Hop, the node selects a next hop that is along the | the first ER-Hop, the node selects a next hop that is along the | |||
path to the abstract node described by the first ER-Hop. If there | path to the abstract node described by the first ER-Hop. If there | |||
is no first ER-Hop, the message is also in error and the system | is no first ER-Hop, the message is also in error and the system | |||
should return a "Bad Constraint-Based Routing TLV" error. | should return a "Bad Explicit Routing TLV" error. | |||
2) If there is no second ER-Hop, this indicates the end of the | 2) If there is no second ER-Hop, this indicates the end of the | |||
constraint-based route. The constraint-based route TLV should be | explicit route. The explicit route TLV should be removed from the | |||
removed from the Label Request message. This node may or may not | Label Request Message. This node may or may not be the end of the | |||
be the end of the LSP. Processing continues with section 4.8.2, | LSP. Processing continues with section 4.8.2, where a new | |||
where a new constraint-based route TLV may be added to the Label | explicit route TLV may be added to the Label Request Message. | |||
Request message. | ||||
3) If the node is also a part of the abstract node described by | 3) If the node is also a part of the abstract node described by | |||
the second ER-Hop, then the node deletes the first ER-Hop and | the second ER-Hop, then the node deletes the first ER-Hop and | |||
continues processing with step 2, above. Note that this makes the | continues processing with step 2, above. Note that this makes the | |||
second ER-Hop into the first ER-Hop of the next iteration. | second ER-Hop into the first ER-Hop of the next iteration. | |||
CR-LDP Specification - 14 - Exp. Apr 1999 | ||||
4) The node determines if it is topologically adjacent to the | 4) The node determines if it is topologically adjacent to the | |||
abstract node described by the second ER-Hop. If so, the node | abstract node described by the second ER-Hop. If so, the node | |||
selects a particular next hop which is a member of the abstract | selects a particular next hop which is a member of the abstract | |||
node. The node then deletes the first ER-Hop and continues | node. The node then deletes the first ER-Hop and continues | |||
processing with section 4.8.2. | processing with section 4.8.2. | |||
5) Next, the node selects a next hop within the abstract node of | 5) Next, the node selects a next hop within the abstract node of | |||
the first ER-Hop that is along the path to the abstract node of | the first ER-Hop that is along the path to the abstract node of | |||
the second ER-Hop. If no such path exists then there are two | the second ER-Hop. If no such path exists then there are two | |||
cases: | cases: | |||
5a) If the second ER-Hop is a strict ER-Hop, then there is an | 5a) If the second ER-Hop is a strict ER-Hop, then there is an | |||
error and the node should return a "Bad strict node" error. | error and the node should return a "Bad strict node" error. | |||
5b) Otherwise, if the second ER-Hop is a loose ER-Hop, then the | 5b) Otherwise, if the second ER-Hop is a loose ER-Hop, then the | |||
node selects any next hop that is along the path to the next | node selects any next hop that is along the path to the next | |||
abstract node. If no path exists, then there is an error, and the | abstract node. If no path exists within the MPLS domain, then | |||
node should return a "Bad loose node" error. | there is an error, and the node should return a "Bad loose node" | |||
error. | ||||
6) Finally, the node replaces the first ER-Hop with any ER-Hop | 6) Finally, the node replaces the first ER-Hop with any ER-Hop | |||
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 constraint-based route is received by | necessary so that when the explicit route is received by the next | |||
the next hop, it will be accepted. | hop, it will be accepted. | |||
CR-LDP Specification - 24 - Exp. August 1999 | ||||
7) Progress the Label Request Message to the next hop. | 7) Progress the Label Request Message to the next hop. | |||
4.8.2. Adding ER-Hops to the constraint-based route TLV | 4.8.2. Adding ER-Hops to the explicit route TLV | |||
After selecting a next hop, the node may alter the constraint-based | After selecting a next hop, the node may alter the explicit route in | |||
route in the following ways. | the following ways. | |||
If, as part of executing the algorithm in section 4.8.1, the | If, as part of executing the algorithm in section 4.8.1, the explicit | |||
constraint-based route TLV is removed, the node may add a new | route TLV is removed, the node may add a new explicit route TLV. | |||
constraint-based route TLV. | ||||
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 | |||
ER-Hop, then a series of ER-Hops may be inserted before the first | ER-Hop, then a series of ER-Hops may be inserted before the first | |||
ER-Hop or may replace the first ER-Hop. Each ER-Hop in this series | ER-Hop or may replace the first ER-Hop. Each ER-Hop in this series | |||
must denote an abstract node that is a subset of the current abstract | must denote an abstract node that is a subset of the current abstract | |||
node. | node. | |||
Alternately, if the first ER-Hop is a loose ER-Hop, an arbitrary | Alternately, if the first ER-Hop is a loose ER-Hop, an arbitrary | |||
series of ER-Hops may be inserted prior to the first ER-Hop. | series of ER-Hops may be inserted prior to the first ER-Hop. | |||
4.8.3. Error subcodes | 4.9 Route Pinning TLV | |||
In the processing described above, certain errors need to be reported | ||||
as part of the Notification message. This section defines the status | ||||
codes for the errors described above. | ||||
CR-LDP Specification - 15 - Exp. Apr 1999 | ||||
Status Code Type | ||||
-------------------------------------- ---------- | ||||
Bad Constraint-Based Routing TLV Error 0x04000001 | ||||
Bad Strict Node Error 0x04000002 | ||||
Bad Loose Node Error 0x04000003 | ||||
Bad Initial ER-Hop Error 0x04000004 | ||||
Resource Unavailable 0x04000005 | ||||
Service Class Unavailable 0x04000006 | ||||
Traffic Parameters Unavailable 0x04000007 | ||||
5.0 CRLSP Service Classes and Traffic Parameters | ||||
The following sections describe the CRLSP Service Classes (SCs), and | ||||
their associated traffic parameters. | ||||
The CRLSP Service Class is signaled in the SC Field of the CR-TLV | ||||
defined in Section 4.1. | ||||
Three Service Classes are currently supported by CR-LDP: | ||||
Service Class Value | ||||
-------------------------- ----- | ||||
Best Effort (BE) 0x0 | ||||
Throughput Sensitive (TS) 0x1 | ||||
Delay Sensitive (DS) 0x2 | ||||
These service classes are specified in the following sections. | ||||
5.1 Best Effort (BE) | ||||
The request of the BE SC implies that there are no expected service | ||||
guarantees from the network. The service provided by the network is | ||||
the familiar best effort service. | ||||
The Peak Date Rate (PDR) is the only traffic parameter that may be | ||||
specified with the BE SC. The specification of the PDR allows the | ||||
network to perform traffic shaping and policing functions. | ||||
5.2 Throughput Sensitive (TS) | ||||
In the service model for the Throughput Sensitive SC, the network | ||||
commits to deliver with high probability user datagrams at a rate of | ||||
at least CDR (Committed Data Rate). The user may transmit at a rate | ||||
higher than CDR but datagrams in excess of CDR would have a lower | ||||
probability of being delivered. If the user sends at a rate of CDR or | ||||
lower the network commits to deliver with high probability all the | ||||
user datagrams. | ||||
The TS SC has an associated tolerance to the burstiness of arriving | ||||
CR-LDP Specification - 16 - Exp. Apr 1999 | ||||
user datagrams. This tolerance is defined by the traffic parameter | ||||
Committed Burst Tolerance (CBT). | ||||
Ideally, a TS CRLSP request carries with it a rich set of three | ||||
traffic parameters (PDR, CDR, and CBT) that accurately describe its | ||||
traffic characteristics. This allows the network to perform resource | ||||
reservation, traffic shaping, and traffic policing. | ||||
However, for the sake of simplicity of the service definition, the | ||||
CDR is the only parameter that MUST always be specified for a TS | ||||
CRLSP. A peak data rate parameter (PDR) and a CBT are optional | ||||
traffic parameters for the TS SC. | ||||
The network should make every effort to preserve ordering of the | ||||
delivered datagrams of a TS CRLSP. | ||||
Network traffic that requires a low packet loss ratio at a given CDR | ||||
but is not particularly sensitive to delay and jitter (e.g., network | ||||
control traffic) is suited to the TS SC. The selection of the TS SC | ||||
is used to signal to the various nodes along the path that the | ||||
queuing and scheduling mechanisms used to handle the CRLSP should | ||||
provide a low packet loss ratio. | ||||
5.3 Delay Sensitive (DS) | ||||
In the service model for the Delay Sensitive SC, the network commits | ||||
to deliver with high probability user datagrams at a rate of CDR | ||||
(Committed Data Rate) with minimum delay and delay variation. The | ||||
user MUST transmit data at a rate of CDR or lower in order to be | ||||
eligible for DS service. Datagrams in excess of CDR may be discarded | ||||
by the network. If the user sends at a rate of CDR or lower the | ||||
network commits to deliver with high probability all user datagrams | ||||
with low delay and delay variation. If the user sends at a rate | ||||
higher than CDR the network does not provide any guarantees on the | ||||
excess traffic. | ||||
The Delay Sensitive SC has an associated tolerance to the burstiness | ||||
of arriving user datagrams. This tolerance is defined by the traffic | ||||
parameter Committed Burst Tolerance (CBT). | ||||
Ideally, a DS CRLSP request carries with it a rich set of three | ||||
traffic parameters (PDR, CDR, and CBT) that accurately describe its | ||||
traffic characteristics. This allows the network to perform resource | ||||
reservation, traffic shaping and policing. | ||||
However, for the sake of simplicity of the service definition, the | ||||
CDR is the only parameter that MUST always be specified for a DS | ||||
CRLSP. A peak data rate parameter (PDR) and a CBT are optional | ||||
traffic parameters for the DS SC. | ||||
The network should make every effort to preserve ordering of the | ||||
CR-LDP Specification - 17 - Exp. Apr 1999 | ||||
delivered datagrams of a DS CRLSP. | ||||
Network traffic that requires a low delay and delay variation at a | ||||
given CDR (e.g., voice traffic) is suited to the DS SC. The selection | ||||
of the DS SC is used to signal to the various nodes along the path | ||||
that the queuing and scheduling mechanisms used to handle the CRLSP | ||||
should provide low delay and delay variation. | ||||
5.4 Traffic Parameters | ||||
The CRLSP traffic parameters are defined in this section. | ||||
The traffic parameters CDR, CBT and PDR are defined in terms of a | ||||
TOKEN_BUCKET_TSPEC as specified in [RFC2215]. The following mapping | ||||
of parameters in the TOKEN_BUCKET_TSPEC is used: | ||||
Token rate, r = CDR | ||||
Bucket depth, b = CBT | ||||
Peak traffic rate, p = PDR | ||||
Minimum policed unit, m = 1 | ||||
Maximum packet size, M = MTU | ||||
The Traffic Parameters TLV is used to signal the traffic | ||||
characteristics of the CRLSP. These traffic parameters are used to | ||||
perform functions such as resource reservation, Shaping, and | ||||
Policing. See [SIN] for more details. The encoding for the Traffic | ||||
Parameters TLV is: | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|U|F| Traffic TLV (0x0810) | Length | | |U|F| 0x823 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| PDR TLV | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| CDR TLV | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| CBT TLV | | |P| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
5.4.1 Peak data rate (PDR) TLV | U bit | |||
Unknown TLV bit. As defined in [LDP]. | ||||
The value of traffic parameter PDR is given as a positive integer in | F bit | |||
bytes per second. Zero is not a valid value of PDR. | Forward unknown TLV bit. As defined in [LDP]. | |||
The user may specify the value of PDR depending the SC of the CRLSP. | Type | |||
Specifying the PDR allows the network to use traffic management | Pinning-TLV type 0x823 | |||
functions such as shaping. | ||||
CR-LDP Specification - 18 - Exp. Apr 1999 | Length | |||
Specifies the length of the value field in bytes. | ||||
0 1 2 3 | P Bit | |||
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 | The P bit is set to 1 to indicate that route pinning is requested. | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | The P bit is set to 0 to indicate that route pinning is not | |||
|U|F| PDR TLV (0x0811) | Length | | requested | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| PDR in Bytes/sec | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
5.4.2. Committed Data Rate (CDR) | Reserved | |||
Zero on transmission. Ignored on receipt. | ||||
The value of traffic parameter CDR is given as a positive integer in | 4.10 CRLSP FEC Element | |||
bytes per second. Zero is not a valid value of CDR. | ||||
The user may provide a requested value of CDR in the CRLSP request | CR-LDP Specification - 25 - Exp. August 1999 | |||
depending on the SC of the CRLSP. | ||||
0 1 2 3 | A new FEC element is introduced in this specification to support CR- | |||
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 | LSPs. The CRLDP FEC Element is an opaque FEC. | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|U|F| CDR TLV (0x0812) | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| CDR in Bytes/sec | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
5.4.3. Committed Burst Tolerance (CBT) | FEC Element Type Value | |||
type name | ||||
The value of traffic parameter CBT is given in bytes. Zero is not a | CRLSP 0x04 No value; i.e., 0 value octets; | |||
valid value of CBT. | see below. | |||
The requested value of CBT MUST be no smaller than the MTU of the | CRLSP FEC Element | |||
originating interface. | To be used only in Messages of CR-LSPs. | |||
The user may provide a requested value of CBT in the CRLSP request. | The CR-LSP FEC TLV encoding is as follows: | |||
If the user chooses not to specify a requested value of CBT and the | ||||
network is policing the traffic, then any excess traffic will be | ||||
dropped by the network. | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|U|F| CBT TLV (0x0813) | Length | | |U|F| FEC(0x0100) | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| CBT in Bytes | | | CR-LSP (4) | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
6. Open Issues | U bit | |||
Unknown TLV bit. As defined in [LDP]. | ||||
This section captures the issues that need further study. | ||||
CR-LDP Specification - 19 - Exp. Apr 1999 | ||||
1) Review the FSM described in Appendix B and extend it by the CR-TLV | ||||
processing defined in Sections 4.8.1 and 4.8.2. | ||||
2) Consider if all three traffic parameters have to be signaled at | ||||
all times and if the network should supply default values for the | ||||
missing parameters. | ||||
3) Consider the following extensions to the CR-TLV: | ||||
3.1) Changing the 'P' bit to "next hop flag" and making it a 2-bit | ||||
wide field with the following values: | ||||
- 00 "local repair", which means if it belongs to a loosely | ||||
routed segment, and the LSR detects a next hop change, the LSR | ||||
will try to establish a new LSP from this point on and switch | ||||
it over to the new LSP when it is setup. | ||||
- 01 "global repair", which means when the LSR detects a next | ||||
hop change, the LSR will tear down the LSP, the ingress LSR | ||||
will try to reestablish another LSP through the new path. | ||||
- 10 "pinned", which means that the loosely routed segments | ||||
must remain pinned down. | ||||
- 11 Reserved. | F bit | |||
Forward unknown TLV bit. As defined in [LDP]. | ||||
3.2) Adding one more field "LSPID" before ER-Hop TLV. LSPID can | Type | |||
be used to identify a network wide unique CRLSP. | FEC TLV type 0x0100 | |||
- The first 4 bytes carrying the ingress LSR IP address | Length | |||
Specifies the length of the value field in bytes. | ||||
- The second 4 bytes carrying the unique ID value assigned by | CR-LSP FEC Element Type | |||
the ingress LSR. | 0x04 | |||
4) Consider the following extension to the ER-Hop TLV: | Reserved | |||
Zero on transmission. Ignored on receipt. | ||||
For Type field, add one more type, LSPID, which means the current | 4.11 Error subcodes | |||
CRLSP will go through another CRLSP which is identified with this | ||||
LSPID value: | ||||
Value Type | In the processing described above, certain errors need to be reported | |||
----- ----- | as part of the Notification Message. This section defines the status | |||
4 LSPID | codes for the errors described in this specification. | |||
Extend processing the LSPID ER-Hop as follows: If the type of ER- | CR-LDP Specification - 26 - Exp. August 1999 | |||
Hop is LSPID, and the other end of this CRLSP is not part of the | ||||
constraint-based route TLV, add it to the constraint-based TLV | ||||
with L bit turned off. | ||||
5) Consider traffic parameter negotiation and the ability to change | Status Code Type | |||
the traffic parameters associated with an already established path | -------------------------------------- ---------- | |||
Bad Explicit Routing TLV Error 0x04000001 | ||||
Bad Strict Node Error 0x04000002 | ||||
Bad Loose Node Error 0x04000003 | ||||
Bad Initial ER-Hop Error 0x04000004 | ||||
Resource Unavailable 0x04000005 | ||||
Traffic Parameters Unavailable 0x04000006 | ||||
Setup abort 0x04000007 | ||||
CR-LDP Specification - 20 - Exp. Apr 1999 | 5. Security | |||
without tearing the old path down. | Pre-emption has to be controlled by the MPLS domain. | |||
7. Security | Resource reservation requires the LSRs to have an LSP admission | |||
control function. | ||||
No security issues are discussed in this version of the draft. | Normal routing can be bypassed by Traffic Engineered LSPs. | |||
8. Acknowledgments | 6. Acknowledgments | |||
The messages used to signal the CRLSP setup are based on the work | The messages used to signal the CRLSP setup are based on the work | |||
done by the [LDP] team. The Explicit Route object and procedures used | done by the [LDP] team. The Explicit Route object and procedures used | |||
in this specification are based on [ER]. | in this specification are based on [ER]. | |||
The authors would also like to acknowledge the careful review and | The authors would also like to acknowledge the careful review and | |||
comments of Osama Aboul-Magd, Ken Hayward, Greg Wright, Geetha Brown, | comments of Ken Hayward, Greg Wright, Geetha Brown, Brian Williams, | |||
Brian Williams, Peter Ashwood-smith, Paul Beaubien, Matthew Yuen, | Paul Beaubien, Matthew Yuen, Liam Casey, and Ankur Anand. | |||
Liam Casey, and Ankur Anand. | ||||
9. References | 7. References | |||
[FRAME] Callon et al, "Framework for Multiprotocol Label Switching", | [LDP] Andersson et al, "Label Distribution Protocol Specification" | |||
work in progress (draft-ietf-mpls-framework-02), November 1997. | work in progress (draft-ietf-mpls-ldp-03), Feb. 1999. | |||
[ARCH] Rosen et al, "Multiprotocol Label Switching Architecture", | [ARCH] Rosen et al, "Multiprotocol Label Switching Architecture", | |||
work in progress (draft-ietf-mpls-arch-02), July 1998. | work in progress (draft-ietf-mpls-arch-04), Feb. 1999. | |||
[LDP] Andersson et al, "Label Distribution Protocol Specification" | ||||
work in progress (draft-ietf-mpls-ldp-02.txt), November 1998. | ||||
[ER] Guerin et al, "Setting up Reservations on Explicit Paths using | [FRAME] Callon et al, "Framework for Multiprotocol Label Switching", | |||
RSVP", work in progress (draft-guerin-expl-path-rsvp-01.txt, November | work in progress (draft-ietf-mpls-framework-02), November | |||
1997. | 1997. | |||
[TER] Awduche et al, "Requirements for Traffic Engineering Over | [TER] Awduche et al, "Requirements for Traffic Engineering Over | |||
MPLS", work in progress (draft-awduche-mpls-traffic-eng-00), April | MPLS", work in progress (draft-ietf-mpls-traffic-eng-00), | |||
1998. | August 1998. | |||
[ER] Guerin et al, "Setting up Reservations on Explicit Paths | ||||
using RSVP", work in progress (draft-guerin-expl-path-rsvp- | ||||
01) | ||||
November 1997. | ||||
CR-LDP Specification - 27 - Exp. August 1999 | ||||
[VPN1] Heinanen et al, "MPLS Mappings of Generic VPN Mechanisms", | [VPN1] Heinanen et al, "MPLS Mappings of Generic VPN Mechanisms", | |||
work in progress (draft-heinanen-generic-vpn-mpls-00), August 1998. | work in progress (draft-heinanen-generic-vpn-mpls-00), | |||
August 1998. | ||||
[VPN2] Jamieson et al, "MPLS VPN Architecture" work in progress | [VPN2] Jamieson et al, "MPLS VPN Architecture" work in progress | |||
(draft-jamieson-mpls-vpn-00), August 1998. | (draft-jamieson-mpls-vpn-00), August 1998. | |||
[RFC2215] S. Shenker and J. Wroclawski, General Characterization | [VPN3] T. Li, "CPE based VPNs using MPLS", work in progress (draft- | |||
Parameters for Integrated Service Network Elements, RFC 2215, Sep | li-mpls-vpn-00.txt), October 1998. | |||
1997. | ||||
[SIN] B. Jamoussi, N. Feldman, and L. Andersson, "MPLS Ships in the | [LDP-STATE] L. Wu, et. al., "LDP State Machine" work in progress | |||
Night with ATM", (draft-jamoussi-mpls-sin-00.txt), August 1998. | (draft-ietf-mpls-ldp-state-00), Feb 1999. | |||
CR-LDP Specification - 21 - Exp. Apr 1999 | CR-LDP Specification - 28 - Exp. August 1999 | |||
10. Author Information | 8. Author Information | |||
Loa Andersson | Osama S. Aboul-Magd Loa Andersson | |||
Director Bay Architecture Lab, EMEA | Nortel Networks Director Bay Architecture Lab,EMEA | |||
Kungsgatan 34, PO Box 1788 | P O Box 3511 Station C Kungsgatan 34, PO Box 1788 | |||
111 97 Stockholm, Sweden | Ottawa, ON K1Y 4H7 111 97 Stockholm, Sweden | |||
phone: +46 8 441 78 34 | Canada phone: +46 8 441 78 34 | |||
mobile +46 70 522 78 34 | phone: +1 613 763-5827 mobile +46 70 522 78 34 | |||
e-mail: loa_andersson@baynetworks.com | osama@NortelNetworks.com loa_andersson@baynetworks.com | |||
Ross Callon | Peter Ashwood-Smith Ross Callon | |||
IronBridge Networks | Nortel Networks IronBridge Networks | |||
55 Hayden Avenue, | P O Box 3511 Station C 55 Hayden Avenue, | |||
Lexington, MA 02173 | Ottawa, ON K1Y 4H7 Lexington, MA 02173 | |||
Phone: +1-781-402-8017 | Canada Phone: +1-781-402-8017 | |||
Email: rcallon@ironbridgenetworks.com | phone: +1 613 763-4534 rcallon@ironbridgenetworks.com | |||
petera@NortelNetworks.com | ||||
Ram Dantu | Ram Dantu Paul Doolan | |||
Alcatel USA Inc. | Alcatel USA Inc. Ennovate Networks | |||
IP Competence Center | IP Competence Center 330 Codman Hill Rd | |||
1201 E. Campbell Road.,446-315 | 1201 E. Campbell Road.,446-315 Marlborough MA 01719 | |||
Richadson, TX USA., 75081-2206 | Richadson, TX USA., 75081-2206 Phone: 978-263-2002 | |||
Phone: 972 996 2938 | Phone: 972 996 2938 pdoolan@ennovatenetworks.com | |||
Fax: 972 996 5902 | Fax: 972 996 5902 | |||
Email: ram.dantu@aud.alcatel.com | ram.dantu@aud.alcatel.com | |||
Paul Doolan | ||||
Ennovate Networks | ||||
330 Codman Hill Rd | ||||
Marlborough MA 01719 | ||||
Phone: 978-263-2002 | ||||
email: pdoolan@ennovatenetworks.com | ||||
Nancy Feldman | ||||
IBM Corp. | ||||
17 Skyline Drive | ||||
Hawthorne NY 10532 | ||||
Phone: 914-784-3254 | ||||
email: nkf@us.ibm.com | ||||
Andre Fredette | ||||
Nortel Networks | ||||
3 Federal Street | ||||
Billerica, MA 01821 | ||||
email: fredette@baynetworks.com | ||||
Eric Gray | ||||
Lucent Technologies, Inc | ||||
1600 Osgood St. | ||||
North Andover, MA 01847 | ||||
email: ewgray@lucent.com | ||||
CR-LDP Specification - 22 - Exp. Apr 1999 | ||||
Joel M. Halpern | ||||
Newbridge Networks Inc. | ||||
593 Herndon Parkway | ||||
Herndon, VA 20170 | ||||
email: jhalpern@newbridge.com | ||||
phone: 1-703-736-5954 | ||||
fax: 1-703-736-5959 | ||||
Juha Heinanen | ||||
Telia Finland, Inc. | ||||
Myyrmaentie 2 | ||||
01600 VANTAA | ||||
Finland | ||||
Tel: +358 303 944 808 | ||||
Email: jh@telia.fi | ||||
Bilel Jamoussi | ||||
Nortel Networks | ||||
P O Box 3511 Station C | ||||
Ottawa, ON K1Y 4H7 | ||||
Canada | ||||
phone: +1 613 765-4814 | ||||
email: jamoussi@NortelNetworks.com | ||||
Timothy E. Kilty | ||||
Northchurch Communications | ||||
5 Corporate Drive, | ||||
Andover, MA 018110 | ||||
phone: 978 691-4656 | ||||
Email: tkilty@northc.com | ||||
Andrew G. Malis | Nancy Feldman Andre Fredette | |||
Ascend Communications, Inc. | IBM Corp. Nortel Networks | |||
1 Robbins Road | 17 Skyline Drive 3 Federal Street | |||
Westford, MA 01886 | Hawthorne NY 10532 Billerica, MA 01821 | |||
phone: 978 952-7414 | Phone: 914-784-3254 fredette@baynetworks.com | |||
fax: 978 392-2074 | nkf@us.ibm.com | |||
Email: malis@ascend.com | ||||
Muckai K Girish | Eric Gray Joel M. Halpern | |||
SBC Technology Resources, Inc. | Lucent Technologies, Inc Newbridge Networks Inc. | |||
4698 Willow Road | 1600 Osgood St. 593 Herndon Parkway | |||
Pleasanton, CA 94588 | North Andover, MA 01847 Herndon, VA 20170 | |||
Phone: (925) 598-1263 | Phone: 603-659-3386 phone: 1-703-736-5954 | |||
Fax: (925) 598-1321 | ewgray@lucent.com jhalpern@newbridge.com | |||
Email: mgirish@tri.sbc.com | ||||
Kenneth Sundell | Juha Heinanen Fiffi Hellstrand | |||
Ericsson | Telia Finland, Inc. Ericsson Telecom AB | |||
SE-126 25 Stockholm | Myyrmaentie 2 S-126 25 STOCKHOLM | |||
Sweden | 01600 VANTAA Sweden | |||
Finland Tel: +46 8 719 4933 | ||||
Tel: +358 41 500 4808 etxfiff@etxb.ericsson.se | ||||
jh@telia.fi | ||||
CR-LDP Specification - 23 - Exp. Apr 1999 | CR-LDP Specification - 29 - Exp. August 1999 | |||
email: kenneth.sundell@etx.ericsson.se | Bilel Jamoussi Timothy E. Kilty | |||
Nortel Networks Northchurch Communications | ||||
P O Box 3511 Station C 5 Corporate Drive, | ||||
Ottawa, ON K1Y 4H7 Andover, MA 018110 | ||||
Canada phone: 978 691-4656 | ||||
phone: +1 613 765-4814 tkilty@northc.com | ||||
jamoussi@NortelNetworks.com | ||||
Pasi Vaananen | Andrew G. Malis Muckai K Girish | |||
Nokia Telecommunications | Ascend Communications, Inc. SBC Technology Resources, Inc. | |||
3 Burlington Woods Drive, Suite 250 | 1 Robbins Road 4698 Willow Road | |||
Burlington, MA 01803 | Westford, MA 01886 Pleasanton, CA 94588 | |||
Phone: +1-781-238-4981 | phone: 978 952-7414 Phone: (925) 598-1263 | |||
Email: pasi.vaananen@ntc.nokia.com | fax: 978 392-2074 Fax: (925) 598-1321 | |||
malis@ascend.com mgirish@tri.sbc.com | ||||
Tom Worster | Kenneth Sundell Pasi Vaananen | |||
General DataComm, Inc. | Ericsson Nokia Telecommunications | |||
5 Mount Royal Ave. | SE-126 25 Stockholm 3 Burlington Woods Drive, Suite 250 | |||
Marlboro MA 01752 | Sweden Burlington, MA 01803 | |||
Email: tom.worster@gdc.com | kenneth.sundell@etx.ericsson.se Phone: +1-781-238-4981 | |||
pasi.vaananen@ntc.nokia.com | ||||
Liwen Wu | Tom Worster Liwen Wu | |||
Alcatel U.S.A | General DataComm, Inc. Alcatel U.S.A | |||
44983 Knoll Square | 5 Mount Royal Ave. 44983 Knoll Square | |||
Ashburn, Va. 20147 | Marlboro MA 01752 Ashburn, Va. 20147 | |||
USA | tom.worster@gdc.com USA | |||
Phone: (703) 724-2619 | Phone: (703) 724-2619 | |||
FAX: (703) 724-2005 | FAX: (703) 724-2005 | |||
Inet: liwen.wu@adn.alcatel.com | liwen.wu@adn.alcatel.com | |||
CR-LDP Specification - 30 - Exp. August 1999 | ||||
Appendix A: CRLSP Establishment Examples | Appendix A: CRLSP Establishment Examples | |||
A.1 Strict Constraint-Based Route Example | A.1 Strict Explicit Route Example | |||
This appendix provides an example for the setup of a strictly routed | This appendix provides an example for the setup of a strictly routed | |||
CRLSP. In this example, each abstract node is represented by a | CRLSP. In this example, each abstract node is represented by a | |||
specific node. | specific node. | |||
The sample network used here is a four node network with two edge | The sample network used here is a four node network with two edge | |||
LSRs and two core LSRs as follows: | LSRs and two core LSRs as follows: | |||
a b c | a b c | |||
LSR1------LSR2------LSR3------LSR4 | LSR1------LSR2------LSR3------LSR4 | |||
LSR1 generates a Label Request Message as described in Section 3.1 of | LSR1 generates a Label Request Message as described in Section 3.1 of | |||
this draft and sends it to LSR2. This message includes the CR-TLV. | this draft and sends it to LSR2. This message includes the CR-TLV. | |||
The CR-TLV is composed by a vector of three ER-Hop TLVs <a, b, c>. | The ER-TLV is composed by a vector of three ER-Hop TLVs <a, b, c>. | |||
The ER-Hop TLVs used in this example are of type 0x01 (IPv4 prefix) | The ER-Hop TLVs used in this example are of type 0x0801 (IPv4 prefix) | |||
with a prefix length of 32. Hence, each ER-Hop TLV identifies a | with a prefix length of 32. Hence, each ER-Hop TLV identifies a | |||
specific node as opposed to a group of nodes. | specific node as opposed to a group of nodes. | |||
At LSR2, the following processing of the CR-TLV per Section 4.8.1 of | At LSR2, the following processing of the ER-TLV per Section 4.8.1 of | |||
this draft takes place: | this draft takes place: | |||
1) The first hop <a> is part of the abstract node LSR2. Therefore, | 1) The first hop <a> is part of the abstract node LSR2. Therefore, | |||
the first step passes the test. Go to step 2. | the first step passes the test. Go to step 2. | |||
CR-LDP Specification - 24 - Exp. Apr 1999 | ||||
2) There is a second ER-Hop, <b>. Go to step 3. | 2) There is a second ER-Hop, <b>. Go to step 3. | |||
3) LSR2 is not part of the abstract node described by the second | 3) LSR2 is not part of the abstract node described by the second | |||
ER-Hop <b>. Go to Step 4. | ER-Hop <b>. Go to Step 4. | |||
4) LSR2 determines that it is topologically adjacent to the | 4) LSR2 determines that it is topologically adjacent to the | |||
abstract node described by the second ER-Hop <b>. LSR2 selects a | abstract node described by the second ER-Hop <b>. LSR2 selects a | |||
next hop (LSR3) which is the abstract node. LSR2 deletes the first | next hop (LSR3) which is the abstract node. LSR2 deletes the first | |||
ER-Hop <a> from the CR-TLV which now becomes <b , c>. Go to | ER-Hop <a> from the ER-TLV which now becomes <b , c>. Go to | |||
Section 4.8.2. | Section 4.8.2. | |||
At LSR2, the following processing of Section 4.8.2 takes place: | At LSR2, the following processing of Section 4.8.2 takes place: | |||
Executing algorithm 4.8.1 did not result in the removal of the | Executing algorithm 4.8.1 did not result in the removal of the | |||
CR-TLV. | ER-TLV. | |||
Also, LSR2 is not a member of the abstract node described by the | Also, LSR2 is not a member of the abstract node described by the | |||
first ER-Hop <b>. | first ER-Hop <b>. | |||
Finally, the first ER-Hop <b> is a strict hop. | Finally, the first ER-Hop <b> is a strict hop. | |||
Therefore, processing section 4.8.2 does not result in the | Therefore, processing section 4.8.2 does not result in the | |||
insertion of new ER-Hops. The selection of the next hop has been | insertion of new ER-Hops. The selection of the next hop has been | |||
CR-LDP Specification - 31 - Exp. August 1999 | ||||
already done is step 4 of Section 4.8.1 and the processing of the | already done is step 4 of Section 4.8.1 and the processing of the | |||
CR-TLV is completed at LSR2. In this case, the Label Request | ER-TLV is completed at LSR2. In this case, the Label Request | |||
Message including the CR-TLV <b, c> is progressed by LSR2 to LSR3. | Message including the ER-TLV <b, c> is progressed by LSR2 to LSR3. | |||
At LSR3, a similar processing to the CR-TLV takes place except that | At LSR3, a similar processing to the ER-TLV takes place except that | |||
the incoming CR-TLV = <b, c> and the outgoing CR-TLV is <c>. | the incoming ER-TLV = <b, c> and the outgoing ER-TLV is <c>. | |||
At LSR4, the following processing of section 4.8.1 takes place: | At LSR4, the following processing of section 4.8.1 takes place: | |||
1) The first hop <c> is part of the abstract node LSR4. Therefore, | 1) The first hop <c> is part of the abstract node LSR4. Therefore, | |||
the first step passes the test. Go to step 2. | the first step passes the test. Go to step 2. | |||
2) There is no second ER-Hop, this indicates the end of the CRLSP. | 2) There is no second ER-Hop, this indicates the end of the CRLSP. | |||
The CR-TLV is removed from the Label Request Message. Processing | The ER-TLV is removed from the Label Request Message. Processing | |||
continues with Section 4.8.2. | continues with Section 4.8.2. | |||
At LSR4, the following processing of Section 4.8.2 takes place: | At LSR4, the following processing of Section 4.8.2 takes place: | |||
Executing algorithm 4.8.1 resulted in the removal of the CR-TLV. | Executing algorithm 4.8.1 resulted in the removal of the ER-TLV. | |||
LSR4 does not add a new CR-TLV. | LSR4 does not add a new ER-TLV. | |||
Therefore, processing section 4.8.2 does not result in the | Therefore, processing section 4.8.2 does not result in the | |||
insertion of new ER-Hops. This indicates the end of the CRLSP and | insertion of new ER-Hops. This indicates the end of the CRLSP and | |||
the processing of the CR-TLV is completed at LSR4. | the processing of the ER-TLV is completed at LSR4. | |||
At LSR4, processing of Section 3.2 is invoked. The first condition is | At LSR4, processing of Section 3.2 is invoked. The first condition is | |||
satisfied (LSR4 is the egress end of the CRLSP and upstream mapping | satisfied (LSR4 is the egress end of the CRLSP and upstream mapping | |||
has been requested). Therefore, a Label Mapping Message is generated | has been requested). Therefore, a Label Mapping Message is generated | |||
CR-LDP Specification - 25 - Exp. Apr 1999 | ||||
by LSR4 and sent to LSR3. | by LSR4 and sent to LSR3. | |||
At LSR3, the processing of Section 3.2 is invoked. The second | At LSR3, the processing of Section 3.2 is invoked. The second | |||
condition is satisfied (LSR3 received a mapping from its downstream | condition is satisfied (LSR3 received a mapping from its downstream | |||
next hop LSR4 for a CRLSP for which an upstream request is still | next hop LSR4 for a CRLSP for which an upstream request is still | |||
pending). Therefore, a Label Mapping Message is generated by LSR3 and | pending). Therefore, a Label Mapping Message is generated by LSR3 and | |||
sent to LSR2. | sent to LSR2. | |||
At LSR2, a similar processing to LSR 3 takes place and a Label | At LSR2, a similar processing to LSR 3 takes place and a Label | |||
Mapping Message is sent back to LSR1 which completes the end-to-end | Mapping Message is sent back to LSR1 which completes the end-to-end | |||
CRLSP setup. | CRLSP setup. | |||
A.2. Node Groups and Specific Nodes Example | A.2. Node Groups and Specific Nodes Example | |||
A request at an ingress LSR to setup a CRLSP might originate from a | A request at an ingress LSR to setup a CRLSP might originate from a | |||
management system or an application, the details are implementation | management system or an application, the details are implementation | |||
specific. | specific. | |||
The ingress LSR uses information provided by the management system or | The ingress LSR uses information provided by the management system or | |||
the application and possibly also information from the routing | the application and possibly also information from the routing | |||
database to calculated the constraint-based route and to create the | database to calculated the explicit route and to create the Label | |||
Label Request Message. | Request Message. | |||
CR-LDP Specification - 32 - Exp. August 1999 | ||||
The Label request message carries together with other necessary | The Label request message carries together with other necessary | |||
information a CR-TLV defining the constraint-based routed path. In | information a ER-TLV defining the explicitly routed path. In our | |||
our example the list of hops in the ER-Hop TLV is supposed to contain | example the list of hops in the ER-Hop TLV is supposed to contain an | |||
an abstract node representing a group of nodes, an abstract node | abstract node representing a group of nodes, an abstract node | |||
representing a specific node, another abstract node representing a | representing a specific node, another abstract node representing a | |||
group of nodes, and an abstract node representing a specific egress | group of nodes, and an abstract node representing a specific egress | |||
point. | point. | |||
In--{Group 1}--{Specific A}--{Group 2}--{Specific Out: B} | In--{Group 1}--{Specific A}--{Group 2}--{Specific Out: B} | |||
The CR-TLV contains four ER-Hop TLVs: | The ER-TLV contains four ER-Hop TLVs: | |||
1. An ER-Hop TLV that specifies a group of LSR valid for the first | 1. An ER-Hop TLV that specifies a group of LSR valid for the first | |||
abstract node representing a group of nodes (Group 1). | abstract node representing a group of nodes (Group 1). | |||
2. An ER-Hop TLV that indicates the specific node (Node A). | 2. An ER-Hop TLV that indicates the specific node (Node A). | |||
3. An ER-Hop TLV that specifies a group of LSRs valid for the | 3. An ER-Hop TLV that specifies a group of LSRs valid for the | |||
second abstract node representing a group of nodes (Group 2). | second abstract node representing a group of nodes (Group 2). | |||
4. An ER-Hop TLV that indicates the specific egress point for the | 4. An ER-Hop TLV that indicates the specific egress point for the | |||
CRLSP (Node B). | CRLSP (Node B). | |||
All the ER-Hop TLVs are strictly routed nodes. | All the ER-Hop TLVs are strictly routed nodes. | |||
The setup procedure for this CRLSP works as follows: | The setup procedure for this CRLSP works as follows: | |||
CR-LDP Specification - 26 - Exp. Apr 1999 | 1. The ingress node sends the Label Request Message to a node that | |||
is a member the group of nodes indicated in the first ER-Hop TLV, | ||||
1. The ingress node sends the Label Request to a node that is a | ||||
member the group of nodes indicated in the first ER-Hop TLV, | ||||
following normal routing for the specific node (A). | following normal routing for the specific node (A). | |||
2. The node that receives the message identifies itself as part of | 2. The node that receives the message identifies itself as part of | |||
the group indicated in the first ER-Hop TLV, and that it is not | the group indicated in the first ER-Hop TLV, and that it is not | |||
the specific node (A) in the second. Further it realizes that the | the specific node (A) in the second. Further it realizes that the | |||
specific node (A) is not one of its next hops. | specific node (A) is not one of its next hops. | |||
3. It keeps the ER-Hop TLVs intact and sends a Label Request | 3. It keeps the ER-Hop TLVs intact and sends a Label Request | |||
Message to a node that is part of the group indicated in the first | Message to a node that is part of the group indicated in the first | |||
ER-Hop TLV (Group 1), following normal routing for the specific | ER-Hop TLV (Group 1), following normal routing for the specific | |||
skipping to change at page 26, line 32 | skipping to change at page 33, line 5 | |||
the group indicated in the first ER-Hop TLV, and that it is not | the group indicated in the first ER-Hop TLV, and that it is not | |||
the specific node (A) in the second ER-Hop TLV. Further it | the specific node (A) in the second ER-Hop TLV. Further it | |||
realizes that the specific node (A) is one of its next hops. | realizes that the specific node (A) is one of its next hops. | |||
5. It removes the first ER-Hop TLVs and sends a Label Request | 5. It removes the first ER-Hop TLVs and sends a Label Request | |||
Message to the specific node (A). | Message to the specific node (A). | |||
6. The specific node (A) recognizes itself in the first ER-Hop | 6. The specific node (A) recognizes itself in the first ER-Hop | |||
TLV. Removes the specific ER-Hop TLV. | TLV. Removes the specific ER-Hop TLV. | |||
7. It sends a Label Request message to a node that is a member of | CR-LDP Specification - 33 - Exp. August 1999 | |||
7. It sends a Label Request Message to a node that is a member of | ||||
the group (Group 2) indicated in the ER-Hop TLV. | the group (Group 2) indicated in the ER-Hop TLV. | |||
8. The node that receives the message identifies itself as part of | 8. The node that receives the message identifies itself as part of | |||
the group indicated in the first ER-Hop TLV, further it realizes | the group indicated in the first ER-Hop TLV, further it realizes | |||
that the specific egress node (B) is one of its next hops. | that the specific egress node (B) is one of its next hops. | |||
9. It sends a Label Request message to the specific egress node | 9. It sends a Label Request Message to the specific egress node | |||
(B). | (B). | |||
10. The specific egress node (B) recognizes itself as the egress | 10. The specific egress node (B) recognizes itself as the egress | |||
for the CRLSP, it returns a Label Mapping Message, that will | for the CRLSP, it returns a Label Mapping Message, that will | |||
traverse the same path as the Label Request Message in the | traverse the same path as the Label Request Message in the | |||
opposite direction. | opposite direction. | |||
CR-LDP Specification - 27 - Exp. Apr 1999 | CR-LDP Specification - 34 - Exp. August 1999 | |||
Appendix B. CR-LDP Finite State Machine | ||||
In this description of the CR-LDP FSM, behavior relating to the | ||||
state of LDP messages is assumed to be defined (implicitly or | ||||
explicitly) in [LDP]. In particular, LDP is assumed to retain | ||||
state information relating a Label Request made of a downstream | ||||
neighbor to the Label Request message(s) of upstream neighbors | ||||
(downstream-on-demand mode) which the (downstream) Label Request | ||||
is meant to satisfy. This will be true of many potential | ||||
applications of LDP, of which CR-LDP is an example. Minimally, | ||||
this state should include message IDs of Label Requests (both sent | ||||
and received) and the LSR(s) from which pending Label Request(s) | ||||
were received. | ||||
The FSM describes CR-LDP behavior in the following operations: | ||||
- Start of CRLSP setup (in which a Label Request is sent); | ||||
- Processing the CR-TLV portion of Label Requests; | ||||
- Completion of CRLSP setup (via Label Mapping messages); | ||||
- Notification of originator when: | ||||
- a loop is detected in a loose constraint-based route segment, | ||||
- an ER-Hop is not reachable from a previous ER-Hop, | ||||
- a next ER-Hop is strict and not directly connected to the | ||||
current LSR or | ||||
- the current LSR is strict and is not (part of the abstract | ||||
node in) the first ER-Hop in the CR-TLV; | ||||
- Withdrawing a CRLSP. | ||||
For the description, the following pictorial representations may be | ||||
used as an aid to understanding: | ||||
LSR 1 LSR 2 ... LSR n | ||||
.-----. .-----. .-----. | ||||
| ER | | ER | | ER | | ||||
`-----' `-----' `-----' | ||||
| CR-TLV CR-TLV ^ | CR-TLV CR-TLV ^ | ||||
| Next | | Next | | ||||
| Hop | | Hop | | ||||
V | V | | ||||
.-----. Label .-----. Label Label .-----. | ||||
| LDP |----------->| LDP |-------> ... ------->| LDP | | ||||
`-----' Request `-----' Request Request `-----' | ||||
CR-LDP Specification - 28 - Exp. Apr 1999 | ||||
CRLSP Setup propagation | ||||
LSR 1 LSR 2 ... LSR n | ||||
.-----. .-----. .-----. | ||||
| ER | | ER | | ER | | ||||
`-----' `-----' `-----' | ||||
^ Status Status | | ||||
| Previous | | ||||
| Hop | | ||||
| V | ||||
.-----. Label .-----. Label Label .-----. | ||||
| LDP |<-----------| LDP |<------- ... <-------| LDP | | ||||
`-----' Mapping `-----' Mapping Mapping `-----' | ||||
CRLSP Status propagation | ||||
.---------------. | ||||
| ER | .---------------. | ||||
| Link/Call | | LDP | | ||||
| Admission | | | | ||||
| Control | | Label | | ||||
`---------------' | Allocation | | ||||
`---------------' | ||||
Related Tasks | ||||
B.1. CR-LDP Primitives | ||||
The following sections describe the logical interactions between | ||||
Constrain-based Route and LDP state machines in terms of | ||||
primitives that describe the minimal information exchange | ||||
required. These assume an asynchronous exchange model involving | ||||
locally significant IDs that is used to tie status of a request to | ||||
the initial setup and to allow LDP to relate incoming/outgoing | ||||
Label Request messages. A synchronous model - possibly based on | ||||
multiple threads - is also possible and would eliminate the need | ||||
for IDs. | ||||
B.1.1. CR to LDP Primitives | ||||
LDP_SEND_REQ( TLV_List, To_LSR, Identifier ) | ||||
TLV_List | ||||
TLVs to be sent to a neighboring LSR; includes at least an | ||||
CR-LDP Specification - 29 - Exp. Apr 1999 | ||||
CR-TLV and may contain additional TLVs (i.e. QoS TLVs). | ||||
To_LSR | ||||
The neighbor LSR to which a Label Request is to be sent. | ||||
Identifier | ||||
Locally significant unique identifier. May be used to | ||||
associate the Label Request to be sent either with a Label | ||||
Request that was previously received (e.g. - LSR 2 above) | ||||
or a subsequent CRLSP Status (e.g. - LSR 1 above). | ||||
LDP_SEND_RSP( Status, Identifier ) | ||||
Status | Appendix B. QoS Service Examples | |||
Status of a specific CRLSP Setup Request. A Status of zero | B.1 Service Examples | |||
indicates success; other Status values are given in Error | ||||
Subcodes section. This Status is carried in Label Mapping or | ||||
Notification messages to the originator of the CRLSP setup. | ||||
Identifier | Construction of an end-to-end service is the result of the rules | |||
enforced at the edge and the treatment that packets receive at the | ||||
network nodes. The rules define the traffic conditioning actions that | ||||
are implemented at the edge and they include policing with pass, | ||||
mark, and drop capabilities. The edge rules are expected to be | ||||
defined by the mutual agreements between the service providers and | ||||
their customers and they will constitute an essential part of the | ||||
SLA. Therefore edge rules are not included in the signaling protocol. | ||||
Locally significant unique identifier used to associate the | Packets treatment at a network node is usually referred to as the | |||
Label Mapping to be sent with a Label Request received (e.g. | local behavior. Local behavior could be specified in many ways. One | |||
LSR n above). | example for local behavior specification is the service frequency | |||
introduced in section 4.3.2.1., together with the resource | ||||
reservation rules implemented at the nodes. | ||||
B.1.2. LDP to CR Primitives | Edge rules and local behaviors can be viewed as the main building | |||
blocks for the end-to-end service construction. The following table | ||||
illustrates the applicability of the building block approach for | ||||
constructing different services including those defined for ATM. | ||||
CR_RECEIVED_REQ( TLV_List, Identifier ) | Service PDR PBS CDR CBS EBS Service Conditioning | |||
Examples Frequency Action | ||||
--------------------------------------------------------------------------- | ||||
TLV_List | DS S S =PDR =PBS 0 Frequent drop>PDR | |||
TLVs to be processed by the local constraint-based route | TS S S S S 0 Unspecified drop>PDR,PBS | |||
function. | mark>CDR,CBS | |||
Identifier | BE inf inf inf inf 0 Unspecified - | |||
Locally significant unique identifier used to associate the | FRS S S CIR ~B_C ~B_E Unspecified drop>PDR,PBS | |||
received request either with a subsequent further request | mark>CDR,CBS,EBS | |||
or a response. For example, the identifier provided here | ||||
would be used in a subsequent LDP_SEND_REQ or LDP_SEND_RSP. | ||||
CR_LSP_STATUS( Status, Identifier ) | ATM-CBR PCR CDVT =PCR =CDVT 0 VeryFrequent drop>PCR | |||
Status | ATM-VBR.3(rt) PCR CDVT SCR MBS 0 Frequent drop>PCR | |||
mark>SCR,MBS | ||||
Status of a specific CRLSP Setup Request. A Status of zero | ATM-VBR.3(nrt) PCR CDVT SCR MBS 0 Unspecified drop>PCR | |||
indicates success; other Status values are given in section | mark>SCR,MBS | |||
Error Subcodes. This Status originated at the remote LSR | ||||
CR-LDP Specification - 30 - Exp. Apr 1999 | ATM-UBR PCR CDVT - - 0 Unspecified drop>PCR | |||
which either completed the CRLSP setup or determined that | ATM-GFR.1 PCR CDVT MCR MBS 0 Unspecified drop>PCR | |||
CRLSP setup could not be done. | ||||
Identifier | CR-LDP Specification - 35 - Exp. August 1999 | |||
Locally significant unique identifier used to associate the | ATM-GFR.2 PCR CDVT MCR MBS 0 Unspecified drop>PCR | |||
received response with the original request. For example, | mark>MCR,MFS | |||
this identifier would be the same as was used in the initial | ||||
LDP_SEND_REQ. | ||||
B.2. CR-LDP States | int-serv-CL p m r b 0 Frequent drop>p | |||
drop>r,b | ||||
This document defines 3 states relative to any one specific CRLSP. | S= User specified | |||
They are: | ||||
CR_Non_Existant - no state information exists relative to this | In the above table, the DS refers to a delay sensitive service where | |||
CRLSP; | the network commits to deliver with high probability user datagrams | |||
at a rate of PDR with minimum delay and delay requirements. Datagrams | ||||
in excess of PDR will be discarded. | ||||
CR_In_Progress - LDP_SEND_REQ has been called in result | The TS refers to a generic throughput sensitive service where the | |||
of external input (e.g. - management); | network commit to deliver with high probability user datagrams at a | |||
rate of at least CDR. The user may transmit at a rate higher than CDR | ||||
but datagrams in excess of CDR would have a lower probability of | ||||
being delivered. | ||||
CR_Established - a successful status has been received from | The BE is the best effort service and it implies that there are no | |||
an earlier setup. | expected service guarantees from the network. | |||
These states are defined such that no additional state is required | B.2. Establishing CR-LSP Supporting Real-Time Applications | |||
to support CRLSPs using LDP at intermediate LSRs than is already | ||||
required in LDP. | ||||
B.3. CR-LDP Events | In this scenario the customer needs to establish an LSP for | |||
supporting real-time applications such voice and video. The Delay- | ||||
sensitive (DS) service is requested in this case. | ||||
This document defines 4 events impacting any one specific CRLSP. | The first step is the specification of the traffic parameters in the | |||
They are: | signaling message. The two parameters of interest to the DS service | |||
are the PDR and the PBS and their values are specified by the user | ||||
based on his requirements. Since all the traffic parameters are | ||||
included in the signaling message, appropriate values must be | ||||
assigned to all of them. For DS service, the CDR and the CBS values | ||||
are set equal to the PDR and the PBS respectively. An indication of | ||||
whether the parameter values are subject to negotiation is flagged. | ||||
CR_Start - a CRLSP is required based on an external stimulus | The transport characteristics of the DS service requires that | |||
(e.g. - management); | Frequent frequency to be requested to reflect the real-time delay | |||
requirements of the service. | ||||
CR_Req_Received - further CRLSP setup processing is required | In addition to the transport characteristics, both the network | |||
based on CR_RECEIVED_REQ (i.e. - from an upstream LSR's CRLSP | provider and the customer need to agree on the actions enforced at | |||
Label Request); | the edge. The specification of those actions is expected to be a part | |||
of the service level agreement (SLA) negotiation and is not included | ||||
in the signaling protocol. For DS service, the edge action is to drop | ||||
packets that exceed the PDR and the PBS specifications. | ||||
CR_Setup_Complete - CRLSP setup has been successfully completed | The signaling message will be sent in the direction of the ER path | |||
based on CR_LSP_STATUS (with success status); | and the LSP is established following the normal LDP procedures. Each | |||
CR_LSP_Failure - Either a CRLSP could not be established as | CR-LDP Specification - 36 - Exp. August 1999 | |||
requested, or a setup CRLSP has dropped; based on CR_LSP_STATUS | ||||
(with error status). | ||||
B.4. CR-LDP Transitions | LSR applies its admission control rules. If sufficient resources are | |||
not available and the parameter values are subject to negotiation, | ||||
then the LSR could negotiate down either the PDR, the PBS, or both. | ||||
The new parameters values are echoed back in the Label Mapping | ||||
Message. LSRs might need to re-adjust their resource reservations | ||||
based on the new traffic parameter values. | ||||
State transitions are defined as follows: | B.3. Establishing CR-LSP Supporting Delay Insensitive Applications | |||
CR-LDP Specification - 31 - Exp. Apr 1999 | In this example we assume that a throughput sensitive (TS) service is | |||
requested. For resource allocation the user assigns values for PDR, | ||||
PBS, CDR, and CBS. The negotiation flag is set if the traffic | ||||
parameters are subject to negotiation. | ||||
State Event Action New State | Since the service is delay insensitive by definition, the Unspecified | |||
==================== ================= ====== =============== | frequency is signaled to indicate that the service frequency is not | |||
CR_Non_Existant CR_Start 1 CR_In_Progress | an issue. | |||
CR_Non_Existant CR_Req_Rec 2 CR_Non_Existant | ||||
CR_In_Progress CR_Setup_Complete CR_Established | ||||
CR_In_Progress CR_LSP_Failure 3 CR_Non_Existant | ||||
CR_Established CR_LSP_Failure 3 CR_Non_Existant | ||||
Actions: | Similar to the previous example, the edge actions are not subject for | |||
signaling and are specified in the service level agreement between | ||||
the user and the network provider. | ||||
1) Establish CRLSP state, create CR-TLV information, | For TS service, the edge rules might include marking to indicate high | |||
LDP_SEND_REQ. | discard precedence values for all packets that exceed CDR and the | |||
2) Process CR-TLV (as described in "Processing of | CBS. The edge rules will also include dropping of packets that are do | |||
the Constraint-Based Route TLV" section) and either | not conform to either PDR and PBS. | |||
LDP_SEND_REQ or LDP_SEND_RSP. | ||||
3) Remove state information relative to this CRLSP (may notify | ||||
management, other external source initially requiring | ||||
setup). | ||||
For the purposes of this transition table, illegal transitions | Each LSR of the LSP is expected to run its admission control rules | |||
(not included in the table) are ignored. | and negotiate traffic parameters down if sufficient resources do not | |||
exist. The new parameters values are echoed back in the Label Mapping | ||||
Message. LSRs might need to re-adjust their resources based on the | ||||
new traffic parameter values. | ||||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |