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]