Configuring NG-MVPN S-PMSI

You can configure an MVPN instance to use mLDP for a selective (S-PMSI) provider tunnel by adding a selective block under the network-instance protocols bgp-multicast-vpn multicast-vpn-instance[id=*] provider-tunnel selective mldp context (while the default inclusive I-PMSI remains enabled with inclusive mldp).

When a configurable threshold data-rate-threshold is reached for a particular <C-S, C-G> source-group, the router automatically builds an mLDP P2MP S-PMSI tree for that flow and switches the traffic from the I-PMSI to the S-PMSI. The router delivers the multicast traffic only to the PE nodes that have active receivers for that group.

The following example configures an IP-VRF network instance (srl-ipvrf) that uses BGP-MVPN for multicast signaling and sets up both an inclusive (I-PMSI) and a selective (S-PMSI) mLDP tunnel. The inclusive tunnel carries all multicast traffic by default, while the selective tunnel is created on-demand for a specific <C-S , C-G> when the configured data-rate-threshold is met, allowing traffic to be switched from the I-PMSI to the S-PMSI.

--{ + running }--[  ]--
# info with-context network-instance srl-ipvrf
    network-instance srl-ipvrf {
        type ip-vrf
        admin-state enable
        protocols {
            bgp-ipvpn {
                bgp-instance 1 {
                    admin-state enable
                    encapsulation-type mpls
                    mpls {
                        next-hop-resolution {
                            allowed-tunnel-types [
                                ldp
                                sr-isis
                            ]
                        }
                    }
                }
            }
            pim {
                admin-state enable
            }
            bgp-multicast-vpn {
                multicast-vpn-instance 1 {
                    bgp-instance 1
                    import-route-target-unicast
                    export-route-target-unicast
                    provider-tunnel {
                        selective {
                            mldp {
                                admin-state enable
                            }
                        }
                    }
                }
            }
        }
    }