| Internet-Draft | SRv6 Bitmap Multicast | December 2025 |
| Peter | Expires 4 June 2026 | [Page] |
Multicast forwarding in a network provides advantages in improving the network usage and performance. In some cases it helps improve the operations in managing network. The major challenge in multicast operations is in managing the per-flow states in the network as required by all the legacy multicast frameworks.¶
This document specifies a bitmap forwarding extension to SRv6 to support state-free forwarding model in a network.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [RFC2119].¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 4 June 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Segment routing with IPv6 as specified in RFC8986 [RFC8986] provides a source-routing solution for next generation network requirements. More applications and use-cases are finding a better solutions using SRv6. Along with this comes the need to support multicasting and broadcasting in such networks. The various use-cases for this would be stated in the subsequent sections.¶
Broadcasting typically needs a point-to-multipoint (p2mp) distribution with all the nodes in the network being receivers. Multicasting would imply p2mp distribution along with multipoint-to-multipoint (mp2mp) packet distribution with the participants being pre-determined via a discovery or provisioning mechanism.¶
Bit-Index-Explicit-Replication specified in RFC8279 [RFC8279] introduced a per-flow-state-free forwarding for multicast using a bit-indexed addressing of multicast receivers.¶
This document introduces a bit-map based distribution schema in IPv6 networks to achieve p2mp distribution patterns. SRv6 introduced a new semantic to IPv6 address by fragmenting the address bits into Locator:Function:Argument construct to achieve the desired SR functionality. This document proposes a similar treatment of IPv6 address to achieve BIER forwarding.¶
Though-out this document non-reduced SID encap is presented. But a reduced SRH can also be used. This convention is followed to improve clarity.¶
BIER architecture puts forward a multicast forwarding based on "Bit-Index-Explicit-Replication". This architecture defines a BIER domain in which an ingress router would encapsulate p2mp packet with a BIER header RFC8296 [RFC8296] . This BIER packet would be replicated to the egress routers identified by the ingress in its BIER header, over an optimal per-flow-stateless tree discovered with the underlay.¶
This document provides a new semantic to the IPv6 address as SI_LOCATOR:BITSTRING:FUNCTION:ARGUMENT. This structure is partly borrowed from SRv6. The BITSTRING part is introduced to address the egress routers in the BIER subdomain by its bit index. From here on this format is called as Bit-Index-6 (BI6)¶
BIER architecture envisages forwarding by identifying each egress router with an BFR-id. These BFR-id in forwarding translates to a Set-Identifier (SI) and Bitstring. In the IPv6 Bit-Index format, the SI is identified by the SI_LOCATOR and bitstring is encoded in the BITSTRING part of the BI6. The FUNCTION and ARGUMENT bits are part of the format. But depending on the network requirement their lengths may be set to 0 for using this bits for extended bitstring.¶
SI_LOCATOR is defined as an anycast routable prefix to reach any one of the specific set of routers in a SetIdentifier. Once a BI6 packet reaches a router that is part of a SI, The bit-index based part is referred to for forwarding towards the BFER's with the BIER forwarding principles. The semantics of the FUNC and ARG bits is global in the Sub-domain. The attributes of FUNCTION and ARGUMENT bits must be pre-determined for a BFER's in a BIER Set-Identifier.¶
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+-+-...-+-+...+-+ | SI_LOCATOR | BITSTRING | FUNC | ARG | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+-+-...-+-+...+-+
The SI_Locator present in the destination (anycast) address in the ipv6 header would provide a map to identify the BIFT-ID.¶
In some scenarios there is a need to have multiple SID's to achieve the desired network forwarding. The scenarios could be¶
a. For sending a packet though a predefined path to the first router in a BIER subdomain. The application for this is stated in the sub-sequent sections.¶
b. For sending a packet though a set of legacy systems that may not support BI6 forwarding.¶
c. When sending packet on to a node reachable over a transit LAN.¶
In such scenarios this document provides the structure of the SRH with a SID vector in addition to BIER SID.¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Last Entry | Flags | Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | 128bit BI6 SID (SI_LOC::FUNC:ARG) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[1] (128-bit IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | ~ ... ~ | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n] (128-bit IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // // Optional Type Length Value objects (variable) // // // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:¶
In a larger network having multiple sub-domains, a router may be programmed to do ingress replication of the traffic to multiple BIER subdomains. The ingress router may introduce a path vector as a SID list on each of this packet.¶
A network topology may have legacy devices which may not be capable of BI6 processing. When deploying BI6 the traffic may have to pass through some of these devices for loop-free forwarding.¶
A router may come to know about the BI6 capability of all routers in an IGP area via the capabilities it has published in its IGP advertisement. Based on this IGP may form a map of adjacent BFR's. An adj-BFR may be reachable over a few hops of legacy nodes. If the BFR is not directly connected, then that node must compute the list of legacy nodes that must be passed through to reach that adjcent BFR. Attached to adjacency map the BFR must maintain the SID vector to reach that adj-BFR.¶
When a packet gets forwarded to such an adjacency this SID vector would be inserted in that packet after doing the forwarding updates in the bitmap.¶
When receiving a BI6 packet with the sid penultimate to BI6 being that of self. The router may strip the SRH of all the SID's other than the BI6-SID. Post this it must do BIER forwarding. The process of doing BIER forwarding involves BIT string updation according to BIER principles.¶
For the topologies needing longer bitstring to address more BFER's, the SRH as specified for SRV6 itself can be used for sending the bitmap. This section provides the procedures involved in using this extension.¶
The existing SRH format supports encoding a SID stack to specify the multihop routing chain.¶
This SRH can be used for BIER bitmap by encoding the BITSTRING in the initial segment ID locations. The bitstring length is supposed to be infered from BIFT-ID (or from locator) in BI6, for this specification the bitsting length can be any multiple of 128.¶
The value of segments left must be set to roundup(length of the bitstream/128) + the number of element present in the segment list.¶
After the bitsting, the BI6 top-sid must follow, which would have the SI_Locator, ARGUMENT and FUNCTION bits.¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Last Entry | Flags |B| Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | BIER bit-string (m * 128) | ~ ... ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | 128bit BI6 SID (SI_LOC::FUNC:ARG) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n-m-1] (128-bit IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | ~ ... ~ | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Segment List[n] (128-bit IPv6 address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // // Optional Type Length Value objects (variable) // // // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where fields are as defined before unless stated below.¶
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|U U U U U U U B|
+-+-+-+-+-+-+-+-+
¶
In BIER architecture the multicast egress routers must be learned by the ingress router. This discovery may happen via some out-of-band mechanism beyond the scope of this document.¶
This specification introduces new semantics for IPv6 address. Though this draft does not need any allocations, New IANA allocations would be required for the supplimentary specifications.¶
This document proposes a semantic for IPv6 address. The security challenges that apply to IPv6 and in the BIER architecture applies to the intended BI6 forwarding model specified here.¶
Firewall/ACL/QoS policy filters usualy applied on multicast/broadcast traffic may not be applicable as such on a BI6 packet.¶
With BI6 it becomes possible to a remote node to inject p2mp traffic into a network. Making important to have packet source validations.¶
The further security scenarios would be added in the due course.¶
The Unique Local IPv6 address allocation RFC4193 [RFC4193] provides free to use address blocks with SI_LOCATOR size of 48. This provides a maximum BI6 addressing space of 80 bit length.¶
The Bit-index string length that can be used would be determined by the SI_locator prefix length and the need for FUNC and ARG bits. Hence if Unique local address space is used, upto 80 BFER's can be addressed.¶