IS-IS extension for BIER
The IS-IS extension for BIER is defined via RFC 8401.
Junos OS Evolved supports the advertisement of BIER information of one or more BIER sub-domains using IS-IS as the IGP underlay. Key BIER information like BFR-IDs and BFR-Prefixes in each sub-domain are flooded through the IS-IS domain to generate the BIER forwarding table.
Advertising BIER Info sub-TLV in IS-IS
The BIER info sub-TLV carries BIER sub-domain information. This sub-TLV advertises a single <MT,SD> (multi-topology/sub-domain) combination followed by optional sub-sub-TLVs as described in the next section. Junos OS Evolved supports IPv4-unicast and IPv6-unicast IS-IS topologies.
Multi-topology scenarios are not supported.
The figure below illustrates the BIER info sub-TLV.
IS-IS carries BIER info sub-TLV within IS-IS TLVs 135, 236 or 237.
-
IS-IS advertises BIER info sub-TLV in TLV 135 for BIER sub-domains with BFER-Prefix (IPv4) and IS-IS default topology.
-
IS-IS advertises BIER info sub-TLV in TLV 236 for BIER sub-domains with BFER-Prefix (IPv6) and IS-IS default topology.
-
IS-IS advertises BIER info sub-TLV in TLV 237 for BIER sub-domains with BFER-Prefix (IPv6) and IS-IS IPv6 unicast topology.
Advertising BIER MPLS Encapsulation sub-sub-TLV in IS-IS
This sub-sub-TLV carries the information for the BIER MPLS encapsulation including the label range for a specific BitStringlength for a certain <MT,SD> tuple. The sub-sub-TLV is advertised within the BIER info sub-TLV and may appear multiple times within a single BIER info sub-TLV.
The figure below illustrates the BIER info sub-sub-TLV.
The Max SI value is the set-identifier and is configured under
number-sets
. For example in the snippet below:
sub-domain 32 { encapsulation mpls bitmask-length 256 number-sets 4 }
The number-sets
is set to 4. The range is 1-16. Based on this value BIER
assigns four contiguous labels from the dynamic pool, for example, labels L1 to L4. L1
belongs to SI=0, L2 to S1=1 and so on. With the above configuration example, IS-IS sub-TLV
advertises with Max SI=4 and label as L1.
Advertising BIER-Prefix in IS-IS
BIER sub-domain related configuration parameters are set under protocols
bier
.
To include the BIER sub-domain in the IS-IS sub-TLVs, configure them under
protocols isis
:
protocols isis { bier-sub-domain 32 }
A BFR’s BFR-Prefix is an IP address (IPv4 or IPv6) which is generally the loopback IP address of the BIER router. Typically, IS-IS advertises the BFR-Prefix in one of the TLVs 135/236/237 depending on the IS-IS topology.
When bier-sub-domain
is configured under protocols isis
,
the information of the BIER sub-domain (BIER info sub-TLV + BIER MPLS Encapsulation
sub-sub-TLV) is advertised inside the IS-IS prefix TLV to extend BIER functionality.
Multiple sub-domains can advertise with the same loopback address.
IS-IS TLVs have a maximum length of 255 bytes. When the maximum number of sub-domains that can be supported is exceeded, another loopback IP address must be configured.
Installing BFR-Prefix to the BIER Routing Table
IS-IS routers advertise the BFR-Prefix and sub-domain information using the sub-TLV. IS-IS floods this BIER information throughout the IS-IS domain. This allows the IS-IS nodes build the prefix and associated next-hop information to install the BIER route to the routing information base (RIB) table. On the receiver side, IS-IS nodes parse this BIER sub-domain information associated with the BFR-Prefix and derive the route and next-hop information. IS-IS then installs this BIER route in the BIER routing table (BIRT).
For this implementation, it is assumed that all IS-IS nodes are BIER enabled.
BIER protocol and IS-IS interactions
IS-IS downloads the BIER route to the BIER routing table (BIRT). BIRT routes do not go directly to the forwarding table. These routes are consumed by the BIER module by listening to the route’s updates from the BIRT table. The module then derives the new route and next-hop information from the BIRT route and eventually downloads it to the PFE for data forwarding.
The BIFT route table name is in the format: bier-<subdomain-id>-<set-id>.bier.0.