draft-ietf-lsr-flex-algo-04.txt | draft-ietf-lsr-flex-algo-05.txt | |||
---|---|---|---|---|
Network Working Group P. Psenak, Ed. | Network Working Group P. Psenak, Ed. | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Intended status: Standards Track S. Hegde | Intended status: Standards Track S. Hegde | |||
Expires: March 21, 2020 Juniper Networks, Inc. | Expires: May 7, 2020 Juniper Networks, Inc. | |||
C. Filsfils | C. Filsfils | |||
K. Talaulikar | K. Talaulikar | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
A. Gulko | A. Gulko | |||
Thomson Reuters | Thomson Reuters | |||
September 18, 2019 | November 4, 2019 | |||
IGP Flexible Algorithm | IGP Flexible Algorithm | |||
draft-ietf-lsr-flex-algo-04.txt | draft-ietf-lsr-flex-algo-05.txt | |||
Abstract | Abstract | |||
IGP protocols traditionally compute best paths over the network based | IGP protocols traditionally compute best paths over the network based | |||
on the IGP metric assigned to the links. Many network deployments | on the IGP metric assigned to the links. Many network deployments | |||
use RSVP-TE based or Segment Routing based Traffic Engineering to | use RSVP-TE based or Segment Routing based Traffic Engineering to | |||
enforce traffic over a path that is computed using different metrics | enforce traffic over a path that is computed using different metrics | |||
or constraints than the shortest IGP path. This document proposes a | or constraints than the shortest IGP path. This document proposes a | |||
solution that allows IGPs themselves to compute constraint based | solution that allows IGPs themselves to compute constraint based | |||
paths over the network. This document also specifies a way of using | paths over the network. This document also specifies a way of using | |||
skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
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 March 21, 2020. | This Internet-Draft will expire on May 7, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 27 ¶ | skipping to change at page 2, line 27 ¶ | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Flexible Algorithm . . . . . . . . . . . . . . . . . . . . . 5 | 4. Flexible Algorithm . . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Flexible Algorithm Definition Advertisement . . . . . . . . . 5 | 5. Flexible Algorithm Definition Advertisement . . . . . . . . . 5 | |||
5.1. ISIS Flexible Algorithm Definition Sub-TLV . . . . . . . 5 | 5.1. ISIS Flexible Algorithm Definition Sub-TLV . . . . . . . 6 | |||
5.2. OSPF Flexible Algorithm Definition TLV . . . . . . . . . 7 | 5.2. OSPF Flexible Algorithm Definition TLV . . . . . . . . . 7 | |||
5.3. Common Handling of Flexible Algorithm Definition TLV . . 8 | 5.3. Common Handling of Flexible Algorithm Definition TLV . . 8 | |||
6. Sub-TLVs of ISIS FAD Sub-TLV . . . . . . . . . . . . . . . . 9 | 6. Sub-TLVs of ISIS FAD Sub-TLV . . . . . . . . . . . . . . . . 9 | |||
6.1. ISIS Flexible Algorithm Exclude Admin Group Sub-TLV . . . 9 | 6.1. ISIS Flexible Algorithm Exclude Admin Group Sub-TLV . . . 9 | |||
6.2. ISIS Flexible Algorithm Include-Any Admin Group Sub-TLV . 10 | 6.2. ISIS Flexible Algorithm Include-Any Admin Group Sub-TLV . 10 | |||
6.3. ISIS Flexible Algorithm Include-All Admin Group Sub-TLV . 10 | 6.3. ISIS Flexible Algorithm Include-All Admin Group Sub-TLV . 11 | |||
6.4. ISIS Flexible Algorithm Definition Flags Sub-TLV . . . . 11 | 6.4. ISIS Flexible Algorithm Definition Flags Sub-TLV . . . . 11 | |||
7. Sub-TLVs of OSPF FAD TLV . . . . . . . . . . . . . . . . . . 12 | 7. Sub-TLVs of OSPF FAD TLV . . . . . . . . . . . . . . . . . . 12 | |||
7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV . . . 12 | 7.1. OSPF Flexible Algorithm Exclude Admin Group Sub-TLV . . . 12 | |||
7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV . 13 | 7.2. OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV . 13 | |||
7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV . 13 | 7.3. OSPF Flexible Algorithm Include-All Admin Group Sub-TLV . 13 | |||
7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV . . . . 13 | 7.4. OSPF Flexible Algorithm Definition Flags Sub-TLV . . . . 13 | |||
8. ISIS Flex-Algorithm Prefix Metric Sub-TLV . . . . . . . . . . 14 | 8. ISIS Flex-Algorithm Prefix Metric Sub-TLV . . . . . . . . . . 14 | |||
9. OSPF Flex-Algorithm Prefix Metric Sub-TLV . . . . . . . . . . 15 | 9. OSPF Flex-Algorithm Prefix Metric Sub-TLV . . . . . . . . . . 15 | |||
10. Advertisement of Node Participation in a Flex-Algorithm . . . 16 | 10. Advertisement of Node Participation in a Flex-Algorithm . . . 16 | |||
10.1. Advertisement of Node Participation for Segment Routing 16 | 10.1. Advertisement of Node Participation for Segment Routing 17 | |||
10.2. Advertisement of Node Participation for Other | 10.2. Advertisement of Node Participation for Other | |||
Applications . . . . . . . . . . . . . . . . . . . . . . 17 | Applications . . . . . . . . . . . . . . . . . . . . . . 17 | |||
11. Advertisement of Link Attributes for Flex-Algorithm . . . . . 17 | 11. Advertisement of Link Attributes for Flex-Algorithm . . . . . 17 | |||
12. Calculation of Flexible Algorithm Paths . . . . . . . . . . . 18 | 12. Calculation of Flexible Algorithm Paths . . . . . . . . . . . 18 | |||
12.1. Multi-area and Multi-domain Considerations . . . . . . . 19 | 12.1. Multi-area and Multi-domain Considerations . . . . . . . 19 | |||
13. Flex-Algorithm and Forwarding Plane . . . . . . . . . . . . . 20 | 13. Flex-Algorithm and Forwarding Plane . . . . . . . . . . . . . 20 | |||
13.1. Segment Routing MPLS Forwarding for Flex-Algorithm . . . 20 | 13.1. Segment Routing MPLS Forwarding for Flex-Algorithm . . . 20 | |||
13.2. SRv6 Forwarding for Flex-Algorithm . . . . . . . . . . . 21 | 13.2. SRv6 Forwarding for Flex-Algorithm . . . . . . . . . . . 21 | |||
13.3. Other Applications' Forwarding for Flex-Algorithm . . . 21 | 13.3. Other Applications' Forwarding for Flex-Algorithm . . . 22 | |||
14. Backward Compatibility . . . . . . . . . . . . . . . . . . . 22 | 14. Backward Compatibility . . . . . . . . . . . . . . . . . . . 22 | |||
15. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 15. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | |||
16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
16.1. IGP IANA Considerations . . . . . . . . . . . . . . . . 22 | 16.1. IGP IANA Considerations . . . . . . . . . . . . . . . . 23 | |||
16.1.1. IGP Algorithm Types Registry . . . . . . . . . . . . 22 | 16.1.1. IGP Algorithm Types Registry . . . . . . . . . . . . 23 | |||
16.1.2. Flexible Algorithm Definition Metric-Type Registry . 22 | 16.1.2. Flexible Algorithm Definition Metric-Type Registry . 23 | |||
16.2. Flex-Algorithm Definition Flags Registry . . . . . . . . 23 | 16.2. Flex-Algorithm Definition Flags Registry . . . . . . . . 24 | |||
16.3. ISIS IANA Considerations . . . . . . . . . . . . . . . . 23 | 16.3. ISIS IANA Considerations . . . . . . . . . . . . . . . . 24 | |||
16.3.1. Sub TLVs for Type 242 . . . . . . . . . . . . . . . 23 | 16.3.1. Sub TLVs for Type 242 . . . . . . . . . . . . . . . 24 | |||
16.3.2. Sub TLVs for for TLVs 135, 235, 236, and 237 . . . . 24 | 16.3.2. Sub TLVs for for TLVs 135, 235, 236, and 237 . . . . 24 | |||
16.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition Sub- | 16.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition Sub- | |||
TLV . . . . . . . . . . . . . . . . . . . . . . . . 24 | TLV . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
16.4. OSPF IANA Considerations . . . . . . . . . . . . . . . . 25 | 16.4. OSPF IANA Considerations . . . . . . . . . . . . . . . . 25 | |||
16.4.1. OSPF Router Information (RI) TLVs Registry . . . . . 25 | 16.4.1. OSPF Router Information (RI) TLVs Registry . . . . . 25 | |||
16.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs . . . . . . . . 25 | 16.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs . . . . . . . . 26 | |||
16.4.3. OSPFv3 Extended-LSA Sub-TLVs . . . . . . . . . . . . 25 | 16.4.3. OSPFv3 Extended-LSA Sub-TLVs . . . . . . . . . . . . 26 | |||
16.4.4. OSPF Flexible Algorithm Definition TLV Sub-TLV | 16.4.4. OSPF Flexible Algorithm Definition TLV Sub-TLV | |||
Registry . . . . . . . . . . . . . . . . . . . . . . 25 | Registry . . . . . . . . . . . . . . . . . . . . . . 26 | |||
17. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 | 16.4.5. Link Attribute Applications Registry . . . . . . . . 27 | |||
18. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 17. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 | |||
18.1. Normative References . . . . . . . . . . . . . . . . . . 27 | 18. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
18.2. Informative References . . . . . . . . . . . . . . . . . 28 | 18.1. Normative References . . . . . . . . . . . . . . . . . . 28 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | 18.2. Informative References . . . . . . . . . . . . . . . . . 29 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | ||||
1. Introduction | 1. Introduction | |||
An IGP computed path based on the shortest IGP metric must often be | An IGP computed path based on the shortest IGP metric must often be | |||
replaced by a traffic engineered path due to the traffic requirements | replaced by a traffic engineered path due to the traffic requirements | |||
which are not reflected by the IGP metric. Some networks engineer | which are not reflected by the IGP metric. Some networks engineer | |||
the IGP metric assignments in a way that the IGP Metric reflects the | the IGP metric assignments in a way that the IGP Metric reflects the | |||
link bandwidth or delay. If, for example, the IGP metric is | link bandwidth or delay. If, for example, the IGP metric is | |||
reflecting the bandwidth on the link and the application traffic is | reflecting the bandwidth on the link and the application traffic is | |||
delay sensitive, the best IGP path may not reflect the best path from | delay sensitive, the best IGP path may not reflect the best path from | |||
skipping to change at page 5, line 5 ¶ | skipping to change at page 5, line 5 ¶ | |||
Flexible Algorithm Participation - per application configuration | Flexible Algorithm Participation - per application configuration | |||
state that expresses whether the node is participating in a | state that expresses whether the node is participating in a | |||
particular Flexible Algorithm. | particular Flexible Algorithm. | |||
IGP Algorithm - value from the the "IGP Algorithm Types" registry | IGP Algorithm - value from the the "IGP Algorithm Types" registry | |||
defined under "Interior Gateway Protocol (IGP) Parameters" IANA | defined under "Interior Gateway Protocol (IGP) Parameters" IANA | |||
registries. IGP Algorithms represents the triplet (Calculation Type, | registries. IGP Algorithms represents the triplet (Calculation Type, | |||
Metric, Constraints), where the second and third elements of the | Metric, Constraints), where the second and third elements of the | |||
triple MAY not exist. | triple MAY not exist. | |||
ABR - Area Border Router. In ISIS terminology it is also known as | ||||
L1/L2 router. | ||||
ASBR - Autonomous System Border Router. | ||||
4. Flexible Algorithm | 4. Flexible Algorithm | |||
Many possible constraints may be used to compute a path over a | Many possible constraints may be used to compute a path over a | |||
network. Some networks are deployed as multiple planes. A simple | network. Some networks are deployed as multiple planes. A simple | |||
form of constraint may be to use a particular plane. A more | form of constraint may be to use a particular plane. A more | |||
sophisticated form of constraint can include some extended metric as | sophisticated form of constraint can include some extended metric as | |||
described in [RFC7810]. Constraints which restrict paths to links | described in [RFC7810]. Constraints which restrict paths to links | |||
with specific affinities or avoid links with specific affinities are | with specific affinities or avoid links with specific affinities are | |||
also possible. Combinations of these are also possible. | also possible. Combinations of these are also possible. | |||
skipping to change at page 6, line 26 ¶ | skipping to change at page 6, line 31 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs | | | Sub-TLVs | | |||
+ + | + + | |||
| ... | | | ... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: TBD, suggested value 26 | Type: 26 | |||
Length: variable, dependent on the included Sub-TLVs | Length: variable, dependent on the included Sub-TLVs | |||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flex-Algorithm: Single octet value between 128 and 255 inclusive. | |||
Metric-Type: Type of metric to be used during the calculation. | Metric-Type: Type of metric to be used during the calculation. | |||
Following values are defined: | Following values are defined: | |||
0: IGP Metric | 0: IGP Metric | |||
skipping to change at page 7, line 41 ¶ | skipping to change at page 7, line 46 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs | | | Sub-TLVs | | |||
+ + | + + | |||
| ... | | | ... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: TBD, suggested value 16 | Type: 16 | |||
Length: variable, dependent on the included Sub-TLVs | Length: variable, dependent on the included Sub-TLVs | |||
Flex-Algorithm:: Flex-Algorithm number. Value between 128 and 255 | Flex-Algorithm:: Flex-Algorithm number. Value between 128 and 255 | |||
inclusive. | inclusive. | |||
Metric-Type: as described in Section 5.1 | Metric-Type: as described in Section 5.1 | |||
Calc-Type: as described in Section 5.1 | Calc-Type: as described in Section 5.1 | |||
Priority: as described in Section 5.1 | Priority: as described in Section 5.1 | |||
Sub-TLVs - optional sub-TLVs. | Sub-TLVs - optional sub-TLVs. | |||
When multiple OPSF FAD TLVs, for the same Flexible-Algorithm, are | When multiple OPSF FAD TLVs, for the same Flexible-Algorithm, are | |||
received from a given router, the receiver MUST use the first | received from a given router, the receiver MUST use the first | |||
occurrence of the TLV in the Router Information LSA. If the OSPF FAD | occurrence of the TLV in the Router Information LSA. If the OSPF FAD | |||
TLV, for the same Flex-Algorithm, appears in multiple Router | TLV, for the same Flex-Algorithm, appears in multiple Router | |||
Information LSAs that have different flooding scopes, the OSPF FAD | Information LSAs that have different flooding scopes, the OSPF FAD | |||
TLV in the Router Information LSA with the area-scoped flooding scope | TLV in the Router Information LSA with the area-scoped flooding scope | |||
skipping to change at page 14, line 51 ¶ | skipping to change at page 15, line 14 ¶ | |||
0 1 2 3 | 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 | 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 |Flex-Algorithm | | | Type | Length |Flex-Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: TBD, suggested value 6 | Type: 6 | |||
Length: 5 octets | Length: 5 octets | |||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flex-Algorithm: Single octet value between 128 and 255 inclusive. | |||
Metric: 4 octets of metric information | Metric: 4 octets of metric information | |||
ISIS FAPM Sub-TLV MAY appear multiple times in its parent TLV. If it | ISIS FAPM Sub-TLV MAY appear multiple times in its parent TLV. If it | |||
appears more then once with the same Flex-Algorithm value, the first | appears more then once with the same Flex-Algorithm value, the first | |||
appearance MUST be used and any subsequent ones MUST be ignored. | appearance MUST be used and any subsequent ones MUST be ignored. | |||
skipping to change at page 16, line 17 ¶ | skipping to change at page 16, line 22 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Flex-Algorithm | Reserved | | |Flex-Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: TBD, suggested value for OSPFv2 is 3, for OSPFv3 is 26 | Type: 3 for OSPFv2, 26 for OSPFv3 | |||
Length: 8 octets | Length: 8 octets | |||
Flex-Algorithm: Single octet value between 128 and 255 inclusive. | Flex-Algorithm: Single octet value between 128 and 255 inclusive. | |||
Reserved: Must be set to 0, ignored at reception. | Reserved: Must be set to 0, ignored at reception. | |||
Metric: 4 octets of metric information | Metric: 4 octets of metric information | |||
OSPF FAPM Sub-TLV MAY appear multiple times in its parent TLV. If it | OSPF FAPM Sub-TLV MAY appear multiple times in its parent TLV. If it | |||
skipping to change at page 17, line 33 ¶ | skipping to change at page 17, line 41 ¶ | |||
Application specific Flex-Algorithm participation advertisements MAY | Application specific Flex-Algorithm participation advertisements MAY | |||
be topology specific or MAY be topology independent, depending on the | be topology specific or MAY be topology independent, depending on the | |||
application itself. | application itself. | |||
Application specific advertisement for Flex-Algorithm participation | Application specific advertisement for Flex-Algorithm participation | |||
MUST be defined for each application and is outside of the scope of | MUST be defined for each application and is outside of the scope of | |||
this document. | this document. | |||
11. Advertisement of Link Attributes for Flex-Algorithm | 11. Advertisement of Link Attributes for Flex-Algorithm | |||
Various link include or exclude rules can be part of the Flex- | Various link attributes may be used during the Flex-Algorithm path | |||
Algorithm definition. These rules use Admin Groups (AG) as defined | calculation. For example, include or exclude rules based on link | |||
in [RFC5305], or Extended Administrative Groups (EAG) as defined in | affinities can be part of the Flex-Algorithm definition as defined in | |||
[RFC7308]. | Section 6 and Section 7. | |||
To advertise a link affinity in a form of the AG or EAG that is used | Link attribute advertisements that are to be used during Flex- | |||
during Flex-Algorithm calculation, an Application Specific Link | Algorithm calculation MUST use the Application Specific Link | |||
Attributes sub-TLV as described in [I-D.ietf-isis-te-app], or sub-TLV | Attribute (ASLA) advertisements defined in [I-D.ietf-isis-te-app] or | |||
of Extended Link TLV as described in | [I-D.ietf-ospf-te-link-attr-reuse]. | |||
[I-D.ietf-ospf-te-link-attr-reuse] MUST be used. The advertisement | ||||
MUST indicate that it is usable by the Flex-Algorithm application. | ||||
If the link Flex-Algorithm application affinities are advertised in a | A new Application Identifier Bit is defined to indicate that the ASLA | |||
form of the AG inside the Application Specific Link Attributes sub- | advertisement is associated with the Flex-Algorithm application. | |||
TLV, these are mapped to the affinities specified in the FAD Sub-TLVs | ||||
as defined in [RFC7308]. | This bit is set in the Standard Application Bit Mask (SABM) defined | |||
in [I-D.ietf-isis-te-app] or [I-D.ietf-ospf-te-link-attr-reuse]: | ||||
Bit-3: Flexible Algorithm (X-bit) | ||||
ASLA Admin Group Advertisements to be used by the Flexible Algorithm | ||||
Application MAY use either the Administrative Group or Extended | ||||
Administrative Group encodings. If the Administrative Group encoding | ||||
is used then the first 32 bits of the corresponding FAD sub-TLVs are | ||||
mapped to the link attribute advertisements as specified in RFC 7308. | ||||
12. Calculation of Flexible Algorithm Paths | 12. Calculation of Flexible Algorithm Paths | |||
A router MUST be configured to participate in a given Flex-Algorithm | A router MUST be configured to participate in a given Flex-Algorithm | |||
K and MUST use the FAD selected based on the rules defined in | K and MUST use the FAD selected based on the rules defined in | |||
Section 5.3 before it can compute any path for that Flex-Algorithm. | Section 5.3 before it can compute any path for that Flex-Algorithm. | |||
As described in Section 10, participation for any particular Flex- | As described in Section 10, participation for any particular Flex- | |||
Algorithm MUST be advertised on a per application basis. Calculation | Algorithm MUST be advertised on a per application basis. Calculation | |||
of the paths for any particular Flex-Algorithm MUST be application | of the paths for any particular Flex-Algorithm MUST be application | |||
skipping to change at page 19, line 20 ¶ | skipping to change at page 19, line 31 ¶ | |||
4. If the Flex-Algorithm definition uses other than IGP metric | 4. If the Flex-Algorithm definition uses other than IGP metric | |||
(Section 5), and such metric is not advertised for the particular | (Section 5), and such metric is not advertised for the particular | |||
link in a topology for which the computation is done, such link | link in a topology for which the computation is done, such link | |||
MUST be pruned from the computation. A metric of value 0 MUST NOT | MUST be pruned from the computation. A metric of value 0 MUST NOT | |||
be assumed in such case. | be assumed in such case. | |||
12.1. Multi-area and Multi-domain Considerations | 12.1. Multi-area and Multi-domain Considerations | |||
Any IGP Shortest Path Tree calculation is limited to a single area. | Any IGP Shortest Path Tree calculation is limited to a single area. | |||
Same applies to Flex-Algorithm calculations. Given that the | This applies to Flex-Algorithm calculations as well. Given that the | |||
computing router may not have the visibility to the topology of | computing router does not have the visibility of the topology of next | |||
remote areas, the Flex-Algorithm specific path to an inter-area or | areas or domain, the Flex-Algorithm specific path to an inter-area or | |||
inter-domain prefix will be computed for the local area only. The | inter-domain prefix will be computed for the local area only. The | |||
egress L1/L2 router (ABR in OSPF), or ASBR for inter-domain case, | egress L1/L2 router (ABR in OSPF), or ASBR for inter-domain case, | |||
will be selected based on the best path for the given Flex-Algorithm | will be selected based on the best path for the given Flex-Algorithm | |||
in the local area and such egress ABR or ASBR router will be | in the local area and such egress ABR or ASBR router will be | |||
responsible to compute the best Flex-Algorithm specific path over the | responsible to compute the best Flex-Algorithm specific path over the | |||
next area or domain. This may produce an end-to-end path, which is | next area or domain. This may produce an end-to-end path, which is | |||
sub-optimal based on Flex-Algorithm constraints. | sub-optimal based on Flex-Algorithm constraints. In cases where the | |||
ABR or ASBR has no reachability to a prefix for a given Flex- | ||||
Algorithm in a next area or domain, the traffic may get dropped by | ||||
the ABR/ASBR. | ||||
To allow the best end-to-end path for a prefix for a given Flex- | To allow the optimal end-to-end path for a inter-area or inter-domain | |||
Algorithm to be computed, an ABR or ASBR MAY set the Flex-Algorithm | prefixes for any Flex-Algorithm to be computed, the FAPM has been | |||
prefix metric (Section 8, Section 9) when advertising the prefix | defined in Section 8 and Section 9. | |||
between areas or domains. Such metric will be equal to the metric to | ||||
reach the prefix for a given Flex-Algorithm in a source area or | If the FAD selected based on the rules defined in Section 5.3 | |||
domain. This is similar in nature to how the metric is set when | includes the M-flag, an ABR or ASBR MUST include the FAPM (Section 8, | |||
prefixes are advertised between areas or domains for default | Section 9) when advertising the prefix between areas or domains. | |||
algorithm. | Such metric will be equal to the metric to reach the prefix for a | |||
given Flex-Algorithm in a source area or domain. This is similar in | ||||
nature to how the metric is set when prefixes are advertised between | ||||
areas or domains for default algorithm. | ||||
If the FAD selected based on the rules defined in Section 5.3 | ||||
includes the M-flag, FAPM MUST be used during calculation of prefix | ||||
reachability for the inter-area and external prefixes. If the FAPM | ||||
for the Flex-Algorithm is not advertised with the inter-area or | ||||
external prefix reachability advertisement, the prefix MUST be | ||||
considered as unreachable for that Flex-Algorithm. | ||||
Flex-Algorithm prefix metrics MUST NOT be used during the Flex- | Flex-Algorithm prefix metrics MUST NOT be used during the Flex- | |||
Algorithm computation unless the FAD selected based on the rules | Algorithm computation unless the FAD selected based on the rules | |||
defined in Section 5.3 includes the M-Flag, as described in | defined in Section 5.3 includes the M-Flag, as described in | |||
(Section 6.4 or Section 7.4). | (Section 6.4 or Section 7.4). | |||
If the FAD selected based on the rules defined in Section 5.3 | If the FAD selected based on the rules defined in Section 5.3 does | |||
includes the M-flag, Flex-Algorithm prefix metrics MUST be used | not includes the M-flag, it is NOT RECOMMENDED to use the Flex- | |||
during calculation when advertised with the prefix. If the Flex- | Algoritm for inter-area or inter-domain prefix reachability. The | |||
Algorithm prefix metric is not advertised with the prefix, the | reason is that without the explicit Flex-Algorithm Prefix Metric | |||
standard IGP metric advertised with the prefix MUST be used. | advertisement it is not possible to conclude whether the ABR or ASBR | |||
has reachability to the inter-area or inter-domain prefix for a given | ||||
Flex-Algorithm in a next area or domain. Sending the Flex-Algoritm | ||||
traffic for such prefix towards the ABR or ASBR may result in traffic | ||||
looping or black-holing. | ||||
FAPM MUST NOT be advertised with ISIS L1 or L2 intra-area, OSPFv2 | ||||
intra-area or OSPFv3 intra area routes. If the FAPM is advertised | ||||
for these route-types, it MUST be ignored during prefix reachability | ||||
calculation. | ||||
M-flag in FAD is not applicable to prefixes advertised as SRv6 | M-flag in FAD is not applicable to prefixes advertised as SRv6 | |||
locators. ISIS SRv6 Locator TLV includes the Algorithm and Metric | locators. ISIS SRv6 Locator TLV includes the Algorithm and Metric | |||
fields [I-D.ietf-lsr-isis-srv6-extensions]. When the ISIS SRv6 | fields [I-D.ietf-lsr-isis-srv6-extensions]. When the ISIS SRv6 | |||
Locator is advertised between areas or domains, the metric field in | Locator is advertised between areas or domains, the metric field in | |||
the Locator TLV MUST be used irrespective of the M flag in the FAD | the Locator TLV MUST be used irrespective of the M flag in the FAD | |||
advertisement. | advertisement. | |||
13. Flex-Algorithm and Forwarding Plane | 13. Flex-Algorithm and Forwarding Plane | |||
skipping to change at page 23, line 49 ¶ | skipping to change at page 24, line 29 ¶ | |||
Reference: This document (Section 6.4, Section 7.4). | Reference: This document (Section 6.4, Section 7.4). | |||
16.3. ISIS IANA Considerations | 16.3. ISIS IANA Considerations | |||
16.3.1. Sub TLVs for Type 242 | 16.3.1. Sub TLVs for Type 242 | |||
This document makes the following registrations in the "sub-TLVs for | This document makes the following registrations in the "sub-TLVs for | |||
TLV 242" registry. | TLV 242" registry. | |||
Type: TBD (suggested value 26). | Type: 26. | |||
Description: Flexible Algorithm Definition. | Description: Flexible Algorithm Definition. | |||
Reference: This document (Section 5.1). | Reference: This document (Section 5.1). | |||
16.3.2. Sub TLVs for for TLVs 135, 235, 236, and 237 | 16.3.2. Sub TLVs for for TLVs 135, 235, 236, and 237 | |||
This document makes the following registrations in the "Sub-TLVs for | This document makes the following registrations in the "Sub-TLVs for | |||
for TLVs 135, 235, 236, and 237" registry. | for TLVs 135, 235, 236, and 237" registry. | |||
Type: TBD (suggested value 6). | Type: 6 | |||
Description: Flex-Algorithm Prefix Metric. | Description: Flex-Algorithm Prefix Metric. | |||
Reference: This document (Section 8). | Reference: This document (Section 8). | |||
16.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | 16.3.3. Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
This document creates the following Sub-Sub-TLV Registry: | This document creates the following Sub-Sub-TLV Registry: | |||
Registry: Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | Registry: Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV | |||
skipping to change at page 25, line 4 ¶ | skipping to change at page 25, line 32 ¶ | |||
Type: 3 | Type: 3 | |||
Description: Flexible Algorithm Include-All Admin Group | Description: Flexible Algorithm Include-All Admin Group | |||
Reference: This document (Section 6.3). | Reference: This document (Section 6.3). | |||
Type: 4 | Type: 4 | |||
Description: Flexible Algorithm Definition Flags | Description: Flexible Algorithm Definition Flags | |||
Reference: This document (Section 6.4). | Reference: This document (Section 6.4). | |||
16.4. OSPF IANA Considerations | 16.4. OSPF IANA Considerations | |||
16.4.1. OSPF Router Information (RI) TLVs Registry | 16.4.1. OSPF Router Information (RI) TLVs Registry | |||
This specification updates the OSPF Router Information (RI) TLVs | This specification updates the OSPF Router Information (RI) TLVs | |||
Registry with the following value: | Registry. | |||
o TBD (suggested value 16) - Flexible Algorithm Definition TLV | Type: 16 | |||
Description: Flexible Algorithm Definition TLV. | ||||
Reference: This document (Section 5.2). | ||||
16.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs | 16.4.2. OSPFv2 Extended Prefix TLV Sub-TLVs | |||
This document makes the following registrations in the "OSPFv2 | This document makes the following registrations in the "OSPFv2 | |||
Extended Prefix TLV Sub-TLVs" registry. | Extended Prefix TLV Sub-TLVs" registry. | |||
Type: TBD (suggested value 3). | Type: 3 | |||
Description: Flex-Algorithm Prefix Metric. | Description: Flex-Algorithm Prefix Metric. | |||
Reference: This document (Section 9). | Reference: This document (Section 9). | |||
16.4.3. OSPFv3 Extended-LSA Sub-TLVs | 16.4.3. OSPFv3 Extended-LSA Sub-TLVs | |||
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. | |||
Type: TBD (suggested value 26). | Type: 26 | |||
Description: Flex-Algorithm Prefix Metric. | Description: Flex-Algorithm Prefix Metric. | |||
Reference: This document (Section 9). | Reference: This document (Section 9). | |||
16.4.4. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | 16.4.4. OSPF Flexible Algorithm Definition TLV Sub-TLV Registry | |||
This document creates the following registry: | This document creates the following registry: | |||
Registry: OSPF Flexible Algorithm Definition TLV sub-TLV | Registry: OSPF Flexible Algorithm Definition TLV sub-TLV | |||
skipping to change at page 26, line 40 ¶ | skipping to change at page 27, line 28 ¶ | |||
Reference: This document (Section 7.4). | Reference: This document (Section 7.4). | |||
Types in the range 32768-33023 are for experimental use; these will | Types in the range 32768-33023 are for experimental use; these will | |||
not be registered with IANA, and MUST NOT be mentioned by RFCs. | not be registered with IANA, and MUST NOT be mentioned by RFCs. | |||
Types in the range 33024-65535 are not to be assigned at this time. | Types in the range 33024-65535 are not to be assigned at this time. | |||
Before any assignments can be made in the 33024-65535 range, there | Before any assignments can be made in the 33024-65535 range, there | |||
MUST be an IETF specification that specifies IANA Considerations that | MUST be an IETF specification that specifies IANA Considerations that | |||
covers the range being assigned. | covers the range being assigned. | |||
16.4.5. Link Attribute Applications Registry | ||||
This document registers following bit in the Link Attribute | ||||
Applications registry: | ||||
Bit-3 | ||||
Description: Flexible Algorithm (X-bit) | ||||
Reference: This document (Section 11). | ||||
17. Acknowledgements | 17. Acknowledgements | |||
This draft, among other things, is also addressing the problem that | This draft, among other things, is also addressing the problem that | |||
the [I-D.gulkohegde-routing-planes-using-sr] was trying to solve. | the [I-D.gulkohegde-routing-planes-using-sr] was trying to solve. | |||
All authors of that draft agreed to join this draft. | All authors of that draft agreed to join this draft. | |||
Thanks to Eric Rosen, Tony Przygienda for their detailed review and | Thanks to Eric Rosen, Tony Przygienda for their detailed review and | |||
excellent comments. | excellent comments. | |||
Thanks to Cengiz Halit for his review and feedback during initial | Thanks to Cengiz Halit for his review and feedback during initial | |||
skipping to change at page 27, line 20 ¶ | skipping to change at page 28, line 20 ¶ | |||
[I-D.ietf-isis-segment-routing-extensions] | [I-D.ietf-isis-segment-routing-extensions] | |||
Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | |||
Gredler, H., and B. Decraene, "IS-IS Extensions for | Gredler, H., and B. Decraene, "IS-IS Extensions for | |||
Segment Routing", draft-ietf-isis-segment-routing- | Segment Routing", draft-ietf-isis-segment-routing- | |||
extensions-25 (work in progress), May 2019. | extensions-25 (work in progress), May 2019. | |||
[I-D.ietf-isis-te-app] | [I-D.ietf-isis-te-app] | |||
Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and | |||
J. Drake, "IS-IS TE Attributes per application", draft- | J. Drake, "IS-IS TE Attributes per application", draft- | |||
ietf-isis-te-app-06 (work in progress), April 2019. | ietf-isis-te-app-09 (work in progress), October 2019. | |||
[I-D.ietf-lsr-isis-srv6-extensions] | [I-D.ietf-lsr-isis-srv6-extensions] | |||
Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and | Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and | |||
Z. Hu, "IS-IS Extension to Support Segment Routing over | Z. Hu, "IS-IS Extension to Support Segment Routing over | |||
IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-02 | IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-03 | |||
(work in progress), July 2019. | (work in progress), October 2019. | |||
[I-D.ietf-ospf-ospfv3-segment-routing-extensions] | [I-D.ietf-ospf-ospfv3-segment-routing-extensions] | |||
Psenak, P. and S. Previdi, "OSPFv3 Extensions for Segment | Psenak, P. and S. Previdi, "OSPFv3 Extensions for Segment | |||
Routing", draft-ietf-ospf-ospfv3-segment-routing- | Routing", draft-ietf-ospf-ospfv3-segment-routing- | |||
extensions-23 (work in progress), January 2019. | extensions-23 (work in progress), January 2019. | |||
[I-D.ietf-ospf-segment-routing-extensions] | [I-D.ietf-ospf-segment-routing-extensions] | |||
Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | |||
Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | |||
Extensions for Segment Routing", draft-ietf-ospf-segment- | Extensions for Segment Routing", draft-ietf-ospf-segment- | |||
routing-extensions-27 (work in progress), December 2018. | routing-extensions-27 (work in progress), December 2018. | |||
[I-D.ietf-ospf-te-link-attr-reuse] | [I-D.ietf-ospf-te-link-attr-reuse] | |||
Psenak, P., Ginsberg, L., Henderickx, W., Tantsura, J., | Psenak, P., Ginsberg, L., Henderickx, W., Tantsura, J., | |||
and J. Drake, "OSPF Link Traffic Engineering (TE) | and J. Drake, "OSPF Link Traffic Engineering Attribute | |||
Attribute Reuse", draft-ietf-ospf-te-link-attr-reuse-08 | Reuse", draft-ietf-ospf-te-link-attr-reuse-10 (work in | |||
(work in progress), August 2019. | progress), October 2019. | |||
[I-D.li-ospf-ospfv3-srv6-extensions] | [I-D.li-ospf-ospfv3-srv6-extensions] | |||
Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, | Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, | |||
"OSPFv3 Extensions for SRv6", draft-li-ospf- | "OSPFv3 Extensions for SRv6", draft-li-ospf- | |||
ospfv3-srv6-extensions-05 (work in progress), August 2019. | ospfv3-srv6-extensions-05 (work in progress), August 2019. | |||
[ISO10589] | [ISO10589] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Intermediate system to Intermediate system intra-domain | "Intermediate system to Intermediate system intra-domain | |||
routeing information exchange protocol for use in | routeing information exchange protocol for use in | |||
End of changes. 36 change blocks. | ||||
71 lines changed or deleted | 123 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |