Internet DRAFT - draft-cheng-mpls-rsvp-multicast-er

draft-cheng-mpls-rsvp-multicast-er




   Network Working Group                Dean Cheng (Polaris Networks)
   Internet Draft                                                    
   Expiration Date: April 2002          Oct 2001

          RSVP-TE: Extensions to RSVP for Multicast LSP Tunnels 

               draft-cheng-mpls-rsvp-multicast-er-00.txt

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."

   To view the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing contained in an Internet-Drafts Shadow
   Directory, see http://www.ietf.org/shadow.html.

Abstract

   Currently the RSVP-TE ([7]) defines explicit route object and 
   related procedure for traffic engineering based MPLS tunnels but 
   for unicast situations only. This document extends the RSVP-TE's 
   explicit route capability to multicast applications. The mechanism
   proposed in this document is also intended for multicast 
   applications in GMPLS networks.

Table of Contents

1.0 Introduction  ..............................................  3
2.0 Overview      ..............................................  3
3. Tree Explicit Route Object (TERO)  ..........................  4
3.1 Applicability  .............................................  5
3.2 Semantics of the Tree Explicit Route Object ................  5
3.3 Tree Explicit Route Subobjects .............................  5 
3.3.1 Subobjects with Numbered Link ............................  6
3.3.1.1 Subobject: IPv4 Prefix .................................  6
3.3.1.2 Subobject: IPv6 Prefix .................................  7
3.3.1.3 Subobject: Autonomous System Number ....................  7
3.3.2 Subobject with Unnumbered Link ...........................  7
3.4 Processing of the Tree Explicit Route Object ...............  8
4. Tree Record Route Object (TRRO) .............................  8
4.1 Applicability ..............................................  9
4.2 Semantics of the Tree Record Route Object ..................  9
4.3 Tree Record Route Subobjects ...............................  9

                                                       [Page 1]



4.3.1 Subobjects with Numbered Link ............................  9
4.3.1.1 Subobject: IPv4 address ................................ 10
4.3.1.2 Subobject: IPv6 address ................................ 10
4.3.1.3 Subobject with Label ................................... 10
4.3.2 Subobject with Unnumbered Link ........................... 11
4.4  Processing of the Tree Record Route Object ................ 11
5. Teardown .................................................... 11
6. Security Considerations ..................................... 12
7. RSVP Message Formats ........................................ 12
8.0 References ................................................. 13
9.0 Author's Address  .......................................... 14











































                                                       [Page 2]



1.0 Introduction

   There are varies of IP multicast protocols that have been defined
   including DVMRP ([1]), PIM-SM ([2]), CBT ([3]), etc. However, these
   multicast routing protocols are currently used for forwarding IP 
   datagrams in networks not with MPLS based, or at least without
   traffic engineering considerations. Moreover, sometimes it requires
   mechanisms other than multicast routing protocols to specify the
   routing path for multicast traffic.
 
   The MPLS architecture ([4]) states clearly that the MPLS technology
   is applied to IP multicast networks but much work is required in 
   the area including traffic engineering. The GMPLS architecture ([5]) 
   lists the multicast in GMPLS networks is an open issue.

   To support multicast in MPLS/GMPLS networks, some additions are 
   required in the signaling protocols. The RSVP ([6]) is one of the
   key signaling protocols. The RSVP has actually already supported 
   multicast applications but does not support explicit routing 
   capability. The RSVP-TE ([7]) adds the explicit routing capability 
   to be used in the MPLS/GMPLS networks but for unicast applications 
   only.

   This document proposes the explicit routing capability in addition 
   to those already defined in the [7] to support multicast 
   applications in MPLS/GMPLS networks.      

   To build a point-to-multipoint LSP, the information provided by
   IP routing protocols with traffic engineering extensions, i.e.,
   OSPF-TE ([10, [11]) or IS-IS-TE ([12], [13]) is required similarly 
   to the point-to-point LSP case, i.e., the path selection criteria
   is based on constraints on network topology, traffic engineering,
   policy, etc.                                                           
     
2. Overview

   The RSVP-TE document ([7]) defines the EXPLICIT_ROUTE object that 
   included in the Path message to specify the routing path for a MPLS 
   TE tunnel across a network. It also defines RECORD_ROUTE object
   included in the Path and Resv messages to record the route for a 
   given MPLS TE tunnel. This document defines the TREE_EXPLICIT_ROUTE 
   object (TERO) that included in the Path message to specify a MPLS 
   multicast TE tunnel across a network, and the TREE_RECORD_ROUTE 
   object that included in the Path and Resv messages to record the 
   route for a given MPLS multicast TE tunnel.

   A MPLS multicast TE tunnel is realized by a point-to-multipoint 
   LSP that can be represented by a multicast distribution tree
   with the ingress LER as the tree root, and all the egress LERs as
   the tree leafs. The distribution tree can be calculated from the 
   network management station as a pinned tree, or by the ingress LER.
   A leaf node can at anytime join and leave a multicast distribution 
   tree. The actual mechanism for the tree calculation and its 
   
                                                       [Page 3]



   algorithm is outside the scope of this document.

   A MPLS multicast TE tunnel can be initiated from the ingress LER,
   to build a so-called root-initiated distribution tree, or initiated
   from the egress LER, to build a as so-called leaf-initiated
   distribution tree. This document only discusses root-initiated
   distribution tree using RSVP. Leaf-initiated distribution tree 
   using RSVP is for further study.

   The MPLS multicast TE tunnel as discussed in this document is 
   intended for unidirectional traffic only.

   A RSVP Path message containing TREE_EXPLICIT_ROUTE (TERO) object
   is originated from the ingress LER and forwarded to all the leaf
   nodes along the point-to-multipoint distribution path represented
   by the set of subobjects contained in the TERO object. A leaf node
   is a LSR in the network that claims the reachability to the IP 
   multicast address that contained in the Session object. All TE  
   links that on the tree satisfies with the traffic engineering 
   parameters as contained in the Path message. Additional tree leafs 
   and theirassociated branches, if any, may be added to the TERO when
   new leaf node(s) claims the reachability to the same IP multicast 
   address in the subsequent refresh Path messages. Leaf nodes that no
   longer reachable towards the destination IP multicast address will 
   be initially included in the TERO object with a flag indicating as
   a dropped party, and removed completely in subsequent Path messages.

   The handling for the RSVP Resv message for multicast TE tunnel is 
   the same as that as for the point-to-point TE tunnel except at a 
   branch node, the Resv messages received from all the down stream 
   LSRs are "merged" and there is only one Resv message sent to its
   own upstream LSR.

   The TREE_RECORD_ROUTE object (TRRO) is also introduced and may be
   included in the Path and Resv messages with similar semantics as the   
   RECORD_ROUTE object used in the point-to-point TE tunnel situation.

3. Tree Explicit Route Object (TERO)

   Tree explicit route are specified via the TREE_EXPLICIT_ROUTE object 
   (TERO). The TERO has the following format:

         Class = TBA, 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
      
                                                       [Page 4]



      The contents of a TERO are a series of variable-length data 
      items called TERO subobject as defined in the Section 3.3 below.	

3.1 Applicability 

   The TERO object is intended to be used only for multicast situations
   when the multicast distribution tree is specified by the root node.
   Also it is used when all LSRs that are included in the multicast 
   tree support this object.

   The TERO will be included in the RSVP Path message to specify a
   point-to-multipoint and unidirectional LSP.

3.2 Semantics of the Tree Explicit Route Object

   A TERO contains a set of subobjects that represent a multicast
   distribution tree or tree branch. Each subobject represents a tree
   node that contains generally the same information as the Explicit
   Route Subobject as defined in the [7], plus others as detailed in
   the Section 3.3. The difference is the TERO contains a 
   point-to-multipoint LSP path represented by a whole or
   partial distribution tree, not a hop-by-hop linear path. 

                          A
                          |
                          |
            +------+------+------+------+
            |      |      |      |      |
            B      G      H      K      M
            |             |             |
        +---+---+      +-----+    +-----+---+
        |       |      |     |    |     |   |
        C       D      I     J    N     P   Q
                |                 |
              +-+-+             +-+-+
              |   |             |   |
              E   F             L   O
  
   The tree nodes appear in the TERO in depth-first order. E.g., 
   if a distribution tree is as shown as in the above figure, the
   TREE_EXPLICIT_ROUTE object is encoded as follows:

   {
    A(3), B(2), C(0), D(1), E(0), F(0), G(0), H(1), I(0), J(0), K(0), 
    M(2), N(1), L(0), O(0), P(0), Q(0)
   } 
 
    where, the number in the parenthesis after each node notation
    stands for the number of tree levels below that node.
                           
3.3 Tree Explicit Route Subobjects

   The contents of a TERO consist of a series of subobjects and

                                                       [Page 5]



   collectively, they specify a point-to-multipoint distribution tree 
   or a sub-tree. 

3.3.1 Subobjects with Numbered Link

   The RSVP Explicit Route subobjects defined in the [7] can be 
   extended to support the subobjects with numbered links with the 
   details as follows:

   The Explicit Route subobjects defined in the [7] have a form as:

    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    |    (Subobject contents)       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where, the Type indicates the type of contents of the subobject with
   values currently only for unicast traffic as follows:

       1 IPv4 prefix
       2 IPv6 prefix
      32 Autonomous system number

   This document adds the following values for the Type:

      17 IPv4 prefix for a hop on a multicast LSP
      18 IPv4 prefix for a hop on a multicast LSP
      64 Autonomous system number for a hop on a multicast LSP

3.3.1.1 Subobject: IPv4 Prefix

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |L|  Type (17)  |     Length    |    IPv4 address (4 bytes)     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IPv4 address (continued)    | Prefix Length |   Reserved    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |D|         Reserved            |       Sub-Tree Depth          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the ER subobject for numbered
   links using IPv4 prefix, with additional fields as follows:

      D - an one-bit flag to indicate this hop is dropped from the 
          tree.

      Sub-Tree Depth - a 2-byte field that indicates the number of
          subobjects under this hop.  

   Refer to the [7] for meanings of the rest of the data fields. 


                                                       [Page 6]



3.3.1.2 Subobject: IPv6 Prefix 

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |L|  Type (17)  |     Length    |    IPv6 address (16 bytes)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IPv6 address (continued)                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IPv6 address (continued)                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IPv6 address (continued)                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IPv6 address (continued)    | Prefix Length |   reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           reserved            |       Sub-Tree Depth          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the ER subobject for numbered 
   links using IPv6 prefix, with an additional 2-byte reserved field 
   and the Sub-Tree Depth field that indicates the number of 
   subobjects under this hop.  

   Refer to the [7] for meanings of the rest of the data fields. 

3.3.1.3 Subobject: Autonomous System Number

    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 (64) |     Length    |           AS Number           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved            |       Sub-Tree Depth          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the ER subobject for numbered
   links using Autonomous System, with an additional 2-byte reserved 
   field and the Sub-Tree Depth field that indicates the number of 
   subobjects under this hop.  

   Refer to the [7] for meanings of the rest of the data fields. 

3.3.2 Subobject with Unnumbered Link

   The RSVP Explicit Route subobject defined in the [8] for unnumbered
   links can be extended to support the Tree Explicit Route Subobject. 

   The Type defined in the [8] is 4 for ERO on unnumbered links and 
   this document adds a new subobject with Type as 20. There is also
   an additional 2-byte reserved field and the Sub-Tree Depth field 
   that indicates the number of subobjects under this hop.



                                                       [Page 7]



    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |L| Type (20)   |     Length    |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Interface ID                          |  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved            |       Sub-Tree Depth          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Refer to the [8] for meanings of the rest of the data fields. 

3.4 Processing of the Tree Explicit Route Object 

   The processing rules for the TERO are similar to that for the 
   EXPLIXIT_ROUTE object as documented in the [7] with the following 
   additions:

   1) The node receiving a Path message containing an TERO must be
      able to locate the TERO subobject corresponding to itself. Since 
      the order of the subobject is with depth-first, the associated
      subobject may or may not be the first one on the list.

   2) Once the receiving node of a Path message locates itself on the
      list of the TERO, it needs to delete all sibling branches that do 
      not belong to the subtree where the receiving node is the root, 
      before other handlings including adding more subobjects on the 
      tree, locate the next hops, etc.

   3) When a receiving node needs to add subobjects to the TERO, it 
      must take a position for itself as a root of a tree branch, by 
      including all the required intermediate nodes to get to all the
      leaf nodes that it sees. 

   4) If one of the next subobject included in the TERO has the "D" 
      bit set, the same handling as for the Path Tear message in the 
      unicast LSP is taken in regard to that next hop.

   5) If the subobject that corresponding to the receiving node of 
      the Path message has the "D" bit set, it is equivalent to 
      receiving a Path Tear message.

4. Tree Record Route Object (TRRO)

   Multicast LSP can be recorded via the TREE_RECORD_ROUTE object 
   (TRRO). Optionally, labels may also be recorded. The TRRO has
   the following format:

      Class = TBA, C_Type = 1



                                                       [Page 8]



   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                        (Subobjects)                          //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Subobjects

   The contents of a TRRO are a series of variable-length data items 
   called TRRO subobjects as defined in the Section 4.3.

   The TRRO can be present in both RSVP Path and Resv messages.  If 
   a Path or Resv message contains multiple RROs, only the first TRRO 
   is meaningful. Subsequent TRROs need to be ignored and not be 
   propagated.  

4.1 Applicability

   The applicability of the TRRO is similar to that of the RRO as 
   described in the [7], i.e., the TRRO can be used for loop 
   detection, multicast LSP trace and feed back as the TERO.
   
4.2 Semantics of the Tree Record Route Object

   The TRRO consists a series of Tree Record Route Subobjects. Each
   subobject represents a node on a multicast TE path, and
   collectively, a TRRO represents the actual path for a 
   point-to-multipoint LSP throughout a MPLS/GMPLS network. 

4.3 Tree Record Route Subobjects 

   The contents of a TRRO consist of a series of Tree Record Route 
   Subobjects that collectively specifies a point-to-multipoint LSP.

4.3.1 Subobjects with Numbered Link

   The RSVP Route Record subobjects defined in the [7] can be extended
   to support the TRRO subobjects with numbered link. The subobjects 
   defined in [7] to support RRO for unicast tunnels include the 
   following: 
   
       1 IPv4 prefix
       2 IPv6 prefix
       3 Label

   This document adds the following values for the Type:

      17 IPv4 prefix for a hop on a multicast LSP
      18 IPv4 prefix for a hop on a multicast LSP
      19 Label for a hop on a multicast LSP


                                                       [Page 9]



4.3.1.1 Subobject: IPv4 address

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type (17)     |     Length    | IPv4 address (4 bytes)      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | IPv4 address (continued)      | Prefix Length |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Sub-tree Depth         |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the RRO subobject for numbered 
   links using IPv4 prefix, with an additional field as follows:   

       Sub-Tree Depth - a 2-byte field that indicates the number of
           subobjects under this hop.

   Refer to the [7] for meanings of the rest of the data fields.

4.3.1.2 Subobject: IPv6 address

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type (18)   |     Length    | IPv6 address (16 bytes)       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | IPv6 address (continued)                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | IPv6 address (continued)                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | IPv6 address (continued)                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | IPv6 address (continued)      | Prefix Length |      Flags    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Sub-tree Depth         |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the RRO subobject for numbered 
   links using IPv6 prefix, with an additional field as follows:   

       Sub-Tree Depth - a 2-byte field that indicates the number of
           subobjects under this hop.

   Refer to the [7] for meanings of the rest of the data fields.

4.3.1.3 Subobject with Label 







                                                       [Page 10]



    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type (19)     |     Length    |  Flags      |    C-Type     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Contents of Label Object                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Sub-tree Depth         |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This new subobject is extended from the RRO subobject for labels 
   with an additional field as follows:   

       Sub-Tree Depth - a 2-byte field that indicates the number of
           subobjects under this hop.

   Refer to the [7] for meanings of the rest of the data fields.

4.3.2 Subobject with Unnumbered Links

   The RSVP Record Route subobject defined in the [8] for unnumbered
   link can be extended to support the Tree Route Record subobject. 

   The Type defined in the [8] is 4 for RRO on unnumbered links and 
   this document adds a new subobject with Type as 20. There is also
   an additional 2-byte reserved field and the Sub-Tree Depth field 
   that indicates the number of subobjects under this hop.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type (20)   |     Length    |     Flags     | Reserved (MBZ)|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Interface ID                          |  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved            |       Sub-Tree Depth          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Refer to the [8] for meanings of the rest of the data fields.

4.4  Processing of the Tree Record Route Object

   The processing rules for the TRRO are similar to that for the RRO 
   as described in the [7] except the path information that recorded 
   at each node may be limited. At a node, the Path TRRO will have 
   the route from the ingress LER to this node; the Resv TRRO will 
   have the route from this node to all the leaf nodes belong to the 
   sub-tree rooted at this node. Only the ingress LER has the 
   complete multicast distribution tree from itself to all leaf nodes.  

5. Teardown

                                                       [Page 11]



   A point-to-multipoint LSP setup using TERO may be torn down or    
   partially torn down through three methods depending on the     
   circumstances.

   First, a Path Tear message can be sent by the ingress LER or any 
   node that is on the multicast distribution tree. The message will 
   traverse down the tree or a sub-tree, with replication at each 
   branch node, resulting the Path State being removed immediately at
   each node.

   Second, a Resv Tear message can be sent by any node on the multicast
   distribution tree and traverse upstream, but with possible merge at
   each branch node. The result is to prune the reservation state 
   toward the ingress LER as far as possible as described in the [6]. 
   In particular, when a single leaf node decides to leave a given
   multicast group, it can sends a Resv Tear message towards its 
   upstream node.
  
   Third, the ingress LER can flag the "D" bit in one or more 
   subobjects of the TERO included in the Path message during the
   refresh procedure. The effect of the "D" bit on the associated node
   upon arriving is the same as if receiving a Path Tear message, and
   the upstream node also needs to prune this node from its subtree.

6. Security Considerations

   Security issues are not discussed in this document.
                   
7. RSVP Message Formats 

   This section presents the RSVP message related formats as modified 
   by this document. Unmodified formats are not listed. Note due to
   the intention that the mechanism proposed in this document also 
   used in GMPLS networks, the changes are made on the top of the
   RSVP messages as defined in the [9].

   The format of a Path message is as follows:

   <Path Message> ::= <Common Header> [ <INTEGRITY> ]
                      [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
                      [ <MESSAGE_ID> ]
                      <SESSION> <RSVP_HOP>
                      <TIME_VALUES>
                      [ <EXPLICIT_ROUTE> | <TREE_EXPLICIT_ROUTE ]
                      <LABEL_REQUEST>
                      [ <PROTECTION> ]
                      [ <LABEL_SET> ... ]
                      [ <SESSION_ATTRIBUTE> ]
                      [ <NOTIFY_REQUEST> ]
                      [ <ADMIN_STATUS> ]
                      [ <POLICY_DATA> ... ]
                      <sender descriptor>


                                                       [Page 12]



   The format of the sender description for unidirectional LSPs is:

   <sender descriptor> ::=  <SENDER_TEMPLATE> <SENDER_TSPEC>
                        [ <ADSPEC> ]
                        [ <RECORD_ROUTE> | <TREE_RECORD_ROUTE> ]
                        [ <SUGGESTED_LABEL> ]
                        [ <RECOVERY_LABEL> ]

      The format of a Resv message is as follows:

   <Resv Message> ::= <Common Header> [ <INTEGRITY> ]
                      [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
                      [ <MESSAGE_ID> ]
                      <SESSION> <RSVP_HOP>
                      <TIME_VALUES>
                      [ <RESV_CONFIRM> ]  [ <SCOPE> ]
                      [ <NOTIFY_REQUEST> ]
                      [ <ADMIN_STATUS> ]
                      [ <POLICY_DATA> ... ]
                      <STYLE> <flow descriptor list>

   <flow descriptor list> ::= <FF flow descriptor list>
                               | <SE flow descriptor>

   <FF flow descriptor list> ::= <FLOWSPEC> <FILTER_SPEC>
                             <LABEL> 
                             [ <RECORD_ROUTE> | <TREE_RECORD_ROUTE>  ]
                             | <FF flow descriptor list>
                               <FF flow descriptor>

   <FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC> <LABEL>
                            [ <RECORD_ROUTE> | <TREE_RECORD_ROUTE>]

   <SE flow descriptor> ::= <FLOWSPEC> <SE filter spec list>

   <SE filter spec list> ::= <SE filter spec>
                         | <SE filter spec list> <SE filter spec>

   <SE filter spec> ::= <FILTER_SPEC> <LABEL>
                        [ <RECORD_ROUTE> | <TREE_RECORD_ROUTE>  ]                       
                         
8.0 References

   [1] Waitzman, et al, "Distance Vector Multicast Routing Protocol", 
       RFC 1075

   [2] Fenner, et al, "Protocol Independent Multicast - Sparse
       Mode (PIM-SM): Protocol Specification (Revised), Work in 
       Progress.

   [3] Ballardie, et al, "Core Based Trees (CBT version 2)
       Multicast Routing", RFC 2189


                                                       [Page 13]



   [4] Rosen, et al, "Multiprotocol Label Switching Architecture",
       RFC 3031.

   [5] Mannie, et al, "Generalized Multi-Protocol Label Switching 
       (GMPLS) Architecture", Work in Progress.

   [6] Braden et al, "Resource ReSerVation Protocol (RSVP)",
       RFC 2205.

   [7] Awduche, et al, "RSVP-TE: Extensions to RSVP for LSP Tunnels",
       Work in Progress.

   [8] Kompella/Rekhter, "Signaling Unnumbered Links in RSVP-TE",
       Work in Progress.

   [9] Ashwood-Smith, et al, "Generalized MPLS Signaling - RSVP-TE
       Extensions", Work in Progress.

   [10] Katz/Yeung/Kompella, "OSPF Extensions for Traffic 
        Engineering", Work in Progress.

   [11] Kompella, et al, "OSPF Extensions in Support of Generalized 
        MPLS", Work in Progress.

   [12] Li/Smit, "IS-IS Extensions for Traffic Engineering", Work in
        Progress.

   [13] Kompella, et al, "IS-IS Extensions in Support of Generalized
        MPLS", Work in Progress.

9.0 Authors' Addresses

   Dean Cheng
   Polaris Networks Inc.
   6810 Santa Teresa Blvd.
   San Jose, CA 95119
   Phone:  +1 408 284 8061
   Email:  dcheng@polarisnetworks.com
















                                                       [Page 14]