Network Working Group C.Y Lee
Internet Draft A. Farrel
Expiration Date: November 2002
May 2002
Exclude Routes - Extension to RSVP-TE
draft-lee-ccamp-rsvp-te-exclude-route-00.txt
1. Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
2. Abstract
The current RSVP-TE specification [RSVP-TE] and GMPLS extensions
[GMPLS-RSVP-TE] allow abstract nodes and resources to be explicitly
included in a path setup, but not to be explicitly excluded.
In some systems where precise explicit paths are not computed at the
head end it may be useful to specify and signal abstract nodes and
resources that are to be explicitly excluded from routes. These
exclusions may apply to the whole of a path, or to parts of a path
between two abstract nodes specified in an explicit route.
Shared Risk Link Groups (SRLGs) allow the definition of resources or
groups of resources that share the same risk of failure. The
knowledge of SRLGs may be used to compute diverse paths that can be
used for protection. In systems where it is useful to signal
exclusions, it may be useful to signal SRLGs to indicate groups of
resources that should be excluded on the whole of a path or between
two abstract nodes specified in an explicit path.
This draft specifies ways to communicate route exclusions during path
setup using RSVP-TE.
These approaches are equally applicable to other MPLS TE signaling
protocols such as CR-LDP.
Lee and Farrel [Page 1]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
3. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in [RFC2119].
4. Overview
The current RSVP-TE specification [RSVP-TE] and GMPLS extensions
[GMPLS-RSVP-TE] allow abstract nodes and resources to be explicitly
included in a path setup, using the Explicit Route Object (ERO).
In some systems it may be useful to specify and signal abstract nodes
and resources that are to be explicitly excluded from routes.
Two types of exclusions are required:
i) Do not include any of the abstract nodes in a given set anywhere
on the path. This set of abstract nodes to exclude is referred
to as the Exclude Route list.
ii) Do not include certain abstract nodes or resources between a
specific pair of abstract nodes present in an ERO. Such specific
exclusions are referred to as Explicit Route Exclusions.
A new RSVP-TE object is introduced to convey the Exclude Route list.
This object is the Exclude Route Object (XRO).
The second type of exclusion is achieved through a modification to
the existing ERO. A new subobject type (the Exclude Route Subobject)
is introduced to indicate an exclusion between a pair of included
abstract nodes.
At the same time, it is recognized that SRLGs are a useful means of
indicating resources that share the same risk of failure. When
establishing protection LSPs they are often required to be node and
link diverse from the LSPs that they protect. Further, where SRLGs
are known, the protection LSPs are required to not utilize resources
in the SRLGs traversed by the protected LSPs.
This draft introduces an ERO subobject to indicate an SRLG to be
signaled in either of the two exclusion methods described above. This
subobject might also be appropriate for use within Explicit Routes,
but that discussion is outside the scope of this draft.
Lee and Farrel [Page 2]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
5. Shared Risk Link Groups
The identifier of a SRLG is defined as a 32 bit quantity in
[GMPLS-OSPF]. These 32 bits are divided into an 8 bit type field
and a 24 bit identifier in [IPO-SRLG].
5.1 SRLG ERO Subobject
The format of the ERO and its subobjects are defined in [RSVP-TE].
The SRLG subobject is defined as follows.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | Tolerance | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRLG Id |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L
The L bit is an attribute of the subobject. The L bit is set
if the subobject represents a loose hop in the explicit route.
If the bit is not set, the subobject represents a strict hop in
the explicit route.
For exclusions, the L bit SHOULD be set to zero and ignored.
Type
The type of the subobject [TBD].
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields. The Length is always 8.
Tolerance
The level to which it is permissible for this SRLG to be
included in the path when more than one SRLG is specified.
A value of zero indicates that this SRLG MUST be avoided. A
tolerance value of n < m indicates that the SRLG MUST be
avoided in preference to an SRLG with tolerance value m.
If only one SRLG is present, then a value other than zero
indicates the SRLG SHOULD be avoided.
SRLG Id
The 32 bit identifier of the SRLG.
Lee and Farrel [Page 3]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
5.2 Exclusion Tolerance Semantics
The Tolerance field in the SRLG subobject indicates the degree to
which the SRLG must be avoided. (The degree to which it is
permissible to include it.)
If the Tolerance field has the value zero (0), the LSP MUST NOT
traverse or use any resource that is a member of the SRLG.
If the value is non-zero, all path computation elements SHOULD
attempt to select routes that avoid all resources that are members of
the SRLG.
Where more than one SRLG with non-zero Tolerance value is specified
for exclusion and no route can be found that avoids both SRLGs, a
route SHOULD be chosen that avoids the SRLG with the lower Tolerance
value.
6. Exclude Route List
The exclude route identifies a list of abstract nodes that MUST NOT
be traversed along the path.
6.1 Exclude Route Object
Abstract nodes to be excluded from the path are specified via the
EXCLUDE_ROUTE object (XRO). The Exclude Route Class value is [TBD].
Currently one C_Type is defined, Type 1 Exclude Route. The
EXCLUDE_ROUTE object has the following format:
Class = TBD, C_Type = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (Subobjects) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobjects
The contents of an EXCLUDE_ROUTE object are a series of variable-
length data items called subobjects. The subobjects are identical
to those defined in [RSVP-TE] and [GMPLS-RSVP-TE] for use in EROs.
Lee and Farrel [Page 4]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
The following subobject types are supported.
1 IPv4 prefix
2 IPv6 prefix
32 Autonomous system number
TBD SRLG
The defined values for Type above are specified in [RSVP-TE]
and in this document.
The L bit that denotes a loose hop when the subobject is used in
the ERO has no meaning in the XRO and should be ignored.
6.2. Semantics and Processing Rules for the Exclude Route Object (XRO)
The exclude route list is encoded as a series of subobjects contained
in an EXCLUDE_ROUTE object. Each subobject identifies an abstract
node in the exclude route list.
Each abstract node may be a precisely specified IP address of a
single node, an IP address with prefix identifying a group of nodes,
or an Autonomous System.
The Explicit Route and routing processing is unchanged from the
description in [RSVP-TE] with the following additions:
a. When a Path message is received at a node, the node must check
that it is not a member of any of the abstract nodes in the XRO
if it is present in the Path message. If the node is a member
of any of the abstract nodes in the XRO it should return a PathErr
with the error code "Routing Problem" and error value of "Local
node in Exclude Route".
If there are SRLGs in the XRO, the node should check that it and
the resources it uses are not part of any SRLG that is specified
with Tolerance value of zero. If it is, it should return a
PathErr with the error code "Routing Problem" and error value of
"Local node in Exclude Route".
The node may be a member of an SRLG in the XRO that is specified
with a non-zero Tolerance value.
b. When choosing a next hop or expanding an explicit route to include
additional subobjects, a node:
i) must not introduce an explicit node or an abstract node that
equals or is a member of any abstract node that is specified
in the Exclude Route Object.
ii) must not (or should not, in the case of a non-zero Tolerance
value) introduce links, nodes or resources identified by the
SRLG ID specified in the SRLG subobjects(s).
If these rules preclude further forwarding of the Path message,
the node should return a PathErr with the error code "Routing
Problem" and error value of "Route blocked by Exclude Route".
Lee and Farrel [Page 5]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
The XRO Class-Num is of the form 11bbbbbb so that nodes which do not
support the XRO will forward it uninspected and will not apply the
extensions to ERO processing described above. This makes the XRO
a 'best effort' process.
This 'best-effort' approach is chosen to allow route exclusion to
traverse parts of the network that are not capable of parsing or
handling the new function. Note that Record Route may be used to
allow computing nodes to observe violations of route exclusion and
attempt to re-route the LSP accordingly.
7. Explicit Route Exclusions
Explicit Route Exclusions define abstract nodes or resources (such
as links, unnumbered interfaces or labels) that must not be used
on the path between two inclusive abstract nodes or resources in the
explicit route.
7.1. Exclude Object Subobject
A new subobject type is defined. The Exclude Object Subobject has
type [TBD].
The format of the Exclude Object Subobject is as follows.
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------//---------------+
|L| Type | Length | Exclude subobject contents |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------//---------------+
L (ignored, must be 0)
Type
The type of the subobject [TBD]
Exclude subobject contents
An ERO subobject indicating the abstract node or resource to
be excluded. The format of this field is exactly the format of
an ERO subobject contained in an ERO and may include an SRLG
subobject as described earlier in this draft.
Lee and Farrel [Page 6]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
Thus, an exclude subobject for an IP hop might look as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length |R| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
R is reserved and must be zero
7.2. Semantics and Processing Rules for the Exclude Object Subobject
Each Exclude Object Subobject carries a single exclusion. The
exclusion is encoded exactly as an inclusion in the ERO and prefixed
by an additional Type and Length.
The scope of the exclusion is the step between the previous ERO
subobject that identifies an abstract node, and the subsequent
ERO subobject that identifies an abstract node. Multiple exclusions
may be present between any pair of abstract nodes.
Exclusions may indicate explicit nodes, abstract nodes or Autonomous
Systems that must not be traversed on the path to the next abstract
node indicated in the ERO.
Exclusions may also indicate resources (such as unnumbered
interfaces, link ids, labels) that must not be used on the path to
the next abstract node indicated in the ERO.
SRLGs may also be indicated for exclusion from the path to the next
abstract node in the ERO by the inclusion of an Exclude Object
Subobject containing an SRLG subobject. If the Tolerance value in
the SRLG subobject is zero, the resources (nodes, links, etc.)
identified by the SRLG must not be used on the path to the next
abstract node indicated in the ERO. If the Tolerance value is non-
zero, the resources identified by the SRLG should be avoided, but may
be used in preference to resources associated with another SRLG
indicated for exclusion if that SRLG has a (numerically) lower
Tolerance value.
If a node is called upon to process an Exclude Object Subobject and
does not support handling of exclusions it will return a PathErr
with a "Bad EXPLICIT_ROUTE object" error.
If the presence of Exclude Object Subobjects precludes further
forwarding of the Path message, the node should return a PathErr with
the error code "Routing Problem" and error value of "Route blocked by
Exclude Route".
Lee and Farrel [Page 7]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
8. Security
The new exclude route object poses no security exposures over and
above [RSVP-TE] and [GMPLS-RSVP-TE]. Note that any security concerns
that exist with Explicit Routes should be considered with regard to
route exclusions.
9. IANA Considerations
9.1. New Class Numbers
One new class number is required.
EXCLUDE_ROUTE
Class-Num = 011bbbbb
CType: 1
9.2. Explicit Route Subobject Types
Two new subobject types for the Explicit Route Object are required.
SRLG subobject
Exclude object subobject
9.3. New Error Codes
New error values are needed for the error code 'Routing Problem'.
Unsupported Exclude Route Subobject Type
Local node in Exclude Route
Route blocked by Exclude Route
10. Acknowledgments
This draft reuses text from [RSVP-TE] for the description of
EXCLUDE_ROUTE.
The authors would like to express their thanks to Igor Bryskin,
Lou Berger and Stefaan de Cnodder for their considered opinions on
this draft. Also thanks to Yakov Rekhter for reminding us about
SRLGs.
Lee and Farrel [Page 8]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
11. Authors' Information
Cheng-Yin Lee
600 March Road
Ottawa, Ontario
Canada K2K 2E6
email: Cheng-Yin.Lee@alcatel.com
Adrian Farrel
Movaz Networks, Inc.
7926 Jones Branch Drive, Suite 615
McLean VA, 22102 USA
Phone: +1-703-847-1867
Email: afarrel@movaz.com
12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997
[RSVP-TE] D. Awduche, et al., "RSVP-TE: Extensions to RSVP
for LSP Tunnels", RFC 3209, December 2001.
[GMPLS-RSVP-TE] P. Ashwood-Smith, et al., "Generalized MPLS
Signaling - RSVP-TE Extensions", Internet Draft,
draft-ietf-mpls-generalized-rsvp-te-07.txt,
April 2002 (work in progress).
[GMPLS-OSPF] K. Kompela, et al., "OSPF Extensions in Support of
Generalized MPLS", Internet Draft,
draft-ietf-ccamp-ospf-gmpls-extensions-07.txt,
May 2002 (work in progress).
[IPO-SRLG] D. Papadimitriou, et al., "Inference of Shared Risk
Link Groups", Internet Draft, draft-many-inference-
srlg-02.txt, November 2001 (work in progress).
13. Informational References
[MPLS-BUNDLE] Kompella, K., Rekhter, Y., and Berger, L.,
"Link Bundling in MPLS Traffic Engineering",
Internet Draft, draft-ietf-mpls-bundle-02.txt,
May 2002, (work in progress).
[MPLS-UNNUM] Kompella, K., Rekhter, Y., "Signalling Unnumbered
Links in RSVP-TE", Internet Draft,
draft-ietf-mpls-rsvp-unnum-06.txt, May 2002, (work
in progress).
Lee and Farrel [Page 9]
Internet Draft draft-lee-ccamp-rsvp-te-exclude-route-00.txt May 2002
[GMPLS-SIG] P. Ashwood-Smith, et al, "Generalized MPLS -
Signaling Functional Description",
draft-ietf-mpls-generalized-signaling-08.txt
April 2002, (work in progress).
14. Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. This
document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL
NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY
OR FITNESS FOR A PARTICULAR PURPOSE.
Lee and Farrel [Page 10]