Network Working Group I. Minei (Editor) Internet-Draft K. Kompella Intended status: Standards Track Juniper Networks Expires:December 3, 2006January 10, 2008 I. Wijnands (Editor) B. Thomas Cisco Systems, Inc. July 9, 2007 Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Pathsdraft-ietf-mpls-ldp-p2mp-02draft-ietf-mpls-ldp-p2mp-03 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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. This Internet-Draft will expire onDecember 3, 2006.January 10, 2008. Copyright Notice Copyright (C) TheInternet Society (2006).IETF Trust (2007). Abstract This document describes extensions to the Label Distribution Protocol (LDP) for the setup of point to multi-point (P2MP) and multipoint-to- multipoint (MP2MP) Label Switched Paths (LSPs) in Multi-Protocol Label Switching (MPLS) networks. The solution relies on LDP without requiring a multicast routing protocol in the network. Protocol elements and procedures for this solution are described for building such LSPs in a receiver-initiated manner. There can be various applications for P2MP/MP2MP LSPs, for example IP multicast or support for multicast in BGP/MPLS L3VPNs. Specification of how such applications can use a LDP signaled P2MP/MP2MP LSP is outside the scope of this document. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .34 1.1. Conventions used in this document . . . . . . . . . . . .34 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . .34 2. Setting up P2MP LSPs with LDP . . . . . . . . . . . . . . . .45 2.1. Support for P2MP LSP setup with LDP . . . . . . . . . . . 5 2.2. The P2MP FEC Element . . . . . . . . . . . . . . . . . . .4 2.2.6 2.3. The LDP MP Opaque Value Element . . . . . . . . . . . . .6 2.2.1.7 2.3.1. The Generic LSP Identifier . . . . . . . . . . . . . .6 2.3.8 2.4. Using the P2MP FEC Element . . . . . . . . . . . . . . . .7 2.3.1.8 2.4.1. Label Map . . . . . . . . . . . . . . . . . . . . . .8 2.3.2.9 2.4.2. Label Withdraw . . . . . . . . . . . . . . . . . . . .911 3. Shared Trees . . . . . . . . . . . . . . . . . . . . . . . . .1011 4. Setting up MP2MP LSPs with LDP . . . . . . . . . . . . . . . .1112 4.1. Support for MP2MP LSP setup with LDP . . . . . . . . . . . 13 4.2. The MP2MP downstream and upstream FECelements.Elements. . . . . .11 4.2.13 4.3. Using the MP2MP FECelementsElements . . . . . . . . . . . . . . .11 4.2.1.14 4.3.1. MP2MP Label Map upstream and downstream . . . . . . .13 4.2.2.15 4.3.2. MP2MP Label Withdraw . . . . . . . . . . . . . . . . .1517 5.Upstream label allocation on Ethernet networksThe LDP MP Status TLV . . . . . . . .16 6. Root node redundancy for MP2MP LSPs. . . . . . . . . . . . 18 5.1. The LDP MP Status Value Element . . .16 6.1. Root node redundancy procedure. . . . . . . . . . 19 5.2. LDP Messages containing LDP MP Status messages . . . . . .16 7. Make before break20 5.2.1. LDP MP Status sent in LDP notification messages . . . 20 5.2.2. LDP MP Status TLV in Label Mapping Message . . . . . . 20 6. Upstream label allocation on a LAN . . . . . . . . . . . . .17 7.1. Protocol event. 21 6.1. LDP Multipoint-to-Multipoint on a LAN . . . . . . . . . . 21 6.1.1. MP2MP downstream forwarding . . . . . . . . . . .18 8. Security Considerations. . 21 6.1.2. MP2MP upstream forwarding . . . . . . . . . . . . . . 22 7. Root node redundancy . . .18 9. IANA considerations. . . . . . . . . . . . . . . . . . 22 7.1. Root node redundancy - procedures for P2MP LSPs . . .18 10. Acknowledgments. . 23 7.2. Root node redundancy - procedures for MP2MP LSPs . . . . . 23 8. Make Before Break (MBB) . . . . . . . . . . . . . . . .19 11. Contributing authors. . . 24 8.1. MBB overview . . . . . . . . . . . . . . . . . .19 12. References. . . . . 24 8.2. The MBB Status code . . . . . . . . . . . . . . . . . . . 25 8.3. The MBB capability . .21 12.1. Normative References. . . . . . . . . . . . . . . . . . 26 8.4. The MBB procedures .21 12.2. Informative References. . . . . . . . . . . . . . . . . .21 Authors' Addresses. 26 8.4.1. Terminology . . . . . . . . . . . . . . . . . . . . . 26 8.4.2. Accepting elements . .21 Intellectual Property and Copyright Statements. . . . . . . . . .23 1. Introduction The LDP protocol is described in [1]. It defines mechanisms. . . . . . 27 8.4.3. Procedures forsetting up point-to-pointupstream LSR change . . . . . . . . . . 27 8.4.4. Receiving a Label Map with MBB status code . . . . . . 28 8.4.5. Receiving a Notification with MBB status code . . . . 28 8.4.6. Node operation for MP2MP LSPs . . . . . . . . . . . . 29 9. Security Considerations . . . . . . . . . . . . . . . . . . . 29 10. IANA considerations . . . . . . . . . . . . . . . . . . . . . 29 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 12. Contributing authors . . . . . . . . . . . . . . . . . . . . . 30 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32 13.1. Normative References . . . . . . . . . . . . . . . . . . . 32 13.2. Informative References . . . . . . . . . . . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 33 Intellectual Property and Copyright Statements . . . . . . . . . . 34 1. Introduction The LDP protocol is described in [1]. It defines mechanisms for setting up point-to-point (P2P) andmultipoint-to-point (MP2P) LSPsmultipoint-to-point (MP2P) LSPs in the network. This document describes extensions to LDP for setting up point-to-multipoint (P2MP) and multipoint-to-multipoint (MP2MP) LSPs. These are collectively referred to as multipoint LSPs (MP LSPs). A P2MP LSP allows traffic from a single root (or ingress) node to be delivered to a number of leaf (or egress) nodes. A MP2MP LSP allows traffic from multiple ingress nodes to be delivered to multiple egress nodes. Only a single copy of the packet will be sent on any link traversed by the MP LSP (see note at end of Section 2.4.1). This is accomplished without the use of a multicast protocol in the network. There can be several MP LSPs rooted at a given ingress node, each with its own identifier. The solution assumes that the leaf nodes of the MP LSP know the root node and identifier of the MP LSP to which they belong. The mechanisms for the distribution of this information are outside the scope of this document. The specification of how an application can use a MP LSP signaled by LDP is also outside the scope of this document. Interested readers may also wish to peruse the requirements draft [9] and other documents [8] and [10]. 1.1. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [2]. 1.2. Terminology The following terminology is taken from [9]. P2P LSP: An LSP that has one Ingress LSR and one Egress LSR. P2MP LSP: An LSP that has one Ingress LSR and one or more Egress LSRs. MP2P LSP: An LSP that has one or more Ingress LSRs and one unique Egress LSR. MP2MP LSP: An LSP that connects a set of leaf nodes, acting indifferently as ingress or egress. MP LSP: A multipoint LSP, either a P2MP or an MP2MP LSP. Ingress LSR: Source of the P2MP LSP, also referred to as root node. Egress LSR: One of potentially many destinations of an LSP, also referred to as leaf node in the case of P2MP and MP2MP LSPs. Transit LSR: An LSR that has one or more directly connected downstream LSRs. Bud LSR: An LSR that is an egress but also has one or more directly connected downstream LSRs. 2. Setting up P2MP LSPs with LDP A P2MP LSP consists of a single root node, zero or more transit nodes and one or more leaf nodes. Leaf nodes initiate P2MP LSP setup and tear-down. Leaf nodes also install forwarding state to deliver the traffic received on a P2MP LSP to wherever it needs to go; how this is done is outside the scope of this document. Transit nodes install MPLS forwarding state and propagate the P2MP LSP setup (and tear- down) toward the root. The root node installs forwarding state to map traffic into the P2MP LSP; how the root node determines which traffic should go over the P2MP LSP is outside the scope of this document. 2.1. Support for P2MP LSP setup with LDP Support for the setup of P2MP LSPs is advertised using LDP capabilities as defined in [6]. An implementation supporting the P2MP procedures specified in this document MUST implement the procedures for Capability Parameters in Initialization Messages. A new Capability Parameter TLV is defined, the P2MP Capability. Following is the format of the P2MP Capability Parameter. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0| P2MP Capability (TBD IANA) | Length (= 1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Reserved | +-+-+-+-+-+-+-+-+ The P2MP Capability TLV MUST be supported in the LDP Initialization Message. Advertisement of the P2MP Capability indicates support of the procedures for P2MP LSP setup detailed in this document. If the peer has not advertised the corresponding capability, then no label messages using the P2MP FEC Element should be sent to the peer. 2.2. The P2MP FEC Element For the setup of a P2MP LSP with LDP, we define one new protocol entity, the P2MP FEC Element to be used as a FEC Element in the FEC TLV. Note that the P2MP FEC Element does not necessarily identify the traffic that must be mapped to the LSP, so from that point of view, the use of the term FEC is a misnomer. The description of the P2MP FEC Element follows. The P2MP FEC Element consists of the address of the root of the P2MP LSP and an opaque value. The opaque value consists of one or more LDP MP Opaque Value Elements. The opaque value is unique within the context of the root node. The combination of (Root Node Address, Opaque Value) uniquely identifies a P2MP LSP within the MPLS network. The P2MP FEC Element is encoded 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P2MP Type (TBD)| Address Family | Address Length| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Node Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque Length | Opaque Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ ~ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: The type of the P2MP FEC Element is to be assigned by IANA. Address Family: Two octet quantity containing a value from ADDRESS FAMILY NUMBERS in [3] that encodes the address family for the Root LSR Address. Address Length: Length of the Root LSR Address in octets. Root Node Address: A host address encoded according to the Address Family field. Opaque Length: The length of the Opaque Value, in octets. Opaque Value: One or more MP Opaque Value elements, uniquely identifying the P2MP LSP in the context of the Root Node. This is described in the next section. If the Address Family is IPv4, the Address Length MUST be 4; if the Address Family is IPv6, the Address Length MUST be 16. No other Address Lengths are defined at present. If the Address Length doesn't match the defined length for the Address Family, the receiver SHOULD abort processing the message containing the FEC Element, and send an "Unknown FEC" Notification message to its LDP peer signaling an error. If a FEC TLV contains a P2MP FEC Element, the P2MP FEC Element MUST be the only FEC Element in the FEC TLV. 2.3. The LDP MP Opaque Value Element The LDP MP Opaque Value Element is used in the P2MP and MP2MP FEC Elements defined in subsequent sections. It carries information that is meaningful to leaf (and bud) LSRs, but need not be interpreted by non-leaf LSRs. The LDP MP Opaque Value Element is encoded 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type(TBD) | Length | Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ~ ~ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: The type of the LDP MP Opaque Value Element is to be assigned by IANA. Length: The length of the Value field, in octets. Value: String of Length octets, to be interpreted as specified by the Type field. 2.3.1. The Generic LSP Identifier The generic LSP identifier is a type of Opaque Value Element encoded as follows: Type: 1 (to be assigned by IANA) Length: 4 Value: A 32bit integer, unique in the context of the root, as identified by the root's address. This type of Opaque Value Element is recommended when mapping of traffic to LSPs is non-algorithmic, and done by means outside LDP. 2.4. Using the P2MP FEC Element This section defines the rules for the processing and propagation of the P2MP FEC Element. The following notation is used in the processing rules: 1. P2MP FEC Element <X, Y>: a FEC Element with Root Node Address X and Opaque Value Y. 2. P2MP Label Map <X, Y, L>: a Label Map message with a FEC TLV with a single P2MP FEC Element <X, Y> and Label TLV with label L. 3. P2MP Label Withdraw <X, Y, L>: a Label Withdraw message with a FEC TLV with a single P2MP FEC Element <X, Y> and Label TLV with label L. 4. P2MP LSP <X, Y> (or simply <X, Y>): a P2MP LSP with Root Node Address X and Opaque Value Y. 5. The notation L' -> {<I1, L1> <I2, L2> ..., <In, Ln>} on LSR X means that on receiving a packet with label L', X makes n copies of the packet. For copy i of the packet, X swaps L' with Li and sends it out over interface Ii. The procedures below are organized by the role which the node plays in the P2MP LSP. Node Z knows that it is a leaf node by a discovery process which is outside the scope of this document. During the course of protocol operation, the root node recognizes its role because it owns the Root Node Address. A transit node is any node (other than the root node) that receives a P2MP Label Map message (i.e., one that has leaf nodes downstream of it). Note that a transit node (and indeed the root node) may also be a leaf node. 2.4.1. Label Map The following lists procedures for generating and processing P2MP Label Map messages for nodes that participate in a P2MP LSP. An LSR should apply those procedures that apply to it, based on its role in the P2MP LSP. For the approach described here we use downstream assigned labels. On Ethernet networks this may be less optimal, see Section 6. 2.4.1.1. Determining one's 'upstream LSR' A node Z that is part of P2MP LSP <X, Y> determines the LDP peer U which lies on the best path from Z to the root node X. If there are more than one such LDP peers, only one of them is picked. U is Z's "Upstream LSR" for <X, Y>. When there are several candidate upstream LSRs, the LSR MAY select one upstream LSR using the following procedure: 1. The candidate upstream LSRs are numbered from lower to higher IP address 2. The following hash is performed: H = (Sum Opaque value) modulo N, where N is the number of candidate upstream LSRs 3. The selected upstream LSR U is the LSR that has the number H. This allows for load balancing of a set of LSPs among a set of candidate upstream LSRs, while ensuring that on a LAN interface a single upstream LSR is selected. 2.4.1.2. Leaf Operation A leaf node Z of P2MP LSP <X, Y> determines its upstream LSR U for <X, Y> as per Section 2.4.1.1, allocates a label L, and sends a P2MP Label Map <X, Y, L> to U. 2.4.1.3. Transit Node operation Suppose a transit node Z receives a P2MP Label Map <X, Y, L> from LDP peer T. Z checks whether it already has state for <X, Y>. If not, Z allocates a label L', and installs state to swap L' with L over interface I associated with peer T. Z also determines its upstream LSR U for <X, Y> as per Section 2.4.1.1, and sends a P2MP Label Map <X, Y, L'> to U. If Z already has state for <X, Y>, then Z does not send a Label Map message for P2MP LSP <X, Y>. All that Z needs to do in this case is update its forwarding state. Assuming its old forwarding state was L'-> {<I1, L1> <I2, L2> ..., <In, Ln>}, its new forwarding state becomes L'-> {<I1, L1> <I2, L2> ..., <In, Ln>, <I, L>}. 2.4.1.4. Root Node Operation Suppose the root node Z receives a P2MP Label Map <X, Y, L> from peer T. Z checks whether it already has forwarding state for <X, Y>. If not, Z creates forwarding state to push label L onto the traffic that Z wants to forward over the P2MP LSP (how this traffic is determined is outside the scope of this document). If Z already has forwarding state for <X, Y>, then Z adds "push label L, send over interface I" to the nexthop, where I is the interface associated with peer T. 2.4.2. Label Withdraw The following lists procedures for generating and processing P2MP Label Withdraw messages for nodes that participate in a P2MP LSP. An LSR should apply those procedures that apply to it, based on its role in the P2MP LSP. 2.4.2.1. Leaf Operation If a leaf node Z discovers (by means outside the scope of this document) that it is no longer a leaf of the P2MP LSP, it SHOULD send a Label Withdraw <X, Y, L> to its upstream LSR U for <X, Y>, where L is the label it had previously advertised to U for <X, Y>. 2.4.2.2. Transit Node Operation If a transit node Z receives a Label Withdraw message <X, Y, L> from a node W, it deletes label L from its forwarding state, and sends a Label Release message with label L to W. If deleting L from Z's forwarding state for P2MP LSP <X, Y> results in no state remaining for <X, Y>, then Z propagates thenetwork. This document describes extensionsLabel Withdraw for <X, Y>, toLDPits upstream T, by sending a Label Withdraw <X, Y, L1> where L1 is the label Z had previously advertised to T forsetting up point-to-multipoint (P2MP) and multipoint-to-multipoint (MP2MP) LSPs. These<X, Y>. 2.4.2.3. Root Node Operation The procedure when the root node of a P2MP LSP receives a Label Withdraw message arecollectively referred tothe same asmultipoint LSPs (MP LSPs).for transit nodes, except that it would not propagate the Label Withdraw upstream (as it has no upstream). 2.4.2.4. Upstream LSR change If, for a given node Z participating in a P2MP LSP <X, Y>, the upstream LSR changes, say from U to U', then Z MUST update its forwarding state by deleting the state for label L, allocating a new label, L', for <X,Y>, and installing the forwarding state for L'. In addition Z MUST send a Label Map <X, Y, L'> to U' and send a Label Withdraw <X, Y, L> to U. 3. Shared Trees The mechanism described above shows how to build a tree with a single root and multiple leaves, i.e., a P2MP LSP. One can use essentially the same mechanism to build Shared Trees with LDP. AP2MP LSP allowsShared Tree can be used by a group of routers that want to multicast trafficfromamong themselves, i.e., each node is both asingleroot(or ingress)nodeto be delivered to(when it sources traffic) and anumber ofleaf(or egress) nodes.node (when any other member of the group sources traffic). AMP2MP LSP allows traffic from multiple ingress nodes to be deliveredShared Tree offers similar functionality tomultiple egress nodes. Onlyasingle copy of the packet will be sent on any link traversed byMP2MP LSP, but theMP LSP (see note at end of Section 2.3.1). Thisunderlying multicasting mechanism uses a P2MP LSP. One example where a Shared Tree isaccomplished without the useuseful is video-conferencing. Another is Virtual Private LAN Service (VPLS) [7], where for some types of traffic, each device participating in amulticast protocolVPLS must send packets to every other device inthe network. There can be several MP LSPsthat VPLS. One way to build a Shared Tree is to build an LDP P2MP LSP rooted at agiven ingress node, each with its own identifier. The solution assumes thatcommon point, theleaf nodes ofShared Root (SR), and whose leaves are all theMP LSP knowmembers of theroot node and identifiergroup. Each member of theMP LSPShared Tree unicasts traffic towhich they belong. The mechanismsthe SR (using, for example, thedistributionMP2P LSP created by the unicast LDP FEC advertised by the SR); the SR then splices this traffic into the LDP P2MP LSP. The SR may be (but need not be) a member ofthis information are outsidethescopemulticast group. A major advantage of thisdocument. The specification of how an application can use a MP LSP signaled by LDPapproach isalso outsidethat no further protocol mechanisms beyond thescope of this document. Interested readers may also wishone already described are needed toperuseset up a Shared Tree. Furthermore, a Shared Tree is very efficient in terms of therequirement draft [4] and other documents [8] and [9]. 1.1. Conventions usedmulticast state inthis document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",the network, and"OPTIONAL"is reasonably efficient inthis document areterms of the bandwidth required tobe interpreted as described in RFC 2119 [2]. 1.2. Terminology The following terminologysend traffic. A property of this approach istaken from [4]. P2P LSP: An LSP that has one Ingress LSR and one Egress LSR. P2MP LSP: An LSPthathas one Ingress LSRa sender will receive its own packets as part of the multicast; thus a sender must be prepared to recognize andone or more Egress LSRs. MP2P LSP: A LSPdiscard packets that it itself hasone or more Ingress LSRs and one unique Egress LSR. MP2MP LSP: A LSP that connects a set of leaf nodes, acting indifferently as ingress or egress. MP LSP: A multipoint LSP, eithersent. For aP2MP or an MP2MP LSP. Ingress LSR: Sourcenumber of applications (for example, VPLS), this requirement is easy to meet. Another consideration is theP2MP LSP, also referredvarious techniques that can be used toas root node. Egress LSR: One of potentially many destinations of an LSP, also referredsplice unicast LDP MP2P LSPs toas leaf node inthecase ofLDP P2MPand MP2MP LSPs. Transit LSR: An LSR that has one or more directly connected downstream LSRs. Bud LSR: An LSR that is an egress but also has one or more directly connected downstream LSRs. 2.LSP; these will be described in a later revision. 4. Setting upP2MPMP2MP LSPs with LDPAAn MP2MP LSP is much like a P2MP LSP in that it consists of a single root node, zero or more transit nodes and one or more leafnodes. Leaf nodes initiate P2MP LSP setup and tear-down. Leaf nodes also install forwarding state to deliver the traffic received on a P2MP LSP to wherever it needs to go; how this is done is outsideLSRs acting equally as Ingress or Egress LSR. A leaf node participates in thescopesetup ofthis document. Transit nodes install MPLS forwarding state and propagate the P2MPan MP2MP LSPsetup (and tear- down) toward the root. The root node installs forwarding state to map traffic into the P2MP LSP; how the root node determinesby establishing both a downstream LSP, whichtraffic should go over the P2MP LSPisoutside the scope of this document. For the setup ofmuch like a P2MP LSPwith LDP, we define one new protocol entity,from theP2MP FEC Element to beroot, and an upstream LSP which is usedin the FEC TLV. The description of the P2MP FEC Element follows. 2.1. The P2MP FEC Element The P2MP FEC Element consists ofto send traffic toward theaddress ofroot and other leaf nodes. Transit nodes support theroot ofsetup by propagating theP2MPupstream and downstream LSP setup toward the root andan opaque value. The opaque value consists of one or more LDP MP Opaque Value Elements. The opaque value is unique withininstalling thecontextnecessary MPLS forwarding state. The transmission of packets from the rootnode. The combinationnode of(Root Node Address, Opaque Value) uniquely identifiesaP2MPMP2MP LSPwithin the MPLS network. The P2MP FEC element is encoded 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P2MP Type (TBD)| Address Family | Address Length| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Node Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque Length | Opaque Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ ~ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: The type ofto theP2MP FEC elementreceivers is identical tobe assigned by IANA. Address Family: Two octet quantity containingthat for avalueP2MP LSP. Traffic fromADDRESS FAMILY NUMBERS in [3] that encodesa leaf node follows theaddress family forupstream LSP toward theRoot LSR Address. Address Length: Length ofroot node and branches downward along theRoot LSR Address in octets. Root Node Address: A host address encoded accordingdownstream LSP as required to reach other leaf nodes. Mapping traffic to theAddress Family field. Opaque Length: The length of the Opaque Value, in octets. Opaque Value: One or more MP Opaque Value elements, uniquely identifying the P2MPMP2MP LSPinmay happen at any leaf node. How that mapping is established is outside thecontextscope ofthe Root Node. Thisthis document. Due to how a MP2MP LSP isdescribed in the next section. If the Address Familybuilt a leaf LSR that isIPv4, the Address Length MUST be 4; ifsending packets on theAddress FamilyMP2MP LSP does not receive its own packets. There isIPv6, the Address Length MUST be 16. No other Address Lengths are defined at present. Ifalso no additional mechanism needed on theAddress Length doesn'troot or transit LSR to matchthe defined length for the Address Family, the receiver SHOULD abort processing the message containing the FEC Element, and send an "Unknown FEC" Notification messageupstream traffic toits LDP peer signaling an error. Ifthe downstream forwarding state. Packets that are forwarded over aFEC TLV containsMP2MP LSP will not traverse aP2MP FEC Element, the P2MP FEC Element MUST belink more than once, with theonly FEC Elementexception of LAN links which are discussed inthe FEC TLV. 2.2. The LDP MP Opaque Value Element TheSection 4.3.1 4.1. Support for MP2MP LSP setup with LDPMP Opaque Value ElementSupport for the setup of MP2MP LSPs isusedadvertised using LDP capabilities as defined in [6]. An implementation supporting theP2MP andMP2MPFEC elements definedprocedures specified insubsequent sections. It carries information thatthis document MUST implement the procedures for Capability Parameters in Initialization Messages. A new Capability Parameter TLV ismeaningful to leaf (and bud) LSRs, but need not be interpreted by non-leaf LSRs. The LDP MP Opaque Value Elementdefined, the MP2MP Capability. Following isencoded as follows:the format of the MP2MP Capability Parameter. 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(TBD)|1|0| MP2MP Capability (TBD IANA) | Length (= 1) |Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ~ ~ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Reserved |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type:+-+-+-+-+-+-+-+-+ Thetype ofMP2MP Capability TLV MUST be supported in the LDPMP Opaque Value Element is to be assigned by IANA. Length: The lengthInitialization Message. Advertisement of theValue field, in octets. Value: StringMP2MP Capability indicates support ofLength octets, to be interpreted as specified bytheType field. 2.2.1. The Genericprocedures for MP2MP LSPIdentifiersetup detailed in this document. If the peer has not advertised the corresponding capability, then no label messages using the MP2MP upstream and downstream FEC Elements should be sent to the peer. 4.2. Thegeneric LSP identifier is a typeMP2MP downstream and upstream FEC Elements. For the setup ofOpaque Value Element encoded as follows: Type: 1 (toa MP2MP LSP with LDP we define 2 new protocol entities, the MP2MP downstream FEC and upstream FEC Element. Both elements will beassigned by IANA) Length: 4 Value: A 32bit integer, uniqueused as FEC Elements in thecontext ofFEC TLV. Note that theroot, as identified byMP2MP FEC Elements do not necessarily identify theroot's address. This typetraffic that must be mapped to the LSP, so from that point ofopaque value elementview, the use of the term FEC isrecommended when mappinga misnomer. The description oftraffic to LSPsthe MP2MP FEC Elements follow. The structure, encoding and error handling for the MP2MP downstream and upstream FEC Elements are the same as for the P2MP FEC Element described in Section 2.2. The difference isnon-algorithmic,that two new FEC types are used: MP2MP downstream type (TBD) anddone by means outside LDP. 2.3. UsingMP2MP upstream type (TBD). If a FEC TLV contains an MP2MP FEC Element, theP2MPMP2MP FEC Element MUST be the only FEC Element in the FEC TLV. 4.3. Using the MP2MP FEC Elements This section defines the rules for the processing and propagation of theP2MPMP2MP FECElement.Elements. The following notation is used in the processing rules: 1.P2MPMP2MP downstream LSP <X, Y> (or simply downstream <X, Y>): an MP2MP LSP downstream path with root node address X and opaque value Y. 2. MP2MP upstream LSP <X, Y, D> (or simply upstream <X, Y, D>): a MP2MP LSP upstream path for downstream node D with root node address X and opaque value Y. 3. MP2MP downstream FEC Element <X, Y>: a FEC Element withRoot Node Addressroot node address X andOpaque Value Y. 2. P2MPopaque value Y used for a downstream MP2MP LSP. 4. MP2MP upstream FEC Element <X, Y>: a FEC Element with root node address X and opaque value Y used for an upstream MP2MP LSP. 5. MP2MP Label Map downstream <X, Y, L>:aA Label Map message with a FEC TLV with a singleP2MPMP2MP downstream FEC Element <X, Y> andLabellabel TLV with label L.3. P2MP6. MP2MP Label Map upstream <X, Y, Lu>: A Label Map message with a FEC TLV with a single MP2MP upstream FEC Element <X, Y> and label TLV with label Lu. 7. MP2MP Label Withdraw downstream <X, Y, L>: a Label Withdraw message with a FEC TLV with a singleP2MPMP2MP downstream FEC Element <X, Y> andLabellabel TLV with label L.4. P2MP LSP <X, Y> (or simply8. MP2MP Label Withdraw upstream <X,Y>):Y, Lu>: aP2MP LSPLabel Withdraw message withRoot Node Address X and Opaque Value Y. 5. The notation L' -> {<I1, L1> <I2, L2> ..., <In, Ln>} on LSR X means that on receivingapacket with label L', X makes n copies of the packet. For copy i of the packet, X swaps L'FEC TLV withLia single MP2MP upstream FEC Element <X, Y> andsends it out over interface Ii.label TLV with label Lu. The procedures below are organized by the role which the node plays in theP2MPMP2MP LSP. Node Z knows that it is a leaf node by a discovery process which is outside the scope of this document. During the course of the protocol operation, the root node recognizes its role because it owns theRoot Node Address.root node address. A transit node is any node (otherthanthen the root node) that receives aP2MPMP2MP Label Map message (i.e., one that has leaf nodes downstream of it). Note that a transit node (and indeed the root node) may also be a leafnode. 2.3.1.node and the root node does not have to be an ingress LSR or leaf of the MP2MP LSP. 4.3.1. MP2MP Label Map upstream and downstream The following lists procedures for generating and processingP2MPMP2MP Label Map messages for nodes that participate in aP2MPMP2MP LSP. An LSR should apply those procedures that apply to it, based on its role in theP2MPMP2MP LSP. For the approach described herewe use downstream assigned labels. On Ethernet networks thisif there are several receivers for a MP2MP LSP on a LAN, packets are replicated over the LAN. This may not beless optimal,optimal; optimizing this case is for further study, seeSection 5. 2.3.1.1.[4]. 4.3.1.1. Determining one's'upstream LSR' A node Z that is part of P2MP LSP <X, Y> determinesupstream MP2MP LSR Determining the upstream LDP peer Uwhich lies on the best path from Z to the root node X. If there are more than one such LDP peers, only one of them is picked. U is Z's "Upstream LSR"for a MP2MP LSP <X,Y>. When there are several candidate upstream LSRs, the LSR MAY select one upstream LSR using the following procedure: 1. The candidate upstream LSRs are numbered from lower to higher IP address 2. The following hash is performed: H = (Sum Opaque value) modulo N, where N is the number of candidate upstream LSRs 3. The selected upstream LSR U is the LSR that hasY> follows thenumber H. This allowsprocedure forload balancing of a set of LSPs amongaset of candidate upstream LSRs, while ensuring that onP2MP LSP described in Section 2.4.1.1. 4.3.1.2. Determining one's downstream MP2MP LSR A LDP peer U which receives aLAN interfaceMP2MP Label Map downstream from asingle upstream LSR is selected. 2.3.1.2. Leaf OperationLDP peer D will treat D as downstream MP2MP LSR. 4.3.1.3. MP2MP leaf node operation A leaf node Z ofP2MPa MP2MP LSP <X, Y> determines its upstream LSR U for <X, Y> as per Section2.3.1.1,4.3.1.1, allocates a label L, and sends aP2MPMP2MP Label Map downstream <X, Y, L> to U.2.3.1.3. Transit Node operation Suppose aLeaf node Z expects an MP2MP Label Map upstream <X, Y, Lu> from node U in response to the MP2MP Label Map downstream it sent to node U. Z checks whether it already has forwarding state for upstream <X, Y>. If not, Z creates forwarding state to push label Lu onto the traffic that Z wants to forward over the MP2MP LSP. How it determines what traffic to forward on this MP2MP LSP is outside the scope of this document. 4.3.1.4. MP2MP transit node operation When node Z receives aP2MPMP2MP Label Map downstream <X, Y, L> fromLDPpeerT. ZD associated with interface I, it checks whether italreadyhas forwarding state for downstream <X, Y>. If not, Z allocates a labelL',L' and installs downstream forwarding state to swap label L' with label L over interfaceI associated with peer T.I. Z also determines its upstream LSR U for <X, Y> as per Section2.3.1.1,4.3.1.1, and sends aP2MPMP2MP Label Map downstream <X, Y, L'> to U. If Z already has forwarding state for downstream <X, Y>,then Z does not send a Label Map message for P2MP LSP <X, Y>. Allall that Z needs to doin this caseis update its forwarding state. Assuming its old forwarding state was L'-> {<I1, L1> <I2, L2> ..., <In, Ln>}, its new forwarding state becomes L'-> {<I1, L1> <I2, L2> ..., <In, Ln>, <I, L>}.2.3.1.4. RootNodeOperation Suppose the root node Z receives a P2MP Label Map <X, Y, L> from peer T.Z checks whether it already has forwarding stateforupstream <X,Y>.Y, D>. If it does, then no further action needs to happen. If it does not,Zit allocates a label Lu and createsforwarding state to pusha new labelL onto the traffic that Z wants to forward over the P2MP LSP (how this traffic is determined is outside the scope of this document). If Z already hasswap for Lu from the label swap(s) from the forwarding statefordownstream <X, Y>,then Z adds "push label L, send over interface I" to the nexthop, where I isomitting the swap on interfaceassociated with peer T. 2.3.2. Label Withdraw The following lists procedures for generating and processing P2MP Label Withdraw messagesI fornodes that participate in a P2MP LSP. An LSR should apply those procedures that applynode D. This allows upstream traffic toit, based on its role infollow the MP2MP tree down to other node(s) except theP2MP LSP. 2.3.2.1. Leaf Operation If a leafnode from which Zdiscovers (by means outside the scope of this document) that it is no longer a leaf ofreceived theP2MP LSP, it SHOULD send aMP2MP LabelWithdrawMap downstream <X, Y,L> to its upstreamL>. Node Z determines the downstream MP2MP LSRU foras per Section 4.3.1.2, and sends a MP2MP Label Map upstream <X,Y>, where L is the label it had previously advertisedY, Lu> toU for <X, Y>. 2.3.2.2.node D. TransitNode Operation If a transitnode Zreceiveswill also receive a MP2MP LabelWithdraw messageMap upstream <X, Y,L> from a node W, it deletes label L from its forwarding state, and sends aLu> in response to the MP2MP LabelRelease messageMap downstream sent to node U associated with interface Iu. Node Z will add labelLswap Lu over interface Iu toW. If deleting L from Z'sthe forwarding statefor P2MP LSP <X, Y> results in no state remaining for <X, Y>, then Z propagates the Label Withdraw for <X, Y>, to its upstream T, by sending a Label Withdrawupstream <X, Y,L1> where L1 is the label Z had previously advertisedD>. This allows packets toT for <X, Y>. 2.3.2.3. Root Node Operation The procedure whengo up the tree towards the root node. 4.3.1.5. MP2MP root nodeofoperation 4.3.1.5.1. Root node is also aP2MP LSPleaf Suppose root/leaf node Z receives a MP2MP LabelWithdraw message are the same asMap downstream <X, Y, L> from node D associated with interface I. Z checks whether it already has forwarding state downstream <X, Y>. If not, Z creates forwarding state fortransit nodes, exceptdownstream to push label L on traffic thatit would not propagateZ wants to forward down theLabel Withdraw upstream (asMP2MP LSP. How it determines what traffic to forward on this MP2MP LSP is outside the scope of this document. If Z already hasno upstream). 2.3.2.4. Upstream LSR change If,forwarding state fora given node Z participating in a P2MP LSPdownstream <X, Y>, then Z will add theupstream LSR changes, say from Ulabel push for L over interface I toU', thenit. Node ZMUST update itschecks if it has forwarding stateby deleting the stateforlabel L, allocatingupstream <X, Y, D>. If not, Z allocates anew label, L', for <X,Y>,label Lu andinstallingcreates upstream forwarding state to push Lu with the label push(s) from the forwarding statefor L'. In addition Z MUST send a Label Mapdownstream <X,Y, L'>Y>, except the push on interface I for node D. This allows upstream traffic toU'go down the MP2MP to other node(s), except the node from which the traffic was received. Node Z determines the downstream MP2MP LSR as per section Section 4.3.1.2, andsendsends a MP2MP LabelWithdrawMap upstream <X, Y,L> to U. 3. Shared Trees The mechanism described above shows howLu> tobuild anode D. Since Z is the root of the treewithZ will not send asingle rootMP2MP downstream map andmultiple leaves, i.e., a P2MP LSP. One can use essentially the same mechanism to build Shared Trees with LDP. A Shared Tree can be used bywill not receive agroup of routers that want to multicast traffic among themselves, i.e., eachMP2MP upstream map. 4.3.1.5.2. Root node isboth a root node (when it sources traffic) andnot a leafnode (when any other member ofSuppose thegroup sources traffic). A Shared Tree offers similar functionality toroot node Z receives a MP2MPLSP, but the underlying multicasting mechanism uses a P2MP LSP. One example where a Shared Tree is useful is video-conferencing. Another is Virtual Private LAN Service (VPLS) [7], whereLabel Map downstream <X, Y, L> from node D associated with interface I. Z checks whether it already has forwarding state forsome types of traffic, each device participating in a VPLS must send packets to every other device in that VPLS. One way to build a Shared Tree is to build an LDP P2MP LSP rooted at a common point, the Shared Root (SR),downstream <X, Y>. If not, Z creates downstream forwarding state andwhose leaves are all the members of the group. Each member of the Shared Tree unicasts trafficinstalls a outgoing label L over interface I. If Z already has forwarding state for downstream <X, Y>, then Z will add label L over interface I to theSR (using,existing state. Node Z checks if it has forwarding state forexample, the MP2P LSP created byupstream <X, Y, D>. If not, Z allocates a label Lu and creates forwarding state to swap Lu with theunicast LDP FEC advertised bylabel swap(s) from theSR);forwarding state downstream <X, Y>, except theSR then splices thisswap for node D. This allows upstream trafficintoto go down theLDP P2MP LSP. The SR may be (but need not be) a member ofMP2MP to other node(s), except themulticast group. A major advantage of this approachnode isthat no further protocol mechanisms beyondwas received from. Root node Z determines theone already described are needed to set up a Shared Tree. Furthermore,downstream MP2MP LSR D as per Section 4.3.1.2, and sends aShared TreeMP2MP Label Map upstream <X, Y, Lu> to it. Since Z isvery efficient in terms of the multicast state inthenetwork, and is reasonably efficient in termsroot of thebandwidth required totree Z will not sendtraffic. A property of this approach is thatasenderMP2MP downstream map and will not receive a MP2MP upstream map. 4.3.2. MP2MP Label Withdraw The following lists procedures for generating and processing MP2MP Label Withdraw messages for nodes that participate in a MP2MP LSP. An LSR should apply those procedures that apply to it, based on itsown packets as partrole in the MP2MP LSP. 4.3.2.1. MP2MP leaf operation If a leaf node Z discovers (by means outside the scope ofthe multicast; thus a sender must be prepared to recognize and discard packetsthis document) that ititself has sent. Foris no longer anumberleaf ofapplications (for example, VPLS), this requirement is easythe MP2MP LSP, it SHOULD send a downstream Label Withdraw <X, Y, L> tomeet. Another considerationits upstream LSR U for <X, Y>, where L is thevarious techniques that can be usedlabel it had previously advertised tosplice unicast LDP MP2P LSPsU for <X,Y>. Leaf node Z expects the upstream router U to respond by sending a downstream label release for L and a upstream Label Withdraw for <X, Y, Lu> to remove Lu from theLDP P2MP LSP; theseupstream state. Node Z willbe described inremove label Lu from its upstream state and send alater revision. 4. Setting up MP2MP LSPslabel release message withLDP Anlabel Lu to U. 4.3.2.2. MP2MPLSP is much like a P2MP LSP in that it consists oftransit node operation If asingle root node, zero or moretransitnodes and one or more leaf LSRs acting equally as Ingress or Egress LSR. A leafnodeparticipates in the setup of an MP2MP LSP by establishing bothZ receives a downstreamLSP, which is much like a P2MP LSPlabel withdraw message <X, Y, L> fromthe root,node D, it deletes label L from its forwarding state downstream <X, Y> andanfrom all its upstreamLSP which is usedstates for <X, Y>. Node Z sends a label release message with label L tosend traffic toward the root and other leaf nodes. Transit nodes supportD. Since node D is no longer part of thesetup by propagatingdownstream forwarding state, Z cleans up the forwarding state upstream <X, Y, D> and sends a upstream Label Withdraw for <X, Y, Lu> to D. If deleting L from Z's forwarding state for downstreamLSP setup toward<X, Y> results in no state remaining for <X, Y>, then Z propagates the Label Withdraw <X, Y, L> to its upstream node U for <X,Y>. 4.3.2.3. MP2MP rootand installing the necessary MPLS forwarding state.node operation Thetransmission of packets fromprocedure when the root node of a MP2MP LSPto the receivers is identical to that for a P2MP LSP. Traffic fromreceives aleaf node followslabel withdraw message is theupstream LSP towardsame as for transit nodes, except that the root nodeand branches downward along the downstream LSP as required to reach other leaf nodes. Mapping traffic towould not propagate the Label Withdraw upstream (as it has no upstream). 4.3.2.4. MP2MPLSP may happen at any leaf node. How that mapping is established is outsideUpstream LSR change The procedure for changing thescope of this document. Due to how a MP2MP LSP is built a leafupstream LSRthatissending packets ontheMP2MP LSP does not receive its own packets. Theresame as documented in Section 2.4.2.4, except it isalso no additional mechanism needed on the root or transit LSR to match upstream trafficapplied tothe downstream forwarding state. Packets that are forwarded over aMP2MPLSP will not traverse a link more than once, withFECs, using theexception of LAN links which are discussedprocedures described in Section4.2.1 For the setup of4.3.1 through Section 4.3.2.3. 5. The LDP MP Status TLV An LDP MP capable router MAY use an LDP MP Status TLV to indicate additional status for aMP2MPMP LSPwith LDP we define 2 new protocol entities, the MP2MP downstream FEC andto its remote peers. This includes signaling to peers that are either upstreamFEC element. Both elements will be used inor downstream of theFEC TLV.LDP MP capable router. Thedescriptionvalue of theMP2MP elements follow. 4.1. The MP2MP downstreamLDP MP status TLV will remain opaque to LDP andupstream FECMAY encode one or more status elements. Thestructure, encoding and error handling for the MP2MP downstream and upstream FEC elements are the sameLDP MP Status TLV is encoded asforfollows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0| LDP MP Status Type(TBD) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value | ~ ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ LDP MP Status Type: The LDP MP Status Type to be assigned by IANA. Length: Length of theP2MP FEC element describedLDP MP Status Value inSection 2.1.octets. Value: One or more LDP MP Status Value elements. 5.1. The LDP MP Status Value Element The LDP MP Status Value Element that is included in the LDP MP Status TLV Value has the following encoding. 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(TBD) | Length | Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ~ ~ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: Thedifference is that two new FEC types are used: MP2MP downstream type (TBD) and MP2MP upstreamtype(TBD). If a FEC TLV contains an MP2MP FEC Element,of theMP2MP FECLDP MP Status Value ElementMUSTis to be assigned by IANA. Length: The length of theonly FEC ElementValue field, inthe FEC TLV. 4.2. Using the MP2MP FEC elements This section defines the rules for the processing and propagationoctets. Value: String of Length octets, to be interpreted as specified by theMP2MP FEC elements.Type field. 5.2. LDP Messages containing LDP MP Status messages Thefollowing notation is usedLDP MP status message may appear either inthe processing rules: 1. MP2MP downstream LSP <X, Y> (or simply downstream <X, Y>): an MP2MP LSP downstream path with root node address X and opaque value Y. 2. MP2MP upstream LSP <X, Y, D> (or simply upstream <X, Y, D>):aMP2MP LSP upstream path for downstream node Dlabel mapping message or a LDP notification message. 5.2.1. LDP MP Status sent in LDP notification messages An LDP MP status TLV sent in a notification message must be accompanied withroot node address X and opaque value Y. 3. MP2MP downstream FEC element <X, Y>:a Status TLV. The general format of the Notification Message with an LDP MP status TLV is: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| Notification (0x0001) | Message Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Status TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LDP MP Status TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Optional LDP MP FECelement with root node address X and opaque value YTLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Optional Label TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Status TLV status code is usedfor a downstream MP2MP LSP. 4. MP2MP upstream FEC element <X, Y>: a FEC element with root node address Xto indicate that LDP MP status TLV andopaque value Y used foranupstream MP2MP LSP. 5.additional information follows in the Notification message's "optional parameter" section. Depending on the actual contents of the LDP MP status TLV, an LDP P2MP or MP2MPLabel Map downstream <X, Y, L>: A Label Map message with aFEC TLVwith a single MP2MP downstream FEC element <X, Y>andlabel TLV with label L. 6. MP2MP Label Map upstream <X, Y, Lu>: ALabelMap message with a FECTLVwith a single MP2MP upstream FEC element <X, Y>may also be present to provide context to the LDP MP Status TLV. (NOTE: Status Code is pending IANA assignment). Since the notification does not refer to any particular message, the Message Id andlabelMessage Type fields are set to 0. 5.2.2. LDP MP Status TLVwith label Lu. 7. MP2MPin LabelWithdraw downstream <X, Y, L>: aMapping Message An example of the LabelWithdrawMapping Message defined in RFC3036 is shown below to illustrate the message witha FECan Optional LDP MP Status TLVwith a single MP2MP downstreampresent. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| Label Mapping (0x0400) | Message Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FECelement <X, Y> and labelTLVwith label L. 8. MP2MP Label Withdraw upstream <X, Y, Lu>: a| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LabelWithdraw message with a FECTLVwith a single MP2MP upstream FEC element <X, Y> and label| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Optional LDP MP Status TLVwith| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Additional Optional Parameters | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6. Upstream labelLu. The procedures below are organized by the role which the node plays in the MP2MP LSP. Node Z knows that it isallocation on aleaf node byLAN On adiscovery process which is outside the scope of this document. DuringLAN thecourseupstream LSR will send a copy of theprotocol operation, the root node recognizes its role because it owns the root node address. A transit nodepacket to each receiver individually. If there isany node (othermore thenthe root node) that receives a MP2MP Label Map message (i.e.,onethat has leaf nodes downstream of it). Note that a transit node (and indeedreceiver on theroot node) may also be a leaf node andLAN we don't take full benefit of theroot node does not have to be an ingress LSR or leafmulti-access capability of theMP2MP LSP. 4.2.1. MP2MP Label Map upstream and downstream The following lists procedures for generating and processing MP2MP Label Map messages for nodes that participate in a MP2MP LSP. An LSR should apply those procedures that apply to it, based on its role innetwork. We may optimize theMP2MP LSP. Forbandwidth consumption on theapproach described here if there are several receivers for a MP2MP LSPLAN and replication overhead ona LAN, packets are replicated overtheLAN. This may not be optimal; optimizing this case is for further study, see [5]. 4.2.1.1. Determining one'supstreamMP2MPLSRDetermining theby using upstream label allocation [4]. Procedures on how to distribute upstream labels using LDPpeer U foris documented in [5]. 6.1. LDP Multipoint-to-Multipoint on aMP2MP LSP <X, Y> follows theLAN The procedureforto allocate aP2MP LSP describedcontext label on a LAN is defined inSection 2.3.1.1. 4.2.1.2. Determining one's downstream MP2MP[4]. That procedure results in each LSRA LDP peer U which receiveson aMP2MP Label Map downstream fromgiven LAN having aLDP peer D will treat Dcontext label which, on that LAN, can be used to identify itself uniquely. Each LSR advertises its context label asdownstream MP2MP LSR. 4.2.1.3. MP2MP leaf node operation A leaf node Zan upstream-assigned label, following the procedures of [5]. Any LSR for which the LAN is a downstream link on some P2MP or MP2MP LSP<X, Y> determines its upstreamwill allocate an upstream- assigned label identifying that LSP. When the LSRU for <X, Y> as per Section 4.2.1.1, allocatesforwards a packet downstream on one of those LSPs, the packet's top labelL,must be the LSR's context label, andsends a MP2MP Label Map downstream <X, Y, L> to U. Leaf node Z expects an MP2MP Label Map upstream <X, Y, Lu> from node U in response totheMP2MP Label Map downstream it sent to node U. Z checks whether it already has forwarding state for upstream <X, Y>. If not, Z creates forwarding state to pushpacket's second labelLu ontois the label identifying the LSP. We will call the top label the "upstream LSR label" and thetraffic that Z wants to forward oversecond label the "LSP label". 6.1.1. MP2MPLSP. How it determines what traffic to forward on thisdownstream forwarding The downstream path of a MP2MP LSP isoutside the scope of this document. 4.2.1.4. MP2MP transit node operation When node Z receivesmuch like aMP2MP Label Map downstream <X, Y, L> from peer D associated with interface I, it checks whether it has forwarding statenormal P2MP LSP, so we will use the same procedures as defined in [5]. A label request fordownstream <X, Y>. If not, Z allocatesa LSP labelL' and installs downstream forwarding stateis send toswap label L' withthe upstream LSR. The labelL over interface I. Z also determines itsmapping that is received from the upstream LSRUcontains the LSP label for<X, Y> as per Section 4.2.1.1,the MP2MP FEC andsends athe upstream LSR context label. The MP2MPLabel Mapdownstream<X, Y, L'>path (corresponding toU. If Z already hasthe LSP label) will be installed the context specific forwardingstate for downstream <X, Y>, all that Z needstable corresponding todo is update its forwarding state. Assuming its oldthe upstream LSR label. Packets sent by the upstream router can be forwarded downstream using this forwarding statewas L'-> {<I1, L1> <I2, L2> ..., <In, Ln>}, its newbased on a two label lookup. 6.1.2. MP2MP upstream forwardingstate becomes L'-> {<I1, L1> <I2, L2> ..., <In, Ln>, <I, L>}. Node Z checks whether it alreadyA MP2MP LSP also has an upstream forwardingstatepath. Upstream packets need to be forwarded in the direction of the root and downstream on any node on the LAN that has a downstream interface for the LSP. For a given MP2MP LSP on a given LAN, exactly one LSR is considered to be the upstream<X, Y, D>.LSR. If an LSR on the LAN receives a packet from one of its downstream interfaces for the LSP, and if itdoes, then no further actionneeds tohappen. If it does not,forward the packet onto the LAN, itallocates aensures that the packet's top labelLu and creates a newis the context labelswap for Lu fromof the upstream LSR, and that its second labelswap(s) fromis theforwarding state downstream <X, Y>, omittingLSP label that was assigned by theswap on interface I for node D. This allowsupstreamtraffic to followLSR. Other LSRs receiving theMP2MP tree downpacket will not be able toother node(s) excepttell whether thenodepacket really came fromwhich Z receivedtheMP2MP Label Map downstream <X, Y, L>. Node Z determinesupstream router, but that makes no difference in thedownstream MP2MPprocessing of the packet. The upstream LSRas per Section 4.2.1.2,will see its own upstream LSR in the label, andsendsthis will enable it to determine that the packet is traveling upstream. 7. Root node redundancy The root node is a single point of failure for an MP LSP, whether this is P2MP or MP2MP. The problem is particularly severe for MP2MPLabel Map upstream <X, Y, Lu> toLSPs. In the case of MP2MP LSPs, all leaf nodes must use the same root nodeD. Transitto set up the MP2MP LSP, because otherwise the traffic sourced by some leafs is not received by others. Because the root nodeZ will also receiveis the single point of failure for an MP LSP, we need a fast and efficient mechanism to recover from aMP2MP Label Map upstream <X, Y, Lu>root node failure. An MP LSP is uniquely identified inresponse totheMP2MP Label Map downstream sent to node U associated with interface Iu. Node Z will add label swap Lu over interface Iu tonetwork by theforwarding state upstream <X, Y, D>. This allows packets to go upopaque value and thetree towardsroot node address. It is likely that the rootnode. 4.2.1.5. MP2MPnode for an MP LSP is defined statically. The root nodeoperation 4.2.1.5.1. Rootaddress may be configured on each leaf statically or learned using a dynamic protocol. How leafs learn about the root node isalso a leafout of the scope of this document. Supposeroot/leafthat for the same opaque value we define two (or more) root nodeZ receivesaddresses and we build a tree to each root using the same opaque value. Effectively these will be treated as different MP LSPs in the network. Once the trees are built, the procedures differ for P2MP and MP2MPLabel Map downstream <X, Y, L> fromLSPs. The different procedures are explained in the sections below. 7.1. Root nodeD associated with interface I. Z checks whether it already has forwarding state downstream <X, Y>. If not, Z creates forwarding stateredundancy - procedures fordownstreamP2MP LSPs Since all leafs have set up P2MP LSPs topush label Lall the roots, they are prepared to receive packets on either one of these LSPs. However, only one of the roots should be forwarding traffic at any given time, for the following reasons: 1) to achieve bandwidth savings in the network and 2) to ensure that the receiving leafs don't receive duplicate packets (since one cannot assume thatZ wants to forward downtheMP2MP LSP. How it determines what trafficreceiving leafs are able toforward on this MP2MP LSPdiscard duplicates). How the roots determine which one is the active sender is outside the scope of this document.If Z already has forwarding state for downstream <X, Y>, then Z will add the label push7.2. Root node redundancy - procedures forL over interface IMP2MP LSPs Since all leafs have set up an MP2MP LSP toit. Node Z checks if it has forwarding stateeach one of the root nodes forupstream <X, Y, D>. If not, Z allocatesthis opaque value, alabel Lu and creates upstream forwarding statesending leaf may pick either of the two (or more) MP2MP LSPs topush Lu withforward a packet on. The leaf nodes receive thelabel push(s) frompacket on one of theforwarding state downstream <X, Y>, exceptMP2MP LSPs. The client of thepushMP2MP LSP does not care oninterface Iwhich MP2MP LSP the packet is received, as long as they are fornode D. This allows upstream traffic to go downthe same opaque value. The sending leaf MUST only forward a packet on one MP2MP LSP at a given point in time. The receiving leafs are unable toother node(s), exceptdiscard duplicate packets because they accept on all LSPs. Using all thenode from whichavailable MP2MP LSPs we can implement redundancy using thetraffic was received. Node Z determinesfollowing procedures. A sending leaf selects a single root node out of thedownstream MP2MP LSR as per section Section 4.2.1.2,available roots for a given opaque value. A good strategy MAY be to look at the unicast routing table andsendsselect aMP2MP Label Map upstream <X, Y, Lu> to node D. Since Zroot that is closest in terms of the unicast metric. As soon as the root address of thetree Z will not send a MP2MP downstream map and will not receive a MP2MP upstream map. 4.2.1.5.2. Rootactive root disappears from the unicast routing table (or becomes less attractive) due to root nodeis not aor link failure, the leafSupposecan select a new best root address and start forwarding to it directly. If multiple root nodes have the same unicast metric, the highest root nodeZ receivesaddresses MAY be selected, or per session load balancing MAY be done over the root nodes. All leafs participating in a MP2MPLabel Map dowbstream <X, Y, L> from node D associated with interface I. Z checks whether it already has forwarding stateLSP MUST join to all the available root nodes fordownstream <X, Y>. If not, Z creates downstream forwarding state and installsaoutgoing label L over interface I. If Z already has forwarding state for downstream <X, Y>, then Z will add label L over interface I togiven opaque value. Since theexisting state. Node Z checks ifsending leaf may pick any MP2MP LSP, ithas forwarding statemust be prepared to receive on it. The advantage of pre-building multiple MP2MP LSPs forupstream <X, Y, D>. If not, Z allocatesalabel Lu and creates forwarding state to swap Lu with the label swap(s)single opaque value is that convergence from a root node failure happens as fast as theforwarding state downstream <X, Y>, except the swapunicast routing protocol is able to notify. There is no need fornode D. This allows upstream traffican additional protocol togo down the MP2MPadvertise toother node(s), exceptthe leaf nodes which root node iswas received from. Root node Z determinesthedownstreamactive root. The root selection is a local leaf policy that does not need to be coordinated with other leafs. The disadvantage of pre-building multiple MP2MP LSPs is that more label resources are used, depending on how many root nodes are defined. 8. Make Before Break (MBB) An LSRDselects asper Section 4.2.1.2, and sends a MP2MP Label Mapits upstream<X, Y, Lu> to it. Since ZLSR for a MP LSP the LSR that is its next hop to the root of thetree Z will not send a MP2MP downstream map and will not receiveLSP. When the best path to reach the root changes the LSR must choose aMP2MPnew upstreammap. 4.2.2. MP2MP Label Withdraw The following lists procedures for generatingLSR. Sections Section 2.4.2.4 andprocessing MP2MP Label Withdraw messages for nodes that participateSection 4.3.2.4 describe these procedures. When the best path to the root changes the LSP may be broken temporarily resulting in packet loss until the LSP "reconverges" to aMP2MP LSP. Annew upstream LSR. The goal of MBB when this happens is to keep the duration of packet loss as short as possible. In addition, there are scenarios where the best path from the LSRshould apply those procedures that applytoit, based on its role intheMP2MP LSP. 4.2.2.1. MP2MP leaf operation Ifroot changes but the LSP continues to forward packets to the prevous next hop to the root. That may occur when a link comes up or routing metrics change. In such aleaf node Z discovers (by means outsidecase a new LSP should be established before thescope of this document) that itold LSP isno longer a leaf ofremoved to limit theMP2MP LSP, it SHOULD sendduration of packet loss. The procedures described below deal with both scenarios in adownstream Label Withdraw <X, Y, L> to its upstreamway that an LSRU for <X, Y>, where L is the label it had previously advertiseddoes not need toU for <X,Y>. Leaf node Z expectsknow which of the events described above caused its upstream routerUfor an MBB LSP torespond by sendingchange. This MBB procedures are an optional extension to the MP LSP building procedures described in this draft. 8.1. MBB overview The MBB procedues use additional LDP signaling. Suppose some event causes a downstreamlabel release for L andLSR-D to select a new upstreamLabel WithdrawLSR-U for<X, Y, Lu> to remove Lu from the upstream state. Node Z will remove label Lu from its upstream state and send a label release message with label LuFEC-A. The new LSR-U may already be forwarding packets for FEC-A; that is, toU. 4.2.2.2. MP2MP transit node operation If a transit node Zdownstream LSR's other than LSR-D. After LSR-U receives adownstreamlabelwithdraw message <X, Y, L>for FEC-A fromnode D,LSR-D, itdeletes label L from its forwarding state downstream <X, Y> andwill notify LSR-D when it knows that the LSP for FEC-A has been established fromallthe root to itself. When LSR-D receives this MBB notification it will change itsupstream statesnext hop for<X, Y>. Node Z sends a label release message with label Lthe LSP root toD. Since node DLSR-U. The assumption isno longer part ofthat if LSR-U has received an MBB notification from its upstream router for thedownstreamFEC-A LSP and has installed forwardingstate, Z cleans upstate the LSP it is capable of forwardingstate upstream <X, Y, D>packets on the LSP. At that point LSR-U should signal LSR-D by means of an MBB notification that it has become part of the tree identified by FEC-A andsends a upstream Label Withdraw for <X, Y, Lu>that LSR-D should initiate its switchover toD. If deleting L from Z's forwarding statethe LSP. At LSR-U the LSP fordownstream <X, Y> resultsFEC-A may be in 1 of 3 states. 1. There is no stateremainingfor<X, Y>, then Z propagatesFEC-A. 2. State for FEC-A exists and LSR-U is waiting for MBB notification that the LSP from the root to it exists. 3. State for FEC-A exists and the MBB notification has been received. After LSR-U receives LSR-D's LabelWithdraw <X, Y, L>Mapping message for FEC-A LSR-U MUST NOT reply with an MBB notification to LSR-D until itsupstream node Ustate for<X,Y>. 4.2.2.3. MP2MP root node operation The procedure whentheroot nodeLSP is state #3 above. If the state ofa MP2MPthe LSPreceives a label withdraw messageat LSR-U is state #1 or #2, LSR-U should remember receipt of thesame asLabel Mapping message from LSR-D while waiting for an MBB notification from its upstream LSR fortransit nodes, except thattheroot node would not propagateLSP. When LSR-U receives theLabel WithdrawMBB notification from its upstream(asLSR ithas no upstream). 4.2.2.4. MP2MP Upstreamtransitions to LSP state #3 and sends an MBB notification to LSR-D. 8.2. The MBB Status code As noted in Section 8.1, the procedures to establish an MBB MP LSP are different from those to establish normal MP LSPs. When a downstream LSRchange The proceduresends a Label Mapping message forchanging theMP LSP to its upstream LSRis the same as documented in Section 2.3.2.4, exceptitis appliedMAY include an LDP MP Status TLV that carries a MBB Status Code toMP2MP FECs, using theindicate MBB proceduresdescribed in Section 4.2.1 through Section 4.2.2.3. 5. Upstream label allocation on Ethernet networks On Ethernet networksapply to the LSP. This new MBB Status Code MAY also appear in an LDP Notification message used by an upstream LSRwill send a copy of the packettoeach receiver individually. If there is more then one receiver on the Ethernet we don't take full benefit of the multi-access capability ofsignal LSP state #3 to thenetwork. We may optimizedownstream LSR; that is, that thebandwidth consumption onupstream LSR's state for theEthernetLSP exists andreplication overhead on thethat it has received notification from its upstream LSRby using upstream label allocation [5]. Procedures on how to distribute upstream labels using LDPthat the LSP isdocumentedin[6]. 6. Root node redundancy for MP2MP LSPs MP2MP leaf nodes must use the same root node to setupstate #3. The MBB Status is a type of theMP2MP LSP. Otherwise there willLDP MP Status Value Element as described in Section 5.1. It is encoded 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MBB Type = 1 | Length = 1 | Status code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MBB Type: Type 1 (to bepartitioned MP2MP LSP and traffic sourced by some leafs is not receivedassigned byothers. Having a single root node for a MP2MP LSPIANA) Length: 1 Status code: 1 = MBB request 2 = MBB ack 8.3. The MBB capability An LSR MAY advertise that it isa single pointcapable offailure, which is not preferred. We need a fast and efficient mechanism to recover from a root node failure. 6.1. Root node redundancy procedure It is likely thathandling MBB LSPs using theroot node for a MP2MP LSP iscapability advertisement as definedstatically.in [6]. Theroot node address may be configured on each leaf statically or learned using a dynamic protocol. How MP2MP leafs learn about the root node is out ofLDP MP MBB capability has thescope of this document. A MP2MP LSPfollowing format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0| LDP MP MBB Capability | Length = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Reserved | +-+-+-+-+-+-+-+-+ Note: LDP MP MBB Capability (Pending IANA assignment) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|0| LDP MP MBB Capability | Length = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Reserved | +-+-+-+-+-+-+-+-+ If an LSR has not advertised that it isuniquely identified byMBB capable, its LDP peers MUST NOT send it messages which include MBB parameters. If an LSR receives aopaque valueLabel Mapping message with a MBB parameter from downstream LSR-D andthe root node address. Supposeits upstream LSR-U has not advertised thatforit is MBB capable, thesame opaque value we define two root node addresses and we build a treeLSR MUST send an MBB notification immediatly toeach root using the same opaque value. Effectively theseLSR-U (see Section Section 8.4). If this happens an MBB MP LSP will not betreated as different MP2MP LSPs in the network. Since all leafs have setupestablished, but normal aMP2MPMP LSPto each one of the root nodes for this opaque value, a sending leaf may pick either ofwill be thetworesult. 8.4. The MBB procedures 8.4.1. Terminology 1. MBB LSP <X, Y>: A P2MP or MP2MPLSPsMake Before Break (MBB) LSP entry with Root Node Address X and Opaque Value Y. 2. A(N, L): An Accepting element that consists of an upstream Neighbor N and Local label L. This LSR assigned label L toforwardneighbor N for apacket on. The leaf nodes will receive the packet on one ofspecific MBB LSP. For an active element theMP2MP LSPs,corresponding Label is stored in theclientlabel forwarding database. 3. iA(N, L): An inactive Accepting element that consists ofthe MP2MP LSP does not care on which MP2MP LSP the packet was received from, as long as they arean upstream neighbor N and local Label L. This LSR assigned label L to neighbor N forthe same opaque value. The sending leaf MUST only forward a packet on one MP2MP LSP atagiven pointspecific MBB LSP. For an inactive element the corresponding Label is not stored intime. The receiving leafs are unable to discard duplicate packets because they accept on both LSPs. Using both these MP2MP LSPs we can implement redundancy usingthefollowing procedures.label forwarding database. 4. F(N, L): Asending leaf selects a single root node outForwarding state that consists ofthe available rootsdownstream Neighbor N and Label L. This LSR is sending label packets with label L to neighbor N for agiven opaque value.specific FEC. 5. F'(N, L): Agood strategy MAY beForwarding state that has been marked for sending a MBB Notification message tolook at the unicast routing tableNeighbor N with Label L. 6. MBB Notification <X, Y, L>: A LDP notification message with a MP LSP <X, Y>, Label L andselectMBB Status code 2. 7. MBB Label Map <X, Y, L>: A P2MP Label Map or MP2MP Label Map downstream with arootFEC element <X, Y>, Label L and MBB Status code 1. 8.4.2. Accepting elements An accepting element represents a specific label value L thatis closest according in terms of unicast metric. As soon as the root address of our active root disappears from the unicast routing table (or becomes less attractive) duehas been advertised toroot node or link failure we can selectanew best root addressneighbor N for a MBB LSP <X, Y> andstart forwarding to it directly. If multiple root nodesis a candidate for accepting labels switched packets on. An LSR can havethe same unicast metric, the highest root node addresses MAY be selected, or we MAY do per session load balancing over the root nodes. All leafs participating intwo accepting elements for aMP2MPspecific MBB LSP <X, Y> LSP, only one of them MUSTjoin to allbe active. An active element is theavailable root nodeselement fora given opaque value. Sincewhich thesending leaf may pick any MP2MP LSP, it must be prepared to receive on it. The advantage of pre-building multiple MP2MP LSPs for a single opaquelabel value has been installed in the label forwarding database. An inactive accepting element isthat we can converge fromcreated after aroot node failure as fast as the unicast routing protocolnew upstream LSR isable to notify us. Therechosen and isno need for an additional protocol to advertisepending to replace theleaf nodes which root node isactive element in the label forwarding database. Inactive elements only exist temporarily while switching to a new upstream LSR. Once the switch has been completed only one activeroot. The root selectionelement remains. During network convergence it isa local leaf policypossible thatdoes not need to be coordinated withan inactive accepting element is created while an otherleafs. The disadvantageinactive accepting element is pending. If thatwe are using morehappens the older inactive accepting element MUST be replaced with an newer inactive element. If an accepting element is removed a Label Withdraw has to be send for labelresources depending on how many root nodes are defined. 7. Make before break AnL to neighbor N for <X, Y>. 8.4.3. Procedures for upstream LSRis chosen based on the best pathchange Suppose a node Z has a MBB LSP <X, Y> with an active accepting element A(N1, L1). Due toreach the root of the MP LSP. When thea routing change it detects a new best pathto reach thefor rootchanges it needs to chooseX and selects a new upstreamLSR. Section 2.3.2.4LSR N2. Node Z allocates a new local label L2 andSection 4.2.2.4 describes these procedures. When the best path to the root changes the LSP may be brokencreates an inactive accepting element iA(N2, L2). Node Z sends MBB Label Map <X, Y, L2>to N2 andpacket forwarding is interrupted, in that case it needs to convergewaits for the new upstream LSR N2 to respond with a MBB Notification for <X, Y, L2>. During this transition phase there are two accepting elements, the element A(N1, L1) still accepting packets from N1 over label L1 and the new inactive element iA(N2, L2). While waiting for the MBB Notification from upstream LSRASAP. There are also scenarios where the best path changed, but the LSPN2, it isstill forwarding packets. That happens when links come up or routing metrics are changed. Inpossible thatcase it would likean other transition occurs due tobuilda routing change. Suppose the newLSP before it breaksupstream LSR is N3. An inactive element iA(N3, L3) is created and the oldLSPinactive element iA(N2, L2) MUST be removed. A label withdraw MUST be sent tominimize the traffic interruption.N2 for <X, Y, L2>. Theapprouch described below deals with both scenarios and does not require LDP to know which ofMBB Notification for <X, Y, L2> from N2 will be ignored because theevents above causedinactive element is removed. It is possible that the MBB Notification from upstreamrouter to change. The approuch belowLSR isan optional extentionnever received due to link or node failure. To prevent waiting indefinitely for the MBB Notification a timeout SHOULD be applied. As soon as the timer expires, theMP LSP buildingproceduresdescribed in this draft. 7.1. Protocol event An approach is to use additional signalinginLDP.Section 8.4.5 are applied as if a MBB Notification was received for the inactive element. 8.4.4. Receiving a Label Map with MBB status code Suppose node Z has state for adownstream LSR-D is changing toMBB LSP <X, Y> and receives a MBB Label Map <X, Y, L2> from N2. A newupstream LSR-U for FEC-A, this LSR-U may already beforwardingpackets for this FEC-A. Based on the existence ofstatefor FEC-A, LSR-UF(N2, L2) willsend a notification to the LSR-Dbe added toinitiatetheswitchover. The assumption is thatMP LSP ifour upstream LSR-U has state for the FEC-A andithas received a notification from its upstream router, thendid not already exist. If thisLSRMBB LSP has an active accepting element or node Z isforwarding packets for this FEC-A and it can sendthe root of the MBB LSP a MBB notificationback to initiate the switchover. You could say there<X, Y, L2)> isan explicit notificationsend totell the LSRnode N2. If node Z has an inactive accepting element itbecame part ofmarks thetree identified by FEC-A. LSR-D can be in 3 different states. 1. There noForwarding stateforas <X, Y, F'(N2, L2)>. 8.4.5. Receiving agiven FEC-A. 2. State for FEC-ANotification with MBB status code Suppose node Z receives a MBB Notification <X, Y, L> from N. If node Z hasjust been created and is waiting for notification. 3. Statestate forFEC-A existsMBB LSP <X, Y> andnotificationan inactive accepting element iA(N, L) that matches with N and L, we activate this accepting element and install label L in the label forwarding database. If an other active accepting wasreceived. Suppose LSR-D sends apresent it will be removed from the labelmappingforwarding database. If this MBB LSP <X, Y> also has Forwarding states marked forFEC-A to LSR-U. LSR-U must only reply with a notificationsending MBB Notifications, like <X, Y, F'(N2, L2)>, MBB Notifications are send toLSR-D if it is in state #3 as described above.these downstream LSRs. IfLSR-Unode Z receives a MBB Notification for an accepting element that isin state 1not inactive or2, it should remember it has received a label mapping from LSR-D whichdoes not match the Label value and Neighbor address, the MBB notification iswaitingignored. 8.4.6. Node operation for MP2MP LSPs The procedures described above apply to the downstream path of anotification. As soonMP2MP LSP. The upstream path of the MP2MP is setup asLSR-U receivednormal without including anotification from its upstream LSR it can move to state #3 and trigger notificationsMBB Status code. If the MBB procedures apply toitsa MP2MP downstreamLSR's that requested it. More details will be addedFEC element, the upstream path to a node N is only installed in thenext revisionlabel forwarding database if node N is part of the active accepting element. If node N is part of an inactive accepting element, thedraft. 8.upstream path is installed when this inactive accepting element is activated. 9. Security Considerations The same security considerations apply as for the base LDP specification, as described in [1].9.10. IANA considerations This document creates a new name space (the LDP MP Opaque Value Element type) that is to be managed byIANA. Also, thisIANA, and the allocation of the value 1 for the type of Generic LSP Identifier. This document requires allocation of three new LDP FECelementElement types: 1. the P2MPtype,FEC type - requested value 0x04 2. the MP2MP-upandFEC type - requested value 0x05 3. the MP2MP-downtypes. 10.FEC type - requested value 0x06 This document requires the assignment of three new code points for three new Capability Parameter TLVs, corresponding to the advertisement of the P2MP, MP2MP and MBB capabilities. The values requested are: P2MP Capability Parameter - requested value 0x0508 MP2MP Capability Parameter - requested value 0x0509 MBB Capability Parameter - requested value 0x050A This document requires the assignment of a LDP Status TLV code to indicate a LDP MP Status TLV is following in the Notification message. The value requested is: LDP MP status - requested value 0x0000002C This document requires the assigment of a new code point for a LDP MP Status TLV. The value requested is: LDP MP Status TLV Type - requested value 0x096D This document creates a new name space (the LDP MP Status Value Element type) that is to be managed by IANA, and the allocation of the value 1 for the type of MBB Status. 11. Acknowledgments The authors would like to thank the following individuals for their review and contribution: Nischal Sheth, Yakov Rekhter, Rahul Aggarwal, Arjen Boers, Eric Rosen, Nidhi Bhaskar, ToerlessEckert andEckert, GeorgeSwallow. 11.Swallow, Jin Lizhong and Vanson Lim. 12. Contributing authors Below is a list of the contributing authors in alphabetical order: Shane Amante Level 3 Communications, LLC 1025 Eldorado Blvd Broomfield, CO 80021 US Email: Shane.Amante@Level3.com Luyuan FangAT&T 200 Laurel Avenue, Room C2-3B35 Middletown, NJ 07748Cisco Systems 300 Beaver Brook Road Boxborough, MA 01719 US Email:luyuanfang@att.comlufang@cisco.com Hitoshi Fukuda NTT Communications Corporation 1-1-6, Uchisaiwai-cho, Chiyoda-ku Tokyo 100-8019, Japan Email: hitoshi.fukuda@ntt.com Yuji Kamite NTT Communications Corporation Tokyo Opera City Tower 3-20-2 Nishi Shinjuku, Shinjuku-ku, Tokyo 163-1421, Japan Email: y.kamite@ntt.com Kireeti Kompella Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94089 US Email: kireeti@juniper.net Ina Minei Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94089 US Email: ina@juniper.net Jean-Louis Le Roux France Telecom 2, avenue Pierre-Marzin Lannion, Cedex 22307 France Email: jeanlouis.leroux@francetelecom.com Bob Thomas Cisco Systems, Inc. 300 Beaver Brook Road Boxborough, MA, 01719 E-mail: rhthomas@cisco.com Lei Wang Telenor Snaroyveien 30 Fornebu 1331 Norway Email: lei.wang@telenor.com IJsbrand Wijnands Cisco Systems, Inc. De kleetlaan 6a 1831 Diegem Belgium E-mail: ice@cisco.com12.13. References12.1.13.1. Normative References [1] Andersson, L., Doolan, P., Feldman, N., Fredette, A., and B. Thomas, "LDP Specification", RFC 3036, January 2001. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [3] Reynolds,J. and J. Postel,J., "AssignedNumbers",Numbers: RFC 1700 is Replaced by an On- line Database", RFC1700, October 1994.3232, January 2002. [4]Roux, J., "Requirements for point-to-multipoint extensions to the Label Distribution Protocol", draft-leroux-mpls-mp-ldp-reqs-03 (work in progress), February 2006. [5]Aggarwal, R., "MPLS Upstream Label Assignment and Context Specific Label Space",draft-raggarwa-mpls-upstream-label-01draft-ietf-mpls-upstream-label-02 (work in progress),October 2005. [6]March 2007. [5] Aggarwal, R. and J. Roux, "MPLS Upstream Label Assignment forRSVP-TE andLDP",draft-raggarwa-mpls-rsvp-ldp-upstream-00draft-ietf-mpls-ldp-upstream-01 (work in progress),July 2005. 12.2.March 2007. [6] Thomas, B., "LDP Capabilities", draft-ietf-mpls-ldp-capabilities-00 (work in progress), May 2007. 13.2. Informative References [7] Andersson, L. and E. Rosen, "Framework for Layer 2 Virtual Private Networks (L2VPNs)",draft-ietf-l2vpn-l2-framework-05 (work in progress), June 2004.RFC 4664, September 2006. [8] Aggarwal, R., Papadimitriou, D., and S. Yasukawa, "Extensions toRSVP-TEResource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TELSPs", draft-ietf-mpls-rsvp-te-p2mp-06Label Switched Paths (LSPs)", RFC 4875, May 2007. [9] Roux, J., "Requirements for Point-To-Multipoint Extensions to the Label Distribution Protocol", draft-ietf-mpls-mp-ldp-reqs-02 (work in progress),August 2006. [9]March 2007. [10] Rosen, E. and R. Aggarwal, "Multicast in MPLS/BGP IP VPNs",draft-ietf-l3vpn-2547bis-mcast-02draft-ietf-l3vpn-2547bis-mcast-00 (work in progress), June2006.2005. Authors' Addresses Ina Minei Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94089 US Email: ina@juniper.net Kireeti Kompella Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94089 US Email: kireeti@juniper.net IJsbrand Wijnands Cisco Systems, Inc. De kleetlaan 6a Diegem 1831 Belgium Email: ice@cisco.com Bob Thomas Cisco Systems, Inc. 300 Beaver Brook Road Boxborough 01719 US Email: rhthomas@cisco.com Full Copyright Statement Copyright (C) TheInternet Society (2006).IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNETSOCIETYSOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).