Intra-AS NG-MVPN over BIER

This chapter provides information about Intra-AS NG-MVPN over BIER.

Topics in this chapter include:

Applicability

The information and configuration in this chapter are based on SR OS Release 16.0.R7.

Overview

RFC 8279, Multicast Using Bit Index Explicit Replication (BIER), defines an architecture for the forwarding of multicast data packets through a multicast domain, without requiring any explicit tree-building protocol nor any intermediate nodes to maintain any per-flow state, thereby offering significant operational simplification.

BIER concepts

BIER-enabled routers are known as Bit Forwarding Routers (BFRs). A BIER domain contains Bit Forwarding Ingress Routers (BFIRs), Bit Forwarding Egress Routers (BFERs), and transit BFRs; see Bit Forwarding Router types. A router can be a BFIR for one flow, and at the same time be a BFER or a transit BFR for other flows. A BFIR adds a BIER header holding the information used by the BIER forwarding procedures to the multicast packets entering the BIER domain. A BFER removes the BIER header when forwarding the packets out of the BIER domain. The BIER encapsulated data can be further encapsulated in MPLS, where a BIER forwarding table is identified through an MPLS label on the adjacent node. BIER tunnels can build a fully meshed multicast network, thereby providing multicast interconnections between all the PEs in the network.

Figure 1. Bit Forwarding Router types

Every BIER receiver has a BFR-prefix and a BFR-id. The BFR-id identifies a unique bit position in a bit string assigned to that BFR; by convention, the rightmost bit is bit number 1. The mapping between the BFR-id and the BFR-prefix must be known to all BFRs in the domain; therefore, this information is distributed by the underlying Interior Gateway Protocol (IGP) in new TLVs and sub-TLVs defined in IGP extensions. In the example in BIER control plane: example bit position assignment and advertisement, PE-1 has BFR-prefix 192.0.2.1/32 and BFR-id 1, PE-3 has BFR-prefix 192.0.2.3/32 and BFR-id 3, and so on. Routers in the core of the network are transit BFRs and, as such, they are not BIER receivers; they require a BFR-prefix but not a BFR-id, so their BFR-id is zero.

Figure 2. BIER control plane: example bit position assignment and advertisement

Every BFR in the domain constructs a Bit Indexed Forwarding Table (BIFT) using the shortest unicast path route (SPF). In the construction of a BIFT, every BFR computes the unicast SPF path to each BFR-prefix. BFR-ids sharing the same next hop are combined using a logical OR operation, thereby saving memory resources by occupying a single entry in the BIFT; see BIER data plane: example BIER forwarding table for P-2 for an example. On P-2, PE-4 and PE-5 are reachable via P-3, so the forwarding bitmask is 011000 with next hop P-3.

Figure 3. BIER data plane: example BIER forwarding table for P-2

The set of receivers a multicast data packet must be sent to is encoded in a bit string that is embedded in the BIER header. A BFR receiving a multicast data packet uses its BIFT to replicate these packets. When replicating a packet, the bit string in the BIER header is rewritten by the BFRs to avoid loops. Packets are forwarded and replicated hop by hop, following the unicast path from the BFIR to the BFERs.

The example in BIER data plane: example BIER packet forwarding assumes that CE-3 sends an IGMP join to PE-3, which in turn signals the join in MP-BGP to PE-1. PE-1 searches and finds BFR-id 3 in its BIFT with P-2 as the next hop, and logically ANDs (&1100) its bitmap when forwarding the packet to P-2. The AND operation explicitly clears bits for destinations that do not need the packet, thereby preventing potential duplication, and avoiding multicast routing loops. P-2 performs a similar set of steps to forward the packet to PE-3, which delivers the packet to CE-3. The overall result is that only nodes that requested the multicast stream will get that stream, leading to better, more optimal network usage.

Figure 4. BIER data plane: example BIER packet forwarding

A BIER domain contains one or more sub-domains (SDs), where each SD is associated with a single IS-IS or OSPF topology. Each SD is identified by a number in the range 0 to 255, and each BIER domain must contain at least one SD, where SD 0 is the default. If a BIER domain contains more than one SD, each BFR in the domain must be provisioned with the set of SDs it belongs to. The BFR-id of a BFR is a number in the range 1 to 65535, and must be unique within an SD. If a BFR belongs to more than one SD, it may have different BFR-ids in each SD. Nokia recommends using a loopback interface for the BFR-prefix. The BFR-prefix to BFR-id mapping is flooded within the SD.

For scalability, a BIER domain contains one or more BIER sets, where each BIER set is identified by a Set Identifier [SI]. The Bit String Length (BSL) dictates how many BFRs can be represented in a BIER set. The BSL, the SI, and the Bit Position (BP) are encoded in the BIER header, where the SI and the BP are derived from the BFR-id. Assuming a BSL of 256, BPs can range from 1 to 256 in BIER set 0. If more than 256 BFIRs and BFERs are required, a second BIER set is required with SI 1, where the BP can again range from 1 to 256. However, if a multicast flow has multiple receivers in different BIER sets on the same outgoing interface, the packet must be replicated to every BIER set.

BIER sets provides an example where BSL is 4 bits, and BFER B, C, and D are interested in the same stream entering the BIER domain at BFIR A. Because BFER C and D have BFR-id 5 and 6, respectively, they are part of SI 1, and BFIR A has to make two copies of the stream; a first (blue) copy to reach BFER-B, and a second (red) copy to reach BFER C and BFER D. Therefore, Nokia recommends assigning BFR-ids as dense as possible; for example, in consecutive order starting from 1.

Figure 5. BIER sets

BIER is encapsulated in MPLS and the MPLS label for each forwarding table (identified through BSL, SI, and SD) is distributed through IS-IS; the BSL is 256 and the maximum number of BIER sets is 16. RFC 8401, Bit Index Explicit Replication Support via IS-IS, defines the extensions needed for distributing BIER information in IS-IS.

Multicast VPN over BIER

Multicast VPN (MVPN) or Next Generation IP Multicast in an IP-VPN (NG-MVPN) architectures describe a set of virtual routing and forwarding (VRF) or virtual private routed networks (VPRNs) that support the transport of multicast traffic across a provider network. MVPNs are defined in RFC 6513, Multicast in MPLS/BGP IP VPNs, and RFC 6514, BGP Encodings and Procedures for Multicast in MPLS/IP VPNs.

The NG-MVPN Configuration with MPLS and NG-MVPN Configuration with PIM chapters provide examples where the provider tunnels are signaled through either mLDP or PIM.

In this chapter, MVPN is used as the overlay to BIER in a single Autonomous System (AS). The MP-BGP control plane is used for the Auto-Discovery (A-D) of the MVPN memberships, the provider tunnel (P-tunnel) signaling, and the customer route (C-route) signaling; see MVPN over BIER.

Figure 6. MVPN over BIER

BIER supports the use of Inclusive PMSIs (I-PMSIs) and Selective PMSIs (S-PMSIs). In the case of I-PMSI, the A-D route signaling, P-tunnel instantiation, and C-multicast routing information are restricted to the I-PMSI, where every BFIR and BFER participating in the MVPN receives every packet forwarded onto the I-PMSI. This way BFIRs and BFERs are interconnected in full mesh. Bandwidth utilization can be optimized by using S-PMSIs, where the C-flow is sent only to BFERs that have interested receivers, and where explicit tracking is used to create the list of interested receivers. The C-flow will be moved from I-PMSI to S-PMSI by the BFIR when a configured data threshold is reached.

The MP-BGP UPDATE messages used to establish the I-PMSI and the S-PMSI tunnels include the PMSI Tunnel Attribute (PTA), where the tunnel type is set to BIER, and where the MPLS label value is the upstream assigned MPLS label that identifies the VRF; see PTA: PMSI tunnel attribute. By using BIER, multicast provisioning in the core can be simplified; the core routers must be provisioned for BIER, but not for PIM, mLDP, or RSVP-TE. A PIM-free core can be created where no multicast state needs to be maintained.

Figure 7. PTA: PMSI tunnel attribute

A multicast client joining a group through IGMP, MLD, or PIM results in the VRF sending an MP-BGP Source-Join message to the BFIR. The BFIR responds with a Source-AD message and establishes an S-PMSI tunnel if S-PMSI is enabled for the VPRN. Next, the S-PMSI tunnel is used to transport the C-flow from the BFIR to the BFER. Otherwise, the I-PMSI tunnel is used for transporting the C-flow.

On CE to PE links, PIM Hello messages are used to establish C-PIM adjacencies. Also between the PEs, across the I-PMSIs, adjacencies are established, not using PIM but using MP-BGP instead. The announcement of MP-REACH-NLRI Intra-AS I-PMSI A-D routes in the discovery process serves as the means to establish the PE-PE adjacencies. A response of the corresponding MP-UNREACH-NLRI results in the adjacency being dropped.

Configuration

The configuration used in this chapter is shown in Intra-AS NG-MVPN over BIER. IS-IS is the interior gateway protocol (IGP) used in AS 64496, and all nodes are at IS-IS level 2. These nodes share the same BIER domain and sub-domain (0). A multicast stream with group address 225.70.1.1 is transmitted by source 10.1.1.11 connected to PE-1. CE-3 and CE-4 are multicast receivers connected to PE-3 and PE-4, respectively. VPRN 1 is defined in PE-1, PE-3, and PE-4, and uses NG-MVPN for transporting the multicast traffic through the core of the network. See the NG-MVPN Configuration with MPLS and the NG-MVPN Configuration with PIM chapters for more information about NG-MVPN. The BFR-ids used by PE-1, PE-3, and PE-4 are 1, 3, and 4, respectively, so they are part of a single set with SI 0.

Figure 8. Intra-AS NG-MVPN over BIER

The initial configuration on the PE nodes includes the following:

  • Cards, MDAs, ports

  • Router interfaces

  • IS-IS

BGP configuration

BGP is required at the core of the network, using the VPN IPv4 and MVPN IPv4 address families in support of unicast and multicast for VPRN services. PE-1, PE-3, and PE-4 are clients of the route reflector located in P-2. The BGP configuration on PE-1, PE-3, and PE-4 is as follows:

# on PE-1, PE-3, and PE-4
configure
    router
        autonomous-system 64496
        bgp
            family vpn-ipv4 mvpn-ipv4
            vpn-apply-import
            vpn-apply-export
            rapid-withdrawal
            rapid-update vpn-ipv4 mvpn-ipv4
            group "iBGP"
                neighbor 192.0.2.2
                    peer-as 64496
                exit
            exit
            no shutdown
        exit
    exit
exit

P-2 is the route reflector and configured as follows:

# on P-2
configure
    router
        autonomous-system 64496
        bgp
            family vpn-ipv4 mvpn-ipv4
            vpn-apply-import
            vpn-apply-export
            cluster 0.0.0.1
            rapid-withdrawal
            rapid-update vpn-ipv4 mvpn-ipv4
            group "iBGP"
                peer-as 64496
                neighbor 192.0.2.1
                exit
                neighbor 192.0.2.3
                exit
                neighbor 192.0.2.4
                exit
            exit
            no shutdown
        exit
    exit
exit

BIER configuration

All the nodes in the topology have a BIER template named bier-tmpl0; however, the content for that template is different on each node. Although multiple sub-domains can be defined through the range command, in this example all nodes in the topology are in the single sub-domain 0 of the BIER domain.

PE-1, PE-3, and PE-4 are the termination points for the BIER tunnels; therefore, they require a BFR-id. For PE-1, PE-3, and PE-4, the system addresses are used as the prefix, and the BFR-ids are set to 1, 3, and 4, respectively. For brevity, only the BIER template on PE-1 is shown:

# on PE-1
configure
    router
        bier
            template "bier-tmpl0"
                sub-domain 0
                    prefix 192.0.2.1
                    bfr-id 1
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

P-2 is a transit BFR, so P-2 does not require a BFR-id. This is made explicit in the BIER template for P-2, as follows:

# on P-2
configure
    router
        bier
            template "bier-tmpl0"
                sub-domain 0
                    prefix 192.0.2.2
                    no bfr-id
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

The BIER template must be applied to the IGP, so that the MPLS labels required for the BIER tunnels are distributed through the IGP, which is IS-IS.

In the example topology shown in Figure 8, the IS-IS configuration is similar on all nodes, with level-capability set to level-2, and bier-templ0 applied and enabled (no shutdown) at level 2, as follows. For brevity, only the IS-IS configuration for PE-1 is shown.

# on PE-1
configure
    router
        isis
            level-capability level-2
            area-id 49.0001
            traffic-engineering
            level 2
                bier
                    template "bier-tmpl0"
                    no shutdown
                exit
            exit
            interface "system"
                no shutdown
            exit
            interface "int-PE-1-P-2"
                interface-type point-to-point
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

The status of IS-IS shows that BIER is active at L2 using template bier-tmpl0, but not at L1. BIER must be active on all nodes in the topology, but for brevity only the IS-IS status on P-1 is shown, as follows:

*A:PE-1# show router isis status
 
===============================================================================
Rtr Base ISIS Instance 0 Status
===============================================================================
ISIS Cfg System Id           : 0000.0000.0000
ISIS Oper System Id          : 1920.0000.2001
ISIS Cfg Router Id           : 0.0.0.0
ISIS Oper Router Id          : 192.0.2.1
ASN                          : 0
Admin State                  : Up
Oper State                   : Up
Ipv4 Routing                 : Enabled
---snip---
L1 Bier Template             : None, Disabled
L2 Bier Template             : bier-tmpl0, Enabled
---snip---
Entropy Label                : Enabled
Override ELC                 : Disabled
===============================================================================
*A:PE-1#

BIER allocates an MPLS label per BIER set, and 16 consecutive labels are allocated to accommodate the 16 BIER sets supported by SR OS. This label range is shown together with the BFR-id and BFR-prefix from the BIER template in the BIER database. For PE-1, the BIER database is as follows:

*A:PE-1# show router bier database
 
===============================================================================
BIER Database
===============================================================================
Template                         MT             Sub-domain     BSL
BFR-ID                           Start          End            Total
BFR-Prefix
-------------------------------------------------------------------------------
bier-tmpl0                       ipv4-unicast   0              256
1                                524271         524286         16
192.0.2.1
 
===============================================================================
BIER Database entries : 1
===============================================================================
*A:PE-1#

On P-2, the BIER database looks similar, but the BFR-id is zero indicating that no BFR-id is defined, as follows:

*A:P-2# show router bier database
 
===============================================================================
BIER Database
===============================================================================
Template                         MT             Sub-domain     BSL
BFR-ID                           Start          End            Total
BFR-Prefix
-------------------------------------------------------------------------------
bier-tmpl0                       ipv4-unicast   0              256
0                                524272         524287         16
192.0.2.2
 
===============================================================================
BIER Database entries : 1
===============================================================================
*A:P-2#

IS-IS distributes the BIER information across all the BFRs in the network using link state packets (shown as "LSP" in the output); consequently, this information is the same on all BFRs. As an example, the details for LSP PE-3.00-00 show that for PE-3 at level 2, the BFR-id is 3, and the MPLS label value is 524271:

*A:PE-1# show router isis database PE-3.00-00 detail
 
===============================================================================
Rtr Base ISIS Instance 0 Database (detail)
===============================================================================
 
Displaying Level 1 database
-------------------------------------------------------------------------------
Level (1) LSP Count : 0
 
Displaying Level 2 database
-------------------------------------------------------------------------------
LSP ID    : PE-3.00-00                                  Level     : L2
Sequence  : 0x9                    Checksum  : 0x5e35   Lifetime  : 962
Version   : 1                      Pkt Type  : 20       Pkt Ver   : 1
Attributes: L1L2                   Max Area  : 3        Alloc Len : 221
SYS ID    : 1920.0000.2003         SysID Len : 6        Used Len  : 221
 
TLVs :
  Area Addresses:
    Area Address : (3) 49.0001
  Supp Protocols:
    Protocols     : IPv4
  IS-Hostname   : PE-3
  Router ID   :
    Router ID   : 192.0.2.3
 
  ---snip---
   
  TE IP Reach   :
    Default Metric  : 10
    Control Info:    , prefLen 30
    Prefix   : 192.168.23.0
    Default Metric  : 10
    Control Info:    , prefLen 30
    Prefix   : 192.168.34.0
    Default Metric  : 0
    Control Info:   S, prefLen 32
    Prefix   : 192.0.2.3
    Sub TLV   :
      Bier::Bier Algo:0, IGP Algo:0, SD id:0, BFR id:3
          MPLS Encap  Max SI:16, BS Len:3(256), Label:524271
 
Level (2) LSP Count : 1
 
---snip---
 
===============================================================================
*A:PE-1#

A shorter and more convenient way for obtaining the BIER information directly is through the bier-info command. On PE-3, the BIER information is as follows:

*A:PE-3# show router isis bier-info
 
===============================================================================
Rtr Base ISIS Instance 0 Bier Info
===============================================================================
 
Displaying Level 1 BIER info
-------------------------------------------------------------------------------
 
Displaying Level 2 BIER info
-------------------------------------------------------------------------------
LSP ID    : PE-1.00-00
    MT ID    : 0
    Prefix   : 192.0.2.1
    Sub TLV   :
      Bier::Bier Algo:0, IGP Algo:0, SD id:0, BFR id:1
          MPLS Encap  Max SI:16, BS Len:3(256), Label:524271
 
LSP ID    : P-2.00-00
    MT ID    : 0
    Prefix   : 192.0.2.2
    Sub TLV   :
      Bier::Bier Algo:0, IGP Algo:0, SD id:0, BFR id:0
          MPLS Encap  Max SI:16, BS Len:3(256), Label:524272
 
LSP ID    : PE-3.00-00
    MT ID    : 0
    Prefix   : 192.0.2.3
    Sub TLV   :
      Bier::Bier Algo:0, IGP Algo:0, SD id:0, BFR id:3
          MPLS Encap  Max SI:16, BS Len:3(256), Label:524271
 
LSP ID    : PE-4.00-00
    MT ID    : 0
    Prefix   : 192.0.2.4
    Sub TLV   :
      Bier::Bier Algo:0, IGP Algo:0, SD id:0, BFR id:4
          MPLS Encap  Max SI:16, BS Len:3(256), Label:524271
  
===============================================================================
*A:PE-3#

No BIER tunnels are available, because no MVPN-enabled services are created yet. As stated before, SR OS allocates one label per BIER set, and on PE-1 they are as follows:

*A:PE-1# show router mpls-labels label 32 524287 bier
  
=================================================================
MPLS Labels from 32 to 524287 (Owner: BIER)
=================================================================
Label               Label Type          Label Owner
-----------------------------------------------------------------
524271              dynamic             BIER
524272              dynamic             BIER
---snip---
524285              dynamic             BIER
524286              dynamic             BIER
-----------------------------------------------------------------
In-use labels (Owner: BIER) in specified range  : 16
In-use labels (Owner: All) in specified range   : 17
In-use labels in entire range                   : 17
=================================================================
*A:PE-1#

Based on the link state packets distributed across the network, every BFR generates a BIER routing table and a BIER forwarding table. The BIER routing table defines the interface, next-hop, and neighbor to use for all BFRs. On P-1, the BIER routing table is as follows:

*A:PE-1# show router bier routing
 
===============================================================================
Destination Prefix                          Bfr-ID          Age
  Neighbor
    Nexthop
    Interface
-------------------------------------------------------------------------------
 
===============================================================================
BIER Routing Database Sub-Domain 0 BSL 256
===============================================================================
192.0.2.2                                   0               0d 00:27:30
  192.0.2.2
    192.168.12.2
    int-PE-1-P-2
 
192.0.2.3                                   3               0d 00:27:30
  192.0.2.2
    192.168.12.2
    int-PE-1-P-2
 
192.0.2.4                                   4               0d 00:27:30
  192.0.2.2
    192.168.12.2
    int-PE-1-P-2
 
===============================================================================
Total (Sub-Domain 0): 3
===============================================================================
Total BIER Routing entries : 3
===============================================================================
*A:PE-1#

The BIER forwarding table has one entry per BIER neighbor, defining the next hop, interface, and forwarding bit mask. On PE-1, the BIER forwarding table is as follows. For neighbor 192.0.2.2, the forwarding bit mask is 0xC in hexadecimal, or 0b1100 in binary. Using the convention that the rightmost bit is bit 1, this means bits 3 and 4 are set, and these bits correspond to BFRs with system addresses 192.0.2.3 and 192.0.2.4, according their BFR-id.

*A:PE-1# show router bier forwarding
  
===============================================================================
Neighbor
  Nexthop
  Interface
  [SI]: Label
     Forwarding Bit Mask
       BFR-ID : Prefix
-------------------------------------------------------------------------------
  
===============================================================================
BIER Forwarding Database Sub-Domain 0 BSL 256
===============================================================================
192.0.2.2
  192.168.12.2
  int-PE-1-P-2
  [0]: 524272
     0x000000000000000000000000000000000000000000000000000000000000000c
       3 : 192.0.2.3
       4 : 192.0.2.4
===============================================================================
Total (Sub-Domain 0): 1
===============================================================================
Total BIER Forwarding entries : 1
===============================================================================
*A:PE-1#

No multicast configuration is required in the base routers of the BFERs, BFIRs, and the transit BFR, resulting in a simplified configuration. Only the BFIRs and BFERs must be configured with MVPN-enabled VPRN services.

Service configuration

The full configuration of VPRN 1 on PE-1 is as follows. The int-PE-1-CE-1 interface provides the connection to the multicast source. PIM is enabled for all interfaces in the service through the apply-to all command. To support BIER, MVPN must be enabled with auto-discovery set to default and c-mcast-signaling set to bgp. BIER is enabled (no shutdown) for inclusive and selective provider tunnels for sub-domain 0.

# on PE-1
configure
    service
        vprn 1 name "svc-1" customer 1 create
            description "runs between PE-1, PE-3 and PE-4"
            route-distinguisher 64496:1
            auto-bind-tunnel
                resolution any
            exit
            vrf-target target:64496:1
            interface "int-PE-1-CE-1" create
                address 10.1.1.1/24
                sap 1/1/c5/1:10 create
                exit
            exit
            pim
                apply-to all
                no shutdown
            exit
            mvpn
                auto-discovery default
                c-mcast-signaling bgp
                provider-tunnel
                    inclusive
                        bier
                            sub-domain 0
                            no shutdown
                        exit
                    exit
                    selective
                        bier
                            sub-domain 0
                            no shutdown
                        exit
                        data-threshold 224.0.0.0/4 10
                    exit
                exit
                vrf-target unicast
                exit
            exit
            no shutdown
        exit
    exit
exit

The MVPN configuration for VRF 1 on PE-3 and PE-4 is the same. However, PE-3 and PE-4 provide connections to multicast clients CE-3 and CE4, and they have IGMP configured. Because the configurations for PE-3 and PE-4 are similar, only the configuration of PE-3 is provided.

# on PE-3
configure
    service
        vprn 1 
            route-distinguisher 64496:1
            auto-bind-tunnel
                resolution any
            exit
            vrf-target target:64496:1
            interface "int-PE-3-CE-3" create
                address 10.1.3.1/24
                sap 1/1/c5/1:10 create
                exit
            exit
            igmp
                ssm-translate
                    grp-range 225.70.1.1 225.70.255.255
                        source 10.1.1.11
                    exit
                exit
                interface "int-PE-3-CE-3"
                    no shutdown
                exit
                no shutdown
            exit
            pim
                no shutdown
            exit
            ---snip---
         exit
    exit
exit

With VRF 1 on PE-1, PE-3, and PE-4 configured as previously described, VPN and MVPN routes are exchanged, as follows:

*A:PE-1# show router bgp summary all
 
===============================================================================
BGP Summary
===============================================================================
Legend : D - Dynamic Neighbor
===============================================================================
Neighbor
Description
ServiceId          AS PktRcvd InQ  Up/Down   State|Rcv/Act/Sent (Addr Family)
                      PktSent OutQ
-------------------------------------------------------------------------------
192.0.2.2
Def. Instance  64496       59    0 00h22m31s 3/2/1 (VpnIPv4)
                           53    0           3/2/1 (MvpnIPv4)
 
-------------------------------------------------------------------------------
*A:PE-1#

The MVPN status for VRF-1 can be verified, as follows. For brevity, only the status on PE-1 is shown; BIER is used for I-PMSI and S-PMSI in SD 0, and the I-PMSI tunnel name is mpls-if-73731.

*A:PE-1# show router 1 mvpn
 
===============================================================================
MVPN 1 configuration data
===============================================================================
signaling          : Bgp                  auto-discovery     : Default
UMH Selection      : Highest-Ip           SA withdrawn       : Disabled
intersite-shared   : Enabled              Persist SA         : Disabled
vrf-import         : N/A
vrf-export         : N/A
vrf-target         : unicast
C-Mcast Import RT  : target:192.0.2.1:2
 
ipmsi              : bier
sub-domain         : 0
i-pmsi P2MP AdmSt  : Up
i-pmsi Tunnel Name : mpls-if-73731
 
BSR signalling     : none
Wildcard s-pmsi    : Disabled
Multistream-SPMSI  : Disabled
spmsi              : bier
sub-domain         : 0
s-pmsi P2MP AdmSt  : Up
max-p2mp-spmsi     : 10
data-delay-interval: 3 seconds
enable-asm-mdt     : N/A
data-threshold     : 224.0.0.0/4 --> 10 kbps
 
===============================================================================
*A:PE-1#

The receiver located at address 10.1.3.33/24 and connected to PE-3 then joins group 225.70.1.1, so VRF 1 creates an IGMP state, and (*,255.70.1.1) is forwarded to interface int-PE-3-CE-3, as follows:

*A:PE-3# show router 1 igmp group interfaces
===============================================================================
IGMP Interface Groups
===============================================================================
 
(*,225.70.1.1)                                            UpTime: 0d 00:10:59
    Fwd List  : int-PE-3-CE-3
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
*A:PE-3#

VRF 1 on PE-3 also creates a PIM state for group 225.70.1.1, where the incoming S-PMSI interface is mpls-if-73734, and the outgoing interface is int-PE-3-CE-3, as follows:

*A:PE-3# show router 1 pim group detail
 
===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 225.70.1.1
Source Address     : 10.1.1.11
RP Address         : 0
Advt Router        : 192.0.2.1
Flags              :                    Type               : (S,G)
Mode               : sparse
MRIB Next Hop      : 192.0.2.1
MRIB Src Flags     : remote
Keepalive Timer Exp: 0d 00:02:29
Up Time            : 0d 00:12:13        Resolved By        : rtable-u
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:25
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : No Info
Reg From Anycast RP: No
 
Rpf Neighbor       : 192.0.2.1
Incoming Intf      : mpls-if-73732
Incoming SPMSI Intf: mpls-if-73734
Outgoing Intf List : int-PE-3-CE-3
 
Curr Fwding Rate   : 59.920 kbps
Forwarded Packets  : 3772               Discarded Packets  : 0
Forwarded Octets   : 5650456            RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
*A:PE-3#

The number used in the incoming S-PMSI interface from the previous command is the incoming BIER tunnel ID on PE-3. The properties of BIER tunnel 73734 indicate that this tunnel originates on BFR 1 with prefix 192.0.2.1 and uses MPLS label 524269, as follows:

*A:PE-3# show router bier tunnel tunnel-id 73734
 
===============================================================================
BIER Tunnels
===============================================================================
Tunnel-id           Type                Oper                No. Of Leaves
BFR Prefx           Bfr-ID              Mpls Label          Sub-domain
-------------------------------------------------------------------------------
73734               rx                  In service          0
192.0.2.1           1                   524269              0
 
===============================================================================
BIER Tunnel entries : 1
===============================================================================
*A:PE-3#

The properties of the S-PMSI tunnel on PE-3 match the properties of the BIER tunnel, as follows:

*A:PE-3# show router 1 pim s-pmsi bier-root-addr 192.0.2.1
===============================================================================
PIM BIER Spmsi tunnels
===============================================================================
Root Addr                              Sub-Domain ID BFR ID        MPLS Lbl
Multistream-ID                         If-Index      Num Vpn SG's  State
-------------------------------------------------------------------------------
192.0.2.1                              0             1             524269
0                                      73734         1             Up
===============================================================================
PIM BIER Spmsi interfaces : 1
===============================================================================
*A:PE-3#

PE-3 signals the join request for group 225.70.1.1 as an MP-BGP Source-Join update message to PE-1, so in turn PE-1 also creates a PIM state. On PE-1, the multicast traffic enters and leaves VPRN 1 via interfaces int-PE-1-CE-1 and mpls-if-73734 (S-PMSI), respectively, as follows:

*A:PE-1# show router 1 pim group 225.70.1.1 detail
 
===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 225.70.1.1
Source Address     : 10.1.1.11
RP Address         : 0
Advt Router        : 192.0.2.1
Flags              :                    Type               : (S,G)
Mode               : sparse
MRIB Next Hop      : 10.1.1.11
MRIB Src Flags     : direct
Keepalive Timer    : Not Running
Up Time            : 0d 00:29:23        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       : 10.1.1.11
Incoming Intf      : int-PE-1-CE-1
Outgoing Intf List : mpls-if-73731 (mpls-if-73734)
 
Curr Fwding Rate   : 65.912 kbps
Forwarded Packets  : 9594               Discarded Packets  : 0
Forwarded Octets   : 14371812           RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
*A:PE-1#

The properties of the I-PMSI mpls-if-73731 tunnel interface on PE-1 include the details for the joined multicast group, as follows:

*A:PE-1# show router 1 pim tunnel-interface "mpls-if-73731" detail
 
===============================================================================
PIM Interface ipv4 mpls-if-73731
===============================================================================
Admin Status       : Up                 Oper Status        : Up
IPv4 Admin Status  : Up                 IPv4 Oper Status   : Up
DR                 : 192.0.2.1
Auto-created       : Yes
Transport Type     : MVPN-Pmsi
 
-------------------------------------------------------------------------------
PIM Group Source
-------------------------------------------------------------------------------
Group Address      : 225.70.1.1
Source Address     : 10.1.1.11
Interface          : mpls-if-73731      Type               : (S,G)
RP Address         : 0.0.0.0
Up Time            : 0d 00:33:59
 
Join Prune State   : Join               Expires            : Never
Prune Pend Expires : N/A
 
Assert State       : No Info
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================
*A:PE-1#

Because VRF 1 is configured to use selective provider tunnels, SR OS creates additional BIER tunnels when joining groups exceed the data threshold of 10 kb/s. With only group 225.70.1.1 joined, the BIER tunnels on PE-1 are as follows:

*A:PE-1# show router bier tunnel
 
===============================================================================
BIER Tunnels
===============================================================================
Tunnel-id           Type                Oper                No. Of Leaves
BFR Prefx           Bfr-ID              Mpls Label          Sub-domain
-------------------------------------------------------------------------------
73731               tx                  In service          2
192.0.2.1           1                   524270              0
 
73732               rx                  In service          0
192.0.2.3           3                   524270              0
 
73733               rx                  In service          0
192.0.2.4           4                   524270              0
 
73734               tx                  In service          1
192.0.2.1           1                   524269              0
 
===============================================================================
BIER Tunnel entries : 4
===============================================================================
*A:PE-1#

The properties of the S-PMSI tunnel for group 225.70.1.1 on PE-1 show that the MPLS label 524269 and interface index 73734 are used, as follows. The label and interface index are the same as the highlighted BIER tunnel properties from the previous command.

*A:PE-1# show router 1 pim s-pmsi group-ip 225.70.1.1 detail
 
===============================================================================
PIM BIER Spmsi tunnels
===============================================================================
Root Address       : 192.0.2.1          BFR ID             : 1
Sub Domain         : 0                  Mpls Lbl           : 524269
Multistream ID     : N/A                If Index           : 73734
Num VPN SGs        : 1                  Oper State         : Up
 
VPN Group Address  : 225.70.1.1
VPN Source Address : 10.1.1.11
State              : TX Joined          Mdt Threshold      : 10
Join Timer         : 0                  Hold Down Timer    : 22
SG Age             : 2442               Expiry Timer       : 0
Threshold enabled  : False              Receiver count     : 0
-------------------------------------------------------------------------------
===============================================================================
PIM BIER Spmsi interfaces : 1
===============================================================================
*A:PE-1#

In summary, for the multicast traffic originated by CE-1 to VPRN 1, PE-1 passes the core network through a BIER tunnel and leaves VPRN 1, PE-3 to terminate in CE-3. A transit node in the core network (P-2 in the example of Figure 1) does not maintain any multicast state for the multicast stream.

With MVPN-enabled VPRN 1 instances defined on PE-1, PE-3, and PE-4, and group 225.70.1.1 active, an entry is added to the MVPN list. On PE-1, this list is as follows:

*A:PE-1# show router mvpn-list type bier
 
Legend: Sig = Signal  Pim-a = pim-asm  Pim-s = pim-ssm  A-D = Auto-Discovery
SR = Sender-Receiver  SO = Sender-Only  RO = Receiver-Only
 
===============================================================================
MVPN List
===============================================================================
VprnID    A-D      iPmsi/sPmsi GroupAddr/Lsp-Template          IPv4(S,G)/(*,G)
           Sig      Mdt-Type                                    IPv6(S,G)/(*,G)
-------------------------------------------------------------------------------
1         Default  Bier/Bier   N/A                             1/0
           Bgp      SR                                          0/0
-------------------------------------------------------------------------------
Total Mvpns : 1
===============================================================================
 
===============================================================================
Total                              PIM        RSVP       MLDP       BIER
-------------------------------------------------------------------------------
I-PMSI tunnels                     0          0          0          1
TX S-PMSI tunnels                  0          0          0          1
RX S-PMSI tunnels                  0          0          0          0
RX PSEUDO S-PMSI tunnels           0          0          0          0
-------------------------------------------------------------------------------
Total IPv4 (S,G)/(*,G) : 1/0
Total IPv6 (S,G)/(*,G) : 0/0
===============================================================================
*A:PE-1#

As opposed to Rosen MVPNs, at no place in the network must multicast be configured in the base router. The status of PIM can be verified as follows, but for brevity the command is executed on P-2 only.

*A:P-2# show router pim status
MINOR: CLI PIM is not configured.
*A:P-2#

Debug

The following debug configuration can be used for troubleshooting BIER:

debug
    router "Base"
        bier
            management
            template
            tunnel
        exit
    exit
exit

The log shows the trace when CE-4 joins group 225.70.1.1 on PE-4, VPRN 1. To see the interactions with IGMP, PIM, and BGP, these protocols should be debugged too, but these are omitted here. The message sequence indicates what happens when a new BIER tunnel is created on PE-4. The new BIER tunnel ID 73735 is highlighted.

*A:PE-4# show log log-id 1 ascending
 
===============================================================================
Event Log 1
===============================================================================
Description : (Not Specified)
Memory Log contents  [size=100   next event=10  (not wrapped)]
 
1 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierMttmProcessEvent
Process CREATE event for mttmIdx 73735"
 
2 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelCreate
Create Tunnel 73735 , Type RX, PTA: isValid T, BFR ID 1, SD 0, PFX 192.0.2.1, 
MPLS label 524269"
 
3 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelPrefixAdd
Add Tunnel to PFX 192.0.2.4, SD 0  isLocal TRUE for tracking. Existing Tunnel 
Tracked 1.Existing MVPN tracked 1. Existing Rx Tunnel Tracked 0"
 
4 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelPrefixAdd
Add Tunnel to PFX 192.0.2.1, SD 0  isLocal FALSE for tracking. Existing Tunnel 
Tracked 2.Existing MVPN tracked 2. Existing Rx Tunnel Tracked 0"
 
5 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelTrackedSvcIdAdd
[Bier:1] ADD SvcId 2 Associated with Pfx 192.0.2.1. Existing TX/RX Tunnel 1/2"
 
6 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierHandleTunnelCreate
Validate Tunnel 73735, subDomain 0, isPTAValid 1 ,BFR ID in PTA : 1, BFR ID 
in DB : 1"
 
7 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelUpdateFib
update FIB :- Tunnel 73735 Type : RX setId : 0 event TUN_ADD"
 
8 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelProcessFibTunnelMsg
Process FIB msg TAPMAP_CHG for Tunnel 73735OLD INFO : (IlmIdx: 0 p2mpIdx: 0, 
mid :0, mcid :0, TapMap : 0x000000000000000000000)NEW INFO : (IlmIdx: 24 
p2mpIdx: 24, mid :42110, mcid :8381, TapMap : 0x000000000000000000001)"
 
9 2019/05/06 12:57:23.004 CEST MINOR: DEBUG #2001 Base BIER[TUNNEL inst 1]
"BIER[TUNNEL inst 1]: bierTunnelMttmSendTunnelModify
Update MTTM for Tunnel 73735 with HW info and Oper state : UP"
*A:PE-4#

This new BIER tunnel is added to the list of tunnels, as follows:

*A:PE-4# show router bier tunnel
 
===============================================================================
BIER Tunnels
===============================================================================
Tunnel-id           Type                Oper                No. Of Leaves
BFR Prefx           Bfr-ID              Mpls Label          Sub-domain
-------------------------------------------------------------------------------
73731               tx                  In service          2
192.0.2.4           4                   524270              0
 
73732               rx                  In service          0
192.0.2.3           3                   524270              0
 
73733               rx                  In service          0
192.0.2.1           1                   524270              0
 
73735               rx                  In service          0
192.0.2.1           1                   524269              0
===============================================================================
BIER Tunnel entries : 4
===============================================================================
*A:PE-4#

Conclusion

Using BIER as multicast transport technology provides operators an alternative to Rosen MVPN scenarios that optimizes network resources. Multicast provisioning is simplified because the use of PIM, mLDP, or RSVP-TE as tunneling technologies can be avoided. Because no multicast control protocol is required in the core, no multicast state must be maintained; consequently, there is no need to reconverge state and resignal multicast state in the case of a network failure.