--- 1/draft-ietf-mpls-ldp-p2mp-12.txt 2011-04-22 12:15:50.000000000 +0200 +++ 2/draft-ietf-mpls-ldp-p2mp-13.txt 2011-04-22 12:15:50.000000000 +0200 @@ -1,65 +1,58 @@ Network Working Group I. Minei, Ed. Internet-Draft Juniper Networks Intended status: Standards Track IJ. Wijnands, Ed. -Expires: August 21, 2011 Cisco Systems, Inc. +Expires: October 24, 2011 Cisco Systems, Inc. K. Kompella Juniper Networks B. Thomas Cisco Systems, Inc. - February 17, 2011 + April 22, 2011 Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths - draft-ietf-mpls-ldp-p2mp-12 + draft-ietf-mpls-ldp-p2mp-13 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. These extensions are also referred - to as Multicast LDP (mLDP). mLDP constructs the P2MP or MP2MP LSPs + to as Multipoint LDP (mLDP). mLDP constructs the P2MP or MP2MP LSPs without interacting with or relying upon any other multicast tree construction protocol. 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 LSPs is outside the scope of this document. Status of this Memo - This Internet-Draft is submitted to IETF in full conformance with the + This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and 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. + Task Force (IETF). Note that other groups may also distribute + working documents as Internet-Drafts. The list of current Internet- + Drafts is at http://datatracker.ietf.org/drafts/current/. 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 on August 21, 2011. + This Internet-Draft will expire on October 24, 2011. Copyright Notice - Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of @@ -57,88 +50,88 @@ document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as - described in the BSD License. + described in the Simplified BSD License. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Table of Contents - 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 1.1. Conventions used in this document . . . . . . . . . . . . 4 - 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 - 2. Setting up P2MP LSPs with LDP . . . . . . . . . . . . . . . . 5 - 2.1. Support for P2MP LSP setup with LDP . . . . . . . . . . . 5 - 2.2. The P2MP FEC Element . . . . . . . . . . . . . . . . . . . 6 - 2.3. The LDP MP Opaque Value Element . . . . . . . . . . . . . 8 - 2.3.1. The Generic LSP Identifier . . . . . . . . . . . . . . 9 - 2.4. Using the P2MP FEC Element . . . . . . . . . . . . . . . . 10 - 2.4.1. Label Map . . . . . . . . . . . . . . . . . . . . . . 10 - 2.4.2. Label Withdraw . . . . . . . . . . . . . . . . . . . . 12 - 2.4.3. Upstream LSR change . . . . . . . . . . . . . . . . . 13 - 3. Setting up MP2MP LSPs with LDP . . . . . . . . . . . . . . . . 13 - 3.1. Support for MP2MP LSP setup with LDP . . . . . . . . . . . 14 - 3.2. The MP2MP downstream and upstream FEC Elements. . . . . . 15 - 3.3. Using the MP2MP FEC Elements . . . . . . . . . . . . . . . 15 - 3.3.1. MP2MP Label Map . . . . . . . . . . . . . . . . . . . 16 - 3.3.2. MP2MP Label Withdraw . . . . . . . . . . . . . . . . . 20 - 3.3.3. MP2MP Upstream LSR change . . . . . . . . . . . . . . 21 - 4. Micro-loops in MP LSPs . . . . . . . . . . . . . . . . . . . . 21 - 5. The LDP MP Status TLV . . . . . . . . . . . . . . . . . . . . 21 - 5.1. The LDP MP Status Value Element . . . . . . . . . . . . . 22 - 5.2. LDP Messages containing LDP MP Status messages . . . . . . 23 - 5.2.1. LDP MP Status sent in LDP notification messages . . . 23 - 5.2.2. LDP MP Status TLV in Label Mapping Message . . . . . . 23 - 6. Upstream label allocation on a LAN . . . . . . . . . . . . . . 24 - 6.1. LDP Multipoint-to-Multipoint on a LAN . . . . . . . . . . 24 - 6.1.1. MP2MP downstream forwarding . . . . . . . . . . . . . 24 - 6.1.2. MP2MP upstream forwarding . . . . . . . . . . . . . . 25 - 7. Root node redundancy . . . . . . . . . . . . . . . . . . . . . 25 - 7.1. Root node redundancy - procedures for P2MP LSPs . . . . . 26 - 7.2. Root node redundancy - procedures for MP2MP LSPs . . . . . 26 - 8. Make Before Break (MBB) . . . . . . . . . . . . . . . . . . . 27 - 8.1. MBB overview . . . . . . . . . . . . . . . . . . . . . . . 27 - 8.2. The MBB Status code . . . . . . . . . . . . . . . . . . . 28 - 8.3. The MBB capability . . . . . . . . . . . . . . . . . . . . 29 - 8.4. The MBB procedures . . . . . . . . . . . . . . . . . . . . 29 - 8.4.1. Terminology . . . . . . . . . . . . . . . . . . . . . 29 - 8.4.2. Accepting elements . . . . . . . . . . . . . . . . . . 30 - 8.4.3. Procedures for upstream LSR change . . . . . . . . . . 30 - 8.4.4. Receiving a Label Map with MBB status code . . . . . . 31 - 8.4.5. Receiving a Notification with MBB status code . . . . 31 - 8.4.6. Node operation for MP2MP LSPs . . . . . . . . . . . . 32 - 9. Typed Wildcard for mLDP FEC Element . . . . . . . . . . . . . 32 - 10. Security Considerations . . . . . . . . . . . . . . . . . . . 32 - 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 - 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 - 13. Contributing authors . . . . . . . . . . . . . . . . . . . . . 34 - 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36 - 14.1. Normative References . . . . . . . . . . . . . . . . . . . 36 - 14.2. Informative References . . . . . . . . . . . . . . . . . . 37 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 1.1. Conventions used in this document . . . . . . . . . . . . 5 + 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 + 2. Setting up P2MP LSPs with LDP . . . . . . . . . . . . . . . . 6 + 2.1. Support for P2MP LSP setup with LDP . . . . . . . . . . . 6 + 2.2. The P2MP FEC Element . . . . . . . . . . . . . . . . . . . 7 + 2.3. The LDP MP Opaque Value Element . . . . . . . . . . . . . 9 + 2.3.1. The Generic LSP Identifier . . . . . . . . . . . . . . 10 + 2.4. Using the P2MP FEC Element . . . . . . . . . . . . . . . . 11 + 2.4.1. Label Map . . . . . . . . . . . . . . . . . . . . . . 11 + 2.4.2. Label Withdraw . . . . . . . . . . . . . . . . . . . . 13 + 2.4.3. Upstream LSR change . . . . . . . . . . . . . . . . . 14 + 3. Setting up MP2MP LSPs with LDP . . . . . . . . . . . . . . . . 15 + 3.1. Support for MP2MP LSP setup with LDP . . . . . . . . . . . 15 + 3.2. The MP2MP downstream and upstream FEC Elements. . . . . . 16 + 3.3. Using the MP2MP FEC Elements . . . . . . . . . . . . . . . 16 + 3.3.1. MP2MP Label Map . . . . . . . . . . . . . . . . . . . 18 + 3.3.2. MP2MP Label Withdraw . . . . . . . . . . . . . . . . . 21 + 3.3.3. MP2MP Upstream LSR change . . . . . . . . . . . . . . 22 + 4. Micro-loops in MP LSPs . . . . . . . . . . . . . . . . . . . . 22 + 5. The LDP MP Status TLV . . . . . . . . . . . . . . . . . . . . 22 + 5.1. The LDP MP Status Value Element . . . . . . . . . . . . . 23 + 5.2. LDP Messages containing LDP MP Status messages . . . . . . 24 + 5.2.1. LDP MP Status sent in LDP notification messages . . . 24 + 5.2.2. LDP MP Status TLV in Label Mapping Message . . . . . . 24 + 6. Upstream label allocation on a LAN . . . . . . . . . . . . . . 25 + 6.1. LDP Multipoint-to-Multipoint on a LAN . . . . . . . . . . 25 + 6.1.1. MP2MP downstream forwarding . . . . . . . . . . . . . 25 + 6.1.2. MP2MP upstream forwarding . . . . . . . . . . . . . . 26 + 7. Root node redundancy . . . . . . . . . . . . . . . . . . . . . 26 + 7.1. Root node redundancy - procedures for P2MP LSPs . . . . . 27 + 7.2. Root node redundancy - procedures for MP2MP LSPs . . . . . 27 + 8. Make Before Break (MBB) . . . . . . . . . . . . . . . . . . . 28 + 8.1. MBB overview . . . . . . . . . . . . . . . . . . . . . . . 28 + 8.2. The MBB Status code . . . . . . . . . . . . . . . . . . . 29 + 8.3. The MBB capability . . . . . . . . . . . . . . . . . . . . 30 + 8.4. The MBB procedures . . . . . . . . . . . . . . . . . . . . 30 + 8.4.1. Terminology . . . . . . . . . . . . . . . . . . . . . 30 + 8.4.2. Accepting elements . . . . . . . . . . . . . . . . . . 31 + 8.4.3. Procedures for upstream LSR change . . . . . . . . . . 31 + 8.4.4. Receiving a Label Map with MBB status code . . . . . . 32 + 8.4.5. Receiving a Notification with MBB status code . . . . 32 + 8.4.6. Node operation for MP2MP LSPs . . . . . . . . . . . . 33 + 9. Typed Wildcard for mLDP FEC Element . . . . . . . . . . . . . 33 + 10. Security Considerations . . . . . . . . . . . . . . . . . . . 33 + 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 + 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 + 13. Contributing authors . . . . . . . . . . . . . . . . . . . . . 35 + 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 14.1. Normative References . . . . . . . . . . . . . . . . . . . 37 + 14.2. Informative References . . . . . . . . . . . . . . . . . . 38 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 38 1. Introduction The LDP protocol is described in [RFC5036]. It defines mechanisms for setting up point-to-point (P2P) and multipoint-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 @@ -164,21 +157,21 @@ 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 [RFC2119]. 1.2. Terminology Some of the following terminology is taken from [I-D.ietf-mpls-mp-ldp-reqs]. - mLDP: Multicast extensions for LDP. + mLDP: Multipoint extensions for LDP. 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 nodes, such that traffic @@ -548,21 +541,24 @@ state of L'. Then the forwarding state for L is deleted and the forwarding state for L' is installed. In addition Z MUST send a Label Map to U' and send a Label Withdraw to U. Note, if there was a downstream mapping from U that was not installed in the forwarding due to Section 2.4.1.4 it can now be installed. While changing the upstream LSR the following must be taken into consideration. If L' is added before L is removed, there is a potential risk of packet duplication, and/or the creation of a transient dataplane forwarding loop. If L is removed before L' is - added, packet loss may result. + added, packet loss may result. Ideally the change from L to L' is + done atomically such that no packet loss or duplication occurs. If + that is not possible, the RECOMMENDED default behavior is to remove L + before adding L'. 3. Setting up MP2MP LSPs with LDP An 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 leaf LSRs acting equally as Ingress or Egress LSR. A leaf node participates in the setup of an MP2MP LSP by establishing both a downstream LSP, which is much like a P2MP LSP from the root, and an upstream LSP which is used to send traffic toward the root and other leaf nodes. Transit nodes support the setup by propagating the upstream and