< draft-ietf-idr-bgp-ls-flex-algo-00.txt   draft-ietf-idr-bgp-ls-flex-algo-01.txt >
Inter-Domain Routing K. Talaulikar Inter-Domain Routing K. Talaulikar
Internet-Draft P. Psenak Internet-Draft P. Psenak
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: December 1, 2019 S. Zandi Expires: January 9, 2020 S. Zandi
G. Dawra G. Dawra
LinkedIn LinkedIn
May 30, 2019 July 8, 2019
Flexible Algorithm Definition Advertisement with BGP Link-State Flexible Algorithm Definition Advertisement with BGP Link-State
draft-ietf-idr-bgp-ls-flex-algo-00 draft-ietf-idr-bgp-ls-flex-algo-01
Abstract Abstract
Flexible Algorithm is a solution that allows routing protocols (viz. Flexible Algorithm is a solution that allows routing protocols (viz.
OSPF and IS-IS) to compute paths over a network based on user-defined OSPF and IS-IS) to compute paths over a network based on user-defined
(and hence, flexible) constraints and metrics. The computation is (and hence, flexible) constraints and metrics. The computation is
performed by routers participating in the specific network in a performed by routers participating in the specific network in a
distribute manner using a Flex Algorithm definition. This definition distribute manner using a Flex Algorithm definition. This definition
provisioned on one or more routers and propagated (viz. OSPF and IS- provisioned on one or more routers and propagated (viz. OSPF and IS-
IS flooding) through the network. IS flooding) through the network.
skipping to change at page 2, line 7 skipping to change at page 2, line 7
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 1, 2019. This Internet-Draft will expire on January 9, 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. BGP-LS Extensions for Flex Algo Definition . . . . . . . . . 4 2. BGP-LS Extensions for Flex Algo . . . . . . . . . . . . . . . 4
2.1. Flex Algo Exclude Any Affinity . . . . . . . . . . . . . 5 3. Flexible Algorithm Definition . . . . . . . . . . . . . . . . 4
2.2. Flex Algo Include Any Affinity . . . . . . . . . . . . . 6 3.1. Flex Algo Exclude Any Affinity . . . . . . . . . . . . . 6
2.3. Flex Algo Include All Affinity . . . . . . . . . . . . . 7 3.2. Flex Algo Include Any Affinity . . . . . . . . . . . . . 6
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 3.3. Flex Algo Include All Affinity . . . . . . . . . . . . . 7
4. Manageability Considerations . . . . . . . . . . . . . . . . 8 3.4. Flex Algo Definition Flags . . . . . . . . . . . . . . . 8
4.1. Operational Considerations . . . . . . . . . . . . . . . 8 4. Flex Algorithm Prefix Metric . . . . . . . . . . . . . . . . 9
4.2. Management Considerations . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 6. Manageability Considerations . . . . . . . . . . . . . . . . 10
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 6.1. Operational Considerations . . . . . . . . . . . . . . . 10
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 6.2. Management Considerations . . . . . . . . . . . . . . . . 10
7.1. Normative References . . . . . . . . . . . . . . . . . . 9 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7.2. Informative References . . . . . . . . . . . . . . . . . 9 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . 11
9.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
IGP protocols (OSPF and IS-IS) traditionally compute best paths over IGP protocols (OSPF and IS-IS) traditionally compute best paths over
the network based on the IGP metric assigned to the links. Many the network based on the IGP metric assigned to the links. Many
network deployments use RSVP-TE [RFC3209] based or Segment Routing network deployments use RSVP-TE [RFC3209] based or Segment Routing
(SR) Policy [I-D.ietf-spring-segment-routing-policy] based solutions (SR) Policy [I-D.ietf-spring-segment-routing-policy] based solutions
to enforce traffic over a path that is computed using different to enforce traffic over a path that is computed using different
metrics or constraints than the shortest IGP path. metrics or constraints than the shortest IGP path.
[I-D.ietf-lsr-flex-algo] defines the Flexible Algorithm solution that [I-D.ietf-lsr-flex-algo] defines the Flexible Algorithm solution that
skipping to change at page 3, line 23 skipping to change at page 3, line 25
o the set of constraints to be used (e.g. inclusion or exclusion of o the set of constraints to be used (e.g. inclusion or exclusion of
certain links using affinities) certain links using affinities)
The operations of the flexible algorithm solution is described in The operations of the flexible algorithm solution is described in
detail in [I-D.ietf-lsr-flex-algo] and a high level summary of the detail in [I-D.ietf-lsr-flex-algo] and a high level summary of the
same is described here for clarity. The network operator enables the same is described here for clarity. The network operator enables the
participation of specific nodes in the network for a specific participation of specific nodes in the network for a specific
algorithm and then provisions the definition of that flexible algorithm and then provisions the definition of that flexible
algorithm on one or more of these nodes. The nodes where the algorithm on one or more of these nodes. The nodes where the
flexible algorithm definition is advertised then flood these flexible algorithm definition (FAD) is advertised then flood these
definitions via respective IGP (IS-IS and OSPFv2/v3) mechanisms to definitions via respective IGP (IS-IS and OSPFv2/v3) mechanisms to
all other nodes in the network. The nodes select the definition for all other nodes in the network. The nodes select the definition for
each algorithm based on the flooded information in a deterministic each algorithm based on the flooded information in a deterministic
manner and thus all nodes participating in a flexible algorithm manner and thus all nodes participating in a flexible algorithm
computation arrive at a common understanding of the type of computation arrive at a common understanding of the type of
calculation that they need to use. calculation that they need to use.
When using Segment Routing (SR) [RFC8402] forwarding plane, the When using Segment Routing (SR) [RFC8402] MPLS forwarding plane
result of a flex algorithm computation is the provisioning of the [I-D.ietf-spring-segment-routing-mpls], the result of a flex
Prefix SIDs associated with that algorithm with paths based on the algorithm computation is the provisioning of the Prefix SIDs
topology computed based on that algorithm. This flex algorithm associated with that algorithm with paths based on the topology
computation is within an IGP area or level similar to the default computed based on that algorithm. When using SR forwarding plane on
shortest path tree (SPT) algorithm. 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.
The BGP-LS extensions for SR are defined in The BGP-LS extensions for SR are defined in
[I-D.ietf-idr-bgp-ls-segment-routing-ext] and includes the [I-D.ietf-idr-bgp-ls-segment-routing-ext] and
[I-D.ietf-idr-bgpls-srv6-ext]. They include the
o SR Algorithm TLV to indicate the participation of a node in a flex o SR Algorithm TLV to indicate the participation of a node in a flex
algorithm computation algorithm computation
o Prefix SID TLV to indicate the association of the Prefix-SIDs to a o Prefix SID TLV to indicate the association of the Prefix-SIDs to a
specific flex algorithm specific flex algorithm for SR-MPLS forwarding
o SRv6 Locator TLV to indicate the Locator for specific flex
algorithm for SRv6 forwarding
Thus a controller or a Path Computation Engine (PCE) is aware of the Thus a controller or a Path Computation Engine (PCE) is aware of the
IGP topology across multiple domains which includes the above IGP topology across multiple domains which includes the above
information related to the flexible algorithm. This draft defines information related to the flexible algorithm. This draft defines
extensions to BGP-LS for carrying the Flexible Algorithm Definition extensions to BGP-LS for carrying the Flexible Algorithm Definition
information so that it enables the controller/PCE to learn the information so that it enables the controller/PCE to learn the
mapping of the flex algorithm number to its definition in each area/ mapping of the flex algorithm number to its definition in each area/
domain of the underlying IGP. The controller/PCE also learns the domain of the underlying IGP. The controller/PCE also learns the
type of computation used and the constraints for the same. This type of computation used and the constraints for the same. This
information can then be leveraged by it for setting up SR Policy information can then be leveraged by it for setting up SR Policy
paths end to end across domains by leveraging the appropriate Flex paths end to end across domains by leveraging the appropriate Flex
Algorithm specific Prefix SIDs in its Segment List Algorithm specific SIDs in the in its Segment List
[I-D.ietf-spring-segment-routing-policy]. e.g. picking the Flex [I-D.ietf-spring-segment-routing-policy]. e.g. picking the Flex
Algorithm Prefix SID or ABRs/ASBRs corresponding to a definition that Algorithm Prefix SID (in case of SR-MPLS) or End SID (in case of
optimizes on the delay metric enables the PCE/controller to build an SRv6) of ABRs/ASBRs corresponding to a definition that optimizes on
end to end low latency path across IGP domains with minimal Prefix- the delay metric enables the PCE/controller to build an end to end
SIDs in the SID list. low latency path across IGP domains with minimal SIDs in the SID
list.
2. BGP-LS Extensions for Flex Algo Definition 2. BGP-LS Extensions for Flex Algo
The BGP-LS [RFC7752] specifies the Node NLRI for advertisement of The BGP-LS [RFC7752] specifies the Node NLRI for advertisement of
nodes and their attributes using the BGP-LS Attribute. The Flexible nodes along with their attributes using the BGP-LS Attribute and the
Algorithm Definition (FAD) advertised by a node are considered as its Prefix NLRI for advertisement of prefixes along with their attributes
node level attributes and advertised as such. 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.
This document defines a new BGP-LS Attribute TLV called the Flexible 3. Flexible Algorithm Definition
Algorithm Definition (FAD) TLV and its format is as follows:
This document defines a new optional BGP-LS Attribute TLV associated
with the Node NLRI called the Flexible Algorithm Definition (FAD) TLV
and its format is as follows:
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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Flex-Algorithm | Metric-Type | Calc-Type | Priority | |Flex-Algorithm | Metric-Type | Calc-Type | Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-TLVs ... // | sub-TLVs ... //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Flex Algorithm Definition TLV Figure 1: Flex Algorithm Definition TLV
where: where:
o Type: TBD (see IANA Considerations Section 3) o Type: TBD (see IANA Considerations Section 5)
o Length: variable. Minimum of 8 octets. o Length: variable. Minimum of 4 octets.
o Flex-Algorithm : 1 octet value in the range between 128 and 255 o Flex-Algorithm : 1 octet value in the range between 128 and 255
inclusive which is the range defined for Flexible Algorithms in inclusive which is the range defined for Flexible Algorithms in
the IANA "IGP Parameters" registries under the "IGP Algorithm the IANA "IGP Parameters" registries under the "IGP Algorithm
Types" registry [I-D.ietf-lsr-flex-algo]. Types" registry [I-D.ietf-lsr-flex-algo].
o Metric-Type : 1 octet value indicating the type of the metric used o Metric-Type : 1 octet value indicating the type of the metric used
in the computation. Values allowed come from the IANA "IGP in the computation. Values allowed come from the IANA "IGP
Parameters" registries under the "Flexible Algorithm Definition Parameters" registries under the "Flexible Algorithm Definition
Metric-Type" registry [I-D.ietf-lsr-flex-algo]. Metric-Type" registry [I-D.ietf-lsr-flex-algo].
skipping to change at page 5, line 29 skipping to change at page 6, line 8
NLRI if the corresponding node originates the underlying IGP TLV/sub- NLRI if the corresponding node originates the underlying IGP TLV/sub-
TLV as described below. This information is derived from the TLV as described below. This information is derived from the
protocol specific advertisements as below.. protocol specific advertisements as below..
o IS-IS, as defined by the ISIS Flexible Algorithm Definition sub- o IS-IS, as defined by the ISIS Flexible Algorithm Definition sub-
TLV in [I-D.ietf-lsr-flex-algo]. TLV in [I-D.ietf-lsr-flex-algo].
o OSPFv2/OSPFv3, as defined by the OSPF Flexible Algorithm o OSPFv2/OSPFv3, as defined by the OSPF Flexible Algorithm
Definition TLV in [I-D.ietf-lsr-flex-algo]. Definition TLV in [I-D.ietf-lsr-flex-algo].
The BGP-LS Attribute associated with a Node NLRI MAY include one or
more FAD TLVs corresponding to the Flexibile Algorithm Definition for
each algorithm that the particular node is advertising.
The following sub-sections define the sub-TLVs for the FAD TLV. The following sub-sections define the sub-TLVs for the FAD TLV.
2.1. Flex Algo Exclude Any Affinity 3.1. Flex Algo Exclude Any Affinity
The Flex Algo Exclude Any Affinity sub-TLV is an optional sub-TLV The Flex Algo Exclude Any Affinity sub-TLV is an optional sub-TLV
that is used to carry the affinity constraints [RFC2702] associated that is used to carry the affinity constraints [RFC2702] associated
with the flex algo definition and enable the exclusion of links with the flex algo definition and enable the exclusion of links
carrying any of the specified affinities from the computation of the carrying any of the specified affinities from the computation of the
specific algorithm as described in [I-D.ietf-lsr-flex-algo]. The specific algorithm as described in [I-D.ietf-lsr-flex-algo]. The
affinity is expressed in terms of Extended Admin Group (EAG) as affinity is expressed in terms of Extended Admin Group (EAG) as
defined in [RFC7308]. defined in [RFC7308].
The TLV has the following format: The TLV has the following format:
skipping to change at page 6, line 5 skipping to change at page 6, line 36
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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Exclude-Any EAG (variable) // | Exclude-Any EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: TBD (see IANA Considerations Section 3) o Type: TBD (see IANA Considerations Section 5)
o Length: variable, dependent on the size of the Extended Admin o Length: variable, dependent on the size of the Extended Admin
Group. MUST be a multiple of 4 octets. Group. MUST be a multiple of 4 octets.
o Exclude-Any EAG : the bitmask used to represent the affinities to o Exclude-Any EAG : the bitmask used to represent the affinities to
be excluded. be excluded.
The information in the Flex Algo Exclude Any Affinity sub-TLV is The information in the Flex Algo Exclude Any Affinity sub-TLV is
derived from the IS-IS and OSPF protocol specific Flexible Algorithm 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]. Exclude Admin Group sub-TLV as defined in [I-D.ietf-lsr-flex-algo].
2.2. Flex Algo Include Any Affinity 3.2. Flex Algo Include Any Affinity
The Flex Algo Incude Any Affinity sub-TLV is an optional sub-TLV that The Flex Algo Incude Any Affinity sub-TLV is an optional sub-TLV that
is used to carry the affinity constraints [RFC2702] associated with is used to carry the affinity constraints [RFC2702] associated with
the flex algo definition and enable the inclusion of links carrying the flex algo definition and enable the inclusion of links carrying
any of the specified affinities in the computation of the specific any of the specified affinities in the computation of the specific
algorithm as described in [I-D.ietf-lsr-flex-algo]. The affinity is algorithm as described in [I-D.ietf-lsr-flex-algo]. The affinity is
expressed in terms of Extended Admin Group (EAG) as defined in expressed in terms of Extended Admin Group (EAG) as defined in
[RFC7308]. [RFC7308].
The TLV has the following format: The TLV has the following format:
skipping to change at page 6, line 39 skipping to change at page 7, line 21
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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-Any EAG (variable) // | Include-Any EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: TBD (see IANA Considerations Section 3) o Type: TBD (see IANA Considerations Section 5)
o Length: variable, dependent on the size of the Extended Admin o Length: variable, dependent on the size of the Extended Admin
Group. MUST be a multiple of 4 octets. Group. MUST be a multiple of 4 octets.
o Include-Any EAG : the bitmask used to represent the affinities to o Include-Any EAG : the bitmask used to represent the affinities to
be included. be included.
The information in the Flex Algo Include Any Affinity sub-TLV is The information in the Flex Algo Include Any Affinity sub-TLV is
derived from the IS-IS and OSPF protocol specific Flexible Algorithm derived from the IS-IS and OSPF protocol specific Flexible Algorithm
Include-Any Admin Group sub-TLV as defined in Include-Any Admin Group sub-TLV as defined in
[I-D.ietf-lsr-flex-algo]. [I-D.ietf-lsr-flex-algo].
2.3. Flex Algo Include All Affinity 3.3. Flex Algo Include All Affinity
The Flex Algo Incude All Affinity sub-TLV is an optional sub-TLV that The Flex Algo Incude All Affinity sub-TLV is an optional sub-TLV that
is used to carry the affinity constraints [RFC2702] associated with is used to carry the affinity constraints [RFC2702] associated with
the flex algo definition and enable the inclusion of links carrying the flex algo definition and enable the inclusion of links carrying
all of the specified affinities in the computation of the specific all of the specified affinities in the computation of the specific
algorithm as described in [I-D.ietf-lsr-flex-algo]. The affinity is algorithm as described in [I-D.ietf-lsr-flex-algo]. The affinity is
expressed in terms of Extended Admin Group (EAG) as defined in expressed in terms of Extended Admin Group (EAG) as defined in
[RFC7308]. [RFC7308].
The TLV has the following format: The TLV has the following format:
skipping to change at page 7, line 27 skipping to change at page 8, line 15
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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Include-All EAG (variable) // | Include-All EAG (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: TBD (see IANA Considerations Section 3) o Type: TBD (see IANA Considerations Section 5)
o Length: variable, dependent on the size of the Extended Admin o Length: variable, dependent on the size of the Extended Admin
Group. MUST be a multiple of 4 octets. Group. MUST be a multiple of 4 octets.
o Include-All EAG : the bitmask used to represent the affinities to o Include-All EAG : the bitmask used to represent the affinities to
be included. be included.
The information in the Flex Algo Include All Affinity sub-TLV is The information in the Flex Algo Include All Affinity sub-TLV is
derived from the IS-IS and OSPF protocol specific Flexible Algorithm derived from the IS-IS and OSPF protocol specific Flexible Algorithm
Include-All Admin Group sub-TLV as defined in Include-All Admin Group sub-TLV as defined in
[I-D.ietf-lsr-flex-algo]. [I-D.ietf-lsr-flex-algo].
3. IANA Considerations 3.4. Flex Algo Definition Flags
The Flex Algo Definition Flags sub-TLV is an optional sub-TLV that is
used to carry the flags associated with the flex algo definition that
are used in the computation of the specific algorithm as described in
[I-D.ietf-lsr-flex-algo].
The 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 (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: TBD (see IANA Considerations Section 5)
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
Definition Flags sub-TLV as defined in [I-D.ietf-lsr-flex-algo].
4. Flex Algorithm Prefix Metric
This document defines a new optional BGP-LS Attribute TLV associated
with the Prefix NLRI called the Flexible Algorithm Prefix Metric
(FAPM) TLV and its format is as follows:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Flex-Algorithm | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: TBD (see IANA Considerations Section 5)
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.
o Metric : 4 octets field to carry the metric information.
The FAPM TLV can be added to the BGP-LS Attribute of the Prefix NLRI
orginated by a node, only if the corresponding node originates the
Prefix in along with the underlying IGP TLV/sub-TLV as described
below. This information is derived from the protocol specific
advertisements as below.
o IS-IS, as defined by the ISIS Flexible Algorithm Prefix Metric
sub-TLV in [I-D.ietf-lsr-flex-algo].
o OSPFv2/OSPFv3, as defined by the OSPF Flexible Algorithm Prefix
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- This document requests assigning code-points from the registry "BGP-
LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute
TLVs" based on table below. The column "IS-IS TLV/Sub-TLV" defined 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. in the registry does not require any value and should be left empty.
+------------+----------------------------------------+----------+ +------------+----------------------------------------+----------+
| Code Point | Description | Length | | Code Point | Description | Length |
+------------+----------------------------------------+----------+ +------------+----------------------------------------+----------+
| TBD | Flex Algorithm Definition TLV | variable | | TBD | Flex Algorithm Definition TLV | variable |
| TBD | Flex Algo Exclude Any Affinity sub-TLV | variable | | TBD | Flex Algo Exclude Any Affinity sub-TLV | variable |
| TBD | Flex Algo Include 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 Include All Affinity sub-TLV | variable |
| TBD | Flex Algo Definition Flags sub-TLV | variable |
| TBD | Flex Algorithm Prefix Metric TLV | variable |
+------------+----------------------------------------+----------+ +------------+----------------------------------------+----------+
4. Manageability Considerations 6. Manageability Considerations
This section is structured as recommended in [RFC5706]. This section is structured as recommended in [RFC5706].
The new protocol extensions introduced in this document augment the The new protocol extensions introduced in this document augment the
existing IGP topology information that was distributed via [RFC7752]. existing IGP topology information that was distributed via [RFC7752].
Procedures and protocol extensions defined in this document do not Procedures and protocol extensions defined in this document do not
affect the BGP protocol operations and management other than as affect the BGP protocol operations and management other than as
discussed in the Manageability Considerations section of [RFC7752]. discussed in the Manageability Considerations section of [RFC7752].
Specifically, the malformed NLRIs attribute tests in the Fault Specifically, the malformed NLRIs attribute tests in the Fault
Management section of [RFC7752] now encompass the new TLVs for the Management section of [RFC7752] now encompass the new TLVs for the
BGP-LS NLRI in this document. BGP-LS NLRI in this document.
4.1. Operational Considerations 6.1. Operational Considerations
No additional operation considerations are defined in this document. No additional operation considerations are defined in this document.
4.2. Management Considerations 6.2. Management Considerations
No additional management considerations are defined in this document. No additional management considerations are defined in this document.
5. Security Considerations 7. Security Considerations
The new protocol extensions introduced in this document augment the The new protocol extensions introduced in this document augment the
existing IGP topology information that was distributed via [RFC7752]. existing IGP topology information that was distributed via [RFC7752].
Procedures and protocol extensions defined in this document do not Procedures and protocol extensions defined in this document do not
affect the BGP security model other than as discussed in the Security affect the BGP security model other than as discussed in the Security
Considerations section of [RFC7752]. Considerations section of [RFC7752].
6. Acknowledgements 8. Acknowledgements
The authors would like to thank Les Ginsberg for his reviews and The authors would like to thank Les Ginsberg for his reviews and
contributions to this work. contributions to this work.
7. References 9. References
7.1. Normative References 9.1. 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-02 (work in progress), May 2019. 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.
[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.
[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>.
[RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and
S. Ray, "North-Bound Distribution of Link-State and S. Ray, "North-Bound Distribution of Link-State and
Traffic Engineering (TE) Information Using BGP", RFC 7752, Traffic Engineering (TE) Information Using BGP", RFC 7752,
DOI 10.17487/RFC7752, March 2016, DOI 10.17487/RFC7752, March 2016,
<https://www.rfc-editor.org/info/rfc7752>. <https://www.rfc-editor.org/info/rfc7752>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
7.2. Informative References 9.2. Informative References
[I-D.ietf-idr-bgp-ls-segment-routing-ext] [I-D.ietf-idr-bgp-ls-segment-routing-ext]
Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H.,
and M. Chen, "BGP Link-State extensions for Segment and M. Chen, "BGP Link-State extensions for Segment
Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-15 Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-16
(work in progress), May 2019. (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] [I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d.,
bogdanov@google.com, b., and P. Mattes, "Segment Routing bogdanov@google.com, b., and P. Mattes, "Segment Routing
Policy Architecture", draft-ietf-spring-segment-routing- Policy Architecture", draft-ietf-spring-segment-routing-
policy-03 (work in progress), May 2019. policy-03 (work in progress), May 2019.
[RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J.
McManus, "Requirements for Traffic Engineering Over MPLS", McManus, "Requirements for Traffic Engineering Over MPLS",
RFC 2702, DOI 10.17487/RFC2702, September 1999, RFC 2702, DOI 10.17487/RFC2702, September 1999,
 End of changes. 35 change blocks. 
58 lines changed or deleted 186 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/