draft-ietf-lsr-algorithm-related-adjacency-sid-00.txt   draft-ietf-lsr-algorithm-related-adjacency-sid-01.txt 
LSR Shaofu. Peng LSR Shaofu. Peng
Internet-Draft Ran. Chen Internet-Draft Ran. Chen
Intended status: Standards Track ZTE Corporation Intended status: Standards Track ZTE Corporation
Expires: December 13, 2021 Ketan. Talaulikar Expires: April 14, 2022 Ketan. Talaulikar
Peter. Psenak Peter. Psenak
Cisco Systems Cisco Systems
June 11, 2021 October 11, 2021
Algorithm Related IGP-Adjacency SID Advertisement Algorithm Related IGP-Adjacency SID Advertisement
draft-ietf-lsr-algorithm-related-adjacency-sid-00 draft-ietf-lsr-algorithm-related-adjacency-sid-01
Abstract Abstract
Segment Routing architecture supports the use of multiple routing Segment Routing architecture supports the use of multiple routing
algorithms, i.e, different constraint-based shortest-path algorithms, i.e, different constraint-based shortest-path
calculations can be supported. There are two standard algorithms: calculations can be supported. There are two standard algorithms:
SPF and Strict-SPF, defined in Segment Routing architecture. There SPF and Strict-SPF, defined in Segment Routing architecture. There
are also other user defined algorithms according to Flex-algo are also other user defined algorithms according to Flex-algo
applicaiton. However, an algorithm identifier is often included as applicaiton. However, an algorithm identifier is often included as
part of a Prefix-SID advertisement, that maybe not satisfy some part of a Prefix-SID advertisement, that maybe not satisfy some
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 13, 2021. This Internet-Draft will expire on April 14, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 33 skipping to change at page 2, line 33
Algorithm Sub-TLV . . . . . . . . . . . . . . . . . . 4 Algorithm Sub-TLV . . . . . . . . . . . . . . . . . . 4
4.1.2. ISIS Adjacency Segment Identifier (LAN-Adj-SID) per 4.1.2. ISIS Adjacency Segment Identifier (LAN-Adj-SID) per
Algorithm Sub-TLV . . . . . . . . . . . . . . . . . . 5 Algorithm Sub-TLV . . . . . . . . . . . . . . . . . . 5
4.2. OSPFv2 Adjacency Segment Identifier per Algorithm . . . . 6 4.2. OSPFv2 Adjacency Segment Identifier per Algorithm . . . . 6
4.2.1. OSPFv2 Adj-SID per Algorithm Sub-TLV . . . . . . . . 6 4.2.1. OSPFv2 Adj-SID per Algorithm Sub-TLV . . . . . . . . 6
4.2.2. OSPFv2 LAN Adj-SID per Algorithm Sub-TLV . . . . . . 7 4.2.2. OSPFv2 LAN Adj-SID per Algorithm Sub-TLV . . . . . . 7
4.3. OSPFv3 Adjacency Segment Identifier per Algorithm . . . . 8 4.3. OSPFv3 Adjacency Segment Identifier per Algorithm . . . . 8
4.3.1. OSPFv3 Adj-SID per Algorithm Sub-TLV . . . . . . . . 8 4.3.1. OSPFv3 Adj-SID per Algorithm Sub-TLV . . . . . . . . 8
4.3.2. OSPFv3 LAN Adj-SID per Algorithm Sub-TLV . . . . . . 9 4.3.2. OSPFv3 LAN Adj-SID per Algorithm Sub-TLV . . . . . . 9
5. Operations . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Operations . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 11
6.1. IANA ISIS Considerations . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
6.2. IANA OSPFv2 Considerations . . . . . . . . . . . . . . . 11 7.1. IANA ISIS Considerations . . . . . . . . . . . . . . . . 12
6.3. IANA OSPFv3 Considerations . . . . . . . . . . . . . . . 11 7.2. IANA OSPFv2 Considerations . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 7.3. IANA OSPFv3 Considerations . . . . . . . . . . . . . . . 12
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. Normative References . . . . . . . . . . . . . . . . . . . . 12 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13
11. Normative References . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
Segment Routing architecture [RFC8402] supports the use of multiple Segment Routing architecture [RFC8402] supports the use of multiple
routing algorithms, i.e, different constraint-based shortest-path routing algorithms, i.e, different constraint-based shortest-path
calculations can be supported. There are two standard algorithms, calculations can be supported. There are two standard algorithms,
i.e, SPF and Strict-SPF, that defined in Segment Routing i.e, SPF and Strict-SPF, that defined in Segment Routing
architecture. For SPF, the packet is forwarded along the well known architecture. For SPF, the packet is forwarded along the well known
ECMP-aware Shortest Path First (SPF) algorithm employed by the IGPs. ECMP-aware Shortest Path First (SPF) algorithm employed by the IGPs.
However, it is explicitly allowed for a midpoint to implement another However, it is explicitly allowed for a midpoint to implement another
skipping to change at page 3, line 36 skipping to change at page 3, line 38
2. Requirements Language 2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Use-cases 3. Use-cases
There are several use-cases for the algorithm-aware Adjacency-SID: The main use-case is that a TI-LFA backup path computed in Flex-algo
plane may contain Adjacency Segments and require to contain an
case-1: an SR-TE policy may be instantiated within specific Flex- algorithm-aware Adjacency-SID, which can not only steer the traffic
algo plane, i.e., the SID list may contain algorithm related SIDs. towards the link, but also distinguish traffic between different
An algorithm-aware Adjacency-SID included in the SID list can not algorithms. Benefit from this, for the protected Adjacency-SID which
only steer the traffic towards the link, but also apply specific belongs to a TI-LFA path within specific Flex-algo plane, the backup
QoS policy for that algorithm. path of such Adjacency-SID can continue to follow the algorithm
specific constraints that is consistent with the primary path. And,
case-2: a TI-LFA backup path computed in Flex-algo plane may more enhancement treatments related with specific algorithm, such as
contain Adjacency Segments and require to contain an algorithm- statistics of traffic of different algorithms on the same link, etc,
aware Adjacency-SID. An algorithm-aware Adjacency-SID included in will be possible.
the TI-LFA SID list can not only steer the traffic towards the
link, but also distinguish traffic between different algorithms.
case-3: for the protected Adjacency-SID which belongs to SR-TE
path within specific Flex-algo plane, the backup path of such
Adjacency-SID need follow the algorithm specific constraints that
is consistent with the primary SR-TE path.
4. Adjacency Segment Identifier per Algorithm 4. Adjacency Segment Identifier per Algorithm
4.1. ISIS Adjacency Segment Identifier per Algorithm 4.1. ISIS Adjacency Segment Identifier per Algorithm
[RFC8667] describes the IS-IS extensions that need to be introduced [RFC8667] describes the IS-IS extensions that need to be introduced
for Segment Routing operating on an MPLS data plane. It defined for Segment Routing operating on an MPLS data plane. It defined
Adjacency Segment Identifier (Adj-SID) sub-TLV advertised with TLV- Adjacency Segment Identifier (Adj-SID) sub-TLV advertised with TLV-
22/222/23/223/141, and Adjacency Segment Identifier (LAN-Adj-SID) 22/222/23/223/141, and Adjacency Segment Identifier (LAN-Adj-SID)
Sub-TLV advetised with TLV-22/222/23/223. Accordingly, this document Sub-TLV advetised with TLV-22/222/23/223. Accordingly, this document
skipping to change at page 10, line 4 skipping to change at page 9, line 52
SID/Index/Label: Refer to OSPFv3 LAN Adj-SID Sub-TLV. SID/Index/Label: Refer to OSPFv3 LAN Adj-SID Sub-TLV.
For a broadcast link, an SR-capable router MAY allocate different For a broadcast link, an SR-capable router MAY allocate different
Adj-SID for different algorithm, if this link joins different Adj-SID for different algorithm, if this link joins different
algorithm related plane. algorithm related plane.
5. Operations 5. Operations
The method introduced in this document enables the traffic of The method introduced in this document enables the traffic of
different flex-algo plane to be distinguished on the same link, so different flex-algo plane to be distinguished on the same link, so
that these traffic can be applied with different local treatment per that these traffic can be applied with different local treatment
algorithm. (such as providing different repair path, traffic statistics, etc)
per algorithm.
For example,the endpoint of a link shared by multiple flex-algo plane
can reserve different queue resources for different algorithms
locally, and perform priority based queue scheduling and traffic
shaping. This algorithm related reserved information can be
advertised to other nodes in the network through some mechanism,
therefore it has an impact on the constraint based path calculation
of the flex-algo plane. How to allocate algorithm related resouce
and advertise it in the network is out the scope of this document.
Depending on the implementation, operators can configure multiple Depending on the implementation, operators can configure multiple
Adacency-SIDs each for different algorithm on the same link. One of Adacency-SIDs each for different algorithm on the same link. One of
the difficulties is that during this configuration phase it is not the difficulties is that during this configuration phase it is not
straightforward for a link to be included in an FA plane, as this can straightforward for a link to be included in an Flex-algo plane, as
only be determined after all nodes in the network have negotiated the this can only be determined after all nodes in the network have
FAD. A simple way is that as long as an IGP instance enable an negotiated the FAD. A simple way is that as long as an IGP instance
algorithm for a level/area, all links joined to that level/area enable an algorithm for a level/area, all links joined to that level/
should allocate Adjacency-SIDs for that algorithm statically. area should allocate Adjacency-SIDs for that algorithm statically,
Another way is to allocate and withdraw Adjacency-SID per algorithm however, this will waste SID resources. Another way is RECOMMENDED
dynamically according to the result of FAD negotiation. to allocate and withdraw Adjacency-SID per algorithm dynamically
according to the result of FAD negotiation, i.e., Adjacency-SID per
algorithm is assigned only to those links that have joined the Flex-
algo plane.
The following figure shows an example of Adjacency-SID per algorithm. The following figure shows an example of Adjacency-SID per algorithm.
[S1]--------[D]--------[S2] [S1]--------[D]--------[S2]
| | | | | |
| | | | | |
| | | | | |
[A]---------[B]--------[C] [A]---------[B]--------[C]
Figure 7: Flex-algo LFA Path with Adjacency-SID per Algorithm Figure 7: Flex-algo LFA Path with Adjacency-SID per Algorithm
skipping to change at page 11, line 4 skipping to change at page 10, line 45
default metric type for path calculation. In FA-id 128 plane, from default metric type for path calculation. In FA-id 128 plane, from
S1 to destination D, the primary path is S1-D, and the TI-LFA backup S1 to destination D, the primary path is S1-D, and the TI-LFA backup
path is segment list {node(B), adjacency(B-D)}. Similarly, In FA-id path is segment list {node(B), adjacency(B-D)}. Similarly, In FA-id
129 plane, from S2 to destination D, the primary path is S2-D, and 129 plane, from S2 to destination D, the primary path is S2-D, and
the TI-LFA backup path is segment list {node(B), adjacency(B-D)}. The the TI-LFA backup path is segment list {node(B), adjacency(B-D)}. The
above TI-LFA path of FA-id 128 plane can be translated to {node- above TI-LFA path of FA-id 128 plane can be translated to {node-
SID(B)@FA-id128, adjacency-SID(B-D)@FA-id128}, and TI-LFA path of FA- SID(B)@FA-id128, adjacency-SID(B-D)@FA-id128}, and TI-LFA path of FA-
id 129 plane will be translate to {node-SID(B)@FA-id129, adjacency- id 129 plane will be translate to {node-SID(B)@FA-id129, adjacency-
SID(B-D)@FA-id129}. So that node B can distinguish the flow of FA-id SID(B-D)@FA-id129}. So that node B can distinguish the flow of FA-id
128 and FA-id 129 based on different adjacency-SID(B-D), and take 128 and FA-id 129 based on different adjacency-SID(B-D), and take
different treatment (e.g., QoS policy) of them when they are send to different treatment of them when they are send to the same outgoing
the same outgoing link B-D. link B-D.
More clarifications would be added in future versions. 6. Deployment Considerations
6. IANA Considerations When multiple flex-algos are deployed in the network and they share
the same link, multiple algorithm specific Adjacency-SIDs may need to
be allocated on such a link, to distinguish the traffic of different
algorithms and provide possible different treatment.
6.1. IANA ISIS Considerations Even if a link is only used by a single flex-algo, because the link
always belongs to algorithm 0 by default, both the traditional
Adjacency-SID (termd as adj-sid@algo-0) and the algorithm specific
Adjacency-SID (termd as adj-sid@algo-x) may need to be allocated on
that link, so that the potentional repair paths of the two Adjacency-
SIDs can be distinguished.
If the topology of multiple flex-algo planes, and physical topology,
are isomorphic, that is, they contain the same nodes and same inter-
connected links, but due to the differences between these FADs (such
as different metric types), different repair paths will also be
calculated on the same topology. Therefore, multiple algorithm
specific Adjacency-SIDs may still need to be provided on the same
link.
It is not recommended to bind a link to algorithm 1 (Strict SPF) and
allocate adj-sid@algo-1. Such Adjacency-SID is no useful.
The operator may configure the policy on the node to turn off the
algorithm specific processing capability for each algorithm, and the
node will not allocate algorithm specific Adjacency-SIDs on the links
those joined to the flex-algo plane, this is a local behavior. As
mentioned before, the algorithm specific processing capability can be
further subdivided into repair path per algo, statistics per algo,
etc. Assuming that a node only wants to support the capability of
repair path per algo, in this case, for an individual link, it is
also controlled by the adjacency backup capability. When adjacency
backup is disabled, it will let the capablitiy of repair path per
algo be also invalid, so the link does not need to allocate algorithm
specific Adjacency-SIDs.
In any case, when instantiate a segment list (such as a TI-LFA path)
within a specific flex-algo plane, for each Adjacency Segment of that
list, if it has a corresponding algorithm specific Adjacency-SID, the
algorithm specific Adjacency-SID MUST be used to construct SID list;
if it has not, traditional Adjacency-SID can be used.
7. IANA Considerations
7.1. IANA ISIS Considerations
This document makes the following registrations in the "Sub-TLVs for This document makes the following registrations in the "Sub-TLVs for
TLV 22, 23, 25, 141, 222, and 223" registry. TLV 22, 23, 25, 141, 222, and 223" registry.
+------+--------------------+----+----+----+-----+-----+-----+ +------+--------------------+----+----+----+-----+-----+-----+
| Type | Description | 22 | 23 | 25 | 141 | 222 | 223 | | Type | Description | 22 | 23 | 25 | 141 | 222 | 223 |
+======+====================+====+====+====+=====+=====+=====+ +======+====================+====+====+====+=====+=====+=====+
| | Adjacency Segment | | | | | | | | | Adjacency Segment | | | | | | |
| TBA1 | Identifier per | y | y | n | y | y | y | | TBA1 | Identifier per | y | y | n | y | y | y |
| | Algorithm | | | | | | | | | Algorithm | | | | | | |
+------+--------------------+----+----+----+-----+-----+-----+ +------+--------------------+----+----+----+-----+-----+-----+
| | LAN Adjacency | | | | | | | | | LAN Adjacency | | | | | | |
| TBA2 | Segment Identifier | y | y | n | y | y | y | | TBA2 | Segment Identifier | y | y | n | y | y | y |
| | per Algorithm | | | | | | | | | per Algorithm | | | | | | |
+------+--------------------+----+----+----+-----+-----+-----+ +------+--------------------+----+----+----+-----+-----+-----+
6.2. IANA OSPFv2 Considerations 7.2. IANA OSPFv2 Considerations
This document makes the following registrations in the OSPFv2 This document makes the following registrations in the OSPFv2
Extended Link TLV Sub-TLVs Registry. Extended Link TLV Sub-TLVs Registry.
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
| Value | Description | Reference | | Value | Description | Reference |
+=======+==========================================+===============+ +=======+==========================================+===============+
| TBA3 | OSPFv2 Adj-SID per Algorithm Sub-TLV | This document | | TBA3 | OSPFv2 Adj-SID per Algorithm Sub-TLV | This document |
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
| TBA4 | OSPFv2 LAN Adj-SID per Algorithm Sub-TLV | This document | | TBA4 | OSPFv2 LAN Adj-SID per Algorithm Sub-TLV | This document |
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
6.3. IANA OSPFv3 Considerations 7.3. IANA OSPFv3 Considerations
This document makes the following registrations in the "OSPFv3 This document makes the following registrations in the "OSPFv3
Extended-LSA Sub-TLVs" Registry. Extended-LSA Sub-TLVs" Registry.
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
| Value | Description | Reference | | Value | Description | Reference |
+=======+==========================================+===============+ +=======+==========================================+===============+
| TBA5 | OSPFv3 Adj-SID per Algorithm Sub-TLV | This document | | TBA5 | OSPFv3 Adj-SID per Algorithm Sub-TLV | This document |
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
| TBA6 | OSPFv3 LAN Adj-SID per Algorithm Sub-TLV | This document | | TBA6 | OSPFv3 LAN Adj-SID per Algorithm Sub-TLV | This document |
+-------+------------------------------------------+---------------+ +-------+------------------------------------------+---------------+
7. Security Considerations 8. Security Considerations
There are no new security issues introduced by the extensions in this There are no new security issues introduced by the extensions in this
document. Refer to [RFC8665], [RFC8666], [RFC8667] for other document. Refer to [RFC8665], [RFC8666], [RFC8667] for other
security considerations. security considerations.
8. Acknowledgements 9. Acknowledgements
TBD We would like to thank Aijun Wang, Robert Raszuk, Gyan Mishra, Jie
Dong and Xuesong Geng for their reviews and discussions to the
content of this document.
9. Normative References 10. Contributors
The following people gave a substantial contribution to the content
of this document.
Les Ginsberg
Cisco Systems, Inc.
United States of America
Email: ginsberg@cisco.com
11. Normative References
[I-D.ietf-lsr-flex-algo] [I-D.ietf-lsr-flex-algo]
Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and
A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex-
algo-15 (work in progress), April 2021. algo-17 (work in progress), July 2021.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
2015, <https://www.rfc-editor.org/info/rfc7684>. 2015, <https://www.rfc-editor.org/info/rfc7684>.
 End of changes. 19 change blocks. 
60 lines changed or deleted 104 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/