--- 1/draft-ietf-idr-bgp-ls-flex-algo-01.txt 2020-01-06 05:13:14.141294750 -0800 +++ 2/draft-ietf-idr-bgp-ls-flex-algo-02.txt 2020-01-06 05:13:14.173295564 -0800 @@ -1,91 +1,84 @@ Inter-Domain Routing K. Talaulikar Internet-Draft P. Psenak Intended status: Standards Track Cisco Systems -Expires: January 9, 2020 S. Zandi +Expires: July 9, 2020 S. Zandi G. Dawra LinkedIn - July 8, 2019 + January 6, 2020 Flexible Algorithm Definition Advertisement with BGP Link-State - draft-ietf-idr-bgp-ls-flex-algo-01 + draft-ietf-idr-bgp-ls-flex-algo-02 Abstract Flexible Algorithm is a solution that allows routing protocols (viz. OSPF and IS-IS) to compute paths over a network based on user-defined (and hence, flexible) constraints and metrics. The computation is performed by routers participating in the specific network in a distribute manner using a Flex Algorithm definition. This definition provisioned on one or more routers and propagated (viz. OSPF and IS- IS flooding) through the network. BGP Link-State (BGP-LS) enables the collection of various topology information from the network. This draft defines extensions to BGP- LS address-family to advertise the Flexible Algorithm Definition as a part of the topology information from the network. -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. - Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on January 9, 2020. + This Internet-Draft will expire on July 9, 2020. Copyright Notice - Copyright (c) 2019 IETF Trust and the persons identified as the + Copyright (c) 2020 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 (https://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. BGP-LS Extensions for Flex Algo . . . . . . . . . . . . . . . 4 3. Flexible Algorithm Definition . . . . . . . . . . . . . . . . 4 3.1. Flex Algo Exclude Any Affinity . . . . . . . . . . . . . 6 3.2. Flex Algo Include Any Affinity . . . . . . . . . . . . . 6 3.3. Flex Algo Include All Affinity . . . . . . . . . . . . . 7 3.4. Flex Algo Definition Flags . . . . . . . . . . . . . . . 8 4. Flex Algorithm Prefix Metric . . . . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 6. Manageability Considerations . . . . . . . . . . . . . . . . 10 6.1. Operational Considerations . . . . . . . . . . . . . . . 10 - 6.2. Management Considerations . . . . . . . . . . . . . . . . 10 + 6.2. Management Considerations . . . . . . . . . . . . . . . . 11 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 9.2. Informative References . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 1. Introduction IGP protocols (OSPF and IS-IS) traditionally compute best paths over @@ -116,26 +109,26 @@ algorithm on one or more of these nodes. The nodes where the flexible algorithm definition (FAD) is advertised then flood these definitions via respective IGP (IS-IS and OSPFv2/v3) mechanisms to all other nodes in the network. The nodes select the definition for each algorithm based on the flooded information in a deterministic manner and thus all nodes participating in a flexible algorithm computation arrive at a common understanding of the type of calculation that they need to use. When using Segment Routing (SR) [RFC8402] MPLS forwarding plane - [I-D.ietf-spring-segment-routing-mpls], the result of a flex - algorithm computation is the provisioning of the Prefix SIDs - associated with that algorithm with paths based on the topology - computed based on that algorithm. When using SR forwarding plane on - IPv6 (SRv6) [I-D.ietf-spring-srv6-network-programming], the result of - a flex algorithm computation is the provisioning of the SRv6 Locators + [RFC8660], the result of a flex algorithm computation is the + provisioning of the Prefix SIDs associated with that algorithm with + paths based on the topology computed based on that algorithm. When + using SR forwarding plane on IPv6 (SRv6) + [I-D.ietf-spring-srv6-network-programming], the result of a flex + algorithm computation is the provisioning of the SRv6 Locators associated with that algorithm with paths based on the topology computed based on that algorithm. This flex algorithm computation is within an IGP area or level similar to the default shortest path tree (SPT) algorithm. A flex algorithm specific metric MAY be advertised along with the prefix as described in [I-D.ietf-lsr-flex-algo] to enable end-to-end optimal path computation for prefixes across multiple areas/domains in the flex algorithm computation for the SR-MPLS forwarding plane. @@ -163,20 +156,28 @@ information can then be leveraged by it for setting up SR Policy paths end to end across domains by leveraging the appropriate Flex Algorithm specific SIDs in the in its Segment List [I-D.ietf-spring-segment-routing-policy]. e.g. picking the Flex Algorithm Prefix SID (in case of SR-MPLS) or End SID (in case of SRv6) of ABRs/ASBRs corresponding to a definition that optimizes on the delay metric enables the PCE/controller to build an end to end low latency path across IGP domains with minimal SIDs in the SID list. +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. BGP-LS Extensions for Flex Algo The BGP-LS [RFC7752] specifies the Node NLRI for advertisement of nodes along with their attributes using the BGP-LS Attribute and the Prefix NLRI for advertisement of prefixes along with their attributes using the BGP-LS Attribute. The Flexible Algorithm Definition (FAD) advertised by a node are considered as its node level attributes and advertised as such. The Flexible Algorithm Prefix Metric (FAPM) are considered as prefix attributes and advertised as such. @@ -193,21 +194,21 @@ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Flex-Algorithm | Metric-Type | Calc-Type | Priority | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sub-TLVs ... // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Flex Algorithm Definition TLV where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1039 o Length: variable. Minimum of 4 octets. o Flex-Algorithm : 1 octet value in the range between 128 and 255 inclusive which is the range defined for Flexible Algorithms in the IANA "IGP Parameters" registries under the "IGP Algorithm Types" registry [I-D.ietf-lsr-flex-algo]. o Metric-Type : 1 octet value indicating the type of the metric used in the computation. Values allowed come from the IANA "IGP @@ -257,21 +258,21 @@ 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Exclude-Any EAG (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1040 o Length: variable, dependent on the size of the Extended Admin Group. MUST be a multiple of 4 octets. o Exclude-Any EAG : the bitmask used to represent the affinities to be excluded. The information in the Flex Algo Exclude Any Affinity sub-TLV is derived from the IS-IS and OSPF protocol specific Flexible Algorithm Exclude Admin Group sub-TLV as defined in [I-D.ietf-lsr-flex-algo]. @@ -291,21 +292,21 @@ 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Include-Any EAG (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1041 o Length: variable, dependent on the size of the Extended Admin Group. MUST be a multiple of 4 octets. o Include-Any EAG : the bitmask used to represent the affinities to be included. The information in the Flex Algo Include Any Affinity sub-TLV is derived from the IS-IS and OSPF protocol specific Flexible Algorithm Include-Any Admin Group sub-TLV as defined in @@ -326,21 +327,21 @@ 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Include-All EAG (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1042 o Length: variable, dependent on the size of the Extended Admin Group. MUST be a multiple of 4 octets. o Include-All EAG : the bitmask used to represent the affinities to be included. The information in the Flex Algo Include All Affinity sub-TLV is derived from the IS-IS and OSPF protocol specific Flexible Algorithm Include-All Admin Group sub-TLV as defined in @@ -358,21 +359,21 @@ 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 (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1043 o Length: variable. MUST be a multiple of 4 octets. o Flags : the bitmask used to represent the flags for the flex algorithm definition as introduced by [I-D.ietf-lsr-flex-algo] and listed in the "Flex-Algorithm Definition Flags" registry under the "Interior Gateway Protocol (IGP) Parameters" IANA registry. The information in the Flex Algo Definition Flags sub-TLV is derived from the IS-IS and OSPF protocol specific Flexible Algorithm @@ -389,21 +390,21 @@ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Flex-Algorithm | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: - o Type: TBD (see IANA Considerations Section 5) + o Type: 1044 o Length: 8 octets. o Flex-Algorithm : 1 octet value in the range between 128 and 255 inclusive which is the range defined for Flexible Algorithms in the IANA "IGP Parameters" registries under the "IGP Algorithm Types" registry [I-D.ietf-lsr-flex-algo]. o Reserved : 3 octet value that SHOULD be set to 0 by the originator and MUST be ignored by the receiver. @@ -423,32 +424,33 @@ Metric sub-TLV in [I-D.ietf-lsr-flex-algo]. The BGP-LS Attribute associated with a Prefix NLRI MAY include one or more FAPM TLVs corresponding to the Flexibile Algorithm Prefix Metric for each algorithm associated with that the particular prefix. 5. IANA Considerations This document requests assigning code-points from the registry "BGP- LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute - TLVs" based on table below. The column "IS-IS TLV/Sub-TLV" defined - in the registry does not require any value and should be left empty. + TLVs" based on table below which reflects the values assigned via the + early allocation process. The column "IS-IS TLV/Sub-TLV" defined in + the registry does not require any value and should be left empty. +------------+----------------------------------------+----------+ | Code Point | Description | Length | +------------+----------------------------------------+----------+ - | TBD | Flex Algorithm Definition TLV | variable | - | TBD | Flex Algo Exclude Any Affinity sub-TLV | variable | - | TBD | Flex Algo Include Any Affinity sub-TLV | variable | - | TBD | Flex Algo Include All Affinity sub-TLV | variable | - | TBD | Flex Algo Definition Flags sub-TLV | variable | - | TBD | Flex Algorithm Prefix Metric TLV | variable | + | 1039 | Flex Algorithm Definition TLV | variable | + | 1040 | Flex Algo Exclude Any Affinity sub-TLV | variable | + | 1041 | Flex Algo Include Any Affinity sub-TLV | variable | + | 1042 | Flex Algo Include All Affinity sub-TLV | variable | + | 1043 | Flex Algo Definition Flags sub-TLV | variable | + | 1044 | Flex Algorithm Prefix Metric TLV | variable | +------------+----------------------------------------+----------+ 6. Manageability Considerations This section is structured as recommended in [RFC5706]. The new protocol extensions introduced in this document augment the existing IGP topology information that was distributed via [RFC7752]. Procedures and protocol extensions defined in this document do not affect the BGP protocol operations and management other than as @@ -478,68 +480,68 @@ The authors would like to thank Les Ginsberg for his reviews and contributions to this work. 9. References 9.1. Normative References [I-D.ietf-lsr-flex-algo] Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- - algo-03 (work in progress), July 2019. - - [I-D.ietf-spring-segment-routing-mpls] - Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., - Litkowski, S., and R. Shakir, "Segment Routing with MPLS - data plane", draft-ietf-spring-segment-routing-mpls-22 - (work in progress), May 2019. + algo-05 (work in progress), November 2019. [I-D.ietf-spring-srv6-network-programming] - Filsfils, C., Camarillo, P., Leddy, J., - daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 - Network Programming", draft-ietf-spring-srv6-network- - programming-01 (work in progress), July 2019. + Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., + Matsushima, S., and Z. Li, "SRv6 Network Programming", + draft-ietf-spring-srv6-network-programming-07 (work in + progress), December 2019. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP", RFC 7752, DOI 10.17487/RFC7752, March 2016, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . + [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., + Decraene, B., Litkowski, S., and R. Shakir, "Segment + Routing with the MPLS Data Plane", RFC 8660, + DOI 10.17487/RFC8660, December 2019, + . + 9.2. Informative References [I-D.ietf-idr-bgp-ls-segment-routing-ext] Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., and M. Chen, "BGP Link-State extensions for Segment Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-16 (work in progress), June 2019. [I-D.ietf-idr-bgpls-srv6-ext] Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., daniel.bernier@bell.ca, d., and B. Decraene, "BGP Link State Extensions for SRv6", draft-ietf-idr-bgpls- srv6-ext-01 (work in progress), July 2019. [I-D.ietf-spring-segment-routing-policy] - Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., - bogdanov@google.com, b., and P. Mattes, "Segment Routing - Policy Architecture", draft-ietf-spring-segment-routing- - policy-03 (work in progress), May 2019. + Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A., and + P. Mattes, "Segment Routing Policy Architecture", draft- + ietf-spring-segment-routing-policy-06 (work in progress), + December 2019. [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. McManus, "Requirements for Traffic Engineering Over MPLS", RFC 2702, DOI 10.17487/RFC2702, September 1999, . [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, .