Network Working Group W. Cheng
Internet Draft W. Jiang
Intended status: Standards Track China Mobile
Expires: July 17, 2024 C. Lin
M. Chen
New H3C Technologies
L. Gong
China Mobile
Y.Liu
ZTE Corporation
January 17, 2024
IS-IS Extension to Advertise SRv6 SIDs using SID Block
draft-cheng-lsr-isis-srv6-sid-block-03
Abstract
This document proposes a simplified method to advertise SRv6 SIDs in
IS-IS. The SRv6 SID Block is composed of a number of continuous SIDs
within the address range of a Locator. When a SID is assigned from
the SID Block, it is described by an index based on the SID Block,
instead of the whole 128-bit IPv6 address.
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), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on July 17, 2024.
Cheng, et al. Expire July 17, 2024 [Page 1]
Internet-Draft IS-IS SRv6 SID Block January 2024
Copyright Notice
Copyright (c) 2023 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
(http://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 Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction...................................................2
1.1. Requirements Language.....................................4
2. SRv6 SID Block sub-TLV.........................................4
3. SRv6 End.X SID Index sub-TLV...................................6
4. SRv6 LAN End.X SID Index sub-TLV...............................7
5. SRv6 End SID Index sub-TLV.....................................8
6. Computations of SID Index......................................9
7. Rule-based SID Block for Large-Scale End.X SID Advertisement..10
8. Advertising SRv6 SID Offset for Flex-Algorithm................13
8.1. Algorithm Offset for SRv6 Locator........................13
8.2. Algorithm Offset for SRv6 SID Block......................15
9. Backward Compatibility........................................16
10. Security Considerations......................................16
11. IANA Considerations..........................................17
12. References...................................................17
12.1. Normative References....................................17
12.2. Informative References..................................17
13. Acknowledgments..............................................18
Contributors.....................................................18
Authors' Addresses...............................................18
1. Introduction
The Segment Routing (SR) allows for a flexible definition of end-to-
end paths by encoding paths as sequences of topological sub-paths,
called "segments". As defined in [RFC8402] and [RFC8986], an SRv6
Segment Identifier (SID) is an IPv6 address explicitly associated
Cheng, et al. Expires July 17, 2024 [Page 2]
Internet-Draft IS-IS SRv6 SID Block January 2024
with the segment and consists of Locator, Function and Argument
parts.
[RFC9352] defines the SRv6 End SID sub-TLV, the SRv6 End.X SID sub-
TLV, and the SRv6 LAN End.X SID sub-TLV in IS-IS.
The SRv6 End SID sub-TLV is used to advertise an SRv6 SID with
Endpoint behaviors which do not require a particular neighbor. The
SRv6 End SID sub-TLV is used to advertise an SRv6 SID associated
with a point to point adjacency. The SRv6 LAN End.X SID sub-TLV sub-
TLV is used to advertise an SRv6 SID associated with a LAN
adjacency. Each of these sub-TLVs contains a complete 128-bit SID
and the sub-TLV length is quite long.
Multiple SRv6 End.X SIDs can be associated with the same point to
point adjacency or the same physical LAN neighbor. Each SID is
advertised in a single SRv6 End.X SID sub-TLV or SRv6 LAN End.X SID
sub-TLV. These SIDs are possibly associated to the same Locator,
therefore the main differences among the sub-TLVs may be a few bits
in the Function part of SID and the Endpoint Behavior value
indicating different flavors.
The number of End.X SIDs has a positive correlation with the number
of neighbors. Assume that, each neighbor is assigned with End.X
SIDs, and each End.X behavior has several different flavors, such as
PSP, USP, USD, no PSP/USP/USD, etc. Then, the number of End.X SIDs
will be at least the number of neighbors multiplied by the number of
flavors.
If Flexible-Algorithm is applied on SRv6 forwarding plane as defined
in [RFC9350], a node generally advertises a Flex-Algorithm specific
locator for each Flex-Algorithm it participates in and also
advertises associated SRv6 END.X SIDs for every link that has not
been pruned from the Flex-Algorithm computation.
There may be other scenarios in which the number of End.X SIDs is
quite large. Under these circumstances, advertising SRv6 SIDs needs
considerable amounts of IS-IS LSPs and may be a burden of IS-IS
nodes.
This document proposes a simplified method to advertise SRv6 SIDs in
IS-IS. A number of continuous SIDs are assigned within the address
range of a Locator, which is defined as the SRv6 SID Block. When a
SID is assigned from the block, it is described by an index based on
the block, instead of the whole 128-bit IPv6 address.
Cheng, et al. Expires July 17, 2024 [Page 3]
Internet-Draft IS-IS SRv6 SID Block January 2024
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 SID Block sub-TLV
An SRv6 SID Block is composed of a number of continuous SIDs within
the address range of a Locator. When any SID assigned in an SRv6 SID
Block is advertised in IS-IS, the new sub-TLVs defined in this
document SHOULD be used, instead of the SRv6 End SID sub-TLV, the
SRv6 End.X SID sub-TLV, and the SRv6 LAN End.X SID sub-TLV defined
in [RFC9352].
The SRv6 SID Block sub-TLV is defined in this document to advertise
an SRv6 SID Block. This new sub-TLV is carried in the SRv6 Locator
TLV defined in [RFC9352].
The SRv6 SID Block sub-TLV has the following format:
Cheng, et al. Expires July 17, 2024 [Page 4]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (128 bits) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (128 bits) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Block-ID: 1 octet. Identity of the advertised SRv6 SID Block. It
MUST be unique in a node.
o Offset: 1 octet. Number of shifting bits for the index of SIDs in
this block.
o Start SID: 16 octets. The smallest SID in this block.
o End SID: 16 octets. The largest SID in this block.
o Sub-sub-tlv-len: 1 octet. Number of octets used by sub-sub-TLVs.
o Optional Sub-sub-TLVs.
The address range of an SRv6 SID Block, indicated by the Start SID
and the End SID, must be covered by the associated Locator. Multiple
Cheng, et al. Expires July 17, 2024 [Page 5]
Internet-Draft IS-IS SRv6 SID Block January 2024
SRv6 SID Blocks can be associated to the same Locator, and their
address ranges should not overlap.
3. SRv6 End.X SID Index sub-TLV
[RFC9352] defines SRv6 End.X SID sub-TLV to advertise an SRv6 SID
associated with a point to point adjacency. If such SID is assigned
in an SRv6 SID Block, it must be advertised by SRv6 End.X SID Index
sub-TLV instead.
The SRv6 End.X SID Index sub-TLV has the following format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Algorithm | Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Index Num | Index Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 0 (variable) | Endpoint Behavior 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 1 (variable) | Endpoint Behavior 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index Num-1 (variable) | Endpoint Behavior Num-1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Flags: 1 octet. Same as the Flags field in SRv6 End.X SID sub-
TLV.
o Algorithm: 1 octet. Same as the Algorithm field in SRv6 End.X SID
sub-TLV.
o Weight: 1 octet. Same as the Weight field in SRv6 End.X SID sub-
TLV.
o Block-ID: 1 octet. Indicating the associated SRv6 SID Block in
which the SIDs are assigned.
o Index Num: 1 octet. Number of the following indexes.
Cheng, et al. Expires July 17, 2024 [Page 6]
Internet-Draft IS-IS SRv6 SID Block January 2024
o Index Length: 1 octet. Number of octets used by a single index.
o Index N: variable. Index of a SID in the SRv6 SID Block.
o Endpoint Behavior N: 2 octets. Behavior of the SID indicated by
the preceding Index N field. Same as the Endpoint Behavior field
in SRv6 End.X SID sub-TLV.
The SRv6 End.X SID Index sub-TLV can carry multiple SIDs which are
assigned in an SRv6 SID Block identified by the Block-ID. These SIDs
are indicated by the indexes in the SRv6 SID Block, instead of the
whole 128-bit IPv6 addresses. They share the same Flags, Algorithm
and Weight, but their Endpoint Behavior can be different.
The conversion from 128-bit SID into index, or vice versa, is
described in Section 6.
4. SRv6 LAN End.X SID Index sub-TLV
The SRv6 LAN End.X SID Index sub-TLV is used to advertise SRv6 SIDs
associated with a LAN adjacency, as substitution of the SRv6 LAN
End.X SID sub-TLV for SID Block. The main difference from the SRv6
End.X SID Index sub-TLV is that the SRv6 LAN End.X SID Index sub-TLV
has to include the System ID of the physical neighbor on the LAN
with which the SRv6 SIDs are associated.
The SRv6 LAN End.X SID Index sub-TLV has the following format:
Cheng, et al. Expires July 17, 2024 [Page 7]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Neighbor System-ID (ID length octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Algorithm | Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Index Num | Index Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 0 (variable) | Endpoint Behavior 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 1 (variable) | Endpoint Behavior 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index Num-1 (variable) | Endpoint Behavior Num-1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Neighbor System-ID: IS-IS System-ID of length "ID Length" as
defined in [ISO10589]. Same as the Neighbor System-ID field in
SRv6 LAN End.X SID sub-TLV.
o Flags, Algorithm, Weight, Block-ID, Index Num, Index Length,
Index N, Endpoint Behavior N: Same with the corresponding fields
in SRv6 End.X SID Index sub-TLV.
5. SRv6 End SID Index sub-TLV
[RFC9352] defines SRv6 End SID sub-TLV to advertise SRv6 End SID. If
such SID is assigned in an SRv6 SID Block, it must be advertised by
SRv6 End SID Index sub-TLV instead.
Cheng, et al. Expires July 17, 2024 [Page 8]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Index Num | Index Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 0 (variable) | Endpoint Behavior 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index 1 (variable) | Endpoint Behavior 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index Num-1 (variable) | Endpoint Behavior Num-1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Flags: 1 octet. Same as the Flags field in SRv6 End SID sub-TLV.
o Block-ID: 1 octet. Indicating the associated SRv6 SID Block in
which the SIDs are assigned.
o Index Num: 1 octet. Number of the following indexes.
o Index Length: 1 octet. Number of octets used by a single index.
o Index N: variable. Index of a SID in the SRv6 SID Block.
o Endpoint Behavior N: 2 octets. Behavior of the SID indicating by
the preceding Index N field. Used as the same as the Endpoint
Behavior field in SRv6 End SID sub-TLV.
6. Computations of SID Index
When a SID is assigned from a SRv6 SID Block, its index can be
computed in the following way:
Index = (SID - Start SID) right shift Offset bits
When a node receives any of the above-mentioned SID Index sub-TLVs,
along with the SRv6 SID Block sub-TLV, it can convert the index to
SID in the following way:
SID = (Index left shift Offset bits) + Start SID
Cheng, et al. Expires July 17, 2024 [Page 9]
Internet-Draft IS-IS SRv6 SID Block January 2024
7. Rule-based SID Block for Large-Scale End.X SID Advertisement
In this section, the rule-based SID Block is proposed to achieve
greater compressibility for End.X SID advertisements in massive
End.X SIDs scenarios.
Three new sub-TLVs are defined: the Rule-based End.X SID Block sub-
TLV, the Rule-based End.X SID Index sub-TLV or the Rule-based LAN
End.X SID Index sub-TLV.
The Rule-based End.X SID Block sub-TLV advertises a SID Block, along
with the rule for assigning a series of End.X SIDs with different
flavors in the SID Block. The Rule-based End.X SID Index sub-TLV or
the Rule-based LAN End.X SID Index sub-TLV advertises a start index
in the SID Block, indicating that End.X SIDs with different flavors
are assigned following the start index: <Index 0 (start index),
Endpoint Behavior 0>, <Index 1 (start index + 1), Endpoint Behavior
1>, ..., <Index N (start index + N), Endpoint Behavior N>. N is
equal to (Behavior Num - 1).
The Rule-based End.X SID Block sub-TLV has the following format:
Cheng, et al. Expires July 17, 2024 [Page 10]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (128 bits) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (128 bits) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End SID (cont . . .) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Algorithm | Weight | Behavior Num |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint Behavior 0 | Endpoint Behavior 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... | Endpoint Behavior (Num-1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Block-ID: 1 octet. Identity of the advertised SRv6 SID Block. It
MUST be unique in a node.
o Offset: 1 octet. Number of shifting bits for the index of SIDs in
this block.
o Start SID: 16 octets. The smallest SID in this block.
o End SID: 16 octets. The largest SID in this block.
Cheng, et al. Expires July 17, 2024 [Page 11]
Internet-Draft IS-IS SRv6 SID Block January 2024
o Flags: 1 octet. Same as the Flags field in SRv6 End.X SID sub-TLV
or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same rule-
based SID Block share the same Flags.
o Algorithm: 1 octet. Same as the Algorithm field in SRv6 End.X SID
sub-TLV or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same
rule-based SID Block share the same Algorithm.
o Weight: 1 octet. Same as the Weight field in SRv6 End.X SID sub-
TLV or SRv6 LAN End.X SID sub-TLV. SIDs assigned in the same
rule-based SID Block share the same Weight.
o Behavior Num: 1 octet. Number of End.X SIDs with different
flavors for the same neighbor.
o Endpoint Behavior N: 2 octets. Behavior of the Nth End.X SID.
Endpoint Behavior 0 to (Num-1) specify a series of End.X SIDs
with different flavors.
o Sub-sub-tlv-len: 1 octet. Number of octets used by sub-sub-TLVs.
o Optional Sub-sub-TLVs.
The Rule-based End.X SID Index sub-TLV has the following format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Index Length | Start Index (variable) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Block-ID: 1 octet. Indicating the associated Rule-based SID Block
in which the SIDs are assigned.
o Index Length: 1 octet. Number of octets used by the following
Start Index filed.
o Start Index: variable. Index of the first SID in the Rule-based
SID Block.
The Rule-based LAN End.X SID Index sub-TLV has the following format:
Cheng, et al. Expires July 17, 2024 [Page 12]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Neighbor System-ID (ID length octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block-ID | Index Length | Start Index (variable) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Neighbor System-ID: IS-IS System-ID of length "ID Length" as
defined in [ISO10589]. Same as the Neighbor System-ID field in
SRv6 LAN End.X SID sub-TLV.
o Block-ID: 1 octet. Indicating the associated Rule-based SID Block
in which the SIDs are assigned.
o Index Length: 1 octet. Number of octets used by the following
Start Index filed.
o Start Index: variable. Index of the first SID in the Rule-based
SID Block.
8. Advertising SRv6 SID Offset for Flex-Algorithm
[I-D.draft-chan-lsr-igp-adv-offset] describes a method to advertise
Flex-Algorithm specific offset on the MPLS-SR data plane so that the
Adjacency-SIDs and Prefix SIDs for Flex-Algorithm and Virtual Flex-
Algorithm could be automatically derived based on Algorithm 0.
Similar mechanism can also be used for the SRv6 data plane, and may
be further combined with the SRv6 SID Block to achieve better
efficiencies of SRv6 SID advertisements for Flex-Algorithm.
8.1. Algorithm Offset for SRv6 Locator
The SRv6 Locator Algorithm Offset sub-TLV advertises the algorithm
offset for the SRv6 End SID, the SRv6 End.X SID and the SRv6 LAN
End.X SID, which belong to a Locator associated with a Flex-
Algorithm or Virtual Flex-Algorithm. It is carried as a sub-TLV in
the SRv6 Locator TLV.
The SRv6 Locator Algorithm Offset sub-TLV has the following format:
Cheng, et al. Expires July 17, 2024 [Page 13]
Internet-Draft IS-IS SRv6 SID Block January 2024
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual Flex-Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Base Loc Size | Base Locator (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Offset Size | SID Offset (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Virtual Flex-Algorithm: 4 octets. Value 0 means that it is not
VFA. Value >=256 means VFA identification number, and the base
topology is denoted by Algorithm Value 128 to 255 are invalid.
See [I-D.draft-chan-lsr-igp-adv-offset].
o Base Loc Size: 1 octet. Number of bits in the Base Locator field,
which MUST be from the range (1-128).
o Base Locator: Indicating the base SRv6 Locator of Algorithm 0.
Encoded in the minimal number of octets for the given number of
bits.
o Offset Size: 1 octet. Number of bits in the SID Offset field,
which MUST be from the range (1-128).
o SID Offset: variable. The offset of SID value between the Flex-
Algorithm (or VFA) and Algorithm 0. Encoded in the minimal number
of octets for the given number of bits.
The SRv6 Locator of a Flex-Algorithm or Virtual Flex-Algorithm is
associated with a base SRv6 Locator of Algorithm 0. When an SRv6 SID
is assigned in that base SRv6 Locator of Algorithm 0 and advertised
by SRv6 End.X SID sub-TLV, SRv6 LAN End.X SID sub-TLV, or SRv6 End
SID sub-TLV, a corresponding SRv6 SID of that Flex-Algorithm or
Virtual Flex-Algorithm is also assigned to the same point-to-point
adjacency, LAN adjacency, or node.
The SID value is sum of (SID of Algorithm 0 - Base Locator + FA/VFA
Locator + SID Offset).
Cheng, et al. Expires July 17, 2024 [Page 14]
Internet-Draft IS-IS SRv6 SID Block January 2024
8.2. Algorithm Offset for SRv6 SID Block
The SRv6 SID Block Algorithm Offset sub-sub-TLV advertises the
algorithm offset for an SRv6 SID Block which belongs to a Locator
associated with a Flex-Algorithm or Virtual Flex-Algorithm. It is
carried as a sub-sub-TLV in SRv6 SID Block sub-TLV.
The SRv6 SID Block Algorithm Offset sub-sub-TLV has the following
format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual Flex-Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Base Block-ID | Offset Size | Index Offset (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
o Type: TBD.
o Length: variable.
o Virtual Flex-Algorithm: 4 octets. Value 0 means that it is not
VFA. Value >=256 means VFA identification number, and the base
topology is denoted by Algorithm Value 128 to 255 are invalid.
See [I-D.draft-chan-lsr-igp-adv-offset].
o Base Block-ID: 1 octet. Indicating the base SRv6 SID Block of
Algorithm 0.
o Offset Size: 1 octet. Number of bits in the Index Offset field,
which MUST be from the range (1-128).
o Index Offset: variable. The offset of index value between the
Flex-Algorithm (or VFA) and Algorithm 0. Encoded in the minimal
number of octets for the given number of bits.
The SRv6 SID Block of a Flex-Algorithm or Virtual Flex-Algorithm is
associated with a base SRv6 SID Block of Algorithm 0. When an SRv6
SID is assigned in that base SRv6 SID Block of Algorithm 0 and
advertised by SRv6 End.X SID Index sub-TLV in Section 3, SRv6 LAN
End.X SID Index sub-TLV in Section 4, or SRv6 End SID Index sub-TLV
in Section 5, a corresponding SRv6 SID of that Flex-Algorithm or
Virtual Flex-Algorithm is also assigned to the same point-to-point
adjacency, LAN adjacency, or node.
Cheng, et al. Expires July 17, 2024 [Page 15]
Internet-Draft IS-IS SRv6 SID Block January 2024
The SID value is sum of (Block Start SID + Index in Base Block +
Index Offset).
9. Backward Compatibility
To achieve backward compatibility, routers supporting the feature
described in this document MUST advertise an IS-IS Router Capability
TLV-242 that includes the following SRv6 SID Block Sub-TLV:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Upon detecting the presence of a reachable TLV-242 without an SRv6
SID Block Sub-TLV, all routers MUST advertise SRv6 SIDs using the
SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 LAN
End.X SID sub-TLV defined in [RFC9352]. Besides, an implementations
MAY only advertise SRv6 SIDs in the new way when it is clearly
configured to do so.
In order to realize the goal of reducing SRv6 SID advertisements, it
is recommended that the operator should make sure that all routers
in the same network have been upgraded to support the simplified
advertisement method defined in this document.
10. Security Considerations
TBD
Cheng, et al. Expires July 17, 2024 [Page 16]
Internet-Draft IS-IS SRv6 SID Block January 2024
11. IANA Considerations
Type Description
---- ---------------------------------
TBD SRv6 SID Block sub-TLV
TBD SRv6 End.X SID Index sub-TLV
TBD SRv6 LAN End.X SID Index sub-TLV
TBD SRv6 End SID Index sub-TLV
TBD Rule-based End.X SID Block sub-TLV
TBD Rule-based End.X SID Index sub-TLV
TBD Rule-based LAN End.X SID Index sub-TLV
TBD SRv6 SID Block Algorithm Offset sub-sub-TLV
12. References
12.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, May 2017
[RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B.,
and Z. Hu, "IS-IS Extensions to Support Segment Routing
over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352,
February 2023, <https://www.rfc-editor.org/info/rfc9352>.
[I-D.draft-chan-lsr-igp-adv-offset] Louis, C. and S. Krzysztof, "IGP
extensions for Advertising Offset for Flex-Algorithm",
draft-chan-lsr-igp-adv-offset-02 (work in progress), March
2023.
[ISO10589] International Organization for Standardization,
"Intermediate system to Intermediate system intra-domain
routeing information exchange protocol for use in
conjunction with the protocol for providing the
connectionless-mode Network Service (ISO 8473)", Nov 2002.
12.2. Informative References
[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,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
Cheng, et al. Expires July 17, 2024 [Page 17]
Internet-Draft IS-IS SRv6 SID Block January 2024
[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, February 2021, <https://www.rfc-
editor.org/info/rfc8986>.
[RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, DOI
10.17487/RFC9350, February 2023, <https://www.rfc-
editor.org/info/rfc9350>.
13. Acknowledgments
The authors would like to thank the following for their valuable
contributions of this document:
TBD
Contributors
Louis Chan
Juniper Networks Group (Hong Kong) Limited
Hong Kong
China
Email: louisc@juniper.net
Authors' Addresses
Weiqiang Cheng
China Mobile
China
Email: chengweiqiang@chinamobile.com
Wenying Jiang
China Mobile
China
Email: jiangwenying@chinamobile.com
Cheng, et al. Expires July 17, 2024 [Page 18]
Internet-Draft IS-IS SRv6 SID Block January 2024
Changwang Lin
New H3C Technologies
China
Email: linchangwang.04414@h3c.com
Mengxiao Chen
New H3C Technologies
China
Email: chen.mengxiao@h3c.com
Liyan Gong
China Mobile
China
Email: gongliyan@chinamobile.com
Yao Liu
ZTE Corporation
China
Email: liu.yao71@zte.com.cn
Cheng, et al. Expires July 17, 2024 [Page 19]