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 toSR OS Release 24.10.R2.

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 (S2L) 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 (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 FRR 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 steps that 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.

# on PE-1:
configure
    router Base
        interface "int-PE-1-PE-2"
            address 192.168.12.1/30
            port 1/1/c2/1:1000
        exit
        interface "int-PE-1-PE-3"
            address 192.168.13.1/30
            port 1/1/c1/1:1000
        exit
        interface "system"
            address 192.0.2.1/32
        exit
        ospf 0
            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 FRR is enabled for the P2MP LSP, Traffic Engineering (TE) is needed on the IGP. With TE enabled, OSPF generates opaque link state advertisements (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.

The following command verifies that the OSPF neighbors are up (state Full):

*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       36
   0.0.0.0
int-PE-1-PE-3                    192.0.2.3       Full       1    0       36
   0.0.0.0
-------------------------------------------------------------------------------
No. of Neighbors: 2
===============================================================================

The route table shows the Layer 3 interface addresses/subnets that are known on the PEs. The route table on head-end PE-1 is as follows:

*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     00h00m55s  0
       system                                                       0
192.0.2.2/32                                  Remote  OSPF      00h00m43s  10
       192.168.12.2                                                 1
192.0.2.3/32                                  Remote  OSPF      00h00m32s  10
       192.168.13.2                                                 1
192.0.2.4/32                                  Remote  OSPF      00h00m23s  10
       192.168.12.2                                                 2
192.0.2.5/32                                  Remote  OSPF      00h00m17s  10
       192.168.13.2                                                 2
192.0.2.6/32                                  Remote  OSPF      00h00m09s  10
       192.168.12.2                                                 3
192.0.2.7/32                                  Remote  OSPF      00h00m09s  10
       192.168.13.2                                                 3
192.168.12.0/30                               Local   Local     00h00m55s  0
       int-PE-1-PE-2                                                0
192.168.13.0/30                               Local   Local     00h00m55s  0
       int-PE-1-PE-3                                                0
192.168.23.0/30                               Remote  OSPF      00h00m43s  10
       192.168.12.2                                                 2
192.168.24.0/30                               Remote  OSPF      00h00m43s  10
       192.168.12.2                                                 2
192.168.35.0/30                               Remote  OSPF      00h00m32s  10
       192.168.13.2                                                 2
192.168.45.0/30                               Remote  OSPF      00h00m23s  10
       192.168.12.2                                                 3
192.168.46.0/30                               Remote  OSPF      00h00m23s  10
       192.168.12.2                                                 3
192.168.57.0/30                               Remote  OSPF      00h00m17s  10
       192.168.13.2                                                 3
192.168.67.0/30                               Remote  OSPF      00h00m09s  10
       192.168.12.2                                                 4
-------------------------------------------------------------------------------
No. of Routes: 16
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The following command shows the contents of the forwarding information base (FIB) for IOM card slot 1:

*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
-------------------------------------------------------------------------------
===============================================================================

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

# on PE-1:
configure 
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-1-MC-source" create
                address 192.168.100.1/30
                sap 1/1/c10/1 create
                exit
            exit
            no shutdown
        exit
    exit
    router Base
        ospf 0
            area 0.0.0.0
                interface "int-PE-1-MC-source"
                    interface-type point-to-point
                    no shutdown
                exit
            exit

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

# on PE-7:
configure
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-7-MC-client1" create
                address 192.168.171.1/30
                sap 1/1/c10/1 create
                exit
            exit
            no shutdown
        exit
# on PE-6:
configure
    service
        ies 1 name "IES 1" customer 1 create
            interface "int-PE-6-MC-client2" create
                address 192.168.162.1/30
                sap 1/1/c10/1 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 and 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 and RSVP configuration for PE-1 is as follows:

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

Configuring P2MP RSVP LSP

P2MP LSP LSP-p2mp-1 with bypass tunnels shows the P2MP LSP LSP-p2mp-1 with FRR facility backup.

Figure 2. P2MP LSP LSP-p2mp-1 with bypass tunnels

A P2MP LSP (LSP-p2mp-1) is 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 calculate the routes on the Traffic Engineering Database (TED). FRR facility method is used without node protection; the facility method 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 pushes 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 calculates the path 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 empty MPLS path is configured without specifying any hops.

# on PE-1:
configure 
    router Base
        mpls
            path "empty"
                no shutdown
            exit 

The P2MP LSP "LSP-p2mp-1" is created on the ingress LER or head-end node (PE-1 in the example) and can be seen in following CLI output. 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).

# on PE-1:
configure 
    router Base 
        mpls
            lsp "LSP-p2mp-1" p2mp-lsp
                from 192.0.2.1
                path-computation-method local-cspf
                fast-reroute facility
                    no node-protect
                exit
                primary-p2mp-instance "p-LSP-p2mp-1"
                    s2l-path "empty" to 192.0.2.6
                    exit
                    s2l-path "empty" 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. The following command shows that the only P2MP LSP on PE-1 is LSP-p2mp-1 and the administrative and operational state of this P2MP LSP is up and FRR is enabled:

*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
===============================================================================

In this example, P2MP LSP "LSP-p2mp-1" has two active S2L paths: one toward leaf node PE-6 and one to leaf node PE-7. FRR is enabled and the FRR method is facility.

*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
To              : Not configured
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
PathCompMethod  : local-cspf                ADSPEC               : Disabled
FallbkPathComp  : not-applicable
Metric          : Disabled                  Metric Type          : igp
Load Bal Wt     : N/A                       ClassForwarding      : Disabled
Include Grps    :                           Exclude Grps         :
None                                           None
Least Fill      : Disabled                  Soft Preemption      : 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
AllowSrOverSrte : 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        : empty
                                            To                   : 192.0.2.6
S2L-Name        : empty
                                            To                   : 192.0.2.7
=============================================================================== 
*A:PE-1# show router mpls p2mp-info

===============================================================================
MPLS P2MP Cross Connect Information
===============================================================================
-------------------------------------------------------------------------------
S2L:LSP-p2mp-1::empty
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 52736
To                   : 192.0.2.6
Out Interface        : 1/1/c2/1:1000         Out Label     : 524287
Num. of S2ls         : 1
-------------------------------------------------------------------------------
S2L:LSP-p2mp-1::empty
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 52736
To                   : 192.0.2.7
Out Interface        : 1/1/c1/1:1000         Out Label     : 524287
Num. of S2ls         : 1
-------------------------------------------------------------------------------
P2MP Cross-connect instances : 2
===============================================================================
*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          : 52736
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
Setup Priority  : 7                         Hold Priority        : 0
Include Grps    :                           Exclude Grps         :
None                                           None
Bandwidth       : No Reservation            Oper Bw              : 0 Mbps
S2L-Name        : empty
                                            To                   : 192.0.2.6
S2L Admin       : Up                        S2L Oper             : Up
S2L-Name        : empty
                                            To                   : 192.0.2.7
S2L Admin       : Up                        S2L Oper             : Up
-------------------------------------------------------------------------------
P2MP instances : 1
===============================================================================
Note:

As long as one S2L path is operationally up (show router mpls p2mp-lsp <p2mp-lsp-name> p2mp-instance <p2mp-instance-name>) , the operational 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 (as indicated by the ‛@’-reference inside the list of actual hops).

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

===============================================================================
MPLS LSP LSP-p2mp-1 S2L empty (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       : 52736
P2MP ID          : 0                       S2L Grp Id        : 2
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524287
S2L Up Time      : 0d 00:01:44             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
===============================================================================

More in detail, show router mpls bypass-tunnel detail can be used. The list of 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-61441
-------------------------------------------------------------------------------
To             : 192.168.23.2        State               : Up
Out I/F        : 1/1/c2/1:1000       Out Label           : 524285
Up Time        : 0d 00:04:23         Active Time         : n/a
Reserved BW    : 0 Kbps              Protected LSP Count : 1
Type           : P2mp                Bypass Path Cost    : 2
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        : 524285
---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/c3/1:1000       Out Label           : 524286
Up Time        : 0d 00:04:54         Active Time         : n/a
Reserved BW    : 0 Kbps              Protected LSP Count : 1
Type           : P2mp                Bypass Path Cost    : 3
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        : 524285

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

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

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::empty
-------------------------------------------------------------------------------
Source IP Address    : 192.0.2.1             Tunnel ID     : 1
P2MP ID              : 0                     Lsp ID        : 52736
To                   : 192.0.2.7
Out Interface        : 1/1/c1/1:1000         Out Label     : 524287
Num. of S2ls         : 1
-------------------------------------------------------------------------------
P2MP Cross-connect instances : 1
===============================================================================

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 is an internal representation of a specific P2MP LSP and the tunnel interface is configured within the pim context using the tunnel-interface rsvp-p2mp command followed by the P2MP LSP name, as follows:

# on PE-1:
configure
    router Base
        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 is 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 for the P2MP LSP. There is always a one-to-one mapping between <S,G> or <*,G> and the tunnel interface for the P2MP LSP. In the example an <S,G> is configured. A <*,G> join scenario is included in the Additional topics section.

# on PE-1:
configure
    router Base
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-1"
                static
                    group 227.1.1.1
                        source 192.168.100.2
                    exit
                exit
            exit
            no shutdown        

The show router pim tunnel-interface command shows the administrative and operational state of the tunnel interface and an association to an internal local interface index (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
===============================================================================

The show router igmp group command provides the configured <S,G> entry:

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

(192.168.100.2,227.1.1.1)                                 UpTime: 0d 00:00:48
    Fwd List  : 
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SLA Profile Instance Groups
===============================================================================
No Matching Entries
===============================================================================

The show router pim group <group-address> detail command on PE-1 shows that multicast traffic is sent from source 192.168.100.2 via incoming interface int-PE-1-MC-source to outgoing tunnel interface mpls-if-73728, as follows:

*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.100.2
RP Address         : 0
Advt Router        : 192.0.2.1
Flags              :                    Type               : (S,G)
Mode               : sparse
MRIB Next Hop      : 192.168.100.2
MRIB Src Flags     : direct
Keepalive Timer    : Not Running
Up Time            : 0d 00:01:25        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.100.2
Incoming Intf      : int-PE-1-MC-source
Outgoing Intf List : mpls-if-73728

Curr Fwding Rate   : 7659.080 kbps
Forwarded Packets  : 715732             Discarded Packets  : 0
Forwarded Octets   : 78730520           RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

Leaf node (egress LER)

On the leaf nodes, the following command creates the same tunnel interface in the PIM context as the head-end node. An explicit reference to the head-end system address, using the sender <systemIP_head-end_node> parameter is needed.

# on PE-7:
configure
    router Base
        pim
            tunnel-interface rsvp-p2mp "LSP-p2mp-1" sender 192.0.2.1

The show router pim tunnel-interface command provides the administrative and operational state of the tunnel interface and an association to an internal local interface index (73728 in this example, by coincidence the same interface index 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
===============================================================================

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 multicast information policy, a range of multicast group addresses is 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). The following configures the multicast information policy on leaf node PE-7:

# on 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
        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 multicast group address, 227.1.1.1, is seen.

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

# on PE-7:
configure
    router Base 
        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:

# on PE-7:
configure
    router Base
        igmp 
            interface "int-PE-7-MC-client1"
                static
                    group 227.1.1.1
                        source 192.168.100.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.100.2,227.1.1.1)                                 UpTime: 0d 00:00:14
    Fwd List  : int-PE-7-MC-client1
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SLA Profile Instance Groups
===============================================================================
No Matching Entries
===============================================================================

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.100.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:13:59        Resolved By        : unresolved

Up JP State        : Joined             Up JP Expiry       : 0d 00:00:01
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   : 6447.545 kbps
Forwarded Packets  : 966380             Discarded Packets  : 0
Forwarded Octets   : 106301800          RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

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 reply. Echo reply messages can be reduced by configuring the s2l-dest-address (a maximum of 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]]
  - p2mp-lsp-ping p2mp-policy root-address <ipv4-address> root-tree-id <tree-id> instance-id <instance-id>
    [sender-addr <ipv4-address>] [leaf-addr <ipv4-address> [... up to 5]]
  - options common to all p2mp-lsp-ping cases:  [detail] [fc <fc-name> [profile {in|out}]] [size <octets>]
    [timeout <timeout>]

 <lsp-name>           : [64 chars max]
 <instance-name>      : [32 chars max]
 <in|out>             : in|out - Default: out
 <fc-name>            : be|l2|af|l1|h2|ef|h1|nc - Default: be
 <octets>             : [1..9786] - Default: 1
 <label-ttl>          : [1..255] hops - 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
 <ipv4-address>       : a.b.c.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)
 <p2mp-policy>        : keyword - ping a P2MP segment routing policy
 <tree-id>            : [8193..16286]
 <instance-id>        : [1..4294967295]
*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        =3.79ms              EgressRtr(3)
192.0.2.7        =3.88ms              EgressRtr(3)
===============================================================================

Total S2L configured/up/responded = 2/2/2,
          round-trip min/avg/max  = 3.79 / 3.83 / 3.88 ms

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

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..9786] - Default: 1
 <no-response-count>  : [1..10] - Default: 5
 <probes-per-hop>     : [1..10] - Default: 1
 <min-label-ttl>      : [1..255] hops - Default: 1
 <max-label-ttl>      : [1..255] hops - 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=1.48 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=8982 label=524287 proto=4(RSVP-TE) B/E flags:0/0
  2  192.0.2.5  rtt=2.33 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.57.2 ifaddr=192.168.57.2 iftype=ipv4Numbered MRU=8982 label=524287 proto=4(RSVP-TE) B/E flags:0/0
  3  192.0.2.7  rtt=3.13 ms rc=3(EgressRtr) 

Return codes (rc) 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) is 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 (bootstrap router (BSR) protocol) or a static way. In this example, the static way is chosen meaning that on all involved PIM nodes, the RP address is statically configured. The following configuration is needed on head-end and leaf nodes.

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

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

*A:PE-1# 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
===============================================================================

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)

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

The same preceding show commands 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
===============================================================================
IGMP SLA Profile Instance Groups
===============================================================================
No Matching Entries
===============================================================================
*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:00:05        Resolved By        : unresolved
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:54
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.000 kbps         
Forwarded Packets  : 73                 Discarded Packets  : 0
Forwarded Octets   : 8030               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.100.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:03:26        
Up Time            : 0d 00:00:05        Resolved By        : unresolved
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:54
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   : 6179.360 kbps      
Forwarded Packets  : 37089              Discarded Packets  : 0
Forwarded Octets   : 4079790            RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 2
===============================================================================

Influence IGP metric

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

# on PE-1:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-1-PE-2" 
                    metric 10000
# on PE-2:
configure 
    router Base
        ospf 0 
            area 0.0.0.0 
                interface "int-PE-2-PE-1"
                    metric 10000
                exit
                interface "int-PE-2-PE-3"
                    metric 10000
                exit
                interface "int-PE-2-PE-4"
                    metric 10000
                exit
# on PE-3:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-3-PE-2"
                    metric 10000
# on PE-4:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-4-PE-2"
                    metric 10000
# on PE-5:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-5-PE-7"
                    metric 10000
# on PE-7:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-7-PE-5"
                    metric 10000

The existing P2MP LSP LSP-p2mp-1 does not take into account these new constraints. The two S2L paths (one empty toward PE-6 and another empty toward PE-7) are calculated using the default OSPF metric. To trigger MPLS to recompute 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 triggers CSPF to recompute 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.

# on PE-1:
configure
    router Base
        mpls 
            p2mp-resignal-timer 60        # in minutes
*A:PE-1# show router mpls status

===============================================================================
MPLS Status
===============================================================================
Admin Status              : Up
Oper(V4) State            : Up          Oper(V6) State            : Down
IPv4 Oper Down Reason     : n/a
IPv6 Oper Down Reason     : ipv6TeRtrDown
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
P2mp 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
Retry on IGP Overload     : Disabled    Resignal on IGP Overload  : Disabled
Resignal on IGP Event     : Disabled
StrictEroNhopDirectRes    : Disabled

P2mp Resignal Timer       : 60 minutes  P2mp Next Resignal        : 59 minutes
Sec FastRetryTimer        : Disabled    Static LSP FR Timer       : 30 seconds
P2P Max Bypass Association: 1000
Max Bypass PLR Association: 16
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
PCE Init LSP              : Disabled
PCC Oper Status RSVP-TE   : Down        PCE Oper Status RSVP-TE   : Down
PCC Oper Status SR-TE     : Down        PCE Oper Status SR-TE     : Down
SR-TE Resignal Timer      : Disabled    SR-TE Next Resignal       : N/A
SR-TE Resig on IGP Event  : Disabled    SR-TE Resig on IGP Overlo*: Disabled
LSP BSID Block            : N/A
LSP History               : Disabled
LSP Self Ping Timeout     : 300 seconds LSP Self Ping Interval    : 1 seconds
RSVP-TE LSP Self Ping     : Disabled    Self Ping Timeout Action  : retry
RSVP-TE Tunnel Table Pref : 7           SR-TE Tunnel Table Pref   : 8

===============================================================================
MPLS LSP Count
===============================================================================
                          Originate         Transit           Terminate
-------------------------------------------------------------------------------
Static LSPs               0                 0                 0
Dynamic LSPs              2                 0                 0
P2P LSPs                  0                 N/A               N/A
Detour LSPs               0                 0                 0
P2MP S2Ls                 2                 0                 0
MPLS-TP LSPs              0                 0                 0
Mesh-P2P LSPs             0                 N/A               N/A
One Hop-P2P LSPs          0                 N/A               N/A
SR-TE LSPs                0                 N/A               N/A
Mesh-P2P SR-TE LSPs       0                 N/A               N/A
One Hop-P2P SR-TE LSPs    0                 N/A               N/A
PCE Init SR-TE LSPs       0                 N/A               N/A
On-Demand SR-TE LSPs      0                 N/A               N/A
===============================================================================

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

# on PE-1:
tools
    perform
        router Base
            mpls 
                resignal p2mp-lsp "LSP-p2mp-1" p2mp-instance "p-LSP-p2mp-1"
# on PE-1:
tools
    perform
        router Base
            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 following command shows the new actual and computed hops in the resignaled S2L path to PE-7:

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

===============================================================================
MPLS LSP LSP-p2mp-1 S2L empty (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       : 52738
P2MP ID          : 0                       S2L Grp Id        : 1
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524283
S2L Up Time      : 0d 00:21:04             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
===============================================================================

The following command shows the new actual and computed hops in the resignaled S2L path to PE-6:

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

===============================================================================
MPLS LSP LSP-p2mp-1 S2L empty (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       : 52738
P2MP ID          : 0                       S2L Grp Id        : 2
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.6
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524283
S2L Up Time      : 0d 00:21:04             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
===============================================================================

An oam p2mp-lsp-trace command toward PE-7 now sets 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=2.06 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=8982 label=524283 proto=4(RSVP-TE) B/E flags:0/0
  2  192.0.2.5  rtt=3.29 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.45.1 ifaddr=192.168.45.1 iftype=ipv4Numbered MRU=8982 label=524283 proto=4(RSVP-TE) B/E flags:0/0
  3  192.0.2.4  rtt=3.57 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.46.2 ifaddr=192.168.46.2 iftype=ipv4Numbered MRU=8982 label=524284 proto=4(RSVP-TE) B/E flags:0/0
  4  192.0.2.6  rtt=4.83 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.67.2 ifaddr=192.168.67.2 iftype=ipv4Numbered MRU=8982 label=524284 proto=4(RSVP-TE) B/E flags:0/1
  5  192.0.2.7  rtt=5.75 ms rc=3(EgressRtr)

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

# on PE-1:
configure 
    router Base
        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.

# on PE-1:
configure 
    router Base
        mpls 
            lsp "LSP-p2mp-1" 
                primary-p2mp-instance "p-LSP-p2mp-1"
                    s2l-path "empty" to 192.0.2.7 shutdown
                    no s2l-path "empty" 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 group ID changes while S2L LSP ID remains the same. 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       : 52738
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/c1/1:1000           Out Label         : 524283
S2L Up Time      : 0d 00:01:12             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
===============================================================================

An oam p2mp-lsp-trace command toward PE-7 now sets the B flag on PE-5 because PE-5 acts as 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=1.98 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.35.2 ifaddr=192.168.35.2 iftype=ipv4Numbered MRU=8982 label=524283 proto=4(RSVP-TE) B/E flags:0/0
  2  192.0.2.5  rtt=3.12 ms rc=8(DSRtrMatchLabel)
     DS 1: ipaddr=192.168.57.2 ifaddr=192.168.57.2 iftype=ipv4Numbered MRU=8982 label=524287 proto=4(RSVP-TE) B/E flags:1/0
  3  192.0.2.7  rtt=4.41 ms rc=3(EgressRtr)

Intelligent remerge

Intelligent remerge 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 remerge is implemented.

Intelligent remerge case 1 - Badly designed S2L paths

In this example, 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 remerge, case 1 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 remerge is performed at node PE-5.

# on PE-1:
configure
    router Base
        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
                from 192.0.2.1
                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          : 55808
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
Setup Priority  : 7                         Hold Priority        : 0
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
===============================================================================

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 are 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. The configuration is as follows:

# on PE-1:
configure 
    router Base
        pim
            tunnel-interface rsvp-p2mp "LSP-p2mp-2"
        exit
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-2"
                static
                    group 227.2.2.2
                        source 192.168.100.2
                    exit
                exit
            exit 
# on PE-6:
configure 
    router Base
        pim
            tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
        exit 
        igmp
            interface "int-PE-6-MC-client2"
                static
                    group 227.2.2.2
                        source 192.168.100.2
                    exit
                exit
            exit
        exit
    exit
    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" "227.2.2.2" create
                    exit
                exit
            exit 
    
# on PE-7:
configure
    router Base
        pim
            tunnel-interface rsvp-p2mp "LSP-p2mp-2" sender 192.0.2.1
        exit 
        igmp
            interface int-PE-7-MC-client1
                static
                    group 227.2.2.2
                        source 192.168.100.2
                    exit
                exit
            exit
        exit
    exit
    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" "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/c1/1 1/1/c2/1 1/1/c3/1 rate interval 3 repeat 10

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

---snip---
-------------------------------------------------------------------------------
At time t = 6 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/c1/1
-------------------------------------------------------------------------------
Octets                                                51                1239733
Packets                                                0                    881
Errors                                                 0                      0
Bits                                                 408                9917864
Utilization (% of port capacity)                   ~0.00                   0.01

Port 1/1/c2/1
-------------------------------------------------------------------------------
Octets                                           1239669                     73
Packets                                              881                      1
Errors                                                 0                      0
Bits                                             9917352                    584
Utilization (% of port capacity)                    0.01                  ~0.00

Port 1/1/c3/1
-------------------------------------------------------------------------------
Octets                                           1239598                     21
Packets                                              881                      0
Errors                                                 0                      0
Bits                                             9916784                    168
Utilization (% of port capacity)                    0.01                  ~0.00

-------------------------------------------------------------------------------
---snip---

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

Intelligent remerge case 2 - Make-before-break after graceful shutdown

Intelligent remerge, case 2 shows two paths of the same S2L that have Ingress Label Map (ILM) entries on different incoming ports and go out on the same NHLFE. This is the case during a make-before-break (MBB) operation on an S2L path after a graceful shutdown or global revertive. This is only a temporary situation until the original path is torn down.

Figure 6. Intelligent remerge, case 2

For this test, only multicast client MC-client1 is used (the one connected to leaf node PE-7). On nodes PE-4 and PE-7, the port to PE-6 is disabled to isolate PE-6. On the head-end node PE-1, a new P2MP LSP LSP-p2mp-3 is created with an empty MPLS path and with CSPF enabled. The metric type is TE to ensure that CSPF uses 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 remerge is performed at node PE-5.

# on PE-1:
configure
    router Base
        mpls
            path "empty"
                no shutdown
            exit
            lsp "LSP-p2mp-3" p2mp-lsp
                from 192.0.2.1
                path-computation-method local-cspf
                metric-type te
                primary-p2mp-instance "p-LSP-p2mp-3"
                    s2l-path "empty" to 192.0.2.7
                    exit
                exit
                no shutdown
            exit
*A:PE-1# show router mpls p2mp-lsp "LSP-p2mp-3" p2mp-instance "p-LSP-p2mp-3" s2l "empty" to 192.0.2.7 detail

===============================================================================
MPLS LSP LSP-p2mp-3 S2L empty (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       : 26624
P2MP ID          : 0                       S2L Grp Id        : 1
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524286
S2L Up Time      : 0d 00:00:15             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        : 524286
 -> 192.168.35.2(192.0.2.5)                      Record Label        : 524282
 -> 192.168.57.2(192.0.2.7)                      Record Label        : 524282
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 a 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 are 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. The configuration is as follows:

# on PE-1:
configure
    router Base
        pim 
            tunnel-interface rsvp-p2mp "LSP-p2mp-3"
        exit
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-3"
                no shutdown
                static
                    group 227.3.3.3
                        source 192.168.100.2
                    exit
                exit
            exit
# on PE-7:
configure
    router Base
        pim 
            tunnel-interface rsvp-p2mp "LSP-p2mp-3" sender 192.0.2.1
        exit
        igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.3.3.3
                        source 192.168.100.2
                    exit
                exit
            exit
        exit
    exit
    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" "227.3.3.3" create
                exit
            exit
        exit

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

*A:PE-5# monitor port 1/1/c1/1 1/1/c2/1 1/1/c3/1 rate interval 3

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

---snip---
-------------------------------------------------------------------------------
At time t = 6 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/c1/1
-------------------------------------------------------------------------------
Octets                                                51                1239561
Packets                                                0                    881
Errors                                                 0                      0
Bits                                                 408                9916488
Utilization (% of port capacity)                   ~0.00                   0.01

Port 1/1/c2/1
-------------------------------------------------------------------------------
Octets                                           1239061                     21
Packets                                              880                      0
Errors                                                 0                      0
Bits                                             9912488                    168
Utilization (% of port capacity)                    0.01                  ~0.00

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

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

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

# on PE-3:
configure 
    router Base
        rsvp 
            graceful-shutdown

The graceful shutdown on PE-3 triggers a global revertive on head-end node PE-1. A new MPLS path is calculated (see the dashed line in Intelligent remerge, 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 remerge, not sending duplicate multicast traffic downstream toward PE-7:

*A:PE-5# monitor port 1/1/c1/1 1/1/c2/1 1/1/c31 rate interval 3 repeat 20

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

-------------------------------------------------------------------------------
At time t = 30 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/c1/1
-------------------------------------------------------------------------------
Octets                                               131                1239824
Packets                                                1                    882
Errors                                                 0                      0
Bits                                                1048                9918592
Utilization (% of port capacity)                   ~0.00                   0.01

Port 1/1/c2/1
-------------------------------------------------------------------------------
Octets                                           1239552                     43
Packets                                              881                      1
Errors                                                 0                      0
Bits                                             9916416                    344
Utilization (% of port capacity)                    0.01                  ~0.00

Port 1/1/c3/1
-------------------------------------------------------------------------------
Octets                                             10124                    166
Packets                                                8                      1
Errors                                                 0                      0
Bits                                               80992                   1328
Utilization (% of port capacity)                   ~0.00                  ~0.00

---snip---

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


<continued>
-------------------------------------------------------------------------------
At time t = 33 sec (Mode: Rate)
-------------------------------------------------------------------------------
Port 1/1/c1/1
-------------------------------------------------------------------------------
Octets                                                63                1238788
Packets                                                0                    880
Errors                                                 0                      0
Bits                                                 504                9910304
Utilization (% of port capacity)                   ~0.00                   0.01

Port 1/1/c2/1
-------------------------------------------------------------------------------
Octets                                            291673                    131
Packets                                              208                      1
Errors                                                 0                      0
Bits                                             2333384                   1048
Utilization (% of port capacity)                   ~0.00                  ~0.00

Port 1/1/c3/1
-------------------------------------------------------------------------------
Octets                                           1239678                    225
Packets                                              881                      1
Errors                                                 0                      0
Bits                                             9917424                   1800
Utilization (% of port capacity)                    0.01                  ~0.00

-------------------------------------------------------------------------------
---snip---

Eventually, port 1/1/c3/1 takes over all traffic.

Intelligent remerge case 3 - Bypass and new global revertive path

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 performs intelligent remerge. The implementation recognizes this specific case and signals a different label from the original S2L path coming on that same interface.

Intelligent remerge, 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 remerge, case 3

For this test, all the non-default OSPF metrics are removed from the interfaces on all the PEs; on PE-1, as follows:

# on PE-1:
configure 
    router Base
        ospf 0
            area 0.0.0.0 
                interface "int-PE-1-PE-2"
                    no metric

Only one MC-client is used (MC-client1 connected to leaf node PE-7). On nodes PE-4 and PE-7, the port toward PE-6 is disabled to isolate PE-6. On the head-end node PE-1, a new P2MP LSP "LSP-p2mp-4" is created with an empty MPLS path and FRR enabled. Also in this case, intelligent remerge is performed at node PE-5.

# on PE-1:
configure
    router Base
        mpls
            path "empty"
                no shutdown
            exit
            lsp "LSP-p2mp-4" p2mp-lsp
                from 192.0.2.1
                path-computation-method local-cspf
                fast-reroute facility
                    no node-protect
                exit
                primary-p2mp-instance "p-LSP-p2mp-4"
                    s2l-path "empty" 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 empty to 192.0.2.7 detail

===============================================================================
MPLS LSP LSP-p2mp-4 S2L empty (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       : 15872
P2MP ID          : 0                       S2L Grp Id        : 1
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524284
S2L Up Time      : 0d 00:01:04             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        : 524284
 -> 192.168.35.2(192.0.2.5)                      Record Label        : 524284
 -> 192.168.57.2(192.0.2.7)                      Record Label        : 524286
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 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 are 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:

# on PE-1:
configure
    router Base
        pim 
            tunnel-interface rsvp-p2mp "LSP-p2mp-4"
        exit
        igmp
            tunnel-interface rsvp-p2mp "LSP-p2mp-4"
                no shutdown
                static
                    group 227.4.4.4
                        source 192.168.100.2
                    exit
                exit
            exit
        exit
# on PE-7:
configure
    router Base
        pim 
            tunnel-interface rsvp-p2mp "LSP-p2mp-4" sender 192.0.2.1
        exit
        igmp
            interface "int-PE-7-MC-client1"
                static
                    group 227.4.4.4
                        source 192.168.100.2
                    exit
                exit
            exit
        exit
    exit
    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" "227.4.4.4" create
                exit
            exit
        exit

The initial path goes from PE-1 via PE-3 and PE-5 to PE-7. The following command emulates a link failure on the interface from PE-3 to PE-5:

# on PE-3:
configure 
    port 1/1/c1/1 
        shutdown

As a consequence of this, traffic flows from PE-1 to PE-3 and then over the bypass link from PE-3 via PE-2 and PE-4 to PE-5, as shown in Intelligent remerge, case 3. The following command shows the ‛#’ symbol for actual hop 192.168.13.2 and the failure code is tunnelLocallyRepaired:

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

===============================================================================
MPLS LSP LSP-p2mp-4 S2L empty (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       : 48640
P2MP ID          : 0                       S2L Grp Id        : 1
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c1/1:1000           Out Label         : 524284
S2L Up Time      : 0d 00:01:45             S2L Dn Time       : 0d 00:00:00
RetryAttempt     : 0                       NextRetryIn       : 0 sec
S2L Trans        : 1                       CSPF Queries      : 2
Failure Code     : tunnelLocallyRepaired   Failure Node      : 192.0.2.3
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        : 524284
 -> 192.168.57.2(192.0.2.7)                      Record Label        : 524286
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       : 7 sec
 Started At      : 02/11/2025 08:59:39     RetryAttempt      : 0
 FailureCode     : noError                 Failure Node      : n/a
===============================================================================

In the meantime, PE-3 triggers a global revertive action by sending a PathErr message toward the head-end node PE-1. After the global revert, the path goes from PE-1 via PE-2, PE-4, and PE-5 to PE-7.

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

===============================================================================
MPLS LSP LSP-p2mp-4 S2L empty (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       : 15872
P2MP ID          : 0                       S2L Grp Id        : 2
Admin State      : Up                      Oper State        : Up
S2L State:       : Active                                    :
S2L Name         : empty
To               : 192.0.2.7
S2L Admin        : Up                      S2L Oper          : Up
OutInterface     : 1/1/c2/1:1000           Out Label         : 524283
S2L Up Time      : 0d 00:03:36             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        : 524282
 -> 192.168.57.2(192.0.2.7)                      Record Label        : 524286
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        : 02/11/2025 09:00:13
===============================================================================

For the very short time that the bypass path is used together with the new calculated path, PE-5 receives two incoming MC streams (both arriving on port 1/1/c3/1): 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/c1/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, the core network can remain PIM-free. 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), which is a major improvement compared to PIM convergence.