INTERNET DRAFT                                         Seisho Yasukawa
draft-yasukawa-mpls-rsvp-multicast-01.txt                 Masanori Uga
Expires: May 2003                                       Hisashi Kojima
                                                         Koji Sugisono
                                                                   NTT
                                                         Alan Kullberg
                                                      Netplane Systems
                                                           Markus Jork
                                                         Avici Systems
                                                 Dimitri Papadimitriou
                                                               Alcatel


                                                         November 2002



               

Extended RSVP-TE for Multicast LSP Tunnels

<draft-yasukawa-mpls-rsvp-multicast-01.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." 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.

0. Summary for Sub-IP Area

(This section to be removed before publication.)

0.1. Summary

Yasukawa, et. al. [Page 1]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 This document specifies extensions and mechanisms to RSVP-TE in support of MPLS point to multipoint LSPs.

0.2. Where does it fit in the Picture of the Sub-IP Work

This work fits squarely in the MPLS box.

0.3. Why is it Targeted at this WG

This draft is targeted at the MPLS WG, because this draft specifies the extensions to RSVP-TE signalling protocol in support of MPLS point to multipoint LSPs creation/deletion and Leaf initiated Join/Leave signalling.

0.4. Justification

In this draft the protocol extensions will be defined allowing the creation and deletion of multicast trees by other means than pure multicast routing protocols. The reasons for enabling this are: 1. Some network operators don't inject BGP routes into their backbone (e.g. they create a full mesh of LSPs). The result is that SSM can not be deployed, because the intermediate nodes in the network do not know where to send the PIM-SM Join messages to (if the source is in another AS). 2. Some applications of multicast do not require very dynamic trees, e.g. content distribution to proxy servers or subtrees in backbone networks. For these applications it becomes worthwhile to create more optimal distribution trees. Multicast trees constructed by multicast routing protocols are not optimal because: a. These trees are only shortest path if the paths are symmetric. This is a false assumption in the current Internet. b. Shortest-path trees themselves are non-optimal. On the other hand the calculation of an optimal Steiner trees is known to be an NP-complete problem requiring the usage of heuristics. 3. In a next step - similar to unicast traffic engineering [RFC-2702] - an MPLS multicast tree (a point-to-multipoint LSP) can be built which is automatically computed by a suitable entity based on QoS and policy requirements, taking into consideration the network state. In this case an IGP is needed. Both, OSPF [OSPF-TE] and IS-IS [ISIS-TE] can be used for this purpose. The LSA information is flooded throughout an AS, the point-to-multipoint tree is then calculated based on the adequate topology. Yasukawa, et. al. [Page 2]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002

0.5. Related I-d's

- draft-poj-optical-multicast-02.txt (expired) This i-d addresses the specifics of optical point-to-multipoint connection, while focusing on non-packet environments only this i-d is the early precursor of the Tree ERO object and the related mechanisms developed in the present i-d. - draft-ooms-mpls-multicast-te-01.txt (expired) This i-d describes 2 ways of building a multicast traffic-engineered tree: root-initiated tree and leaf-initiated tree. It also proposed defines extensions to MPLS (CR-LDP) signalling for setting up and tearing down traffic engineered multicast trees. - draft-cheng-mpls-rsvp-multicast-er-00.txt (expired) This i-d introduces the RSVP-TE's explicit route capability in support of multicast applications and more generally to point-to multipoint LSPs. The proposed mechanisms were also intended for point-to multipoint applications in non-packet LSP capable networks. First i-d having clarified the processing of the Tree ERO object and initiate corresponding RSVP-TE message processing. - draft-chung-mpls-rsvp-multicasting-00.txt (expired) This i-d addresses extensions to the Resource Reservation Protocol (RSVP) to support MPLS multicast. The concepts developed are in accordance to the traffic engineering (TE) attributes provided in the MPLS-TE specifications. This i-d introduces the concept of Leaf initiated Join/Leave procedures using RSVP-TE. Yasukawa, et. al. [Page 3]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Table of Contents 1. Introduction ................................................... 5 2. Terminology .................................................... 5 3. Architecture ................................................... 7 3.1 Multicast LSP tunnels ...................................... 7 3.2 Multicast LSP topology ..................................... 7 3.3 Calculation of multicast tree route ........................10 3.4 Multicast LSP establishment, teardown, and modification mechanisms .................................................11 3.5 Basic operation of multicast LSP tunnels ...................12 3.6 Multicast session ..........................................14 3.6.1 Multicast session object ..............................14 3.6.2 MULTICAST_LSP_TUNNEL_IPv4 session object ..............14 3.6.3 MULTICAST_LSP_TUNNEL_IPv6 session object ..............15 3.7 Explicit routing ...........................................15 3.7.1 Tree Explicit Route Object (TERO) .....................15 3.7.2 Tree Record Route Object (TRRO) .......................20 3.7.3 Message Size ..........................................24 3.8 Multicast Notify Message ...................................24 4. Sender-initiated multicast LSP establishment ...................24 4.1 Sender-initiated Multicast LSP establishment mechanism .....24 4.2 Processing of TERO and TRRO for sender-initiated multicast LSP establishment ................................25 4.3 Teardown mechanism .........................................27 4.4 Path/Resv error ............................................27 4.5 Message format .............................................27 4.5.1 Path message format ...................................27 4.5.2 Resv message format ...................................28 4.5.3 Other RSVP message formats.............................28 5. Sender-initiated grafting/pruning mechanism ....................28 5.1 Sender-initiated grafting mechanism ........................29 5.2 Graft Error ................................................30 5.3 Sender-initiated pruning mechanism .........................32 6. Leaf-initiated multicast LSP establishment .....................33 6.1 Leaf-initiated joining mechanism ...........................33 6.2 Join Error .................................................34 6.3 Leaf-initiated leaving mechanism ...........................35 6.4 Leave Error ................................................36 6.5 Message formats ............................................37 6.5.1 Join message format ...................................38 6.5.2 JoinErr message format ................................38 6.5.3 Leave message format ..................................39 6.5.4 LeaveErr message format ...............................40 7. Error Handling and Error Codes .................................40 7.1 Error Handling at Branch Node ..............................40 7.2 Error Handling at Non-Branch Node ..........................41 7.3 Error During Resv Processing ...............................41 Yasukawa, et. al. [Page 4]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 7.4 Error Codes and Error Value Sub-Codes ......................42 8. Use of Refresh Reduction .......................................42 9. Application for Traffic Engineering ............................42 9.1 Rerouting Traffic Engineered Multicast Tunnels .............42 9.2 Re-establishment of subtree ................................43 10. Security Considerations........................................43 11. References ....................................................44 12. Author's Addresses ............................................45

1. Introduction

Multicast technology will become increasingly important with the dissemination of new applications such as contents delivery services and video conferences, which require much more bandwidth and stricter QoS than conventional applications. From the service providers' perspective, traffic engineering (TE) functions will be needed to handle the large amount of multicast traffic. This document defines some protocol extensions to the existing RSVP- TE[1] in order to establish a multicast label switched path (LSP). The use of label switching routers (LSRs) with the protocol extensions defined in this document allows service providers to offer unicast and multicast multiprotocol label switching (MPLS) services in the same service network. This protocol assumes a variable LSP topology, e.g., point-to- multipoint topologies. This document describes how to establish and maintain point-to-multipoint LSPs as the most basic multicast topology. It defines two ways of constructing a point-to-multipoint LSP: sender-initiated LSP setup and leaf-initiated LSP setup. Each method has an LSP modification capability in order to adapt to dynamic changes in the LSP tree topology. The establishment of multipoint-to-multipoint LSPs is a subject for future study. This protocol is very flexible and can be used to carry protocols other than IP multicasting, e.g., Ethernet, PPP, and SONET/SDH. No assumption is made about the format of the data to be carried in the signaled LSP.

2. Terminology

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 [5]. The reader is assumed to be familiar with the terminology in [1], Yasukawa, et. al. [Page 5]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 [2], [3] and [4]. Multicast LSP: A label switched path that has more than one egress label switching router sender node: Headend of the multicast LSP. It controls the multicast LSP layout and places traffic onto it by pushing a label. Branch LSR: A label switching router (LSR) that has more than one downstream LSR. A branch LSR receives a single MPLS frame, makes a duplicate of it, and sends each to downstream interfaces. join leaf node: A leaf node trying to join a multicast LSP. leave leaf node: A leaf node trying to leave a multicast LSP that it has joined graft node: An LSR that is already a member of the multicast tree and is in process of signaling a new subtree. prune node: An LSR that is already a member of the multicast tree and is in process of tearing down an existing subtree. Explicit Route Object (ERO): An object specifying the explicit path of the message including the object. Tree Explicit Route Object (TERO): An extended ERO for describing the multicast tree topology. Record Route Object (RRO): An object recording the information of route through which the message including the object has passed. Yasukawa, et. al. [Page 6]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Tree Record Route Object (TRRO): An extended RRO for recording the route along which each merged message has traveled. Subtree: A subtree is a portion of a multicast tree starting at a particular node that is a member of the multicast tree and includes ALL nodes downstream of that node that are also members of the multicast tree.

3. Architecture

3.1 Multicast LSP tunnels

This protocol defines "multicast flow" by a label that is assigned to a set of packets at the ingress node of a point-to-multipoint LSP. Such a point-to-multipoint LSP is referred to as a "multicast LSP tunnel" because the traffic through it is opaque to intermediate nodes along the LSP. To enable the identification and association of such multicast LSP tunnels, new MULTICAST_LSP_TUNNEL session objects are defined. Each session object carries the sender node address of a point-to-multipoint LSP and its tunnel ID. The sender node address is more preferable than destination (leaf) node addresses to identify a multicast LSP tunnel because frequent topological changes may occur and destination node addresses are not stable in this tunnel. And to express the leaf nodes and topology of this multicast LSP tunnel, TREE_EXPLICIT_ROUTE object and TREE_RECORD_ROUTE object are also defined. This protocol uses conventional SENDER_TEMPLATE (or FILTER_SPEC) object to convey sender node address and LSP ID. Therefore, the MULTICAST_LSP_TUNNEL session object together with the SENDER_TEMPLATE object uniquely identify a multicast LSP tunnel. It is very useful to associate sets of LSP tunnels which share the same sender node in a multicast application. This can be useful during rerouting operations or to spread a traffic trunk over multiple multicast paths [1]. In traffic engineering such sets are called multicast traffic engineered tunnels (multicast TE tunnels). As same as unicast TE tunnels, these multicast TE tunnels is uniquely identified by the SESSION objects.

3.2 Multicast LSP topology

The proposed RSVP-TE extensions support point-to-multipoint LSP tunnel establishment, teardown, and modification mechanisms. A point-to-multipoint LSP can handle i) (S,G) multicast traffic, ii) Yasukawa, et. al. [Page 7]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 ({S},G), (*,G) multicast traffic, and iii) ({S},{G}) multicast traffic. (S,G) represents a single sender node with source address S transmitting multicast traffic to a multicast group G. The ({S},G) represents several sender nodes with source addresses {S} transmitting multicast traffic to a multicast group G. The (*,G) represents arbitrary sender nodes transmitting multicast traffic to a multicast group G. The ({S},{G}) represents several sender nodes with source addresses {S} transmitting multicast traffic to multicast groups {G}. Traffic that shares the same multicast distribution topology and is treated in the same forwarding manner is defined as belonging to the same FEC. +----+ | S | +----+ | G | S : Source V SN: Sender Node +---+ L : Leaf node | SN| +---+ (S,G) | | +---+ +---+ | | +---+ +---+ | N | | N | +---+ +---+ || || || || +-++-+ +-++-+ | | | | V V V V +---++---+ +---++---+ | L || L | | L || L | +---++---+ +---++---+ Yasukawa, et. al. [Page 8]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 +----+ +----+ | S1 | | Sn | +----+ +----+ G| |G +--+ +--+ | | S : Source V V SN: Sender Node +---+ L : Leaf node | SN| +---+ (*,G),({S}),G) | | +---+ +---+ | | +---+ +---+ | N | | N | +---+ +---+ || || +-++-+ +-++-+ | | | | V V V V +---++---+ +---++---+ | L || L | | L || L | +---++---+ +---++---+ Yasukawa, et. al. [Page 9]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 +----+ +----+ | S1 | | Sn | +----+ +----+ G1| |Gn +--+ +--+ | | S : Source V V SN: Sender Node +---+ L : Leaf node | SN| +---+ ({S},{G}),(*,*) || || +---+| |+---+ |+---+ +---+| || || +---+ +---+ | N | | N | +---+ +---+ || || || || ++| |++ ++| |++ |++ ++| |++ ++| || || || || VV VV VV VV +---++---+ +---++---+ | L || L | | L || L | +---++---+ +---++---+ Figure 1: Multicast traffic type

3.3 Calculation of multicast tree route

There are two methods of calculating the multicast tree route. It can be calculated by: i) the sender node or the network management system (NMS) and ii) a IP multicast routing protocol such as PIM-SM[8]. The first method is suitable to achieve traffic engineering because we can control multicast LSP topology independent to existing IP routing protocol. This means that we can setup multicast LSP and control its topology within a unicast IP network without using a complicated IP multicast routing protocol. Multicast CSPF [13] calculation at a sender node using a conventional unicast routing with TE extension [14] is one of the example. On the other hand, the second method is suitable to easy implementation. But it is necessary to establish a method for cooperating with multicast routing protocol. And it is not easy to control multicast LSP topology because conventional IP multicast routing protocol such as PIM-SM frequently changes its multicast route. And it is difficult to convey a several multicast traffic that has different multicast group addresses in a single multicast LSP Yasukawa, et. al. [Page 10]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 because it is setup per group address basis. This draft assume the first method for multicast tree calculation and the second method is a topic for further study.

3.4 Multicast LSP establishment, teardown, and modification mechanisms

This multicast MPLS protocol can be applied to various multicast applications because it supports both sender-initiated and leaf- initiated multicast LSP tunnel establishment mechanisms. It is preferable for multicast sender nodes to start traffic distribution only after they have confirmed the establishment of an end-to-end LSP. For this, we can use the sender-initiated multicast LSP tunnel establishment mechanism. This mechanism is also preferable when establishing a QoS-capable multicast LSP tunnel because the single sender node can calculate the optimum multicast LSP tunnel using QoS information. On the other hand, some applications need a leaf-initiated multicast LSP tunnel establishment mechanism. A leaf node that implements IGMP[6,7] protocol in addition to this multicast MPLS protocol can dynamically invoke the multicast LSP tunnel setup mechanism according to the multicast client's content viewing status. If all the clients accommodated at the leaf node stop receiving multicast traffic from this node (e.g., all clients send a IGMP leave message to the leaf node), the leaf node invokes this process and requests to tear down unnecessary multicast LSP tunnels. If a client accommodated at the leaf node starts receiving multicast traffic from this node (e.g., a client who wants to receive this multicast data sends an IGMP Join message to the leaf node), the leaf node invokes this process to graft the necessary multicast LSP tunnel. We must assume the co-existence of both applications in this multicast MPLS network. Therefore, the multicast MPLS protocol supports both sender- and leaf-initiated multicast LSP tunnel establishment mechanisms, and these mechanisms must work in an interoperable manner. Traffic engineering is more important in a multicast network environment than a unicast one. Frequent topological changes may occur in a multicast LSP tunnel because it has many leaf nodes and a more complex transmission topology. We need a more reliable tunnel re-establishment mechanism in a multicast network environment because the nodes nearer the sender node need greater reliability than ones placed at leaf neighbors. For these demands, a partial multicast LSP tunnel modification mechanism (subtree expansion and reduction mechanism) is necessary because total multicast LSP tunnel re-establishment is not efficient in a multicast network. Therefore, Yasukawa, et. al. [Page 11]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 the proposed RSVP-TE extensions implement a partial multicast LSP tunnel modification mechanism. The features supported by the proposed RSVP-TE extensions are summarized below. The sender-initiated multicast LSP tunnel establishment mechanism has i) multicast LSP tunnel establishment and teardown mechanisms and ii) partial multicast LSP (subtree LSP) tunnel establishment, teardown, and modification mechanisms. The leaf-initicated multicast LSP tunnel establishment mechanisms has iii)leaf LSP tunnel establishment, teardown mechanism. The proposed RSVP-TE extensions use an interoperable architecture between the sender- and leaf-initiated multicast LSP tunnel establishment mechanisms, so both mechanisms can modify a multicast LSP tunnel established by either mechanism. +---+ | | +---+ Function 1 | Sender-initiated | M-LSP establishment +---+ || | A | VV +---+ | | ^ +---+ +---+ | | | | +---+ +---+ | Function 3 | B | | C | | Leaf initiated +---+ +---+ | M-LSP Join/Leave Function 2 | || || | Sender-initiated | +-++-+ +-++-+ | M-LSP Graft/Prune | | | | | | v V V V V +---++---+ +---++---+ | D || E | | F || G | +---++---+ +---++---+ ^ ^ ^ ^ | | | | +--+ +--+ +--+ +--+ | | | | | | | | +--+ +--+ +--+ +--+ Figure 2: Function supported by this protocol

3.5 Basic operation of multicast LSP tunnels

This paragraph explains the basic multicast LSP tunnel establishment Yasukawa, et. al. [Page 12]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 mechanism. Figure 3 shows the basic sender-initiated multicast LSP tunnel establishment mechanism. Path Message (SESSION, SENDER_TEMPLATE, LABEL_REQUEST, TERO, *RRO) Resv Message (SESSION, FILTER_SPEC, LABEL, STYLE, TRRO) Path Path Path -----> -----> -----> . Ingress LSR <----- <----- <----- . (Sender) Resv Resv Resv . +---+ +---+ +---+ +---+ | S |------| N |------| N |------| N |..... +---+ +---+ +---+ +---+ ^| ^| Resv||Path Resv||Path || || |V || Path +---+ || -----> | N |..... || <----- Egress LSR +---+ |V Resv (Leaf) . +---+ +---+ . | N |-----| L | . +---+ +---+ . . . Figure 3: Fundamental Multicast LSP establish mechanism To create a multicast LSP tunnel, the sender node creates a Path message with a TERO in addition to a LABEL_REQUEST object, a SESSION object, and a SENDER_TEMPLATE object. The TERO includes multicast tree information to set. The Path message is forwarded towards its destination along a multicast path specified by the TERO. Each intermediate node along the path records the TERO, SESSION object, and SENDER_TEMPLATE object in its path state block. An intermediate branch node copies the Path message to each next hop node specified in the TERO until the destination leaf nodes are reached. When the Path message reaches the destination leaf node, the leaf node responds to a LABEL_REQUEST by including a LABEL object in its response Resv message. Then the Resv message is sent back upstream toward the sender node, following the path state created by the Path message in reverse order. Each node that receives a Resv message containing a LABEL object uses that label for outgoing traffic associated with this tunnel. If the node is a branch node, it waits for all the Resv massages coming from Yasukawa, et. al. [Page 13]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 downstream leaf nodes. After receiving all the Resv messages, it allocates a new label and places it in the corresponding LABEL object of the Resv message, which it sends upstream to the previous hop (PHOP). Finally, the merged Resv message propagates upstream to the sender node. Thus, a multicast LSP is established. This label assignment is performed in downstream on-demand ordered control mode.

3.6 Multicast session

3.6.1 Multicast session object

The new SESSION object is defined for multicasting. To identify a multicast tunnel, MULTICAST_LSP_TUNNEL_IPv4 and MULTICAST_LSP_TUNNEL_IPv6 are added to the SESSION object as new C- Types. They each have a tunnel sender address and Tunnel ID.

3.6.2 MULTICAST_ LSP_TUNNEL_IPv4 session objects

Class = SESSION, C-Type = MULTICAST_ LSP_TUNNEL_IPv4 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 tunnel sender address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MUST be zero | Tunnel ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv4 tunnel sender address IPv4 address of the tunnel sender Tunnel ID A 16-bit identifier used in the SESSION that remains constant over the life of the tunnel. Yasukawa, et. al. [Page 14]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002

3.6.3 MULTICAST_LSP_TUNNEL_IPv6 session objects

Class = SESSION, C-Type = MULTICAST_LSP_TUNNEL_ IPv6 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | IPv6 tunnel sender address | + + | (16 bytes) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MUST be zero | Tunnel ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv6 tunnel sender address IPv6 address of the tunnel sender Tunnel ID A 16-bit identifier used in the SESSION that remains constant over the life of the tunnel.

3.7 Explicit routing

3.7.1 Tree Explicit Route Object (TERO)

3.7.1.1 Overview
Explicit routing is the main function of RSVP-TE. RSVP-TE defines an ERO to describe the explicit route of the tunnel. An ERO is defined as a list of subobjects. Each subobject represents information about nodes composing the data path. For multicasting, the path topology is a tree. So we extend ERO to express a multicast tree and define a new Tree Explicit Route Object (TERO). TERO is included in a message concerning path establishment like the Path message. It specifies nodes of a tree in which the message is traversed. In particular, TERO of a Path message initiated by the sender node contains the whole topology of the multicast tree. Before a node sends a TERO in an outgoing PATH message, it MUST split the TERO such that only hops describing the subtree towards which the PATH is sent are included in the TERO. The result is that downstream Yasukawa, et. al. [Page 15]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 nodes do not have a complete picture of the multicast tree. Instead, each node receives a TERO containing a subtree with the receiving node as the root of that subtree. By not sending the entire TERO downstream, downstream nodes will use less memory for storing the state information for the LSP. TERO is also a list of subobjects. Each subobject shows information about a node on the multicast tree. To describe the tree topology, each subobject should be sorted to be able to show link connectivity. For this purpose, the subobjects are arranged in depth-first-order and have a number of hops from the sender node. For the multicast tree shown in figure 4 below, the TERO is encoded as follows: T={A(0),B(1),C(2),D(3),E(3),F(2),G(2),H(3),I(1),J(1),K(2),L(2)} Distance in parentheses. A | +----+----+ | | | B I J | | +---+---+ +-+-+ | | | | | C F G K L | | +-+-+ | | | | D E H Figure 4: TERO corresponding to a multicast tree
3.7.1.2 Data Terminating Nodes
In some cases, a multicast tree may be calculated that contains a branch node that must also behave as a leaf node with respect to the dataplane (i.e., in the case of locally attached client nodes). Allowing for a node to be both a branch and leaf at the same time may enable calculation of otherwise impossible and/or more optimal trees. In order for a node in the tree to know to terminate the data locally as well as forward the data to other downstream nodes, an explicit designator is placed in the TERO hop object. When set, a node SHOULD terminate data locally and also send it downstream. Yasukawa, et. al. [Page 16]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002
3.7.1.3 Strict and loose explicit routes
Two kinds of explicit route are prepared. In a strict explicit route, the nodes composing the route are specified strictly. A loose explicit route allows an external routing algorithm to decide the route between specified nodes. Unicast routing algorithm such as OSPF[15] and IS-IS[16] are examples of such algorithms. These routes are selected at each link of the tree. The protocol allows a mixture of strict and loose explicit routes in the same multicast tree, so TERO should show where the strict and loose explicit routes are. The information should relate to nodes described by subobjects. As the information satisfying this condition, the input link status is used to specify strict and loose explicit routes in point-to-multipoint trees. In the case of a multicast point-to-multipoint tunnel, the attribute of an input link relates to each node uniquely. So as the information satisfying this condition, the input link status is used to specify strict and loose explicit routes in a point-to-multipoint tunnel. The L bit in a subobject of TERO shows the input link status of the node. If the L bit shows loose, the input link belongs to a loose explicit route. Otherwise, it belongs to a strict explicit route. This protocol allows the insertion of additional subobjects. In a loose explicit route, the edge nodes of the route indicated as a loose explicit route may know the topology of the network around the loose explicit route. The edge node may calculate the route and specify the route with TEROs. In this case, the edge node inserts the calculated route into the TERO of messages related to the loose explicit route. Consider the number of hops from the sender node to a node. It is counted based on the TERO. If intermediate nodes between a leaf node and the sender node belong to a strict explicit route, they are specified in TERO and the leaf node can count the number of hops. When loose explicit routes are part of a multicast tree, the sender node cannot count the number of hops. Because nodes on a loose explicit route are not specified, sender nodes cannot count the number of hops in the loose explicit route. So they cannot calculate the relevant number of hops of the tree nodes. Therefore, the protocol defines the number of hops between the edges of an loose explicit route as 1. This definition satisfies the demand for TERO; using this definition, TERO can show the tree topology and node connectivity. The distance field in TERO hops is always relative to the sender node. This is true in ALL messages in which a TERO can appear. Yasukawa, et. al. [Page 17]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002
3.7.1.4 Object format
Class = TREE_EXPLICIT_ROUTE, 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) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Subobject format Type = 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type (1) | Length |T| Distance | Sequence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address (4 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type = UNNUMBERED_INTERFACE 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 (2) | Length |T| Distance | Sequence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Yasukawa, et. al. [Page 18]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Type = 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type (3) | Length |T| Distance | Sequence | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (16 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L The L bit is an attribute of the subobject. The L bit is set if the route of a path between the node specified by this subobject and its upstream node is not specified (Loose explicit route). If the bit is not set, the route of a path is specified explicitly (Strict explicit route). Type 0x01 IPv4 address 0x02 Unnumbered Interface ID 0x03 IPv6 address Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. IPv4/6 address An IPv4/6 address of node corresponding to the subobject. In the case that the node has several IP addresses, the address of input interface should be specified. Router ID The Router ID of the node corresponding to the subobject. Unnumbered Interface ID The unnumbered interface ID [11]. Yasukawa, et. al. [Page 19]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Distance The distance from the sender node to the node specified by the subobject. The value of distance between neighboring nodes specified in TERO is 1. T The T bit (terminating node) is set to 1 to indicate that the node in this hop is a data terminating node and has locally attached clients (receivers of the data). This bit MUST be set for any of the leaf nodes listed in the TERO. Sequence The sequence number associated with this TERO hop.

3.7.2 Tree Record Route Object (TRRO)

Record Route Object (RRO) is a list of subobjects describing a node. Each subobject is sorted to show the order in which the message went through the nodes. In multicast communication, some messages SHOULD be merged into a new message to integrate the information that each message conveys. In this case, RRO shows all the nodes through which each message traveled. So RRO should be able to represent the tree structure in multicasting. We call the extended RRO a TRRO. When messages are merged at a branch node, their TRROs also are merged. Each TRRO shows the topology information of the downstream subtree. The merged TRRO is a series of downstream TRROs. The subobject specifying the branch node is inserted at the top of the series. So the merged TRRO shows the subtree whose root is the branch node. In the case of a Resv message, when the message arrives at the sender node of the multicast tree, TRRO shows the current topology of the multicast tree. To represent the tree topology, the subobjects of TRRO are sorted in depth-first-order and they have information about the number of hops from the sender node as the case of TERO. The topology information may be sent to all nodes composing the multicast tree by refreshing the Path message. Yasukawa, et. al. [Page 20]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 | +----------------------|----------------------+ | Multicast | | | tree T N | | | | | +--------------+--------------+ | | | | | | | +-----------+ +-----------+ +-----------+ | | | Subtree 1 | | Subtree 2 | | Subtree n | | | +-----------+ +-----------+ +-----------+ | +---------------------------------------------+ T = {R(0),T1,T2,...,Tn} Ti = {TRRO describing subtree i} Figure 5 Merged TRRO
3.7.2.1 Object format
Class = TREE_RECORD_ROUTE, 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) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.7.2.2 Subobject format
Type = 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 (1) | Length |T| Distance | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address (4 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Yasukawa, et. al. [Page 21]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Type = UNNUMBERED_INTERFACE 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 (2) | Length |T| Distance | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type = 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 (3) | Length |T| Distance | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (16 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 0x01 IPv4 address 0x02 Unnumbered Interface ID 0x03 IPv6 address Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. T The T bit (terminating node) is set to 1 to indicate that the node in this hop is a data terminating node and has locally attached clients (receivers of the data). This bit MUST be set for any of the leaf nodes listed in the TRRO. Distance Yasukawa, et. al. [Page 22]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 The distance from sender node to the node specified by the subobject. The value of distance between neighboring nodes specified in TRRO is 1. Flags 0x01 Local protection available Indicates that the link downstream of this node is protected via a local repair mechanism. This flag can only be set if the Local protection flag was set in the SESSION_ATTRIBUTE object of the corresponding Path message. 0x02 Local protection in use Indicates that a local repair mechanism is in use to maintain this tunnel (usually in the face of an outage of the link it was previously routed over). 0x04 Bandwidth protection The PLR will set this when the protected LSP has a backup path which provides the desired bandwidth, which is that in the FAST_REROUTE object or the bandwidth of the protected LSP, if no FAST_REROUTE object was included. The PLR may set this whenever the desired bandwidth is guaranteed; the PLR MUST set this flag when the desired bandwidth is guaranteed and the "bandwidth protection desired" flag was set in the SESSION_ATTRIBUTE object. 0x08 Node protection When set, this indicates that the PLR has a backup path providing protection against link and node failure on the corresponding path section. In case the PLR could only setup a link-protection backup path, the "Local protection available" bit will be set but the "Node protection" bit will be cleared. IPv4/6 address A 32/128-bit unicast, host address. Router ID The Router ID of the node corresponding to the subobject. Yasukawa, et. al. [Page 23]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Unnumbered Interface ID The unnumbered interface ID [11].

3.7.3 Message Size

The introduction of the TERO and TRRO objects has increased the likelihood that a message carrying either of these objects may exceed the link MTU. If a message exceeds the link MTU, then IP fragmentation and reassembly MUST be used in sending the message to it's destination.

3.8 Multicast Notify Message

The Multicast Notify message is used to convey information to non- adjacent nodes about multicast tree operations. Other sections of this document specify when it is appropriate to send the Multicast Notify message. The contents of the Multicast Notify message is as follows: <MulticastNotify Message>::=<Common Header> <SESSION> <SENDER_TEMPLATE> <MULTICAST_NOTIFY> The MULTICAST_NOTIFY object has 3 different C-Types as follows: 1 - MulticastErr 2 - JoinErr 3 - LeaveErr The details of the contents of the MULTICAST_NOTIFY object for each of these C-Types are described in other sections of this document.

4. Sender-initiated multicast LSP establishment

4.1 Sender-initiated Multicast LSP establishment mechanism

The sender node initiates a Path message with a TERO including a multicast tree topology to be established. This Path message is forwarded along the path described in the TERO and duplicated by each branch node. Each node receiving the Path message records the multicast tree state described in the SESSION object and the SENDER_TEMPLATE object. A leaf node which receives a Path message responds to it by sending a Resv message including a LABEL and a TRRO object. A Resv message is sent back upstream towards the sender node on a hop-by-hop basis according to the recorded multicast tree state Yasukawa, et. al. [Page 24]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 in each intermediate node. The Resv messages from all downstream nodes MUST be merged at the branch node. When the sender node receives the Resv messages, the establishment of the multicast LSP is completed. Figure 6 shows the sequence of multicast LSP establishment events. Node B, which is the branch node for the nodes C, D, and E, merges the Resv messages. After this merging, the node B initiates a Resv message and sends it upstream. +---node--** | (C) +---------node--** | (D) Content | (leaf) Servers--sender--node----------------node---------------node--client (A) (B) (E) (F) | | | | | | | | Path(TERO) | | | | | |----->| | | | | | | | Path(TERO) | | | | | |----->| | | | | | | Path(TERO) | | | | |------------>| | | | | | Path(TERO) | | | | |------------------->| | | | | | | | Path(TERO) | | | | | | |----------------->| | | | | | | Resv(TRRO) | | | | Resv(TRRO) | |<-----------------| | | |<-----| | | | | | | Resv(TRRO) | | | | |<------------| | | | | | |Resv(TRRO) | | | | |<-------------------| | | | Resv(TRRO) | | | | | |<-----| | | | | | | | | | | | | Figure 6 Sequence of sender-initiated multicast LSP establishment events

4.2 Processing of TERO and TRRO for sender-initiated multicast LSP

establishment

A node that receives a Path message refers to the SESSION object and SENDER_TEMPLATE. The node determines whether the Path message is for an existing LSP or a new LSP. Yasukawa, et. al. [Page 25]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 If the Path message is for a new LSP, then the following procedure applies. The node verifies that the first subobject (hop) in the TERO is an address or interface belonging to this node. If not, then an appropriate error message MUST be sent upstream. The specific error message to send is described elsewhere in this document. The error to return is "Bad EXPLICIT_ROUTE object", as specified in RFC 3209 [1]. If the TERO contains only one hop, then this node is a leaf node and sends a Resv message upstream. Otherwise, the TERO is processed to locate all hops with a distance that is 1 greater than the distance value contained in the first TERO hop. For each such hop, a unicast Path message MUST be sent to the node specified by the TERO hop. If the Path message is for an existing LSP, then the following procedure applies. If the first subobject in the TERO contains the same sequence number as in the previously received Path message, then the entire TERO is treated as if no change has occurred and processing ends. Otherwise, the TERO is processed as follows. Locate each hop in the TERO with a distance that is 1 greater than the distance value contained in the first TERO hop and add it to a next hop list. If there are any downstream nodes for which this node holds path state that do NOT appear in the next hop list, then a PathTear message MUST be sent immediately to that node. Then, for each hop in the next hop list, if there is no path state for this next hop, then a unicast Path message MUST be sent to the node specified by the TERO hop. Otherwise (path state is found), if the new sequence number is different than the sequence number previously recorded in the path state, then a unicast Path trigger message MUST be sent to the node specified by the TERO hop. Note that the TERO in each outgoing Path message MUST contain just the subtree with the next hop node as the root node of that subtree. Each node that receives a Resv message containing a LABEL object uses that label for outgoing traffic associated with this LSP tunnel. If the node is not the sender node, it allocates a new label and places that label in the corresponding LABEL object of the Resv message, which it sends upstream to the PHOP. A branch node that sends multiple Path messages to downstream nodes MUST forward a Resv message upstream ONLY after it receives a reply, whether positive (Resv) or negative (PathErr), from ALL downstream nodes to whom it sent a Path message. In order to handle non-reply from downstream nodes, a node MAY start a response timer upon sending outgoing PATH messages. If the response timer expires, then each outgoing PATH message for which no reply was received is treated the same as if a PathErr message had been received. See section "Error Handling and Error Codes" for a description of Yasukawa, et. al. [Page 26]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 how to handle received PathErr messages. When Resv messages are merged, a new TRRO is made using TRROs included in the received Resv messages. This new TRRO expresses the multicast subtree. The branch node that merges Resv messages is the root node of multicast subtree. The TRRO of the Resv messages is needed to detect loops on the multicast tree. The node SHOULD record information of TRRO.

4.3 Teardown mechanism

A multicast LSP tunnel is explicitly torn down by a PathTear message. The PathTear message must be routed exactly like the corresponding Path message. The PathTear message is copied by each branch node and is forwarded downstream to delete the corresponding path state. PathTear messages are initiated not only by the sender node but also by the branch node that receives a Path message with a TERO from which downstream nodes have been removed. The process of pruning nodes from an existing multicast tree is described in section 5.3.

4.4 Path/Resv error

During the multicast LSP establishment described in section 4.1 and 4.2, various errors may occur. The main reasons are bandwidth allocation failures and unknown next hops specified by TERO. If a node does not support a new object or new C-type defined by this protocol, it sends error messages indicating "unknown object class" error or an "Unknown object C-Type". A node that initiates a ResvErr message SHOULD send ResvErr messages to all leaf nodes that are affected by the error.

4.5 Message format

4.5.1 Path message format

TERO is added to the Path message. Note that a new C-Type is added to SESSION object. Yasukawa, et. al. [Page 27]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 <Path Message> ::= <Common Header> [ <INTEGRITY> ] <SESSION> <RSVP_HOP> <TIME_VALUES> <TREE_EXPLICIT_ROUTE> <LABEL_REQUEST> [ <SESSION_ATTRIBUTE> ] [ <POLICY_DATA> ... ] <sender descriptor> <sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC> [ <ADSPEC> ] [ <RECORD_ROUTE> ]

4.5.2 Resv message format

TRRO is added to the Resv message. Note that a new C-Type is added to SESSION object. <Resv Message> ::= <Common Header> [ <INTEGRITY> ] <SESSION><RSVP_HOP> <TIME_VALUES> [ <RESV_CONFIRM> ] [ <SCOPE> ] [ <POLICY_DATA> ... ] <STYLE> <flow descriptor list> <flow descriptor list> ::= <FF flow descriptor list> | <SE flow descriptor> <FF flow descriptor list> ::= <FLOWSPEC> <FILTER_SPEC> <LABEL> [ <TREE_RECORD_ROUTE> ] | <FF flow descriptor list> <FF flow descriptor> <FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC> <LABEL>[ <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> [ <TREE_RECORD_ROUTE> ]

4.5.3 Other RSVP message formats

With the exception of a new C-Type for the Session object, there is no change in the format of PathTear, PathErr, ResvErr and ResvConf. Yasukawa, et. al. [Page 28]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002

5. Sender-initiated grafting/pruning mechanism

This section describes maintenance of an existing multicast tree. All setup and teardown of a multicast tree or subtree is controlled by the sender node. Changes to be made are signaled to downstream nodes by making changes in the outgoing TERO object. To add (graft) a subtree to a multicast tree, new hops are added to the TERO. To remove (prune) a subtree from an existing multicast tree, hops are removed from the TERO. The basis for choosing the mechanism for determining that a change to the multicast tree is requested is that the TERO object can grow quite large as the number of levels and number of branches at each level increases. For instance, using all IPv4 hops, The TERO object for a tree with 5 levels and 3 branches at each node is about 2900 octets. With 5 levels and 5 branches per node, the TERO grows to about 31000 octets. If for each refresh Path message the entire TERO were compared for changes, the amount of time spent processing the Path message could be quite long. With this in mind, the sequence field is included in each TERO hop subobject. When a tree topology change is required, the sender node changes the outgoing TERO and puts a new sequence number in each TERO hop along the series of hops towards the graft or prune node. This enables each downstream node to quickly determine whether the entire TERO needs to be checked for specific changes.

5.1 Sender-initiated grafting mechanism

The grafting mechanism supports grafting of a partial multicast tree (subtree) onto an established multicast tree. We define the node that performs subtree establishment as a graft node. The sender node initiates grafting by sending an updated TERO in the outgoing Path message towards the graft node. Each TERO hop object along the path towards the graft node MUST have it's sequence number set to a value that is 1 greater than the value previously sent in the first hop object in the TERO. The processing of the TERO object at each node is as described in section "Processing of TERO and TRRO for sender-initiated multicast LSP establishment". For example, refer to figure 4. Assume all nodes in the figure are members of the multicast tree except D & E, and that the current sequence number in all TERO hops is 23. Now, in order to graft nodes D & E into the tree, the following TERO would be sent by node A to node B: Yasukawa, et. al. [Page 29]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 {B(1,24),C(2,24),D(3,24),E(3,24),F(2,23),G(2,23),H(3,23)} where N(d,s) means Node = N distance = d sequence = s Figure 7 shows the message sequence of the proposed grafting process. +--node--client | (C) +-----node-client +----------node--client | (D) | (F) Content | | (Leaf) Servers--Sender--node-------------node---------------node--client (A) (B) (E) (G) | | | | | | | | | | | | | | | | |Path(TERO)| | | | | | |----->| | | | | | | | | Path(TERO) | | | | | |---------------->| | | | | | | | | Path(TERO) | | | | | | |----------------->| | | | | | | Path(TERO) | | | | | | |---------->| | | | | | | | Resv(TRRO) | | | | | | |<-----------------| | | | | | | Resv(TRRO) | | | | Resv(TRRO) |<----------| | | | |<----------------| | | | |Resv(TRRO)| | | | | | |<-----| | | | | | | | | | | | | | | Original TERO = {A(1),B(1),C(1),D(1)} Modified TERO = {A(2),B(2),C(1),D(1),E(2),F(2),G(2)} Sequence number in parentheses. Figure 7: Sequence of graft process

5.2 Graft Error

Figure 8 shows the error message sequence of the grafting process. In this example, part of the expanded tree tunnel cannot be established for some reason, such as a resource error or label assignment error. Each node that cannot establish an LSP MUST send a PathErr message Yasukawa, et. al. [Page 30]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 that includes the error code to the graft node. See section "Error Handling and Error Codes" for a description of how to handle received PathErr messages. +--node--client +----node--client | (C) | (H) +-----node-client +-----------node--client | (D) | (G) Content | | (Leaf) Servers--Sender--node------------node-----------------node--client (A) (B) (E) (F) | | | | | | | | | |Path(TERO)| | | | | | | |----->| | | | | | | | | |Path(TERO) | | | | | | |---------------->| | | | | | | | | |Path(TERO) | | | | | | | |------------------->| | | | | | |Path(TERO) | | | | | | | |------------>| | | | | | | |Path(TERO) | | | | | | | |----->| | | | | | | | | Resv(TRRO)| | | | | | | |<-------------------| | | | | | | PathErr | | | | | | | |<------------| | | | | | | | PathErr | | | | | Resv(TRRO) |<-----| | | | Resv(TRRO)|<----------------| | | | | |<-----| | | | | | | | | | MulticastErr | | | | | |<-----------------------| | | | | | | MulticastErr | | | | | |<-----------------------| | | | | | | | | | | | | | Original TERO = {A(1),B(1),C(1),D(1)} Modified TERO = {A(2),B(2),C(1),D(1),E(2),F(2),G(2),H(2)} Sequence number in parentheses. Figure 8: Sequence of graft error process A node supporting this multicast mechanism MUST support the graft mechanism described in this section. When a graft node that is requested to perform a grafting process detects some error in this message, it SHOULD send a MulticastErr message that includes the error code to the sender node. The following are Yasukawa, et. al. [Page 31]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 examples of errors: - No route available toward destination (from RFC 3209 [1]) a portion of or the whole subtree setup failed because no route was available

5.3 Sender-initiated pruning mechanism

The pruning mechanism supports pruning of unnecessary multicast subtree tunnels from an established multicast tree tunnel. It allows an intermediate node to prune unnecessary multicast subtree tunnels. We define the node that performs the pruning as a prune node. The sender nodes initiates pruning by sending an updated TERO in the outgoing Path message towards the prune node. Each TERO hop object along the path towards the prune node MUST have it's sequence number set to a value that is 1 greater than the value previously sent in the first hop object in the TERO. The processing of the TERO object at each node is as described in section "Processing of TERO and TRRO for sender-initiated multicast LSP establishment". For example, refer to figure 4. Assume all nodes in the figure are members of the multicast tree, and that the current sequence number in all TERO hops is 23. Now, in order to prune node D from the tree, the following TERO would be sent by node A to node B: {B(1,24),C(2,24),E(3,23),F(2,23),G(2,23),H(3,23)} where N(d,s) means Node = N distance = d sequence = s Note that node D does not appear in the TERO. Once node C receives the TERO, node C sends a PathTear message to node D since path state is held by node C for node D. Figure 9 shows the message sequence of the pruning process. Yasukawa, et. al. [Page 32]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 +---node--client +----node--client | (C) | (H) +--------node-client +-----------node--client | (D) | (G) Content | | (Leaf) Servers--Sender--node----------------node----------------node--client (A) (B) (E) (F) |Path(TERO) | | | | | | | |----->| | | | | | | | | |Path Tear | | | | | | | |------------------->| | | | | |Resv(TRRO) | | | | | | | |<-----| | | | | | | | | | | | |Path Tear | | | | | | | |------------------->| | | | | | |Path Tear | | | | | | | |------------>| | | | | | | |Path Tear | | | | | | | |----->| | | | Original TERO = {A(1),B(1),C(1),D(1),E(1),F(1),G(1),H(1)} Modified TERO = {A(2),B(2),C(1),D(1)} Sequence number in parentheses. Figure 9: Sequence of prune process

6. Leaf-initiated multicast LSP establishment

6.1 Leaf-initiated joining mechanism

A leaf node wishing to join a multicast tree sends a Join message corresponding to the tree. Here, we call the node a join leaf node. A Join message is a trigger for establishing a QoS path requested by a join leaf node. The Join message is addressed to the sender node. The Router Alert option MUST be disabled. Therefore, the Join message is sent as a hop-by-hop routed IP datagram until reaching the sender node. A Join message has no specifications about the QoS parameters of the expanded path, i.e., there is no SenderTSpec object in the Join message. The sender node knows the QoS parameters because it has already included them in the Path message for setting up the tree. Therefore, the join leaf node inherits the same QoS parameters as every other node in the tree. The process of expanded path establishment is as follows. The leaf Yasukawa, et. al. [Page 33]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 node wishing to join a multicast tree sends a Join message to the sender node. After the sender node receives the message, it checks that it is in fact the sender node for the specified tunnel. If not, it sends a JoinErr message to the join leaf node. Otherwise, the sender node calculates a path to reach the leaf node. If no such path can be calculated, a JoinErr message is sent to the leaf node. Otherwise, the sender node sends out an updated TERO in the outgoing Path message towards the joining leaf node. Each TERO hop object along the path towards the leaf node MUST have it's sequence number set to a value that is 1 greater than the value previously sent in the first hop object in the TERO. The processing of the TERO object at each node is as described in section "Processing of TERO and TRRO for sender-initiated multicast LSP establishment". : : +---...... Content | (leaf) Servers--Sender--node----------------node-----------------node--client (A) (E) (F) (G) | | Join | | | |<-----------------------------------------------| | | Path(TERO) | | | |----->| | | | | | Path(TERO) | | | | |------------------->| Path(TERO) | | | | |------------------->| | | | | Resv(TRRO) | | | | Resv(TRRO) |<-------------------| | | |<-------------------| | | | Resv(TRRO) | | | |<-----| | | | | | | | | Original TERO = {A(1),E(1), ... ,F(1)} Modified TERO = {A(2),E(2), ... ,F(2),G(2)} Sequence number in parentheses. Figure 10: Sequence of join process

6.2 Join Error

During the Join process described in the previous section, various errors may occur. In the Join process, the join leaf node is notified of the errors and analyzes them. For this purpose, the JoinErr message is defined, which is sent by the sender node to the join leaf Yasukawa, et. al. [Page 34]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 node. It is sent when the graft node receives a PathErr message or detects an internal error. The JoinErr message is sent addressed to the leaf node with the Router Alert option disabled. The following are examples of errors: - Node is not sender node of multicast tree The receiving node has is the sender node for the specified multicast tree - No route available toward destination (from RFC 3209 [1]) The subtree setup failed because no route was available : : +---...... Content | (leaf) Servers--Sender--node----------------node------------------node--client (A) (E) (F) (G) | | Join | | | |<-----------------------------------------------| | | Path(TERO) | | | |----->| | | | | PathErr | | | |<-----| | | | | | JoinErr | | | |----------------------------------------------->| | | | | | | Original TERO = {A(1),E(1), ... ,F(1)} Modified TERO = {A(2),E(2), ... ,F(2),G(2)} Sequence number in parentheses. Figure 11: Sequence of JoinErr process

6.3 Leaf-initiated leaving mechanism

A leaf node wishing to leave a multicast tree sends a Leave message corresponding to the tree. Here, we call the node a leave leaf node. A Leave message is a trigger for tearing down a portion of a multicast tree. The Leave message is addressed to the sender node. The Router Alert option MUST be disabled. Therefore, the Leave message is sent as a hop-by-hop routed IP datagram until reaching the sender node. The process of leaving is as follows. The leaf node wishing to leave a multicast tree sends a Leave message to the sender node. After the sender node receives the message, it checks that it is in fact the sender node for the specified tunnel. If not, it sends a LeaveErr Yasukawa, et. al. [Page 35]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 message to the leave leaf node. Otherwise, the sender node removes the leave leaf node from the TERO. If the leave leaf node is not in the current TERO, a LeaveErr message is sent to the leaf node. Otherwise, the sender node sends out an updated TERO in the outgoing Path message towards the leave leaf node. Each TERO hop object along the path towards the leaf node MUST have it's sequence number set to a value that is 1 greater than the value previously sent in the first hop object in the TERO. The processing of the TERO object at each node is as described in section "Processing of TERO and TRRO for sender-initiated multicast LSP establishment". : : +---...... Content | (leaf) Servers--Sender--node----------------node------------------node--client (A) (E) (F) (G) | | Leave | | | |<-----------------------------------------------| | | Path(TERO) | | | |----->| | | | | | Path(TERO) | | | | |------------------->| PathTear | | | | |------------------->| | | | Resv(TRRO) | | | | |<-------------------| | | | Resv(TRRO) | | | |<-----| | | | | | | | | Original TERO = {A(1),E(1), ... ,F(1),G(1)} Modified TERO = {A(2),E(2), ... ,F(2)} Sequence number in parentheses. Figure 12: Sequence of leave process

6.4 Leave Error

During the leave process described in the previous section, various errors may occur. In the leave process, the leave leaf node is notified of the errors and analyzes them. For this purpose, the LeaveErr message is defined, which is sent by the sender node to the leave leaf node. It is sent when the sender node receives an error message or detects an internal error. The LeaveErr message is sent addressed to the leaf node with the Router Alert option disabled. The following are examples of errors: Yasukawa, et. al. [Page 36]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 - Node is not sender node of multicast tree The receiving node is not the sender node for the specified multicast tree - Leaf node not found in TERO The sender node could not locate the leaf node in the TERO : : +---...... Content | (leaf) Servers--Sender--node----------------node------------------node--client (A) (E) (F) (G) | | Leave | | | |<-----------------------------------------------| | | | LeaveErr | | | |----------------------------------------------->| | | | | | | Original TERO = {A(1),E(1), ... ,F(1)} Note that G is not a member of the tree. Sequence number in parentheses. Figure 13: Sequence of LeaveErr process

6.5 Message formats

The following sections describe the formats for messages used during leaf-initiated join and leave operation. A new object, LEAF_NODE_ID, is introduced to tell upstream nodes the identity of the requesting leaf node. The format of the LEAF_NODE_ID object is as follows: Class = LEAF_NODE_ID 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num TBD | C-Type (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Yasukawa, et. al. [Page 37]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num TBD | C-Type (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (16 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (continued) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. Class-Num The Class Number for the LEAF_NODE_ID object. TBD. C-Type 0x01 IPv4 address 0x02 IPv6 address IPv4/IPv6 Address An IPv4 or IPv6 address identifying the leaf node requesting the Join or Leave message.

6.5.1 Join message format

<Join Message>::=<Common Header> <SESSION> <LEAF_NODE_ID> <sender descriptor> <sender descriptor>::=(see earlier definition)

6.5.2 JoinErr message format

Yasukawa, et. al. [Page 38]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 The JoinErr message utilizes the MulticastNotify message with a MULTICAST_NOTIFY object 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num TBD | C-Type (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ErrorSpec Object | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. Class-Num The Class Number for the MULTICAST_NOTIFY object. TBD. C-Type 2 = JoinErr ErrorSpec Object The ErrorSpec object either copied from the received PathErr message or locally generated.

6.5.3 Leave message format

<Leave Message>::=<Common Header> <SESSION> <LEAF_NODE_ID> <sender descriptor> <sender descriptor>::=(see earlier definition) Yasukawa, et. al. [Page 39]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002

6.5.4 LeaveErr message format

The LeaveErr message utilizes the MulticastNotify message with a MULTICAST_NOTIFY object 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num TBD | C-Type (3) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ErrorSpec Object | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. Class-Num The Class Number for the MULTICAST_NOTIFY object. TBD. C-Type 3 = LeaveErr ErrorSpec Object The ErrorSpec object either copied from the received PathErr message or locally generated.

7. Error Handling and Error Codes

This section describes error handling and the values to use for newly introduced errors. The handling of received PathErr and Resv messages at a branch node and at a non-branch node is described in more detail. Note that the following descriptions assume that ALL downstream nodes have responded, or that the response timer has expired.

7.1 Error Handling at Branch Node

If no part of the subtree setup succeeded, (i.e., no Resv messages were received), then a single PathErr message with error "Subtree setup completely failed" MUST be sent to the PHOP node. Yasukawa, et. al. [Page 40]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Otherwise (i.e., at least one Resv message was received), a Resv message MUST be sent to the PHOP node. The TRRO object is merged from all the received TRRO objects, after which the current node adds itself to the TRRO. Then, for each received PathErr message, a MulticastErr message containing the ErrorSpec object copied from the PathErr message MUST be sent to the sender node with the Router Alert option disabled. The MulticastErr message utilizes the MulticastNotify message with a MULTICAST_NOTIFY object 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num TBD | C-Type (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ErrorSpec Object | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. Class-Num The Class Number for the MULTICAST_NOTIFY object. TBD. C-Type 1 = MulticastErr ErrorSpec Object The ErrorSpec object either copied from the received PathErr message or locally generated.

7.2 Error Handling at Non-Branch Node

If a PathErr message is received, it MUST be sent to the PHOP without altering the ErrorSpec object. Otherwise, a Resv was received and a Resv MUST be sent to the PHOP node. The TRRO object is generated by adding the current node to the TRRO from the received Resv.

7.3 Error During Resv Processing

A node detecting an error during Resv processing (e.g., traffic control failure) MUST treat this as if a PathErr message had been Yasukawa, et. al. [Page 41]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 received from all affected downstream nodes. Then, the processing follows the procedures in other subsections of this section. A node receiving a Resv message with the style object specifying a different style than that requested in the Path message MUST treat this as an error and proceed as above in this section.

7.4 Error Codes and Error Value Sub-Codes

The following list extends the basic list of Error Codes and Values that are defined in [RFC2205]. Error Code Meaning TBD Multicast Problem This Error Code has the following globally-defined Error Value sub-codes: 1 Node is not sender node of multicast tree 2 Leaf node not found in TERO 3 Subtree setup completely failed

8. Use of Refresh Reduction

The multicast extensions in this document introduce several new messages. These messages are paramount to the successful signaling and maintenance of multicast trees. These messages are sometimes transmitted to non-adjacent nodes and are not refreshed in the manner that Path and Resv messages are. If one of these messages is dropped in transit, it will then never reach the intended destination node. It is therefore important to ensure that these messages are successfully received by the intended destination node. In order to achieve this goal, timers with retransmission should be used. The refresh reduction extension [12] to RSVP already defines such a mechanism. Therefore, it is RECOMMENDED that implementations of this multicast extension also implement and enable refresh reduction with message identifiers and ack_desired.

9. Application for Traffic Engineering

9.1 Rerouting Traffic Engineered Multicast Tunnels

Yasukawa, et. al. [Page 42]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Traffic Engineering supports rerouting of an established TE tunnel. The route is decided according to the administrative policy. The detection of a more optimal path and network resource failure are examples of situations where path rerouting is needed. While TE tunnel rerouting is in progress, an important requirement is avoiding traffic disruption. A useful solution to this problem is the make-before-break concept. In this concept, traffic passes through the old path while the new rerouted path is being established. Once it has been established, traffic is switched to the new path and the old path is torn down. The make-before-break concept supports resource sharing of the common part where the old and new path cross. This sharing is useful to avoid competition between the resources of the two paths. Details of the make-before-break concept are given in RFC 3209. In the case of multicasting, there are cases where the topology of the area to be rerouted is a tree and there are many paths that should be rerouted when path rerouting occurs at once. So it is desirable that multiple paths are moved in one rerouting mechanism. This protocol supports the make-before-break concept for multicast TE tunnels. For this version of this protocol, only sender-initiated make-before-break of the entire multicast tree is supported. Local repair using make-before-break is a topic for future study.

9.2 Re-establishment of subtree

The graft mechanism can also be used re-establish a partial multicast LSP when the establishment of the subtree failed. In multicast LSP establishment, it sometimes happens that the establishment of the subtree fails and the establishment of another part of the tree succeeds. It is inefficient in this situation for the whole multicast LSP to be torn down by the PathTear message and for the whole multicast LSP to be re-established by the Path message. Re- establishment of a subtree whose establishment failed can be done using the graft mechanism. The sender node or NMS that recognizes that the establishment of a subtree failed can re-calculate another multicast route that avoids the failure point and can reach the leaf nodes. After this re-calculation, the sender node uses the graft mechanism with updated TERO for subtree re-establishment. This re- establishment does not cause any additional processing in nodes except along the path to the failure point, because the graft process only affects those nodes.

10. Security Considerations

Security considerations will be addressed in a future revision of Yasukawa, et. al. [Page 43]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 this document.

11. References

[1] D. Awduche., L. Berger., D. Gan., T. Li., V. Srinivasan, G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC3209, December 2001 [2] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1, Functional Specification", RFC 2205, September 1997. [3] Rosen, E., Viswanathan, A. and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, January 2001. [4] Awduche, D., Malcolm, J., Agogbua, J., O'Dell and J. McManus, "Requirements for Traffic Engineering over MPLS", RFC 2702, September 1999. [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [6] W. Fenner, "Internet Group Management Protocol, IGMP, version 2", RFC 2236, November 1997. [7] Cain, B., "Internet Group Management Protocol, Version 3", draft-ietf-idmr-igmp-v3-11.txt, May 2002 [8] D. Estrin, D. Farinacci, A. Helmy, D. Thaler, S. Deering, M. Handley, V. Jacobson, C. Liu, P. Sharma, L. Wei, "Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification.", RFC 2362, June 1998. [9] J. Moy, "Multicast Extensions to OSPF", RFC 1584, March 1994 [10] Lou Berger, et al., "Generalized MPLS - Signaling Functional Description", draft-ietf-mpls-generalized-signaling-08.txt, April 2002 [11] Kireeti Kompella, Yakov Rekhter, "Signalling Unnumbered Links in RSVP-TE", draft-ietf-mpls-rsvp-unnum-07.txt, July 2002. [12] L. Berger, D. Gan, G. Swallow, P. Pan, F. Tommasi, S. Molendini, "RSVP Refresh Overhead Reduction Extensions", RFC 2961, April 2001. [13] Eric Mannie , Yasukawa, et. al. [Page 44]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 "Generalized Multi-Protocol Label Switching (GMPLS) Architecture", draft-ietf-ccamp-gmpls-architecture-03.txt, August 2002 [14] D. Katz, D. Yeung, K. Kompella, "Traffic Engineering Extensions to OSPF Version 2", draft-katz-yeung-ospf-traffic-08.txt, September 2002 [15] J. Moy, "OSPF Version 2", RFC 2328, April 1998 [16] R. Callon, "Use of OSI IS-IS for Routing in TCP/IP and Dual Environments", RFC 1195, December 1990

12. Author's Addresses

Seisho Yasukawa NTT Network Service Systems Laboratories, NTT Corporation 9-11, Midori-Cho 3-Chome Musashino-Shi, Tokyo 180-8585 Japan Phone: +81 422 59 4769 EMail: yasukawa.seisho@lab.ntt.co.jp Masanori Uga NTT Network Service Systems Laboratories, NTT Corporation 9-11, Midori-Cho 3-Chome Musashino-Shi, Tokyo 180-8585 Japan Phone: +81 422 59 4804 EMail: uga.masanori@lab.ntt.co.jp Hisashi Kojima NTT Network Service Systems Laboratories, NTT Corporation 9-11, Midori-Cho 3-Chome Musashino-Shi, Tokyo 180-8585 Japan Phone: +81 422 59 6070 EMail: kojima.hisashi@lab.ntt.co.jp Koji Sugisono NTT Network Service Systems Laboratories, NTT Corporation 9-11, Midori-Cho 3-Chome Musashino-Shi, Tokyo 180-8585 Japan Phone: +81 422 59 2605 EMail: sugisono.koji@lab.ntt.co.jp Yasukawa, et. al. [Page 45]

Internet Draft draft-yasukawa-mpls-rsvp-multicast-01.txt November 2002 Alan Kullberg Netplane Systems 8 Technology Drive Westborough, MA EMail: akullber@netplane.com Markus Jork Avici Systems 101 Billerica Avenue N. Billerica, MA 01862 phone: +1 978 964 2142 EMail: mjork@avici.com Dimitri Papadimitriou Alcatel Francis Wellesplein 1, B-2018 Antwerpen, Belgium Phone: +32 3 240-8491 Email: Dimitri.Papadimitriou@alcatel.be Yasukawa, et. al. [Page 46]