On an IPv6 network, the BIERv6 header carries BitString information and is encapsulated into an IPv6 extension header. Because each bit in the BitString represents a receiver PE of a multicast packet, each node on the BIERv6 network can forward the packet according to the BitString.
BIERv6 has another form — Generalized Bit Index Explicit Replication (G-BIER). The implementation of G-BIER is similar to that of BIERv6 except for the description of packet fields. By default, the device uses the BIERv6 mode to process multicast packets.
An IPv6 packet consists of an IPv6 header, 0 to N (N ≥ 1) extension headers, and a payload. The BIERv6 packet header uses one IPv6 extension header: Destination Options Header (DOH), whose type value is 60. Figure 1 shows the format of a BIERv6 packet header.
Table 1 describes the fields in the DOH of a BIERv6 packet header.
Field |
Length |
Description |
---|---|---|
Next Header |
8 bits |
Type of the header following the BIERv6 packet header. The common types are as follows:
|
Hdr Ext Len |
8 bits |
Length of the BIERv6 packet header excluding the first eight bytes (fixed length), in multiples of 8 bytes. |
Option Type |
8 bits |
Option type. In BIERv6, the value is 0x7A, indicating a BIERv6 option. |
Option Length |
8 bits |
Length of the BIERv6 packet header, excluding Option Type and Option Length fields, in bytes. |
BIFT-ID |
20 bits |
ID of a bit index forwarding table (BIFT). It consists of a 4-bit BSL, 8-bit sub-domain ID, and 8-bit set ID. |
TC |
3 bits |
This field is set to 0 during packet encapsulation and is ignored when the packet is received. This field can be considered as a reserved field. |
S |
1 bit |
This field is set to 1 during packet encapsulation and is ignored when the packet is received. This field can be considered as a reserved field. In G-BIER mode, TC and S are combined into Rev1, whose value is set to 0 during packet encapsulation. Rev1 is ignored when the packet is received and can be regarded as a reserved field. |
TTL |
8 bits |
Time to live (TTL), indicating the maximum number of hops through which a packet can be forwarded using BIERv6. The TTL value decreases by 1 each time the packet passes through a BIERv6 forwarding node. When the TTL becomes 0, the packet is discarded. |
Nibble |
4 bits |
This field is set to 0 during packet encapsulation and is ignored when the packet is received. This field can be considered as a reserved field. |
Ver |
4 bits |
Version of the BIERv6 packet format. The value is 0 in the current version and can be ignored when the packet is received. |
BSL |
4 bits |
Coded value of the BitString length (BSL). The available coded values are as follows:
One or more BSLs can be configured in a BIERv6 sub-domain. In G-BIER mode, BSL, Nibble, and Ver are combined into Rev2, and the requirements for packet encapsulation are the same as those in BIERv6. Rev2 is ignored when the packet is received and can be regarded as a reserved field. |
Entropy |
20 bits |
Entropy value that can be used for load-balancing purposes. |
OAM |
2 bits |
Used for operations, administration and maintenance (OAM). It has no impact on packet forwarding. The default value is 0. |
Rsv |
2 bits |
Reserved field. The default value is 0. |
DSCP |
6 bits |
This field can be used to differentiate services and is not used currently. |
Proto |
6 bits |
This field is set to 0 during packet encapsulation and is ignored when the packet is received. This field can be considered as a reserved field. |
BFIR-ID |
16 bits |
This field is set to 0 during packet encapsulation and is ignored when the packet is received. This field can be considered as a reserved field. |
BitString |
Defined by the BSL |
Set of destination nodes of a multicast packet. |
On a BIERv6 network, each BIERv6 forwarding node must have SRv6 enabled and be configured with an IPv6 address (called an End.BIER SID) for forwarding BIERv6 packets. In G-BIER, this address is called a multicast policy reserved address (MPRA). When processing a received BIERv6 packet, each node encapsulates the End.BIER SID/MPRA of the next-hop node as the outer IPv6 destination address of the BIERv6 packet (note that the destination nodes of the multicast packet are defined through the BitString). Upon receiving the BIERv6 packet, the next-hop node forwards it according to the BIERv6 process.
Figure 2 shows the structure of the End.BIER SID/MPRA, in which the most significant bits must be a locator. The locator is an IPv6 address prefix of an SRv6 node, can be considered as this node's identifier, and is used for route addressing.