Internet-Draft SRv6 Bitmap Multicast December 2025
Peter Expires 4 June 2026 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-anish-spring-bimap-multicast-01
Published:
Intended Status:
Standards Track
Expires:
Author:
A. Peter, Ed.
Individual

SRv6 Bitmap Multicast

Abstract

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.

Requirements Language

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].

Status of This Memo

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.

Table of Contents

1. Introduction

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.

2. Network Overview

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.

3. IPv6 Bit-Index Format

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  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+-+-...-+-+...+-+

Figure 1: Syntax of BIER6 address

The SI_Locator present in the destination (anycast) address in the ipv6 header would provide a map to identify the BIFT-ID.

4. Segment Routing Header

In some scenarios there is a need to have multiple SID's to achieve the desired network forwarding. The scenarios could be

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)       //
//                                                             //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Syntax of BIER SRH

where:

Next Header:
Defined in [RFC8200], Section 4.4.
Hdr Ext Len:
Defined in [RFC8200], Section 4.4.
Routing Type:
4, defined in [RFC8754], Section 2.
Segments Left:
Defined in [RFC8200], Section 4.4.
Last Entry:
contains the index (zero based), in the Segment List including the SI6 SID, of the last element of the Segment List.
Flags:
8 bits of flags. [RFC8754].
Tag:
Tag: is described in [RFC8754], Section 4.3.1.
Segment List[0..n]:
Is described in [RFC8754], Section 4.3.1.
TLV:
Type Length Value (TLV) is described in [RFC8754], Section 2.1.

5. BI6 with multiple sub-domains

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.

6. Interworking with non compatible BI6 Routers

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.

6.1. Node-SID insertion for intermediate node tunneling

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.

6.2. Receiving a BI6 packet

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.

7. Routing extension header for BIER

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)       //
//                                                             //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Syntax of BIER SRH for accomodating longer bitstrings

where fields are as defined before unless stated below.

Flags:
8 bits of flags. [RFC8754].

         0 1 2 3 4 5 6 7
        +-+-+-+-+-+-+-+-+
        |U U U U U U U B|
        +-+-+-+-+-+-+-+-+

U: Unused and for future use. MUST be 0 on transmission and ignored on receipt.
B: In this last bit is set to 1 of the SRH includes a BIER BITSTRING. It must not set when the SRH has the SI6 SID without an explicit BIER bitmap.
BIER Bitsring:
BITSRING for BIER forwarding. The size of this BITSRING is already known from tbe BIER configurations. It can also be figured out from a packet as the bits in between the BI6 SID and the common header.

8. Scope for future work

8.1. Define egress functions based on FUNC and ARG bits

8.2. IGP extension to support underlay

9. Subscriber management

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.

10. IANA Considerations

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.

11. Security Considerations

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.

12. Appendix 1: Bit-Index string length

12.1. Private IPv6 address for operations

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.

13. References

13.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8200]
Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, , <https://www.rfc-editor.org/info/rfc8200>.
[RFC8279]
Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., Przygienda, T., and S. Aldrin, "Multicast Using Bit Index Explicit Replication (BIER)", RFC 8279, DOI 10.17487/RFC8279, , <https://www.rfc-editor.org/info/rfc8279>.
[RFC8296]
Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, , <https://www.rfc-editor.org/info/rfc8296>.
[RFC8754]
Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, , <https://www.rfc-editor.org/info/rfc8754>.

13.2. Informative References

[RFC4193]
Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, DOI 10.17487/RFC4193, , <https://www.rfc-editor.org/info/rfc4193>.
[RFC8986]
Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 (SRv6) Network Programming", RFC 8986, DOI 10.17487/RFC8986, , <https://www.rfc-editor.org/info/rfc8986>.

Author's Address

Anish Peter (editor)
Individual
Bangalore
KA
India