RSVP Signaled Point-to-Multipoint LSPs

This chapter provides information about RSVP signaled point-to-multipoint LSPs.

Topics in this chapter include:

Applicability

This chapter was originally written for SR OS Release 7.0.R5, but the CLI in the current edition corresponds to SR OS Release 16.0.R3.

Overview

Point-to-MultiPoint (P2MP) Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) allow the source of multicast traffic to forward packets to one or many multicast receivers over a network without requiring a multicast protocol, such as Protocol Independent Multicast (PIM), to be configured in the network. A P2MP LSP tree is established in the control plane, and the path consists of a head-end node, one or many branch and bud nodes, and the leaf nodes. A bud node combines the roles of branch node and leaf node (for different source-to-leaf LSPs). Packets injected by the head-end node are replicated in the data plane at the branching nodes before they are delivered to the leaf nodes.

Similar to point-to-point (P2P) LSPs, also P2MP LSPs are unidirectional, originating on a head-end node (the ingress LER) and terminating on one or more leaf nodes (the egress LERs). Resource Reservation Protocol (RSVP) is used as signaling protocol. A P2MP LSP is modeled as a set of root-to-leaf sub LSPs (Source-to-Leaf: S2L). Each S2L is modeled as a point-to-point LSP in the control plane. This means that each S2L has its own PATH/RESV messages. This is called the de-aggregated method.

The forwarding of multicast packets to the LSP tree was initially based on static multicast routes, and has evolved to BGP-based VPN routes afterward (but the latter is beyond the scope of this chapter). In this example, forwarding multicast packets is done over P2MP RSVP LSPs in the base router instance.

RSVP signaled P2MP LSPs can have fast reroute (FRR) enabled, the facility method (one-to-many) with link protection is supported.

P2MP Example Topology shows the P2MP example topology with seven PEs. The multicast source is connected to PE-1, multicast client 1 is attached to PE-7, and multicast client 2 to PE-6, as follows:

Figure 1. P2MP Example Topology

Configuration

The following sections describe the tasks which must be performed to configure RSVP signaled point-to-multipoint LSPs.

Configuring the IP/MPLS Network

The system addresses and Layer 3 interface addresses are configured according to P2MP Example Topology. An Interior Gateway Protocol (IGP) is needed to distribute routing information to all PEs. In this case, the IGP is OSPF using the backbone area 0.0.0.0. A configuration example is shown for PE-1. A similar configuration is needed on all PEs.

*A:PE-1# configure 
    router 
        interface "int-PE-1-PE-2"
            address 192.168.12.1/30
            port 1/1/2
        exit
        interface "int-PE-1-PE-3"
            address 192.168.13.1/30
            port 1/1/1
        exit
        interface "system"
            address 192.0.2.1/32
        exit
        ospf
            traffic-engineering
            area 0.0.0.0
                interface "system"
                exit
                interface "int-PE-1-PE-2"
                    interface-type point-to-point
                exit
                interface "int-PE-1-PE-3"
                    interface-type point-to-point
                exit
            exit
            no shutdown
        exit 

Because fast reroute (FRR) is enabled for the P2MP LSP, Traffic Engineering (TE) is needed on the IGP. By doing this, OSPF will generate opaque LSAs which are collected in a Traffic Engineering Database (TED), separate from the traditional OSPF topology database. OSPF interfaces are set up as type point-to-point to improve convergence, because no Designated Router/Backup Designated Router (DR/BDR) election process is done. However, convergence is out of the scope of this chapter.

To verify that OSPF neighbors are up (state Full), show router ospf neighbor is performed. To check if Layer 3 interface addresses/subnets are known on all PEs, show router route-table or show router fib iom-card-slot will display the content of the forwarding information base (FIB).

*A:PE-1# show router ospf neighbor 

===============================================================================
Rtr Base OSPFv2 Instance 0 Neighbors
===============================================================================
Interface-Name                   Rtr Id          State      Pri  RetxQ   TTL
   Area-Id
-------------------------------------------------------------------------------
int-PE-1-PE-2                    192.0.2.2       Full       1    0       32
   0.0.0.0
int-PE-1-PE-3                    192.0.2.3       Full       1    0       31
   0.0.0.0
-------------------------------------------------------------------------------
No. of Neighbors: 2
===============================================================================
*A:PE-1#
*A:PE-1# show router route-table 

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
       Next Hop[Interface Name]                                     Metric     
-------------------------------------------------------------------------------
192.0.2.1/32                                  Local   Local     00h01m19s  0
       system                                                       0
192.0.2.2/32                                  Remote  OSPF      00h00m48s  10
       192.168.12.2                                                 10
192.0.2.3/32                                  Remote  OSPF      00h00m37s  10
       192.168.13.2                                                 10
192.0.2.4/32                                  Remote  OSPF      00h00m29s  10
       192.168.12.2                                                 20
192.0.2.5/32                                  Remote  OSPF      00h00m24s  10
       192.168.13.2                                                 20
192.0.2.6/32                                  Remote  OSPF      00h00m14s  10
       192.168.12.2                                                 30
192.0.2.7/32                                  Remote  OSPF      00h00m07s  10
       192.168.13.2                                                 30
192.168.12.0/30                               Local   Local     00h01m19s  0
       int-PE-1-PE-2                                                0
192.168.13.0/30                               Local   Local     00h01m19s  0
       int-PE-1-PE-3                                                0
192.168.23.0/30                               Remote  OSPF      00h00m48s  10
       192.168.12.2                                                 20
192.168.24.0/30                               Remote  OSPF      00h00m48s  10
       192.168.12.2                                                 20
192.168.35.0/30                               Remote  OSPF      00h00m37s  10
       192.168.13.2                                                 20
192.168.45.0/30                               Remote  OSPF      00h00m29s  10
       192.168.12.2                                                 30
192.168.46.0/30                               Remote  OSPF      00h00m29s  10
       192.168.12.2                                                 30
192.168.57.0/30                               Remote  OSPF      00h00m24s  10
       192.168.13.2                                                 30
192.168.67.0/30                               Remote  OSPF      00h00m14s  10
       192.168.12.2                                                 40
-------------------------------------------------------------------------------
No. of Routes: 16
---snip---
*A:PE-1# show router fib 1 

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol 
    NextHop                                                                    
-------------------------------------------------------------------------------
192.0.2.1/32                                                LOCAL              
    192.0.2.1 (system) 
192.0.2.2/32                                                OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.0.2.3/32                                                OSPF
  192.168.13.2 (int-PE-1-PE-3) 
192.0.2.4/32                                                OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.0.2.5/32                                                OSPF
  192.168.13.2 (int-PE-1-PE-3) 
192.0.2.6/32                                                OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.0.2.7/32                                                OSPF
  192.168.13.2 (int-PE-1-PE-3) 
192.168.12.0/30                                             LOCAL
  192.168.12.0 (int-PE-1-PE-2) 
192.168.13.0/30                                             LOCAL
  192.168.13.0 (int-PE-1-PE-3) 
192.168.23.0/30                                             OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.168.24.0/30                                             OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.168.35.0/30                                             OSPF
  192.168.13.2 (int-PE-1-PE-3) 
192.168.45.0/30                                             OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.168.46.0/30                                             OSPF
  192.168.12.2 (int-PE-1-PE-2) 
192.168.57.0/30                                             OSPF
  192.168.13.2 (int-PE-1-PE-3) 
192.168.67.0/30                                             OSPF
  192.168.12.2 (int-PE-1-PE-2) 
-------------------------------------------------------------------------------
Total Entries : 16
-------------------------------------------------------------------------------
===============================================================================
*A:PE-1# 

On PE-1, the interface toward the multicast source is configured in an IES service. This could have been on a router interface instead.

*A:PE-1# configure 
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-1-MC-source" create
                address 192.168.9.1/30
                sap 1/1/3 create
                exit
            exit
            no shutdown
        exit

Similar IES services are configured on PE-7 and PE-6 for multicast client 1 and multicast client 2.

*A:PE-7# configure
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-7-MC-client1" create
                address 192.168.10.1/30
                sap 1/1/3 create
                exit
            exit
            no shutdown
        exit
*A:PE-6# configure
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-6-MC-client2" create
                address 192.168.11.1/30
                sap 1/1/3 create
                exit
            exit
            no shutdown
        exit

The next step in the process of setting up a P2MP LSP, is enabling the L3 interfaces in the MPLS and rsvp context on all involved PE nodes (from PE-1 to PE-7). By default, the system interface is put automatically within the MPLS/rsvp context. When an interface is put in the mpls context, SR OS copies it also in the rsvp context. Explicit enabling of MPLS and rsvp context is done by the no shutdown command. The MPLS/RSVP configuration for PE-1 is as follows:

*A:PE-1# configure
    router 
        mpls
            interface "int-PE-1-PE-2"
            exit
            interface "int-PE-1-PE-3"
            exit
            no shutdown
        exit
        rsvp no shutdown

Configuring P2MP RSVP LSP

P2MP LSP LSP-p2mp-1 with Bypass Tunnels shows the P2MP LSP LSP-p2mp-1 with facility backup.

Figure 2. P2MP LSP LSP-p2mp-1 with Bypass Tunnels

A P2MP LSP (LSP-p2mp-1) will be set up from PE-1 acting as head-end node and PE-6 and PE-7 acting as leaf nodes. Because FRR is enabled, Constrained Shortest Path First (CSPF) is enabled to do route calculations on the Traffic Engineering Database (TED). FRR method facility is used without node protection, facility stands for one-to-many, meaning that one bypass tunnel can protect a set of primary LSPs with similar backup constraints. When a link failure occurs on one of the active S2L paths, the Point of Local Repair (PLR) node will push an additional MPLS label on the incoming MPLS packet before sending it into the bypass tunnel downstream toward the Merge Point (MP) node.

In the first example, the IGP OSPF will do the path calculation to the two destinations PE-6 and PE-7. The intermediate hops of the LSP are dynamically assigned by OSPF best route selection, so the S2L paths follow the IGP least cost path. Therefore, an MPLS path called ‟loose” is configured without specifying any hops.

*A:PE-1# configure 
    router 
        mpls
            path "loose"
                no shutdown
            exit 

Creation of the P2MP LSP itself is done on the ingress LER or head-end node (PE-1 in the example) and can be seen in following CLI output. The name of the P2MP LSP is ‟LSP-p2mp-1”. A create-time keyword p2mp-lsp is added to the P2MP name to make a distinction in configuration between normal point-to-point LSPs and point-to-multipoint LSPs. A primary P2MP instance is initiated using the primary-p2mp-instance keyword accompanied with the P2MP instance name ‟p-LSP-p2mp-1”. Within this primary P2MP instance, the different S2Ls are defined using the s2l-path keyword. The same MPLS path name can be used for different S2Ls as long as the destination is different (to command).

*A:PE-1# configure 
    router 
        mpls
            lsp "LSP-p2mp-1" p2mp-lsp
                cspf
                fast-reroute facility
                    no node-protect
                exit
                primary-p2mp-instance "p-LSP-p2mp-1"
                    s2l-path "loose" to 192.0.2.6
                    exit
                    s2l-path "loose" to 192.0.2.7
                    exit
                exit
                no shutdown
            exit

On the head-end LER node of the P2MP LSP, several show commands can be used. A first set of show commands is used to verify the administrative and operational state of the P2MP LSP and its different S2L paths (including FRR bypass information). In this example, ”LSP-p2mp-1” P2MP LSP has two active S2L paths: one toward leaf node PE-6 and one to leaf node PE-7.

*A:PE-1# show router mpls p2mp-lsp
 
===============================================================================
MPLS P2MP LSPs (Originating)
===============================================================================
LSP Name                                            Tun     Fastfail  Adm  Opr
                                                    Id      Config         
-------------------------------------------------------------------------------
LSP-p2mp-1                                          1       Yes       Up   Up
-------------------------------------------------------------------------------
LSPs : 1
===============================================================================
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" detail
 
===============================================================================
MPLS P2MP LSPs (Originating) (Detail)
===============================================================================
Legend : 
    + - Inherited
===============================================================================
-------------------------------------------------------------------------------
Type : Originating 
-------------------------------------------------------------------------------
LSP Name   : LSP-p2mp-1
LSP Type        : P2mpLsp                   LSP Tunnel ID        : 1
LSP Index       : 1                         TTM Tunnel Id        : 1
From            : 192.0.2.1                 
Adm State       : Up                        Oper State           : Up
LSP Up Time     : 0d 00:00:00               LSP Down Time        : 0d 00:00:00
Transitions     : 1                         Path Changes         : 1
Retry Limit     : 0                         Retry Timer          : 30 sec
Signaling       : RSVP                      Resv. Style          : SE
Hop Limit       : 255                       Negotiated MTU       : n/a
Adaptive        : Enabled                   ClassType            : 0
FastReroute     : Enabled                   Oper FR              : Enabled
FR Method       : Facility                  FR Hop Limit         : 16
FR Node Protect : Disabled                  FR Prop Adm Grp      : Disabled
FR Object       : Enabled                   
CSPF            : Enabled                   ADSPEC               : Disabled
Metric          : Disabled                  Use TE metric        : Disabled
Load Bal Wt     : N/A                       ClassForwarding      : Disabled
Include Grps    :                           Exclude Grps         : 
None                                           None
Least Fill      : Disabled                  

Revert Timer    : Disabled                  Next Revert In       : N/A
Auto BW         : Disabled                  
LdpOverRsvp     : Disabled                  
VprnAutoBind    : Disabled                  
IGP Shortcut    : Disabled                  BGP Shortcut         : Disabled
IGP LFA         : Disabled                  IGP Rel Metric       : Disabled
BGPTransTun     : Disabled                  
Oper Metric     : Disabled                  
Prop Adm Grp    : Disabled                  

P2MPInstance    : p-LSP-p2mp-1
                                            P2MP-Inst-type       : Primary
S2L Cfg Counter : 2                         S2L Oper Counter     : 2
S2L-Name        : loose
                                            To                   : 192.0.2.6
S2L-Name        : loose
                                            To                   : 192.0.2.7
===============================================================================
*A:PE-1# 
*A:PE-1# show router mpls p2mp-info

===============================================================================
MPLS P2MP Cross Connect Information
===============================================================================
-------------------------------------------------------------------------------
S2L:LSP-p2mp-1::loose
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 63488
To                   : 192.0.2.6
Out Interface        : 1/1/2                 Out Label     : 524287
Num. of S2ls         : 1                     
-------------------------------------------------------------------------------
S2L LSP-p2mp-1::loose
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 63488
To                   : 192.0.2.7
Out Interface        : 1/1/1                 Out Label     : 524287
Num. of S2ls         : 1                     
-------------------------------------------------------------------------------
P2MP Cross-connect instances : 2
===============================================================================
*A:PE-1#
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" 
===============================================================================
MPLS P2MP Instance (Originating)
===============================================================================
-------------------------------------------------------------------------------
Type : Originating 
-------------------------------------------------------------------------------
LSP Name    : LSP-p2mp-1
P2MP ID         : 0                         LSP Tunnel ID        : 1
Adm State       : Up                        Oper State           : Up

P2MPInstance    : p-LSP-p2mp-1
                                            P2MP-Inst-type       : Primary
P2MP Inst Id    : 1                         P2MP Lsp Id          : 14336
Inst Admin      : Up                        Inst Oper            : Up
Inst Up Time    : 0d 00:00:00               Inst Dn Time         : 0d 00:00:00
Hop Limit       : 255                       Adaptive             : Enabled
Record Route    : Record                    Record Label         : Record
Include Grps    :                           Exclude Grps         :  
None                                           None
Bandwidth       : No Reservation            Oper Bw              : 0 Mbps
S2L-Name        : loose
                                            To                   : 192.0.2.6
S2L Admin       : Up                        S2L Oper             : Up
S2L-Name        : loose
                                            To                   : 192.0.2.7
S2L Admin       : Up                        S2L Oper             : Up
-------------------------------------------------------------------------------
P2MP instances : 1
===============================================================================
*A:PE-1# 
Note:

As long as one S2L path is operationally up (show router mpls p2mp-lsp lsp-name p2mp-instance instance-name) , the Oper State of the P2MP LSP is Up.

FRR information can be displayed in detail for each S2L path. From this moment onward, the focus is on the S2L path toward PE-7. The following command shows that link protection is present for the link between PE-1 and PE-3, for the link between PE-3 and PE-5, and for the link between PE-5 and PE-7 (‛@’-reference inside show command).

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l loose to 192.0.2.7 detail 

===============================================================================
MPLS LSP LSP-p2mp-1 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-1
S2L LSP ID       : 19968                
P2MP ID          : 0                    S2L Grp Id           : 2
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524287
S2L Up Time      : 0d 00:01:10          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 1                    CSPF Queries         : 1
Failure Code     : noError              Failure Node         : n/a
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @                   Record Label        : 524287
 -> 192.168.35.2 (192.0.2.5) @                   Record Label        : 524287
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524287
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.57.2(S) 
LastResignal     : n/a 
===============================================================================
*A:PE-1# 

More in detail, show router mpls bypass-tunnel can be used. Actual Hops provides the explicit hops of the bypass tunnel used to avoid the direct link between PE-1 and PE-3. On node PE-1, the MPLS path from PE-1 to PE-3 via PE-2 is followed (see P2MP LSP LSP-p2mp-1 with Bypass Tunnels).

*A:PE-1# show router mpls bypass-tunnel detail 

===============================================================================
MPLS Bypass Tunnels (Detail)
===============================================================================
---snip---
-------------------------------------------------------------------------------
bypass-link192.168.13.2-61442
-------------------------------------------------------------------------------
To             : 192.168.23.2        State               : Up
Out I/F        : 1/1/2               Out Label           : 524285
Up Time        : 0d 00:09:51         Active Time         : n/a
Reserved BW    : 0 Kbps              Protected LSP Count : 1
Type           : P2mp                Bypass Path Cost    : 20
Setup Priority : 7                   Hold Priority       : 0
Class Type     : 0                   
Exclude Node   : None                Inter-Area          : False
Computed Hops  :                     
    192.168.12.1(S)                  Egress Admin Groups : None
 -> 192.168.12.2(S)                  Egress Admin Groups : None
 -> 192.168.23.2(S)                  Egress Admin Groups : None
Actual Hops    :                     
    192.168.12.1 (192.0.2.1)         Record Label        : N/A
 -> 192.168.12.2 (192.0.2.2)         Record Label        : 524285
 -> 192.168.23.2 (192.0.2.3)         Record Label        : 524284

Protected LSPs -
LSP Name       : LSP-p2mp-1::loose
From           : 192.0.2.1           To                  : 192.0.2.7
Avoid Node/Hop : 192.168.13.2        Downstream Label    : 524287
Bandwidth      : 0 Kbps 
------------------------------------------------------------------------------- 
---snip---

On node PE-3, the MPLS path from PE-3 to PE-5 via PE-2 and PE-4 is followed (see P2MP LSP LSP-p2mp-1 with Bypass Tunnels) to avoid the direct link between PE-3 and PE-5.

*A:PE-3# show router mpls bypass-tunnel protected-lsp p2mp detail

===============================================================================
MPLS Bypass Tunnels (Detail)
===============================================================================
-------------------------------------------------------------------------------
bypass-link192.168.35.2-61441
-------------------------------------------------------------------------------
To             : 192.168.45.2        State               : Up
Out I/F        : 1/1/3               Out Label           : 524286
Up Time        : 0d 00:13:14         Active Time         : n/a
Reserved BW    : 0 Kbps              Protected LSP Count : 1
Type           : P2mp                Bypass Path Cost    : 30
Setup Priority : 7                   Hold Priority       : 0
Class Type     : 0                   
Exclude Node   : None                Inter-Area          : False
Computed Hops  :                     
    192.168.23.2(S)                  Egress Admin Groups : None
 -> 192.168.23.1(S)                  Egress Admin Groups : None
 -> 192.168.24.2(S)                  Egress Admin Groups : None
 -> 192.168.45.2(S)                  Egress Admin Groups : None
Actual Hops    :                     
    192.168.23.2 (192.0.2.3)         Record Label        : N/A
 -> 192.168.23.1 (192.0.2.2)         Record Label        : 524286
 -> 192.168.24.2 (192.0.2.4)         Record Label        : 524285
 -> 192.168.45.2 (192.0.2.5)         Record Label        : 524284

Protected LSPs -
LSP Name       : LSP-p2mp-1::loose
From           : 192.0.2.1           To                  : 192.0.2.7
Avoid Node/Hop : 192.168.35.2        Downstream Label    : 524287
Bandwidth      : 0 Kbps              

===============================================================================
*A:PE-3# 

A similar output can be seen on PE-5 node also. To avoid the direct link from PE-5 to PE-7, the MPLS path from PE-5 to PE-7 via PE-4 and PE-6 is followed, as shown in P2MP LSP LSP-p2mp-1 with Bypass Tunnels.

On the transit LSRs and egress LER/leaf node (see P2MP LSP LSP-p2mp-1 with Bypass Tunnels), the show router mpls p2mp-info command can be used. See the show command on node PE-3 for the S2L path to 192.0.2.7. Similar outputs are possible for nodes PE-5 and PE-7.

*A:PE-3# show router mpls p2mp-info 
  - p2mp-info [type {originate|transit|terminate}] [s2l-endpoint <ip-address>]

 <originate|transit*> : keywords
 <ip-address>         : [a.b.c.d]
*A:PE-3# show router mpls p2mp-info 
===============================================================================
MPLS P2MP Cross Connect Information
===============================================================================
-------------------------------------------------------------------------------
S2L LSP-p2mp-1::loose
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 14336
To                   : 192.0.2.7
Out Interface        : 1/1/1                 Out Label     : 524287
Num. of S2ls         : 1                     
-------------------------------------------------------------------------------
P2MP Cross-connect instances : 1
===============================================================================
*A:PE-3#

Mapping Multicast Traffic

To map multicast traffic into the LSP tree from the head-end node until leaf node, PIM and Internet Group Management Protocol (IGMP) configurations are needed on the head-end node (PE-1) and leaf nodes (PE-6 and PE-7) of the P2MP RSVP LSP. The intermediate nodes (transit LSR or branch LSR) do not need any explicit configuration for that.

Head-end Node (Ingress LER) PE-1

PIM must be enabled on the interface toward the multicast source and PIM must be enabled on the tunnel interface. A tunnel interface should be seen as an internal representation of a specific P2MP LSP. Creation is done within the pim context using the tunnel-interface rsvp-p2mp command followed by the P2MP LSP name. This is configured as follows:

*A:PE-1# configure 
    router 
        pim
            interface "int-PE-1-MC-source"
            exit
            tunnel-interface rsvp-p2mp "LSP-p2mp-1"

For multicast packets received on an interface to pass through the data plane, a successful reverse path forwarding (RPF) check must be done on the source address, otherwise the packet will be dropped.

Besides enabling PIM on the tunnel interface, also IGMP is enabled to do a static <S,G> or <*,G> join of a multicast group address (227.1.1.1 in the example) to the tunnel interface/P2MP LSP. There is always a one-to-one mapping between <S,G> or <*,G> and a tunnel interface/P2MP LSP. In the example a <S,G> will be configured. A <*,G> join scenario is included in Additional Topics.

*A:PE-1# configure
    router
        igmp        …
            tunnel-interface rsvp-p2mp "LSP-p2mp-1" 
                static
                    group 227.1.1.1
                        source 192.168.9.2
                    exit
                exit
            exit
            no shutdown        

The show router pim tunnel-interface command shows you the admin state of the tunnel interface and an association to an internal local ifindex (73728 in the example).

*A:PE-1# show router pim tunnel-interface

===============================================================================
PIM Interfaces ipv4
===============================================================================
Interface                        Originator Address   Adm  Opr  Transport Type
-------------------------------------------------------------------------------
mpls-if-73728                    N/A                  Up   Up   Tx-IPMSI
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================
*A:PE-1# 

The show router igmp group command provides the configured <S,G> entry and outgoing interface (= tunnel interface), represented by mpls-if-73728.

*A:PE-1# show router igmp group 227.1.1.1 
===============================================================================
IGMP Interface Groups
===============================================================================

(192.168.9.2,227.1.1.1)                                   UpTime: 0d 00:11:10
    Fwd List  : mpls-if-73728 
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:PE-1#

Users can verify if multicast traffic is using P2MP LSP at the head-end node using the show router pim group group-address detail command.

*A:PE-1# show router pim group 227.1.1.1 detail 

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 227.1.1.1
Source Address     : 192.168.9.2
RP Address         : 0
Advt Router        : 192.0.2.1
Flags              :                    Type               : (S,G)
Mode               : sparse 
MRIB Next Hop      : 192.168.9.2
MRIB Src Flags     : direct             
Keepalive Timer    : Not Running        
Up Time            : 0d 00:02:42        Resolved By        : rtable-u

Up JP State        : Joined             Up JP Expiry       : 0d 00:00:00
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00

Register State     : No Info            
Reg From Anycast RP: No                 

Rpf Neighbor       : 192.168.9.2
Incoming Intf      : int-PE-1-MC-source
Outgoing Intf List : mpls-if-73728

Curr Fwding Rate   : 8352.8 kbps 
Forwarded Packets  : 124213             Discarded Packets  : 0
Forwarded Octets   : 5713798            RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
*A:PE-1#

Leaf Node (Egress LER)

In the pim context, the same tunnel interface must be created as the head-end node. An explicit reference to the head-end system address, using the sender systemIP_head-end_node parameter is needed.

*A:PE-7# configure
    router
        pim
            tunnel-interface rsvp-p2mp LSP-p2mp-1 sender 192.0.2.1

The show router pim tunnel-interface command provides the admin state of the tunnel interface and an association to an internal local ifindex (73728 in this example, by coincidence the same ifindex as the one on the head-end node PE-1).

*A:PE-7# show router pim tunnel-interface 

===============================================================================
PIM Interfaces ipv4
===============================================================================
Interface                        Originator Address   Adm  Opr  Transport Type
-------------------------------------------------------------------------------
mpls-if-73728                    N/A                  Up   Up   Tx-IPMSI
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================
*A:PE-7#

The main goal on the leaf nodes is to get traffic off the P2MP LSP/tunnel interface. This is done using a multicast information policy (multicast-info-policy). Inside this MC policy, a range of multicast group addresses must be defined under a bundle context (bundle1) in order to see traffic (channel). Also inside the bundle context, the P2MP LSP is presented by the tunnel interface (primary-tunnel-interface). This is configured as follows:

*A:PE-7# configure
    mcast-management 
        multicast-info-policy "p2mp-pol" create
            bundle "bundle1" create
                primary-tunnel-interface rsvp-p2mp LSP-p2mp-1 sender 192.0.2.1
                channel "227.1.1.1" "227.1.1.1" create
                exit
            exit
            bundle "default" create
            exit
        exit
Note:

The channel command must be seen as a range command with a start-mc-group-address and an end-mc-group-address. In this example, only one MC group address, 227.1.1.1 is seen.

The configured multicast information policy must be applied to the base router instance.

*A:PE-7# configure router multicast-info-policy "p2mp-pol"

On the leaf nodes PE-7 and PE-6, multicast clients are connected. IGMP is enabled on those multicast clients with a static <S,G> join to redirect multicast traffic downstream to the multicast client. This is configured as follows:

*A:PE-7# configure
    router
        igmp 
            interface "int-PE-7-MC-client1"
                static
                    group 227.1.1.1
                        source 192.168.9.2
                    exit
                exit
            exit

The show router igmp group provides the configured <S,G> entry and outgoing interface ‟int-PE-7-MC-client1”.

*A:PE-7# show router igmp group 227.1.1.1
===============================================================================
IGMP Interface Groups
===============================================================================

(192.168.9.2,227.1.1.1)                                   UpTime: 0d 00:09:02
    Fwd List  : int-PE-7-MC-client1 
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:PE-7#

Now, users can verify if multicast traffic is sent to the multicast client using the show router pim group group-address detail command

*A:PE-7# show router pim group 227.1.1.1 detail

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 227.1.1.1
Source Address     : 192.168.9.2
RP Address         : 0
Advt Router        : 
Flags              :                    Type               : (S,G)
Mode               : sparse 
MRIB Next Hop      : 
MRIB Src Flags     : remote             
Keepalive Timer    : Not Running        
Up Time            : 0d 00:01:39        Resolved By        : unresolved

Up JP State        : Joined             Up JP Expiry       : 0d 00:00:21
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00

Register State     : No Info            
Reg From Anycast RP: No                 

Rpf Neighbor       : 
Incoming Intf      : mpls-if-73728
Outgoing Intf List : int-PE-7-MC-client1

Curr Fwding Rate   : 8352.8 kbps 
Forwarded Packets  : 226349             Discarded Packets  : 0
Forwarded Octets   : 10412054           RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
*A:PE-7#

OAM Tools

P2P LSP Operation, Administration, and Maintenance (OAM) commands (oam lsp-ping and oam lsp-trace) are extended for P2MP LSP. The user can instruct the head-end node to generate an P2MP LSP ping or a P2MP LSP trace by entering the command oam p2mp-lsp-ping or oam p2mp-lsp-trace. The P2MP OAM extensions are defined in draft-ietf-mpls-p2mp-lsp-ping.

For P2MP LSP ping, the echo request is sent on the active P2MP instance and replicated in the data path over all branches of the P2MP LSP instance. By default, all egress LER nodes which are leaves of the P2MP LSP instance will reply. Echo reply messages can be reduced by configuring the s2l-dest-address (a maximum of up to five egress nodes in a single run of the OAM command). Replies are sent by IP.

*A:PE-1# oam p2mp-lsp-ping 
  - p2mp-lsp-ping {<lsp-name> [p2mp-instance <instance-name> [s2l-dest-address 
                  <ipv4-  address> [... up to 5]]] [ttl <label-ttl>]}
  - p2mp-lsp-ping {ldp <p2mp-identifier> [vpn-recursive-fec] [sender-addr 
                  <ipv4-address>] [leaf-addr <ipv4-address> [... up to 5]]}
  - p2mp-lsp-ping {ldp-ssm source <ip-address> group <ip-address> [router 
                  <router-instance>|service-name <service-name>][sender-addr 
                  <ipv4-address>] [leaf-addr <ipv4-address> [... up to 5]]}
  - options common to all p2mp-lsp-ping cases:  [fc <fc-name> [profile {in|out}]] 
                  [size <octets>][timeout <timeout>] [detail]

 <lsp-name>           : [64 chars max]
 <instance-name>      : [32 chars max]
 <ipv4-address>       : a.b.c.d
 <in|out>             : in|out - Default: out
 <fc-name>            : be|l2|af|l1|h2|ef|h1|nc - Default: be
 <octets>             : [1..9198] - Default: 1
 <label-ttl>          : [1..255] - Default: 255
 <timeout>            : [1..120] seconds - Default: 10
 <detail>             : keyword - displays detailed information
 <p2mp-identifier>    : [1..4294967295]
 <ldp-ssm>            : keyword  - Label Distribution Protocol, Source-Specific Multicast
 <ip-address>         : ipv4-address   - a.b.c.d
                        ipv6-address   - x:x:x:x:x:x:x:x   (eight 16-bit pieces)
                                         x:x:x:x:x:x:d.d.d.d
                                         x - [0..FFFF]H
                                         d - [0..255]D
 <router-instance>    : <router-name>|<vprn-svc-id>
                        router-name    - "Base"  Default - Base
                        vprn-svc-id     - [1..2147483647]
 <service-name>       : [64 chars max]
 <vpn-recursive-fec>  : keyword - add a VPN Recursive FEC element to the launched
                        packet (useful for pinging a VPN BGP inter-AS Option B leaf)
*A:PE-1# oam p2mp-lsp-ping "LSP-p2mp-1" detail 
P2MP LSP LSP-p2mp-1: 92 bytes MPLS payload

===============================================================================
S2L Information
===============================================================================
From             RTT                  Return Code
-------------------------------------------------------------------------------
192.0.2.6        =1.12ms              EgressRtr(3)
192.0.2.7        =1.13ms              EgressRtr(3)
===============================================================================

Total S2L configured/up/responded = 2/2/2,
          round-trip min/avg/max  = 1.12 / 1.12 / 1.13 ms

Responses based on return code:
        EgressRtr(3)=2

*A:PE-1#

Return codes are based on RFC 4379. Value 3 means the replying router is an egress for the FEC at stack depth.

P2MP LSP trace allows the user to trace the path of a single S2L path of a P2MP LSP from head-end node to leaf node. Using the downstream mapping TLV, each node along the S2L path can fill in the appropriate flags: B or E flag. The B-flag is set when the responding node is a branch LSR and the E-flag is set when the responding node is an egress LER.

*A:PE-1# oam p2mp-lsp-trace 
  - p2mp-lsp-trace <lsp-name> p2mp-instance <instance-name> s2l-dest-address
    <ip-address> [fc <fc-name> [profile {in|out}]] [size <octets>] [max-fail
    <no-response-count>] [probe-count <probes-per-hop>] [min-ttl <min-label-ttl>]
    [max-ttl <max-label-ttl>] [timeout <timeout>]  [interval <interval>] [detail]

 <lsp-name>           : [64 chars max]
 <instance-name>      : [32 chars max]
 <ip-address>         : ipv4 address    a.b.c.d
 <fc-name>            : be|l2|af|l1|h2|ef|h1|nc - Default: be
 <in|out>             : in|out - Default: out
 <octets>             : [1..9198] - Default: 1
 <no-response-count>  : [1..10] - Default: 5
 <probes-per-hop>     : [1..10] - Default: 1
 <min-label-ttl>      : [1..255] - Default: 1
 <max-label-ttl>      : [1..255] - Default: 30
 <timeout>            : [1..60] seconds - Default: 3
 <detail>             : keyword - displays detailed information
 <interval>           : [1..10] seconds - Default: 1
*A:PE-1# oam p2mp-lsp-trace "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l-dest-address 192.0.2.7 detail 
P2MP LSP LSP-p2mp-1: 132 bytes MPLS payload
P2MP Instance p-LSP-p2mp-1, S2L Egress 192.0.2.7

 1  192.0.2.3  rtt=0.435 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=1564
     label=524287 proto=4(RSVP-TE) B/E flags:0/0 
  2  192.0.2.5  rtt=0.838 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.57.2 ifaddr=192.168.57.2 iftype=ipv4Numbered MRU=1564
     label=524287 proto=4(RSVP-TE) B/E flags:0/0 
  3  192.0.2.7  rtt=1.77 ms rc=3(EgressRtr)
*A:PE-1# 

Return codes are based on RFC 4279. Value 8 means that the label is switched at stack depth. This is the case for a transit LSR doing MPLS label swapping. No B or E flag is set.

Additional Topics

<*,G> IGMP join instead of <S,G> IGMP join

In the Head-end Node (Ingress LER) PE-1 and Leaf Node (Egress LER) steps, a source specific IGMP join (<S,G> join) was used at the head-end node and leaf nodes. Another possibility is to use a source unknown or starg IGMP join (<*,G> join). When doing the latter, a rendezvous point (RP) must be defined in the PIM network. The RP allows multicast data flows between sources and receivers to meet at a predefined network location (in this example, the loopback address of node PE-1). It must be seen as an intermediate device to establish a multicast flow.

The RP can be defined in a dynamic way (BSR protocol) or a static way. In this example, the static way is chosen meaning that on all involved PIM nodes, the RP address will be statically configured. The following configuration is needed on head-end and leaf nodes.

*A:PE-1/PE-6/PE-7# configure
    router
        pim
            rp
                static
                    address 192.0.2.1
                        group-prefix 227.1.1.1/32
                    exit
                exit

The group-prefix is a mandatory keyword. It references a group address or group address range for which this rendezvous point will be used.

*A:PE-1/PE-6/PE-7# show router pim rp 

===============================================================================
PIM RP Set ipv4
===============================================================================
Group Address                                                Hold Expiry
  RP Address                                   Type     Prio Time Time
-------------------------------------------------------------------------------
227.1.1.1/32
  192.0.2.1                                    Static   1    N/A  N/A
-------------------------------------------------------------------------------
Group Prefixes : 1
===============================================================================
*A:PE-1#

As previously mentioned, the configuration of the <*,G> IGMP join is done on the head-end node (PE-1) and leaf nodes (PE-6 and PE-7)

*A:PE-1# configure
    router
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-1" 
                no shutdown
                static
                    group 227.1.1.1
                        starg
                    exit
                exit
            exit
*A:PE-6# configure
    router
        igmp
            interface "int-PE-6-MC-client2"
                static
                    group 227.1.1.1
                        starg
                    exit
                exit
            exit
*A:PE-7# configure
    router
        igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.1.1.1
                        starg
                    exit
                exit
            exit

The same preceding show command can be used to verify the multicast traffic on head-end node and leaf nodes, show router igmp group 227.1.1.1 and show router pim group 227.1.1.1 detail.

*A:PE-7# show router igmp group 227.1.1.1

===============================================================================
IGMP Interface Groups
===============================================================================

(*,227.1.1.1)                                             UpTime: 0d 00:06:58
    Fwd List  : int-PE-7-MC-client1 
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:PE-7#
*A:PE-7# show router pim group 227.1.1.1 detail 

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 227.1.1.1
Source Address     : *
RP Address         : 192.0.2.1
Advt Router        : 
Flags              :                    Type               : (*,G)
Mode               : sparse 
MRIB Next Hop      : 
MRIB Src Flags     : remote             
Keepalive Timer    : Not Running        
Up Time            : 0d 00:05:34        Resolved By        : unresolved

Up JP State        : Joined             Up JP Expiry       : 0d 00:00:25
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00

Rpf Neighbor       : 
Incoming Intf      : mpls-if-73728
Outgoing Intf List : int-PE-7-MC-client1

Curr Fwding Rate   : 0.0 kbps           
Forwarded Packets  : 31                 Discarded Packets  : 0
Forwarded Octets   : 1426               RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps 
===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 227.1.1.1
Source Address     : 192.168.9.2
RP Address         : 192.0.2.1
Advt Router        : 
Flags              : spt                Type               : (S,G)
Mode               : sparse 
MRIB Next Hop      : 
MRIB Src Flags     : remote             
Keepalive Timer Exp: 0d 00:01:27        
Up Time            : 0d 00:05:34        Resolved By        : unresolved

Up JP State        : Joined             Up JP Expiry       : 0d 00:00:25
Up JP Rpt          : Not Pruned         Up JP Rpt Override : 0d 00:00:00

Register State     : No Info            
Reg From Anycast RP: No                 

Rpf Neighbor       : 
Incoming Intf      : mpls-if-73728
Outgoing Intf List : int-PE-7-MC-client1

Curr Fwding Rate   : 8352.8 kbps        
Forwarded Packets  : 3539800            Discarded Packets  : 0
Forwarded Octets   : 162830800          RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 2
===============================================================================
*A:PE-7#

Influence IGP Metric

Suppose that the IGP metric is increased on all links pointing to/from PE-2 and on the link between PE-5 and PE-7.

*A:PE-1# configure router ospf area 0 interface "int-PE-1-PE-2" metric 10000
*A:PE-2# configure router ospf area 0 interface "int-PE-2-PE-1" metric 10000 
*A:PE-2# configure router ospf area 0 interface "int-PE-2-PE-3" metric 10000 
*A:PE-2# configure router ospf area 0 interface "int-PE-2-PE-4" metric 10000
*A:PE-3# configure router ospf area 0 interface "int-PE-3-PE-2" metric 10000
*A:PE-4# configure router ospf area 0 interface "int-PE-4-PE-2" metric 10000
*A:PE-5# configure router ospf area 0 interface "int-PE-5-PE-7" metric 10000
*A:PE-7# configure router ospf area 0 interface "int-PE-7-PE-5" metric 10000

The existing P2MP LSP LSP-p2mp-1 will not take into account these new constraints. The two S2L paths (one loose toward PE-6 and another one loose toward PE-7) are calculated using the default OSPF metric. To trigger MPLS to re-compute the S2L paths, configure a p2mp-resignal-timer on the head-end node inside the global mpls context. Each time this timer expires (in the example, every 60 minutes), MPLS will trigger CSPF to re-compute the whole set of S2L paths of all active P2MP instances. MPLS performs a global Make-Before-Break (MBB) and moves each S2L sub-LSP in the instance into its new path using a new P2MP LSP ID if the global MBB is successful. show router mpls status gives an indication when the P2MP resignal timer will expire and which types of LSPs are set up on the node.

*A:PE-1# configure router mpls p2mp-resignal-timer 60
*A:PE-1# show router mpls status
 
===============================================================================
MPLS Status
===============================================================================
Admin Status              : Up          Oper Status               : Up
Oper Down Reason          : n/a         
FRR Object                : Enabled     Resignal Timer            : Disabled
Hold Timer                : 1 seconds   Next Resignal             : N/A
Srlg Frr                  : Disabled    Srlg Frr Strict           : Disabled
Admin Group Frr           : Disabled    
Dynamic Bypass            : Enabled     User Srlg Database        : Disabled
BypassResignalTimer       : Disabled    BypassNextResignal        : N/A
LeastFill Min Thd         : 5 percent   LeastFill Reopti Thd      : 10 percent
Local TTL Prop            : Enabled     Transit TTL Prop          : Enabled
AB Sample Multiplier      : 1           AB Adjust Multiplier      : 288
Exp Backoff Retry         : Disabled    CSPF On Loose Hop         : Disabled
Lsp Init RetryTimeout     : 30 seconds  MBB Pref Current Hops     : Disabled
Logger Event Bundling     : Disabled    
RetryIgpOverload          : Disabled    
 
P2mp Resignal Timer       : 60 minutes  P2mp Next Resignal        : 41 minutes
Sec FastRetryTimer        : Disabled    Static LSP FR Timer       : 30 seconds
P2P Max Bypass Association: 1000        
P2PActPathFastRetry       : Disabled    P2MP S2L Fast Retry       : Disabled
In Maintenance Mode       : No          
MplsTp                    : Disabled    
Next Available Lsp Index  : 2           
Entropy Label RSVP-TE     : Enabled     Entropy Label SR-TE       : Enabled
PCE Report RSVP-TE        : Disabled    PCE Report SR-TE          : Disabled
---snip---
===============================================================================

As an alternative, the user can also perform a manual resignal of a P2MP instance on the head-end node using the following tools command.

*A:PE-1# tools perform router mpls resignal p2mp-lsp "LSP-p2mp-1" p2mp-instance"p-LSP-p2mp-1"
*A:PE-1# tools perform router mpls resignal p2mp-delay 0

P2MP LSP p-to-mp-1 with Metric Change shows the resignaled S2L paths. Node PE-6 is now a bud LSR node (instead of egress LER before).

Figure 3. P2MP LSP p-to-mp-1 with Metric Change

The resignaled S2L paths to PE-7 can be verified with the following command:

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l loose to 192.0.2.7 detail 

===============================================================================
MPLS LSP LSP-p2mp-1 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-1
S2L LSP ID       : 19970                
P2MP ID          : 0                    S2L Grp Id           : 1
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524283
S2L Up Time      : 0d 01:02:21          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 2                    CSPF Queries         : 2
Failure Code     : noError              Failure Node         : n/a
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @                   Record Label        : 524283
 -> 192.168.35.2 (192.0.2.5) @                   Record Label        : 524283
 -> 192.168.45.1 (192.0.2.4) @                   Record Label        : 524283
 -> 192.168.46.2 (192.0.2.6) @                   Record Label        : 524284
 -> 192.168.67.2 (192.0.2.7)                     Record Label        : 524284
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.45.1(S)   
 -> 192.168.46.2(S)   
 -> 192.168.67.2(S)   
LastResignal     : n/a
===============================================================================
*A:PE-1#

The resignaled S2L paths to PE-6 can be verified as follows:

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l loose to 192.0.2.6 detail 

===============================================================================
MPLS LSP LSP-p2mp-1 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-1
S2L LSP ID       : 19970                
P2MP ID          : 0                    S2L Grp Id           : 2
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.6            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524283
S2L Up Time      : 0d 01:04:48          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 2                    CSPF Queries         : 2
Failure Code     : noError              Failure Node         : n/a
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @                   Record Label        : 524283
 -> 192.168.35.2 (192.0.2.5) @                   Record Label        : 524283
 -> 192.168.45.1 (192.0.2.4) @                   Record Label        : 524283
 -> 192.168.46.2 (192.0.2.6)                     Record Label        : 524284
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.45.1(S)   
 -> 192.168.46.2(S)   
LastResignal     : n/a 
===============================================================================
*A:PE-1#

An oam p2mp-lsp-trace command toward PE-7 will now set the E flag on PE-6 because PE-6 acts also as an egress LER node.

*A:PE-1# oam p2mp-lsp-trace "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" 
s2l-dest-address 192.0.2.7 detail 
P2MP LSP LSP-p2mp-1: 132 bytes MPLS payload
P2MP Instance p-LSP-p2mp-1, S2L Egress 192.0.2.7

  1  192.0.2.3  rtt=0.395 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=1564
     label=524283 proto=4(RSVP-TE) B/E flags:0/0 
  2  192.0.2.5  rtt=0.611 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.45.1 ifaddr=192.168.45.1 iftype=ipv4Numbered MRU=1564
     label=524283 proto=4(RSVP-TE) B/E flags:0/0 
  3  192.0.2.4  rtt=0.947 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.46.2 ifaddr=192.168.46.2 iftype=ipv4Numbered MRU=1564
     label=524284 proto=4(RSVP-TE) B/E flags:0/0 
  4  192.0.2.6  rtt=1.26 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.67.2 ifaddr=192.168.67.2 iftype=ipv4Numbered MRU=1564
     label=524284 proto=4(RSVP-TE) B/E flags:0/1 
  5  192.0.2.7  rtt=1.53 ms rc=3(EgressRtr)

*A:PE-1#

In the next step, the S2L path toward PE-7 is changed from loose to a strict direct MPLS path (path-strict-to-PE-7). In that way, OSPF is not calculating anymore the shortest path to the leaf node.

*A:PE-1# configure 
    router 
        mpls
            path "path-strict-to-PE-7"
                hop 10 192.168.13.2 strict
                hop 20 192.168.35.2 strict
                hop 30 192.168.57.2 strict
                no shutdown
            exit

Before applying this new S2L path to the existing P2MP LSP (LSP-p2mp-1), the existing S2L path toward PE-7 must be removed.

*A:PE-1# configure 
    router 
        mpls 
            lsp "LSP-p2mp-1" 
                primary-p2mp-instance "p-LSP-p2mp-1"
                    s2l-path "loose" to 192.0.2.7 shutdown
                    no s2l-path "loose" to 192.0.2.7
                    s2l-path "path-strict-to-PE-7" to 192.0.2.7
                    exit
                exit

As a consequence of this, only the S2L Grp Id has changed while S2L LSP ID remains the same as before. P2MP LSP LSP-p2mp-1 with Strict S2L Path toward PE-7 shows the P2MP LSP LSP-p2mp-1 with strict S2L path to leaf PE-7.

Figure 4. P2MP LSP LSP-p2mp-1 with Strict S2L Path toward PE-7

S2L paths can be verified according to P2MP LSP LSP-p2mp-1 with Strict S2L Path toward PE-7. PE-5 is now a branch LSR node (instead of a transit LSR before).

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l path-strict-to-PE-7 to 192.0.2.7 detail 

===============================================================================
MPLS LSP LSP-p2mp-1 S2L path-strict-to-PE-7 (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-1                         
S2l LSP ID       : 19970
P2MP ID          : 0                    S2L Grp Id           : 3
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : path-strict-to-PE-7
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524283
S2L Up Time      : 0d 00:05:26          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 1                    CSPF Queries         : 1
Failure Code     : noError              Failure Node         : n/a
Inter-area  : False                              
ExplicitHops:                                    
    192.168.13.2(S)    -> 192.168.35.2(S)    -> 192.168.57.2(S)   
Actual Hops :                                    
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @                   Record Label        : 524283
 -> 192.168.35.2 (192.0.2.5) @                   Record Label        : 524283
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524287
ComputedHops:                                    
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.57.2(S)   
LastResignal: n/a                                
===============================================================================
*A:PE-1#

An oam p2mp-lsp-trace command toward PE-7 will now set the B flag on PE-5 because PE-5 became a branch LSR now.

*A:PE-1# oam p2mp-lsp-trace "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1" s2l-dest-address  192.0.2.7 detail 
P2MP LSP LSP-p2mp-1: 132 bytes MPLS payload
P2MP Instance p-LSP-p2mp-1, S2L Egress 192.0.2.7

 1  192.0.2.3  rtt=0.380 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=1564
     label=524283 proto=4(RSVP-TE) B/E flags:0/0 
  2  192.0.2.5  rtt=0.724 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.57.2 ifaddr=192.168.57.2 iftype=ipv4Numbered MRU=1564
     label=524287 proto=4(RSVP-TE) B/E flags:1/0 
  3  192.0.2.7  rtt=1.31 ms rc=3(EgressRtr)

Intelligent Re-merge

Intelligent re-merge protects users from receiving duplicate multicast traffic during convergence. It also protects against duplicate traffic in case of badly designed S2L paths. Three cases are described for which intelligent re-merge is implemented.

Case 1

When the paths of two different S2Ls of the same P2MP LSP instance have ingress label maps (ILMs) on different ports but go out on the same Next-Hop label Forwarding Entry (NHLFE).

Intelligent Re-merge, Case 2 shows P2MP LSP LSP-p2mp-2 with two incoming S2L paths at PE-5.

Figure 5. Intelligent Remerge, Case 1

On the head-end node (PE-1), P2MP LSP LSP-p2mp-2 is created with two strict direct MPLS paths (path-strict-to-PE-7 and path-strict-to-PE-6), as follows. Intelligent re-merge is performed at node PE-5.

*A:PE-1# configure
    router
        mpls
            path "path-strict-to-PE-7"
                hop 10 192.168.13.2 strict
                hop 20 192.168.35.2 strict
                hop 30 192.168.57.2 strict
                no shutdown
            exit
            path "path-strict-to-PE-6"
                hop 10 192.168.12.2 strict
                hop 20 192.168.24.2 strict
                hop 30 192.168.45.2 strict
                hop 40 192.168.57.2 strict
                hop 50 192.168.67.1 strict
                no shutdown
            exit
            lsp "LSP-p2mp-2" p2mp-lsp
                primary-p2mp-instance "p-LSP-p2mp-2"
                    s2l-path "path-strict-to-PE-7" to 192.0.2.7
                    exit
                    s2l-path "path-strict-to-PE-6" to 192.0.2.6
                    exit
                exit
                no shutdown
            exit
            no shutdown
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-2" p2mp-instance "p-LSP-p2mp-2" 

===============================================================================
MPLS P2MP Instance (Originating)
===============================================================================
-------------------------------------------------------------------------------
Type : Originating 
-------------------------------------------------------------------------------
LSP Name    : LSP-p2mp-2
P2MP ID         : 0                         LSP Tunnel ID        : 2
Adm State       : Up                        Oper State           : Up

P2MPInstance    : p-LSP-p2mp-2
                                            P2MP-Inst-type       : Primary
P2MP Inst Id    : 2                         P2MP Lsp Id          : 7168 
Inst Admin      : Up                        Inst Oper            : Up
Inst Up Time    : 0d 00:00:03               Inst Dn Time         : 0d 00:00:00
Hop Limit       : 255                       Adaptive             : Enabled
Record Route    : Record                    Record Label         : Record
Include Grps    :                           Exclude Grps         :  
None                                           None
Bandwidth       : No Reservation            Oper Bw              : 0 Mbps
S2L-Name        : path-strict-to-PE-7
                                            To                   : 192.0.2.7
S2L Admin       : Up                        S2L Oper             : Up
S2L-Name        : path-strict-to-PE-6
                                            To                   : 192.0.2.6
S2L Admin       : Up                        S2L Oper             : Up
-------------------------------------------------------------------------------
P2MP instances : 1
===============================================================================
*A:PE-1#

To verify that node PE-5 is not sending duplicate multicast traffic downstream toward PE-7 while it receives two incoming multicast streams, a new tunnel interface and a new static <S,G> IGMP join will be configured on head-end node (PE-1) and leaf nodes (PE-6 and PE-7). Also on the leaf nodes, an extension to the existing multicast information policy is needed. This is configured as follows:

*A:PE-1# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-2"
*A:PE-1# configure
    router 
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-2" 
                static
                    group 227.2.2.2
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-6# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
*A:PE-6# configure
    router 
        igmp
            interface "int-PE-6-MC-client2"
                static
                    group 227.2.2.2
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-6# configure
    mcast-management
        multicast-info-policy "p2mp-pol" create
            bundle "bundle2" create
                primary-tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
                    channel 227.2.2.2 create
                    exit
                exit
            exit
*A:PE-7# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
*A:PE-7# configure 
    router 
        igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.2.2.2
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-7# configure 
    mcast-management
        multicast-info-policy "p2mp-pol" create
            bundle "bundle2" create
                primary-tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
                    channel 227.2.2.2 create
                    exit
                exit
            exit

For verification of incoming/outgoing multicast traffic at node PE-5, the monitor command is used.

*A:PE-5# monitor port 1/1/1 1/1/2 1/1/3 rate interval 3 repeat 100 

===============================================================================
Monitor statistics for Ports
===============================================================================
                                                   Input                 Output
-------------------------------------------------------------------------------

---snip---
-------------------------------------------------------------------------------
At time t = 18 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/1
-------------------------------------------------------------------------------
Octets                                                21                1058955
Packets                                                0                    697
Errors                                                 0                      0
Bits                                                 168                8471640
Utilization (% of port capacity)                   ~0.00                   0.08

Port 1/1/2
-------------------------------------------------------------------------------
Octets                                           1059461                     50
Packets                                              697                      0
Errors                                                 0                      0
Bits                                             8475688                    400
Utilization (% of port capacity)                    0.08                  ~0.00

Port 1/1/3
-------------------------------------------------------------------------------
Octets                                           1059021                     21
Packets                                              697                      0
Errors                                                 0                      0
Bits                                             8472168                    168
Utilization (% of port capacity)                    0.08                  ~0.00
---snip---

Two incoming multicast streams are seen at PE-5 node (port 1/1/2 and port 1/1/3) and only one outgoing multicast stream (port 1/1/1) is sent. No traffic duplication is seen.

Case 2

Intelligent Re-merge, Case 2 shows two paths of the same S2L that have ILMs on different incoming ports and go out on the same NHLFE. This is the case when we perform make-before-break (MBB) on an S2L path due to graceful shutdown or global revertive. This is only a temporary situation because the original path will be torn down.

Figure 6. Intelligent Re-merge, Case 2

For this test, only one multicast client will be looked at (the one connected to leaf node PE-7). On nodes PE-4 and PE-7, the port to PE-6 will be shut down to isolate PE-6. On the head-end node PE-1, a new P2MP LSP LSP-p2mp-3 will be created with one loose MPLS path ‟loose” and keyword cspf use-te-metric to ensure that CSPF will use the TE metric instead of the IGP metric. In this case, the TE metric has the same value on all MPLS interfaces and the path has the hops PE-1, PE-3, PE-5, and PE-7. Also in this case, intelligent re-merge is performed at node PE-5.

*A:PE-1# configure
    router
        mpls
            path "loose"
                no shutdown
            exit
            lsp "LSP-p2mp-3" p2mp-lsp
                cspf use-te-metric
                primary-p2mp-instance "p-LSP-p2mp-3"
                    s2l-path "loose" to 192.0.2.7
                    exit
                exit
                no shutdown
            exit
            no shutdown
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-3" p2mp-instance "p-LSP-p2mp-3" s2l loose to 192.0.2.7 detail

===============================================================================
MPLS LSP LSP-p2mp-3 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-3                         
S2L LSP ID       : 55810 
P2MP ID          : 0                    S2L Grp Id           : 2
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/2                Out Label            : 524284
S2L Up Time      : 0d 00:04:56          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 2                    CSPF Queries         : 2
Failure Code     : noError              Failure Node         : n/a
Inter-area  : False                              
ExplicitHops:                                    
    No Hops Specified
Actual Hops :                                    
    192.168.13.1 (192.0.2.1)                     Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3)                     Record Label        : 524284
 -> 192.168.35.2 (192.0.2.5)                     Record Label        : 524281
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524283
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.57.2(S) 
LastResignal: n/a                                
===============================================================================
*A:PE-1#

In a normal situation, the P2MP LSP would follow the nodes PE-1, PE-3, PE-5, and PE-7. This can be verified with multicast traffic. Therefore, a new tunnel interface and a new static <S,G> IGMP join will be configured on head-end node PE-1 and leaf node PE-7. On the leaf node, an extension to the existing multicast information policy is needed. This is configured as follows:

*A:PE-1# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-3
*A:PE-1# configure router igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-3" 
                static
                    group 227.3.3.3
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-7# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-3" sender 192.0.2.1
*A:PE-7# configure router igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.3.3.3
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-7# configure mcast-management
        multicast-info-policy "p2mp-pol" create
            bundle "bundle3" create
                primary-tunnel-interface rsvp-p2mp LSP-p2mp-3 sender 192.0.2.1
                channel 227.3.3.3 create
                exit
            exit
        exit

The traffic on PE-5 is monitored. Under normal circumstances, the ingress port is 1/1/2 and the egress port is 1/1/1.

*A:PE-5# monitor port 1/1/1 1/1/2 1/1/3 rate interval 3 repeat 999 

===============================================================================
Monitor statistics for Ports
===============================================================================
                                                   Input                 Output
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

---snip---
-------------------------------------------------------------------------------
At time t = 21 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/1
-------------------------------------------------------------------------------
Octets                                                21                1059461
Packets                                                0                    697
Errors                                                 0                      0
Bits                                                 168                8475688
Utilization (% of port capacity)                   ~0.00                   0.08

Port 1/1/2
-------------------------------------------------------------------------------
Octets                                           1059042                     21
Packets                                              697                      0
Errors                                                 0                      0
Bits                                             8472336                    168
Utilization (% of port capacity)                    0.08                  ~0.00

Port 1/1/3
-------------------------------------------------------------------------------
Octets                                                50                     21
Packets                                                0                      0
Errors                                                 0                      0
Bits                                                 400                    168
Utilization (% of port capacity)                   ~0.00                  ~0.00

-------------------------------------------------------------------------------

An RSVP graceful shutdown is performed on node PE-3, as follows:

*A:PE-3# configure router rsvp graceful-shutdown

Global revertive is triggered on head-end node PE-1. A new MPLS path will be calculated (see the dashed line in Intelligent Re-merge, Case 2). For a few seconds or even less than a second, the old path and new path are active (two incoming multicast streams on node PE-5). Node PE-5 is doing intelligent re-merge, not sending duplicate multicast traffic downstream toward PE-7:

*A:PE-5# monitor port 1/1/1 1/1/2 1/1/3 rate interval 3 repeat 100 

===============================================================================
Monitor statistics for Ports
===============================================================================
                                                   Input                 Output
-------------------------------------------------------------------------------
---snip---

-------------------------------------------------------------------------------
At time t = 30 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/1
-------------------------------------------------------------------------------
Octets                                                82                1059685
Packets                                                1                    698
Errors                                                 0                      0
Bits                                                 656                8477480
Utilization (% of port capacity)                   ~0.00                   0.08

Port 1/1/2
-------------------------------------------------------------------------------
Octets                                           1059711                     21
Packets                                              699                      0
Errors                                                 0                      0
Bits                                             8477688                    168
Utilization (% of port capacity)                    0.08                  ~0.00

Port 1/1/3
-------------------------------------------------------------------------------
Octets                                            259534                    283
Packets                                              172                      2
Errors                                                 0                      0
Bits                                             2076272                   2264
Utilization (% of port capacity)                    0.02                  ~0.00

===============================================================================

The granularity of the monitoring command is 3 seconds. The graceful shutdown takes less than 3 seconds. However, we can clearly see that the number of outgoing packets on port 1/1/1 equals the number of incoming packets on port 1/1/2. A number of these incoming packets also arrived on port 1/1/3, but no duplicate packets were sent on the outgoing port. No traffic duplication is seen.

Case 3

When a bypass is active on the S2L path and the new global revertive path of the same S2L arrives on the same incoming interface as the original path (interface flapped) at the FRR merge point node, the node will do intelligent re-merge. The implementation recognizes this specific case and will signal a different label from the original S2L path coming on that same interface.

Intelligent Re-merge, Case 3 shows the initial S2L path before the link failure (solid line), the bypass path to protect the link between PE-3 and PE-5, and the new global revertive path of the S2L (dotted line). Both the bypass path and the global revertive path share the links between PE-2 and PE-4 and between PE-4 and PE-5.

Figure 7. Intelligent Re-merge, Case 3

For this test, all the non-default OSPF metrics are removed from the interfaces. Only one MC-client will be looked at (the one connected to leaf node PE-7). On nodes PE-4 and PE-7, the port toward PE-6 will be shut down to isolate PE-6. On the head-end node PE-1, a new P2MP LSP ‟LSP-p2mp-4” will be created with one loose MPLS path ‟loose” and FRR enabled. Also in this case, intelligent re-merge is performed at node PE-5.

*A:PE-1# configure 
    router 
        mpls
            path "loose"
                no shutdown
            exit
            lsp "LSP-p2mp-4" p2mp-lsp
                cspf
                fast-reroute facility
                    no node-protect
                exit
                primary-p2mp-instance "p-LSP-p2mp-4"
                    s2l-path "loose" to 192.0.2.7
                    exit
                exit
                no shutdown
            exit
            no shutdown
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-4" p2mp-instance "p-LSP-p2mp-4" s2l loose to 192.0.2.7 detail

===============================================================================
MPLS LSP LSP-p2mp-4 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-4
S2L LSP ID       : 54784                
P2MP ID          : 0                    S2L Grp Id           : 1
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524283
S2L Up Time      : 0d 00:01:00          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 1                    CSPF Queries         : 1
Failure Code     : noError              Failure Node         : n/a
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @                   Record Label        : 524283
 -> 192.168.35.2 (192.0.2.5)                     Record Label        : 524285
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524287
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.57.2(S)   
LastResignal     : n/a
===============================================================================
*A:PE-1#

In the normal situation, the P2MP LSP follows the nodes PE-1, PE-3, PE-5, and PE-7. This can be verified with multicast traffic. Therefore, a new tunnel interface and a new static <S,G> IGMP join will be configured on head-end node PE-1 and leaf node PE-7. On the leaf node, an extension to the existing multicast information policy is needed. This is configured as follows:

*A:PE-1# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-4"
*A:PE-1# configure router igmp
            tunnel-interface rsvp-p2mp LSP-p2mp-4
                static
                    group 227.4.4.4
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-7# configure router pim tunnel-interface rsvp-p2mp "LSP-p2mp-4" sender 192.0.2.1
*A:PE-7# configure router igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.4.4.4
                        source 192.168.9.2
                    exit
                exit
            exit
*A:PE-7# configure mcast-management
        multicast-info-policy "p2mp-pol" create
            bundle "bundle4" create
                primary-tunnel-interface rsvp-p2mp LSP-p2mp-4 sender 192.0.2.1
                channel 227.4.4.4 create
                exit
            exit
        exit

When the initial path is taken, the incoming traffic arrives at port 1/1/2 on PE-5 and is forwarded to port 1/1/1 to PE-7, as follows.

*A:PE-5# monitor port 1/1/1 1/1/2 1/1/3 rate interval 3 repeat 999 

===============================================================================
Monitor statistics for Ports
===============================================================================
                                                   Input                 Output
-------------------------------------------------------------------------------
---snip---
-------------------------------------------------------------------------------
At time t = 3 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/1
-------------------------------------------------------------------------------
Octets                                                67                1056556
Packets                                                1                    696
Errors                                                 0                      0
Bits                                                 536                8452448
Utilization (% of port capacity)                   ~0.00                   0.08

Port 1/1/2
-------------------------------------------------------------------------------
Octets                                           1056421                    219
Packets                                              695                      1
Errors                                                 0                      0
Bits                                             8451368                   1752
Utilization (% of port capacity)                    0.08                  ~0.00

Port 1/1/3
-------------------------------------------------------------------------------
Octets                                               185                     67
Packets                                                1                      1
Errors                                                 0                      0
Bits                                                1480                    536
Utilization (% of port capacity)                   ~0.00                  ~0.00

Now a link failure on the interface from PE-3 to PE-5 is emulated as follows:

*A:PE-3# configure port 1/1/1 shutdown

As a consequence of this, traffic will be flowing over the bypass link (see Intelligent Re-merge, Case 3 and note the ‛#’ symbol in the following show command, as well as the failure code).

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-4" p2mp-instance "p-LSP-p2mp-4" s2l loose to 192.0.2.7 detail 

===============================================================================
MPLS LSP LSP-p2mp-4 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-4
S2L LSP ID       : 54784                
P2MP ID          : 0                    S2L Grp Id           : 1
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/1                Out Label            : 524283
S2L Up Time      : 0d 00:17:13          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 1                    CSPF Queries         : 1
Failure Code     : tunnelLocallyRepaire Failure Node         : 192.0.2.3
                   d                    
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.13.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.13.2 (192.0.2.3) @ #                 Record Label        : 524283
 -> 192.168.35.2 (192.0.2.5)                     Record Label        : 524285
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524287
ComputedHops     :                      
    192.168.13.1(S)   
 -> 192.168.13.2(S)   
 -> 192.168.35.2(S)   
 -> 192.168.57.2(S)   
LastResignal     : n/a                  
In Prog MBB :
 MBB Type        : GlobalRevert         NextRetryIn          : 9 sec
 Started At      : 09/10/2018 13:08:10  RetryAttempt         : 0
 FailureCode     : noError              Failure Node         : n/a
===============================================================================
*A:PE-1#

In the meantime, PE-3 will trigger a global revertive action (sending PathErr message) toward the head-end node PE-1.

*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-4" p2mp-instance "p-LSP-p2mp-4" s2l loose to 192.0.2.7 detail 

===============================================================================
MPLS LSP LSP-p2mp-4 S2L loose (Detail)
===============================================================================
Legend : 
    @ - Detour Available                          # - Detour In Use
    b - Bandwidth Protected                       n - Node Protected
    S - Strict                                    L - Loose
    A - ABR
    s - Soft Preemption                   
===============================================================================
LSP Name         : LSP-p2mp-4
S2L LSP ID       : 54784                
P2MP ID          : 0                    S2L Grp Id           : 2
Admin State      : Up                   Oper State           : Up
S2L State:       : Active                                    : 
S2L Name         : loose
To               : 192.0.2.7            
S2L Admin        : Up                   S2L Oper             : Up
OutInterface     : 1/1/2                Out Label            : 524283
S2L Up Time      : 0d 00:17:33          S2L Dn Time          : 0d 00:00:00
RetryAttempt     : 0                    NextRetryIn          : 0 sec
S2L Trans        : 2                    CSPF Queries         : 2
Failure Code     : noError              Failure Node         : n/a
Inter-area       : False                
ExplicitHops     :                      
    No Hops Specified
Actual Hops      :                      
    192.168.12.1 (192.0.2.1) @                   Record Label        : N/A
 -> 192.168.12.2 (192.0.2.2)                     Record Label        : 524283
 -> 192.168.24.2 (192.0.2.4)                     Record Label        : 524284
 -> 192.168.45.2 (192.0.2.5)                     Record Label        : 524283
 -> 192.168.57.2 (192.0.2.7)                     Record Label        : 524287
ComputedHops     :                      
    192.168.12.1(S)   
 -> 192.168.12.2(S)   
 -> 192.168.24.2(S)   
 -> 192.168.45.2(S)   
 -> 192.168.57.2(S)   
LastResignal     : n/a                  
Last MBB    :
 MBB Type        : GlobalRevert         MBB State            : Success
 Ended At        : 09/10/2018 13:08:4
===============================================================================
*A:PE-1#

For a short time, PE-5 will receive two incoming MC streams (both arriving on port 1/1/3). One from the bypass path (PE-3 => PE-2 => PE-4 => PE-5) and one from the new MPLS path (PE-1 => PE-2 => PE-4 => PE-5 => PE-7). Port 1/1/1 on PE-5 performs intelligent remerge, so only one MC stream is sent downstream toward leaf node PE-7.

Conclusion

From a configuration point of view, a P2MP LSP is only configured on the head-end node of that P2MP LSP; no explicit configuration is needed on the transit LSRs, branch LSRs, bud LSRs, and egress LERs/leaf nodes.

Because the PIM protocol is only needed on the head-end node and the leaf nodes, we can work in a PIM-free core network. Although convergence is not covered in this chapter, failures in the core will be resolved by MPLS (in case of FRR, traffic loss for less than 50ms is expected). This is a major improvement compared to PIM convergence.