Internet-Draft Compressed BSID Insertion July 2025
Chen & Zhao Expires 7 January 2026 [Page]
Workgroup:
SPRING
Internet-Draft:
draft-chen-spring-srv6-compressed-bsid-insertion-01
Published:
Intended Status:
Standards Track
Expires:
Authors:
R. Chen
ZTE Corporation
D. Zhao
ZTE Corporation

SRv6 NET-PGM extension: Compressed BSID Insertion

Abstract

The End.B6.Insert and End.B6.Insert.Red SHOULD support the NEXT-C-SID flavor either individually or in combinations. This document defines the SRH processing of the End.B6.Insert and End.B6.Insert.Red with NEXT-C-SID flavor.

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 7 January 2026.

Table of Contents

1. Introduction

[I-D.filsfils-spring-srv6-net-pgm-insertion] extends the SRv6 Network Programming [RFC8986] model with new endpoint and transit behaviors enabling the insertion of an SRH after the outer IPv6 header of the SR domain, called End.B6.Insert and End.B6.Insert.Red.

[RFC9800] specifies the new flavors to the SR segment endpoint behaviors defined in [RFC8986] that enable a compressed encoding of the SRv6 segment list. One of the flavor is the NEXT-C-SID flavor. With the NEXT-C-SID flavor, each C-SID container is a fully formed SRv6 SID with the common Locator-Block for all the C-SIDs in the C-SID container, a Locator-Node and Function that are those of the first C-SID, and an Argument carrying the subsequent C-SIDs.

The End.B6.Insert and End.B6.Insert.Red SHOULD support the NEXT-C-SID flavor either individually or in combinations. This document defines the SRH processing of the End.B6.Insert and End.B6.Insert.Red with NEXT-C-SID flavor.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. SRv6 endpoint behaviors

This section defines the SRH processing of the End.B6.Insert and End.B6.Insert.Red with NEXT-C-SID flavor.

2.1. End.B6.Insert with NEXT-C-SID flavor

End.B6.Insert with NEXT-C-SID: Endpoint bound to an SRv6 policy. The "Endpoint bound to an SRv6 Policy" is a variant of the End behavior.

When N receives a packet whose IPv6 DA is S and S matching a FIB entry locally instantiated as an End.B6.Insert SID with NEXT-C-SID Flavor, does:

   N01. If (DA.Argument!= 0) {
   N02. If (IPv6 Hop Limit <= 1) {
   N03. Send an ICMP Time Exceeded message to the Source
        Address, Code 0 (Hop limit exceeded in transit),
        interrupt packet processing and discard the packet.
   N04. }
   N05. Copy DA.Argument into the bits [LBL..(LBL+AL-1)]
        of the Destination Address.
   N06. Set the bits [(LBL+AL)..127] of the Destination
        Address to zero.
   N07. Decrement IPv6 Hop Limit by 1.
   N08.1.Insert a new SRH in between the IPv6 Header and
        the received SRH containing the list of segments of B.
   N08.2. Set the new SRH[0] to the IPv6 DA .
   N08.3. Set the IPv6 DA to the first segment of B.
   N08.4. Submit the packet to the egress IPv6 FIB lookup for
          transmission to the next destination.
   N09. }
   S02. If (Segments Left == 0) {
   S03. Stop processing the SRH, and proceed to process the next
        header in the packet, whose type is identified by
        the Next Header field in the routing header.
   S04. }
   S05. If (IPv6 Hop Limit <= 1) {
   S06. Send an ICMP Time Exceeded message to the Source Address
        with Code 0 (Hop limit exceeded in transit),
        interrupt packet processing, and discard the packet.
   S07. }
   S08. max_LE = (Hdr Ext Len / 2) - 1
   S09. If ((Last Entry > max_LE)or(Segments Left > Last Entry+1)){
   S10. Send an ICMP Parameter Problem to the Source Address
        with Code 0 (Erroneous header field encountered)
        and Pointer set to the Segments Left field,
        interrupt packet processing, and discard the packet.
   S11. }
   S12. Decrement IPv6 Hop Limit by 1.
   S13. Decrement Segments Left by 1.
   S14. Update IPv6 DA with Segment List[Segments Left].
   S15. Insert a new SRH in between the IPv6 Header and the received
        SRH containing the list of segments of B.
   S16. Set the IPv6 DA to the first SID of B.
   S17. Submit the packet to the egress IPv6 FIB lookup for
          transmission to the new destination.
   S18. }

Examples:

uBSID is an End.B6.Insert with NEXT-C-SID Flavor SID, and the
corresponding segment-list is <fc00:2024:uSID20::,fc00:2024:uSID21>.
case1,  uBSID is the non-last SID of the container:
        Node N receives a packet:
        IPv6:SA = 2024::1, DA=FC00:2024:uBSID:uSID2:uSID3
                               :uSID4::uSID5:uSID6::
        SRH1:(FC00:2024:uSID7:uSID8::,FC00:2024:uBSID:uSID2
             :uSID3:uSID4:uSID5:uSID6::;SL=1)
        After the End.B6.Insert with NEXT-C-SID Flavor behavior,
        the packet looks like:
        IPv6:SA = 2024::1, DA=FC00:2024:uSID20:uSID21::
        SRH2:(FC00:2024:uSID2:uSID3:uSID4::uSID5:uSID6::,
             FC00:2024:uSID20:uSID21::;SL=1)
        SRH1:(FC00:2024:uSID7:uSID8::,
             FC00:2024:uBSID:uSID2:uSID3:uSID4:uSID5:uSID6::;SL=1)

case2, uBSID is the last SID of the C-SID container:
       Node N receives a packet:
       IPv6:SA = 2024::1, DA=FC00:2024:uBSID::
       SRH1:(FC00:2024:uSID7:uSID8::,
            FC00:2024:uSID2:uSID3:uSID4:uSID5:uSID6:uBSID::;SL=1)
       After the End.B6.Insert with NEXT-C-SID Flavor behavior,
       the packet looks like:
       IPv6:SA = 2024::1, DA=FC00:2024:uSID20:uSID21::
       SRH2:(FC00:2024:uSID20:uSID21::;SL=0);SRH2 may be omit
       SRH1:(FC00:2024:uSID7:uSID8::,
             FC00:2024:uSID2:uSID3:uSID4:uSID5:uSID6:uBSID::;SL=1)

case3, uBSID is in the last of the C-SID container of the SRH:
       Node N receives a packet:
       IPv6:SA = 2024::1, DA=FC00:2024:uBSID:uSID7:uSID8::
       SRH1:(FC00:2024:uBSID:uSID7:uSID8::,
             FC00:2024:uSID1:uSID2:uSID3:uSID4:uSID5:uSID6::;SL=0)
       After the End.B6.Insert with NEXT-C-SID Flavor behavior,
       the packet looks like:
       IPv6:SA = 2024::1, DA=FC00:2024:uSID20:uSID21::
       SRH2:(FC00:2024:uSID7:uSID8::,FC00:2024:uSID20:uSID21::;SL=1)
       SRH1:(FC00:2024:uBSID:uSID7:uSID8::,
            FC00:2024:uSID1:uSID2:uSID3:uSID4:uSID5:uSID6::;SL=0)

2.2. End.B6.Insert red with NEXT-C-SID flavor

This is an optimization of the End.B6.Insert with NEXT-C-SID flavor behavior.

End.B6.Insert.Red with NEXT-C-SID flavor reduces the size of the new SRH by one SID by avoiding the insertion of the first SID in the pushed SRH. In this way, the first SID is only written in the DA and the packet is forwarded according to it.

The new SRH is created as described in Section 4.1.1 of [RFC8754].

3. IANA Considerations

The document defines two new SRv6 Endpoint behaviors called End.B6.Insert with NEXT-C-SID flavor and End.B6.Insert.Red with NEXT-C-SID flavor.

This document requests the IANA to allocate, within the "SRv6 Endpoint Behaviors" sub-registry belonging to the top-level "Segment-routing with IPv6 dataplane (SRv6) Parameters" registry, the following allocations:

Value                Endpoint Behavior              Reference
------------------------------------------------------------------
TBD1     End.B6.Insert with NEXT-C-SID flavor      This document
TBD2     End.B6.Insert.Red with NEXT-C-SID flavor  This document
Figure 1

4. Security Considerations

The security requirements and mechanisms described in [RFC8402], [RFC8754] and [RFC8986] also apply to this document, and this document does not introduce any new security considerations.

5. Acknowledgements

TBD.

6. Normative References

[I-D.filsfils-spring-srv6-net-pgm-insertion]
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "SRv6 NET-PGM extension: Insertion", Work in Progress, Internet-Draft, draft-filsfils-spring-srv6-net-pgm-insertion-09, , <https://datatracker.ietf.org/doc/html/draft-filsfils-spring-srv6-net-pgm-insertion-09>.
[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>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8402]
Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, , <https://www.rfc-editor.org/info/rfc8402>.
[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>.
[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>.
[RFC9800]
Cheng, W., Ed., Filsfils, C., Li, Z., Decraene, B., and F. Clad, Ed., "Compressed SRv6 Segment List Encoding", RFC 9800, DOI 10.17487/RFC9800, , <https://www.rfc-editor.org/info/rfc9800>.

Authors' Addresses

Ran Chen
ZTE Corporation
Nanjing
China
Detao Zhao
ZTE Corporation
Nanjing
China