Internet DRAFT - draft-chung-mpls-ldp-multicasting

draft-chung-mpls-ldp-multicasting




        Network Working Group                                Jong-Moon Chung 
        Internet Draft                                       (Oklahoma State 
        Expiration Date: August 2002                             University) 
                                                                 Mauricio A. 
                                                              Subieta Benito 
                                                             (Oklahoma State 
                                                                 University) 
                                                             Harleen Chhabra 
                                                               (Exxon Mobil) 
                                                             Grace Yoona Cho 
                                                             (Oklahoma State 
                                                                 University) 
                                                               Pravin Rasiah 
                                                             (Oklahoma State 
                                                                 University) 
                                                               February 2002 
      
      
                    LDP Extensions for MPLS Multicasting Services 
         
                       draft-chung-mpls-ldp-multicasting-00.txt 
         
         
         
     Status of this Memo 
      
        This document is an Internet-Draft and is in full conformance 
        with all provisions of Section 10 of RFC2026. 
         
         
        Internet-Drafts are working documents of the Internet Engineering 
        Task Force (IETF), its areas, and its working groups.  Note that      
        other groups may also distribute working documents as Internet-
        Drafts. 
         
        Internet-Drafts are draft documents valid for a maximum of six 
        months and may be updated, replaced, or obsoleted by other documents 
        at any time.  It is inappropriate to use Internet-Drafts as 
        reference material or to cite them other than as "work in progress." 
         
        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. 
         
     Abstract  
         
        This paper proposes the extensions necessary for the Label 
        Distribution Protocol (LDP) to support MPLS network multicasting 
        functionalities. The IP multicasting requirements based on the 
        protocol procedural format (e.g., PIM-DM, PIM-SM, DVMRP, MOSPF, CBT, 
        etc.) will be fully embedded into the LDP signaling procedures to 
        enable multicasting operations through pure MPLS networking 
        procedures alone.   
      
          
        Jong-Moon Chung, et al.                                    Page <1> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
     Table of Contents 
         
        1.     Introduction................................................3 
        2.     Extensions to LDP for Multicasting in MPLS Networks.........4 
        2.1.   Multicasting Message........................................4 
        2.1.1. Join Command................................................6 
        2.1.2. Leave Command...............................................6 
        2.1.3. Destroy Command.............................................6 
        2.2.   Hello Message Extensions....................................7 
        2.3.   Notification Message Extensions.............................7 
        2.4.   Multicast Extensions of the Label Request Message...........7 
        2.5.   Multicast Extensions of Label Mapping Message...............8 
        2.6.   MPLS Multicast Forwarding Table.............................8 
        3.     Multicasting Tree Operations................................9 
        3.1.   Joining Mechanisms..........................................9 
        3.2.   Multicasting Tree Construction.............................12 
        3.2.1. Construction of a LDP Multicasting Distribution Tree.......12 
        3.2.2. Root-Initiated Tree Calculation............................13 
        3.2.2.1.Calculation based on IGMP information.....................13 
        3.2.3. Leaf-Initiated Tree Calculation............................14 
        3.2.4. Dynamic Updates to the Tree................................15 
        4.     Conclusions................................................16 
        5.     References.................................................16 
        6.     AuthorsÆ Addresses.........................................17 
      
     Abbreviations 
         
        DS:        Differentiated Services 
        DVMRP:      Distance Vector Multicast Routing Protocol 
        FEC:        Forwarding Equivalence Class  
        GoS:        Grade of Service 
        IGMP:       Internet Group Management Protocol  
        LDP:        Label Distribution Protocol 
        LSP:        Label Switching Path 
        LSR-RP:     Label Switching Router-Rendezvous Point 
        MIDB:       Multicast Information Database 
        MOSPF:      Multicast Open Shortest Path First 
        MPLS:       Multiprotocol Label Switching 
        PIM-DM:     Protocol Independent Multicasting-Dense Mode 
        PIM-SM:     Protocol Independent Multicasting-Sparse Mode 
        QoS:        Quality of Service 
        RPF:        Reverse Path Forwarding 
         
         
         
          
        Jong-Moon Chung, et al.  February 2002                    Page <2> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
      
     1.     Introduction 
        
        Multicasting can be viewed as a controlled or restricted application 
        of broadcasting, a point-to-multipoint mechanism that allows several 
        interested parties, namely hosts and/or routers to receive packets 
        of information at the same time. This process requires not only a 
        connection-oriented mechanism with high reliability and quality of 
        service (QoS) support, but also a method of seamlessly communicating 
        from one to many points.  
           
        In Multiprotocol Label Switching (MPLS) networks, a signaling 
        protocol that provides connection-oriented, reliable, differentiated 
        services, and QoS is the Label Distribution Protocol (LDP).  LDP 
        sets up label-distributed paths to support data transfer in MPLS 
        networks. LDP is a hard-state, scalable, nonproprietary traffic 
        engineering signaling protocol that allows the creation, management, 
        and teardown of Label Switched Paths (LSPs) in MPLS networks [10].  
         
        RFC 3036 notes that LDP support for multicast is not specified and is to be 
        addressed in future studies [1]. Based on this, several extensions to the LDP 
        signaling protocol are proposed in this document to support 
        multicasting services.  These extensions produce a mechanism for 
        creating root-initiated and leaf-initiated trees for multicasting 
        through LDP. The proposed work agrees with the framework concepts of 
        [13] and presents operational procedures of multicasting through 
        extensions to LDP. The basic concept is to enable MPLS networking 
        with all the functionalities and services required for multicasting, 
        where the addressing and management topology of current IP 
        multicasting users and groups will be done by the Internet Group 
        Management Protocol (IGMP)[8][9], thereby keeping the management and 
        addressing the same, but enabling the Traffic Engineering (TE) 
        advantages of MPLS to exist over the multicasting network 
        connections.     
         
        The protocol fields that trigger the multicasting operations of LDP 
        as well as the procedures for creating the multicasting trees, and a 
        means for incorporating tree calculations into LDP are provided in 
        this document. Additionally, this document enables the multicasting 
        functions of LDP to be independent of traditional IP-based multicast 
        routing protocols such as DVMRP, MOSPF, PIM, etc. 
         
           
        For the extensions to the LDP specifications defined in RFC 3036, 
        the common multicasting functions that the IP multicast routing 
        protocols offer, such as tree formations with Join, Leave, Destroy, 
        and RPF messages should directly be implemented in LDP to enable 
        MPLS based multicasting. This document also addresses the issues of 
        aggregating LSPs for multicasting, handling and storing multicasting 
        data in a decentralized fashion, piggybacking, and label allocation 
        [13]. 
          
          
        Jong-Moon Chung, et al.  February 2002                    Page <3> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
     2.     Extensions to LDP for Multicasting in MPLS Networks 
         
     2.1.   Multicasting Message  
      
        The Multicasting message is used to conduct a Join, Leave, or 
        Destroy command of the multicasting tree. When a leaf-initiated Join 
        operation must be performed, a Multicast message is sent (by means 
        of a unicast transmission) to a LSR of the existing multicast tree 
        to create a new LSP connection to the leaf. The Leave command is 
        issued by a LSR to its upstream LSR when it finds that no members 
        receiving multicasting traffic is connected to it. The Destroy 
        command is initiated when the source stops multicasting and it wants 
        to tear down the tree. The above commands (i.e., Join, Leave, and 
        Destroy) can be implemented by using the Multicast Message.   
      
         
        The Multicast message has the following 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 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |0| Message Type: Multicasting|       Message Length          | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |                         Message ID                          | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |                      Multicasting TLV                       | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |                     Tree TLV (Optional)                     | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |                        Optional TVLs                        | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
         
        The fields contained in the Multicast message are explained as 
        follows: 
           
        Message Type 
          This field indicates that this message type is the Multicasting 
          message. The coding for this message takes the standard 
          identification format as indicated in LDP. The specific 
          identification number is to be announced. 
         
        Message length 
          Indicates the length of the Multicast message. 
         
        Message ID 
          Indicates the identification of each message. 
         
        Multicasting TLV 
          The multicast command TLV includes three main command types, which 
          are Join (0x0001), Leave (0x0002), and Destroy (0x0003). 
          
         
         
         
          
        Jong-Moon Chung, et al.  February 2002                    Page <4> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        The Multicasting TLV has the following 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 
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
          |0|0|       Multicasting      |            Length             | 
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+             
          |V|       Reserved            |        Multicast ID           | 
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
          |                                                             | 
          ~         Multicasting IP Source address (4 or 16 bytes)      ~ 
          |                                                             | 
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
          |                                                             | 
          ~         Multicasting IP Group address (4 or 16 bytes)       ~ 
          |                                                             | 
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
         
         
        The Multicasting TLV can be used in other messages when needed. The 
        fields contained in the Multicasting TLV message are explained as 
        follows: 
         
        V 
          Identifies the IP protocol version. A value of zero indicates IPv4 
          and value of one indicates IPv6.  
         
        Multicast ID 
          A 16-bit identifier used in the session that remains constant over 
          the life of the tunnel. This identifies different types of service 
          sessions that are used over the same multicasting tree. 
         
        Multicasting IP Source Address 
          IPv4 (4 bytes) or IPv6 (16 bytes) address of the source node of 
          the multicasting tree. 
         
        Multicasting IP Group Address 
          IPv4 (4 bytes) or IPv6 (16 bytes) multicasting group address used 
          in the session that remains constant over the life of a 
          multicasting tree connection. 
         
        The three command types that can be operated by the multicasting 
        message (Join, Leave, and Destroy commands) are explained below in 
        sections 2.1.1, 2.1.2, and 2.1.3. 
         
        The Tree TLV is used to provide a list of selected multicasting tree 
        Label Switching Router Rendezvous Point (LSR-RP) addresses that are 
        listed for identification purposes (as in the Hello messages) or for 
        selected path traversing (as in the Notification messages). In this 
        document, the LSR-RP is defined as a LSR that is functioning (or may 
        function) as a multicasting terminal to other LSRs or hosts that 
        will receive multicasting traffic through itself. A LSR-RP is any 
        intermediate LSR that has two or more branches that forward traffic 
        downstream or aggregate traffic upstream. 
          
        Jong-Moon Chung, et al.  February 2002                    Page <5> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
         
        The Tree TLV can be used in other LDP messages when needed. The Tree 
        TLV has the following 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 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           |0|0|         Tree            |            Length             | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+            
           |V|       Reserved            |        Multicast ID           | 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           ~                IP Multicasting LSR-RP Address-1             ~ 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           ~                          . . . .                            ~ 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
           ~                IP Multicasting LSR-RP Address-N             ~ 
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
         
        V 
          Identifies the IP protocol version. A value of zero indicates IPv4 
          and value of one indicates IPv6.  
         
        IP Multicasting LSR-RP Address  
          IPv4 (4 bytes) or IPv6 (16 bytes) address of the LSR-RPs of the  
          multicasting tree. 
         
         
     2.1.1. Join Command 
      
        The Join command is initiated when a LSR has identified a 
        multicasting group that it wants to join in order to receive group 
        specific multicasting data. The joining mechanism is reviewed in 
        detail in section 3.1.   
         
     2.1.2. Leave Command 
      
        The Leave command allows members of the multicast group to detach 
        themselves from the group, stopping all information from the group 
        to reach the pruned member. For example, a member may decide to stop 
        participating in the group. In this case, a Leave command must be 
        initiated by the receiving LSR to the upstream LSR of the 
        multicasting tree to indicate the end of its participation. 
        Correspondingly, the upstream LSR will send a Leave command to the 
        root LSR such that the Multicast Information Database (MIDB) 
        information can be updated.  
      
     2.1.3. Destroy Command 
      
        The Destroy command is used when the label switched path created for 
        the multicasting group is no longer needed. This may result due to 
        the source not having any more data to transmit to the multicasting 
        group members. When the destroy procedure takes place, all branches 
        within the multicast tree are torn down to end all data flow for the 
          
        Jong-Moon Chung, et al.  February 2002                    Page <6> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        entire group. The Destroy command is issued through the Multicasting 
        message. 
         
        As the multicasting group is no longer needed, the root LSR sends a 
        Multicasting message with a Destroy command indication to its 
        directly connected LSRs, which will be forwarded to other downstream 
        LSRs. The receiving LSRs will identify this command and will 
        disconnect from its upstream LSR through label release procedures 
        [1]. This procedure continues until the Destroy command reaches the 
        last LSR of the tree, which then disconnects from their upstream 
        LSRs. 
         
     2.2.   Hello Message Extensions 
         
        The multicasting extensions to the Hello message include the 
        Multicasting TLV and the Tree TLV. The Multicasting TLV is an 
        optional TLV to the Hello message, which is used to inform the LSRs 
        of the multicasting source and group IP address of the multicasting 
        tree. The Tree TLV is also an optional TLV to the Hello message, 
        which provides a list of multicasting tree LSR-RP addresses that are 
        announced such that LSRs that are not part of the multicasting tree 
        can identify these LSR-RP addresses for future connection purposes.  
           
      
     2.3.   Notification Message Extensions 
         
        In order to provide advisory information of a significant event to a 
        LDP peer node, a LSR will issue a Notification message [1]. For 
        example, the outcome of processing a LDP message or the state of the 
        LDP session is informed using the Notification message. The 
        Notification message contains a Status TLV that encodes the 
        information and, on an optional basis, additional TLVs that provide 
        more information about the condition of the network connection.  
        The multicasting extensions to the Notification message include the 
        Multicasting TLV and the Tree TLV. Based on applications of 
        multicasting, Join and Leave messages require the root LSR to 
        respond to their request with either permission for connection to 
        the multicasting tree or requesting procedures to disconnect using 
        label release procedures. The multicasting extensions to the 
        Notification message serves this purposes of communication between 
        the root LSR and the LSR-RP that needs to conduct the connection or 
        disconnection establishments to or from the multicasting tree.  
         
         
     2.4.   Multicast Extensions of the Label Request Message 
      
        The message that allows the construction of the distribution tree is 
        the LDP Label Request message [1]. The extensions to the Label 
        Request message will include an optional Multicasting TLV for 
        multicasting applications of either responding to a Join command of 
        a multicasting message or when the multicasting tree wants a LSR to 
        join a multicasting tree. 
      
          
        Jong-Moon Chung, et al.  February 2002                    Page <7> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
     2.5.   Multicast Extensions of Label Mapping Message 
      
        The label mapping procedure operates as defined by [1] with the 
        option that there can be more than one outgoing label mapping for a 
        specific incoming interface. The format of the Label Mapping message 
        is also the same as defined in [1]. If necessary, a multicasting TLV 
        may be used as an option. More details of the Label Mapping message 
        are provided in the following sections. 
      
     2.6.   MPLS Multicast Forwarding Table 
      
        All the multicasting enabled LSRs should at least maintain the 
        label-mapping forwarding table. The contents of the table are 
        explained below. 
         
        Interface IP 
          The IP address of the interface on which multicasting traffic for 
          a particular multicasting group has to be forwarded to. 
         
        Multicasting Group IP 
          Specifies the multicast address of all multicasting groups that 
          are being serviced by the LSR. 
         
        Input Label and Output Label 
          Labels assigned to the incoming and the outgoing interfaces, 
          respectively. 
         
        Status 
          Defines whether that particular entry in the forwarding table is 
          pruned or active. 
         
        The information included for the control of multicasting procedures 
        in the MPLS Multicast Forwarding table is similar to the information 
        maintained by the DVMRP Forwarding Table [17].  
          
        Jong-Moon Chung, et al.  February 2002                    Page <8> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
     3.     Multicasting Tree Operations 
         
     3.1.   Joining Mechanisms 
      
        The Join command is initiated when a host wants to receive 
        multicasting traffic from the multicasting group. The LSR on whose 
        interface the host resides initiates the Join command. 
          
        There are three ways in which a host can join the multicasting 
        group: 
         
             1. Source initiated mechanism:  
                 
                1.a. Creating a new multicasting tree: When the root LSR is 
                initially establishing the tree, a Label Request message 
                with the multicasting TLV is sent to all LSRs that the root 
                LSR wants to use in establishing the multicasting tree. 
                 
                1.b. Adding on a LSR: The source initiated mechanism is 
                triggered when the multicasting tree wants to include a LSR 
                as a part of its multicasting tree. This provision has been 
                included such that the source can build on to the multicast 
                tree according to its necessity. The root LSR will send a 
                Notification message with multicasting extensions (i.e., 
                Multicasting TLV and Tree TLV) that contain the information 
                regarding the LSR-RP that has to connect the new LSR on to 
                the tree. The LSR-RP will then send a Label Request message 
                to the new LSR, which will be responded by a Label Mapping 
                message. The procedures presented in sections 3.2.1, 3.2.2, 
                and 3.2.3 will complete the join process. (See steps 1 
                through 5 in the diagram below) 
         
          
        Jong-Moon Chung, et al.  February 2002                    Page <9> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
                             Source initiated mechanism  
         
        +-----------+     +-----------+             
        |  Source   +-----+  Root LSR + 
        +-----------+     +-----+-----+                    
                                | 
            ------->+           |  |                         
                    |           |  | (1) Notification message                  
                    |           |  |                       
                    |           |  V 
                    |     +-----+-----+      +-----------+     +-----------+ 
                    |     |  LSR-RP   +------+   LSR     +-----+    LSR    |    
                    |     +-----+-----+      +-----------+     +-----------+ 
                    |           |   
                    |           |  |   
                    |           |  |                     
                    |           |  |                 
                    |           |  V  (2) Notification message                  
                    |           |   -------------->                                 
                    |     +-----+-----+      +-----------+     +-----------+ 
                    |     |  LSR-RP   +------+  LSR-RP   +-----+    LSR    | 
                    |     +-----------+      +-----------+     +-----------+ 
                    |                          (3) Label Request Message              
                    |                                   <-------- 
                    |                          (4) Label Mapping Message 
                    |                                   --------> 
                    V                          (5) Multicasting data   
                    +------------------------------------------->  
         
             2. Control driven mechanism: We assume the presence of a root 
                LSR that has information about every multicast group and its 
                tree nodes. When a particular host requests for multicasting 
                traffic from a particular group, the host will send a Join 
                command request to the upstream LSR. The Join messageÆs 
                Multicasting TLV may have all zero entries to the 
                multicasting source or/and group address, which indicates 
                that this is a request for multicasting tree information. 
                Either the root LSR or a LSR that has information of the 
                multicasting tree will send back a Notification message 
                (with multicasting extensions) that contain the information 
                regarding nodes in the receiverÆs vicinity that are nodes of 
                the multicasting distribution tree for that particular 
                multicasting group IP address. The multicasting information 
                obtained is used in the Multicasting messages and the 
                Multicasting TLV. The receiving LSR will then issue a 
                Multicasting message with a Join command requesting 
                connection to the multicasting tree. The procedures 
                presented in sections 3.2.1, 3.2.2, and 3.2.3 will complete 
                the join process. 
         
          
        Jong-Moon Chung, et al.  February 2002                   Page <10> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
                              Control driven mechanism 
         
                                              (2a) Join command*  
                                           <--------+    
        +-----------+     +-----------+             |  
        |  Source   +-----+  Root LSR +-----------+ | 
        +-----------+     +-----+-----+           | | 
             ---------+ (3)**|  |(2b)Join Command*| |   (1)Join Command 
                      |      V  |     <------     | |    <-----   
                      |   +-----+-----+      +----+------+     +-----------+ 
                      |   |  LSR-RP   +------+   LSR-RP  +-----+   LSR 1   |    
                      |   +-----+-----+      +-----------+     +-----------+ 
                      |         |     ---------> (4) Notification message          
                      |         |       (5) Label Request------->    
                      |         |                          
                      |         |       (6) Label Mapping<------- 
                      V         |        
                      +---------|--------------------------------->         
                                |    (7) Multicasting Data                      
                          +-----+-----+     +-----------+     +-----------+ 
                          |    LSR    +-----+    LSR    +-----+    LSR 2  | 
                          +-----------+     +-----------+     +-----------+ 
         
                                       * Either (2a) or (2b) will be used 
                                       ** Notification Message 
         
             3. Flooding mechanism: If the LSR trying to connect to the 
                distribution tree has no information about the multicasting 
                LSRs around it, flooding can be used to spread the Join 
                command. The Join messageÆs Multicasting TLV may have all 
                zero entries in the multicasting source or/and group 
                address, which indicate that this is a request for 
                multicasting tree information. The flooding procedure takes 
                place under the traffic engineering requirements. The root 
                LSR then processes the request and sends back a Notification 
                message (with multicasting extensions) that contain the 
                information regarding nodes in the receiverÆs vicinity that 
                are nodes of the multicasting distribution tree for that 
                particular multicasting group IP address. The receiving LSR 
                will then issue a Multicasting message with a Join command 
                to those nodes. The procedures presented in sections 3.2.1, 
                3.2.2, and 3.2.3 will complete the join process. 
              
        The Label Request message and Join command must include the IP 
        multicasting group and source IP addresses using the Multicasting 
        TLV. If the Join command is passed on from one LSR to the next LSR 
        upstream, the IP address of the intermediate LSRs may be added on to 
        the TREE TLV such that the path in which the tree is being formed 
        can be identified at the root LSR. 
         
                                           
          
        Jong-Moon Chung, et al.  February 2002                   Page <11> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
                                 Flooding mechanism 
         
                                              (2a) Join command*  
                                           <--------+    
        +-----------+     +-----------+             |    
        |  Source   +-----+  Root LSR +-----------+ |    
        +-----------+     +-----+-----+           | |     
               -------+ (3)**|  |(2b)Join command*| |   (1)Join command 
                      |      V  |     <------     | |    <-----   
                      |   +-----+-----+      +----+------+     +-----------+ 
                      |   |  LSR-RP   +------+   LSR-RP  +-----+   LSR 1   |    
                      |   +-----+-----+      +-----------+     +-----------+ 
                      |         |     --------->(4)Notification message          
                      |         |       (5) Label Request------->    
                      V         |       (6) Label Mapping<-------                   
                      +---------|---------------------------------->        
                                |       (7) Multicasting Data         
                                |                       
                          +-----+-----+     +-----------+     +-----------+ 
                          |    LSR    +-----+    LSR    +-----+    LSR 2  | 
                          +-----------+     +-----------+     +-----------+ 
         
                             * Flooding of both (2a) and (2b) will be used 
                             ** Notification Message 
         
         
        The Join command is sent on all the interfaces with traffic 
        parameters. If these traffic parameters cannot be met, then a 
        negotiation procedure of the traffic parameters takes place. 
         
     3.2.   Multicasting Tree Construction 
      
        Based on the LDP specification of RFC 3209 [1], each LSR in the 
        network will announce and learn the presence of each other in the 
        network by using LDP Hello messages. The discovery procedures 
        provide a mechanism to enable LSRs to indicate their presence in a 
        network by sending a Hello message periodically [1]. This message is 
        transmitted to the LDP port at the æall routers on this subnetÆ 
        group multicast address by means of a User Datagram Protocol (UDP) 
        packet [1]. Given the Hello procedure of LDP [1] and the 
        multicasting extensions of the Hello message (presented in section 
        2.2), this document will assume that each LSR knows of the other 
        LSRs in the MPLS network. 
         
     3.2.1. Construction of a LDP Multicasting Distribution Tree 
      
        In order to provide a mechanism for a point-to-multipoint LSP tree 
        to be constructed, the calculation of the tree must be done by a 
        mechanism that does not rely on external protocols or mechanisms. 
        The calculation of the tree must be done before any other mechanisms 
        for delivering data have been established. The tree can be 
        constructed based on two different contexts: root-initiated tree 
        calculation, and leaf-initiated tree calculation. The root-initiated 
        tree calculation should be used when a new source of multicasting 
          
        Jong-Moon Chung, et al.  February 2002                   Page <12> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        traffic is going to start delivering traffic to all the members of a 
        group. The leaf-initiated tree calculation is implemented when a new 
        member of a group wishes to receive the multicasting traffic, 
        implementing a request-driven scheme. 
         
        In addition, this document enables the multicasting functions of LDP 
        to be independent of traditional IP-based multicast routing 
        protocols, such as, DVMRP, MOSPF, PIM, etc. However, IGMP mechanisms 
        will be used to provide the functionalities for establishing and 
        maintaining multicasting group memberships. 
         
        Some key issues in constructing the tree are the Traffic Engineering 
        (TE) parameters that provide the Differentiated Services (DS) [10] 
        and Quality of Service (QoS) features. With these considerations, 
        the tree can be built based on:  
         
          1. Tree construction by means of source controlled routing, 
          2. Tree calculation by means of using traditional algorithms such 
          as the distance vector (DV) or link state (LS) algorithms that are 
          solely based on distance oriented metric values, or  
          3. Tree calculation by means of enhanced versions of the DV or LS 
          algorithms that employ both TE parameters and distance oriented 
          cost values as metric values in the tree calculations. 
         
      
     3.2.2. Root-Initiated Tree Calculation 
      
        The calculation and construction of the tree must be performed based 
        on the nodes/LSRs that have active members (hosts) that wish to 
        receive multicasting traffic. We assume that they have been either 
        pre-defined (by means of exchanging Hello messages) or they will be 
        joining dynamically following a random behavior.  
         
        To properly calculate the tree, an IGMP group definition table is 
        needed in order to proceed. This information is stored in a 
        Multicasting Information Database (MIDB) table located in all of the 
        participating LSRs. If the IGMP information is not available, then 
        the tree can be calculated by using the Hello message multicasting 
        extensions described in section 2.2.  
         
     3.2.2.1.  Calculation based on IGMP information 
      
        Based on the IGMP membership information for a specific group, the 
        calculation for the tree can be done quickly based on one of the 
        methods described in Section 3.2.1. For example, extensions to the 
        Bellman-Ford algorithm allow the construction of a distribution tree 
        to be based on the Traffic Engineering parameters and the 
        metric/cost criteria, rather than just the metric criteria. These 
        extensions allow the creation of a shortest path tree that meets TE 
        requirements from a specific source in order to deliver multicasting 
        traffic complying with the DS and QoS parameters. The definition of 
        these extensions is beyond the scope of this document. 
         
          
        Jong-Moon Chung, et al.  February 2002                   Page <13> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        With the information gathered and stored in the MIDB, the root LSR 
        constructs the distribution tree (step (1)). The root LSR will send 
        out Label Request messages to the LSRs of the multicasting tree to 
        establish a LSP tree connection (step (2)). This will be confirmed 
        by Label Mapping messages at each link of the multicasting tree (not 
        shown in the figure). After the tree connection is completed the 
        source starts multicasting traffic through the root LSR to the LSRs 
        in the multicasting tree composed by steps (3) through (7). 
         
                 Distribution Calculation based on MIDB information 
         
                          +-----------+ 
                          |    MIDB   | 
                          +-----+-----+ 
               (3)Multicasting  |  |(1)Multicasting Tree  |(2)Label Request 
                    Traffic     |  V  Database Information| message is sent  
        +-----------+ --> +-----+-----+                   V to all LSRs of 
        |  Source   +-----+  Root LSR |                     the tree. 
        +-----------+     +-----+-----+                         
                                |  |(4)Multicasting Traffic 
                                |  V    (5)               (6)   
                          +-----+-----+ --> +-----------+ --> +-----------+ 
                          |    LSR    +-----+    LSR    +-----+ Receiver 1|    
                          +-----+-----+     +-----------+     +-----------+ 
                                |  |(5) 
                                |  V    (6)               (7) 
                          +-----+-----+ --> +-----------+ --> +-----------+ 
                          |    LSR    +-----+    LSR    +-----+ Receiver 2|    
                          +-----------+     +-----------+     +-----------+ 
         
         
     3.2.3. Leaf-Initiated Tree Calculation 
      
        Since the distribution tree cannot be assumed static, a mechanism 
        that allows dynamic calculation of the trees is necessary. A tree is 
        normally recalculated when a node has to either join or leave the 
        tree issuing the corresponding recalculation messages. The proposed 
        messages to enable MPLS multicasting operations with LDP are defined 
        in the following sections. For the calculation of a tree, there must 
        be an existing multicasting source; hence the leaf-initiated tree 
        topology establishment is based on a predefined source already 
        multicasting. We assume that the mechanisms that provide 
        authentication and authorization services are provided for the MPLS 
        network, and that the verification takes place for every node that 
        requests multicasting traffic.  
         
        When a new host (i.e., leaf node) wants to become a part of the 
        multicasting tree, it will send a LDP Multicast message with a Join 
        command to one of the LSR-RPs. The receiving LSR-RP will send this 
        Join command (Multicasting message) to the root LSR. If the leaf 
        node is granted permission to join the multicasting tree the root 
        LSR will initiate a Notification message (with multicasting 
        extensions) towards a LSR-RP. This LSR-RP will be the selected LSR 
        to establish a connection to the new host, where this LSR-RP may or 
          
        Jong-Moon Chung, et al.  February 2002                   Page <14> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        may not be the LSR-RP that the new host originally contacted with 
        the Join command. The selected LSR-RP will then issue a Label 
        Request message to the new host to establish a new LSP. The 
        Notification message used by the root LSR may have the multicasting 
        extensions of section 2.3. 
         
                           Leaf-Initiated Tree Calculation 
                   
        +---------+   +-----------+                
        |  Source +---+  Root LSR +                
        +---------+   +-----+-----+                
           (3)Notification| |        ^ (2)Join    (1)Join Command  
            Message with  | |        |  Command    (Multicasting Message)   
            Multicasting  V |        +----         <------- 
            Extensions+-----+-----+     +-----------+     +------------+ 
                      |  LSR-RP   +-----+  LSR-RP   +-----+   New LSR  |    
                      +-----+-----+     +-----------+     +------------+ 
                            | ---------->          -------> 
                            |     (4)Notification  (5)Label Request Message 
                            |        Message       <------- 
                            |                      (6)Label Mapping Message 
                            | 
                      +-----+-----+     +-----------+      
                      |    LSR    +-----+    LSR    + 
                      +-----------+     +-----------+      
                    
         
      
     3.2.4. Dynamic Updates to the Tree 
      
        Given the dynamic nature of the trees, constant adjustments to the 
        tree have to be performed. When a LSR does not have any more 
        multicasting receivers, it will issue a Multicasting message with a 
        Leave command, which will be sent to the upstream LSR in order to 
        stop the multicast traffic. The upstream LSRs will perform the 
        following procedures: 
      
          1. If the LSR that is leaving is not the last LSR within the tree, 
             then the upstream LSR will send a Leave command to its upstream 
             LSR-RP, where this LSR-RP will then issue a Leave command to 
             the root LSR. The root LSR can recalculate the tree should it 
             be necessary; otherwise the root LSR will use this information 
             to request an update of the label mapping tables of the LSRs 
             along the multicasting tree. The information in the MIDB will 
             also be updated. The root LSR will send a Notification message 
             (with Multicasting extensions) to the LSR-RP. Following this, 
             the LDP standard label release procedures will be conducted 
             over the connection between the LSR-RP and the leaving LSR [1]. 
          2. If a tree recalculation is conducted, the root LSR will trigger 
             a re-calculation procedure via a Notification message so all 
             the LSRs can use the updated LSR-RP information in the MIDB. 
          3. If the LSR that is leaving is the last leaf LSR on the 
             multicasting tree, then the upstream LSR will in turn issue a 
             Multicasting message with a Leave command to the root LSR. The 
          
        Jong-Moon Chung, et al.  February 2002                   Page <15> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
             MIDB table will then be updated. The root LSR in turn (after 
             receiving the message and recalculating the tree) will trigger 
             a recalculation procedure via a Notification message so all the 
             nodes can use the updated information in the MIDB. 
          4. If the leaving LSR is the last one connected to the root LSR 
             (that is, the root LSR will be the last node on the tree), then 
             the Label Release procedures will be conducted to disconnect 
             the LSR. A destroy procedure will be used only when necessary, 
             otherwise, the multicasting session will be kept alive, such 
             that new users can establish a new multicasting tree if 
             necessary. 
          5. In the event that the source has no more multicast content to 
             multicast, it will issue a Multicasting message with a Destroy 
             command that will notify all the LSRs in the tree that the 
             label mappings have to be released, and all the multicasting 
             traffic forwarding should be stopped. This will also trigger a 
             purge procedure within the MIDB, clearing all the entries for 
             the specific multicasting group. 
      
     4.     Conclusions 
      
        Achieving multicasting based on traffic engineering constraints is 
        feasible by means of extending the capabilities of the LDP. By using 
        the LDP TE constraints, the necessary guarantees for end-to-end 
        traffic delivery can be provided, allowing service providers or 
        carrier companies to ensure customer data transmission to be 
        effective and allow service agreements to be maintained. 
         
        The use of the multicasting extensions to LDP dramatically reduces 
        the overhead generated in comparison to using multicasting routing 
        protocols as middleware between the IP and data link layers. 
        Specifically, by including the Multicasting TLV, and having the 
        Join, Leave, and Destroy commands as part of the Multicasting 
        message in conjunction with IGMP capabilities, the complete 
        construction of a multicasting distribution tree using only IP 
        multicast addressing information is possible.  
         
     5.     References 
      
        [1] Andersson, L., Doolan, P., Feldman, N., Fredette, A., and 
            Thomas, B., ææLDP Specifications,ÆÆ RFC 3036, Jan. 2001. 
        [2] Bradner, S., ææThe Internet Standards Process,ÆÆ RFC 2026, Oct. 
            1996. 
        [3] Awduche, D., Malcolm, J., Agogbua, J., OÆDell, M., and McManus, 
            J., ææRequirements for Traffic Engineering Over MPLSÆÆ, RFC 2702, 
            Sept. 1999. 
        [4] Chung, J.-M., (Invited Paper) ææAnalysis of MPLS Traffic 
            EngineeringÆÆ, in Proc. IEEE Midwest Symposium on Circuits and 
            Systems 2000 (MWSCASÆ00), East Lansing, Michigan, USA,  Aug. 8-
            11, 2000. 
        [5] Chung, J. -M., Marroun, E., Sandhu, H., and Kim, S.-C., ææVoIP 
            over MPLS Networking Requirements.ÆÆ in Proc. IEEE International 
            Conference on Networking 2001 (ICNÆ01), Colmar, France, July 9-
            13, 2001. 
          
        Jong-Moon Chung, et al.  February 2002                   Page <16> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        [6] Chung, J.-M., Subieta Benito, M. A., Chhabra, H., Cho, G. Y., 
            Rasiah, P., and Soo, H. M., ææRSVP Extensions for MPLS 
            Multicasting Services,ÆÆ submitted, IEEE Network.  
        [7] Chung, J.-M., Subieta Benito, M. A., Chhabra, H., Cho, G. Y., 
            and Rasiah, P., ææLDP Extensions for MPLS Multicasting Services,ÆÆ 
            submitted, IEEE Network. 
        [8] Deering, S., ææHost Extensions for IP Multicasting,ÆÆ RFC 1112, 
            August 1989. 
        [9] Fenner, W., ææInternet Group Management Protocol, Version 2,ÆÆ RFC 
            2236, Nov. 1997. 
        [10] Jamoussi, B., Aboul-Magd, O., Ashwood-Smith, P., Hellstrand, 
            F., Sundell, K., Andersson, L., Callon, R., Dantu, R., Wu, L., 
            Doolan, P., Worster, T., Feldman, N., Fredette, A., Girish, M., 
            Gray, E., Halpern, J., Heinanen, J., Kilty, T. Malis, A., and 
            Vaananen, P., ææConstraint-Based LSP Setup using LDP,ÆÆ work in 
            progress. 
        [11] Miller, K. C., Multicast Networking and Applications. Addison-
            Wesley, 1999. 
        [12] Moy, J., ææMulticast Extensions to OSPF,ÆÆ RFC 1584, Mar. 1994. 
        [13] Ooms, D., Sales, R., Livens, W., Acharaya, A., Griffoul, F., 
            and Ansari, F., ææFramework for IP Multicast in MPLS,ÆÆ work in 
            progress. 
        [14] Rosen, E., Viswanathan, A., and Callon, R., ææMultiprotocol 
            Label Switching Architecture,ÆÆ RFC 3031, Jan. 2001.  
        [15] Thomas, B., and Gray, E., ææLDP Applicability,ÆÆ RFC 3037, Jan. 
            2001. 
        [16] Whitmann, R. and Zitterbart, M., Multicasting Communication 
            Protocols and Applications. Morgan Kaufman Publishers, 1999. 
        [17] Williamson, B., Developing Multicasting Networks. Vol. I, Cisco 
            Press, 2000. 
          
     6.   AuthorsÆ Addresses 
      
        Jong-Moon Chung 
        ACSEL & OCLNB Laboratories 
        School of Electrical & Computer Engineering 
        Oklahoma State University 
        Stillwater, OK 74078 
        Phone: (405)744-9924 
        Email: jchung_osu@lycos.com 
      
        Mauricio A. Subieta Benito 
        ACSEL & OCLNB Laboratories 
        School of Electrical & Computer Engineering 
        Oklahoma State University 
        Stillwater, OK 74078 
        Phone: (405)744-5215 
        Email: maurici@okstate.edu 
         
        Harleen Chhabra 
        Exxon Mobil  
        P.O. Box 4449 
        Houston, TX 77210-4449 
        Phone: (713)431-4106 
          
        Jong-Moon Chung, et al.  February 2002                   Page <17> 
     Internet Draft draft-ietf-mpls-ldp-multicasting-00.txt    August, 2002 
         
        Email: Harleen.Chhabra@exxonmobil.com 
      
        Grace Yoona Cho 
        ACSEL & OCLNB Laboratories 
        School of Electrical & Computer Engineering 
        Oklahoma State University 
        Stillwater, OK 74078 
        Phone: (405)744-5215 
        Email: chog@okstate.edu 
      
        Pravin Rasiah 
        ACSEL & OCLNB Laboratories 
        School of Electrical & Computer Engineering 
        Oklahoma State University 
        Stillwater, OK 74078 
        Phone: (405)744-2662 
        Email: pravinras10@lycos.com 
      
 
 
          
        Jong-Moon Chung, et al.  February 2002                   Page <18>