Internet-Draft BGP-LS extensions for IP Flexible Algori March 2023
Hegde, et al. Expires 14 September 2023 [Page]
Workgroup:
SPRING
Internet-Draft:
draft-hegde-idr-bgpls-ip-flex-algo-bw-con-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
S. Hegde
Juniper Networks Inc.
P. Psenak
Cisco Systems
B. Decraene
Orange

BGP-LS extensions for IP Flexible Algorithms and Bandwidth, Delay, Metrics and Constraints

Abstract

Flexible Algorithm is a mechanism that allows Link state 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 distributed manner using a Flexible Algorithm definition. This definition provisioned on one or more routers and propagated (viz. OSPF and IS- IS flooding) through the network. IP Flex-algo enables these constraint based paths to be built in a network which is purely IP and does not support MPLS or SRv6 forwarding plane. 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 bandwidth, delay and metric related constraints in Flexible algorithm definition. It also defines BGP-LS extensions required to advertise IP flexible algorithm related extensions in BGP-LS.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

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 14 September 2023.

Table of Contents

1. Introduction

Flexible Algorithm [RFC9350] is defined as a set of parameters consisting of calculation-type, metric-type and a set of constraints for allowing operators to have more control over the network path computation. [I-D.ietf-lsr-flex-algo-bw-con] defines further extensions to Flexible Algorithm that will allow operators additional control over their traffic flow, especially with respect to constraints about metric, delay and bandwidth.

[I-D.ietf-lsr-ip-flexalgo] enables constraint based paths to be built in a network which is purely IP and does not support MPLS or SRv6 forwarding plane.

This document defines BGP-LS related extensions to carry the information specific to Flexible Algorithms delay and bandwidth constraints as well as extensions related to IP Flexible-Algorithms.

2. Generic Metric Advertisement in BGP-LS

Generic Metric as defined in [I-D.ietf-lsr-flex-algo-bw-con] is advertised as a Link attribute [RFC7752]. The Generic Metric may be either sourced from ISIS, OSPFv2 or OSPFv3. When the Generic Metric is sourced from below TLVs in ISIS

OR

is sourced from below TLVs in OSPF

It is advertised as link attribute TLV.

When the Generic Metric is sourced from below TLV in ISIS and OSPF

It is advertised as a sub-TLV of Application Specific Link Attributes TLV [I-D.ietf-idr-bgp-ls-app-specific-attr]

2.1. BGP-LS Generic Metric TLV

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | metric-type   |         Reserved                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Value                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type  :   TBD (To be assigned by IANA)
      Length: 8 octets
      metric-type = A value from the IGP metric type registry

      Value : metric value (0- 4,294,967,295)


Figure 1: BGP-LS Generic Metric TLV

3. BGP-LS FAD constraint sub-TLVs

The sub-TLVs described in this section are advertised as the sub-TLV of the Flexible Algorithm Definition TLV [RFC9351].

These sub-TLVs are either sourced from ISIS, OSPF or OSPFv3 as described in [I-D.ietf-lsr-flex-algo-bw-con]

3.1. Flexible Algorithm Exclude Minimum Bandwidth

    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                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Min Bandwidth                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   where:

      Type: TBD

      Length:  4 octets.

      Min Bandwidth:  link bandwidth is encoded in 32 bits in IEEE
   floating point format.  The units are bytes per second.
Figure 2: BGP-LS FAEMB sub-TLV

3.2. Flexible Algorithm Exclude Maximum Delay

    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                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Max Delay               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   where:

      Type: TBD

      Length:  3 octets

      Max link delay:  Maximum link delay in microseconds
Figure 3: BGP-LS FAEMD sub-TLV

3.3. Flexible Algorithm Reference Bandwidth


    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   |     Reserved                                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Reference Bandwidth                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Granularity Bandwidth                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   where:

      Type: TBD

      Length: 14 octets.
      Reference Bandwidth: Bandwidth encoded in 32 bits in
                           IEEE floating point format.
                           The units are in bytes per second.
      Granularity Bandwidth: Bandwidth encoded in 32 bits in
                            IEEE floating point format.
                            The units are in bytes per second.

   Flags:

                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G| | |         |
                +-+-+-+-+-+-+-+-+

         G-flag: when set, interface group Mode MUST be used
                 to derive total link bandwidth.

         Metric calculation: (Reference_bandwidth) /
                              (Total_link_bandwidth -
                              (Modulus of
                                 (Total_link_bandwidth, Granularity_bw)))


Figure 4: BGP-LS FADRB sub-TLV

3.4. Flexible Algorithm Bandwidth Threshold


    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   | Reserved                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Bandwidth Threshold 1                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 1                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Bandwidth Threshold 2                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric 2                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Bandwidth Threshold 3                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                  .....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric n-1                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Bandwidth Threshold n                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Threshold Metric n                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   where:

      Type: TBD

      Length: 2 + n*8 octets. Here n is equal to number of
      Threshold Metrics specified.
              n MUST be greater than or equal to 1.



      Flags:

                 0 1 2 3 4 5 6 7
                +-+-+-+-+-+-+-+-+
                |G| | |         |
                +-+-+-+-+-+-+-+-+

         G-flag: when set, interface group Mode MUST be used to
                 derive total link bandwidth.

         Staircase bandwidth threshold and associated metric values.
         Bandwidth Threshold 1: Minimum Link Bandwidth is
                                encoded in 32 bits in IEEE
                                floating point format.
                                The units are bytes per second.
         Bandwidth Threshold 2: Maximum Link Bandwidth is encoded in
                                32 bits in IEEE floating point format.
                                The units are bytes per second.
         Threshold Metric 1 : metric value range (1 - 4,294,967,296)

Figure 5: OSPF FADBT sub-TLV

4. BGP-LS IP Algorithm TLV

BGP-LS IP algorithm TLV is a node Attribute TLV and is encoded along with the Node NLRI. The TLV may be sourced from ISIS and/or OSPF as defined in section 5.1 and 5.2 of [I-D.ietf-lsr-ip-flexalgo] .


       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            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Algorithm 1 | Algorithm...  |   Algorithm n |               |
      +-                                                             -+
      |                                                               |
      +                                                               +


   *  Type: IP Algorithm TLV (Value TBD by IANA)

   *  Length: Variable

   *  Algorithm (1 octet): Value from 128 to 255.

Figure 6: BGP-LS IP Algorithm TLV

5. BGP-LS IP Algorithm Prefix Reachability TLV

The IP algorithm Prefix Reachability TLV is advertised as a Prefix Attribute and may be associated with an IPv4 or an IPv6 Prefix. This TLV MUST appear only once in a Prefix NLRI. If the IP algorithm Prefix Reachability TLV is present, Prefix Metric TLV MUST NOT be added. IP algorithm Prefix Reachability TLV is present, IGP Flags TLV carries the flags for IP algorithm Prefix Reachability TLV.


           0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              Type             |             Length            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Algorithm|  Reserved     |         Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Metric                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type (2 octets) : The value is TBD.

   *  Length (2 octet): 8

   *  Algorithm (1 octet): Associated Algorithm from 128 to 255.

   *  Reserved: (3 octets).  SHOULD be set to 0 on transmission and MUST
      be ignored on reception.

   *  Metric (4 octets): The algorithm specific metric value.  The
      metric value of 0XFFFFFFFF MUST be considered as unreachable.

   *  Flags (1 octet): None defined



Figure 7: BGP-LS IP Algorithm Prefix Reachability TLV

6. Backward Compatibility

7. Security Considerations

TBD

8. IANA Considerations

8.1. BGP-LS NLRI and Attribute TLVs

BGP-LS NLRI and Attribute TLV registry is updated to include newly defined Node, link and prefix attriute TLVs.

        +-----------+---------------------+------------------------------+
   |  TLV Code  | Description         |    Reference                 |
   |   Point    |                     |    (RFC/Section)             |
   +------------+---------------------+------------------------------+
   |    TBD1    | IP Algorithm TLV    | draft-ietf-lsr-ip-flexalgo   |
   |            |                     |    Section 5.1/5.2           |
   |    TBD2    | IPv4 Algorithm      |draft-ietf-lsr-ip-flexalgo    |
   |            | Prefix Reachability |  section 6.1 to 6.4          |
   |            | TLV                 |                              |
   |    TBD3    | Generic Metric TLV  |draft-ietf-lsr-flex-algo-bw-con
   |            |                     | Section 2.1 and 2.2          |
   |    TBD4    |Flexible Algorithm   |draft-ietf-lsr-flex-algo-bw-con
   |            |Exclude Minimum      |Section 3.1.1 and 3.2.1       |
   |            |Bandwidth            |                              |
   |   TBD5     |Flexible Algorithm   |draft-ietf-lsr-flex-algo-bw-con
   |            |Exclude Maximum      |Section 3.1.2 and 3.2.2       |
   |            |Delay                |                              |
   |   TBD6     |Flexible Algorithm   |draft-ietf-lsr-flex-algo-bw-con
   |            |Reference Bandwidth  |Section 4.1.3.1 and 4.1.4.1   |
   |   TBD7     |Flexible Algorithm   |draft-ietf-lsr-flex-algo-bw-con
   |            | Bandwidth Threshold |Section 4.1.3.2 and 4.1.4.2   |
   +------------+---------------------+------------------------------+
Figure 8: IANA BGP-LS NLRI and Attribute TLVs

9. Acknowledgements

10. References

10.1. Normative References

[I-D.ietf-idr-bgp-ls-app-specific-attr]
Talaulikar, K., Psenak, P., and J. Tantsura, "Application-Specific Link Attributes Advertisement Using the Border Gateway Protocol - Link State (BGP-LS)", Work in Progress, Internet-Draft, draft-ietf-idr-bgp-ls-app-specific-attr-16, , <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-ls-app-specific-attr-16>.
[I-D.ietf-lsr-flex-algo-bw-con]
Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak, P., and T. Li, "Flexible Algorithms: Bandwidth, Delay, Metrics and Constraints", Work in Progress, Internet-Draft, draft-ietf-lsr-flex-algo-bw-con-06, , <https://datatracker.ietf.org/doc/html/draft-ietf-lsr-flex-algo-bw-con-06>.
[I-D.ietf-lsr-ip-flexalgo]
Britto, W., Hegde, S., Kaneriya, P., Shetty, R., Bonica, R., and P. Psenak, "IGP Flexible Algorithms (Flex-Algorithm) In IP Networks", Work in Progress, Internet-Draft, draft-ietf-lsr-ip-flexalgo-08, , <https://datatracker.ietf.org/doc/html/draft-ietf-lsr-ip-flexalgo-08>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3630]
Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering (TE) Extensions to OSPF Version 2", RFC 3630, DOI 10.17487/RFC3630, , <https://www.rfc-editor.org/info/rfc3630>.
[RFC5305]
Li, T. and H. Smit, "IS-IS Extensions for Traffic Engineering", RFC 5305, DOI 10.17487/RFC5305, , <https://www.rfc-editor.org/info/rfc5305>.
[RFC7684]
Psenak, P., Gredler, H., Shakir, R., Henderickx, W., Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute Advertisement", RFC 7684, DOI 10.17487/RFC7684, , <https://www.rfc-editor.org/info/rfc7684>.
[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, , <https://www.rfc-editor.org/info/rfc7752>.
[RFC8362]
Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and F. Baker, "OSPFv3 Link State Advertisement (LSA) Extensibility", RFC 8362, DOI 10.17487/RFC8362, , <https://www.rfc-editor.org/info/rfc8362>.
[RFC8919]
Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and J. Drake, "IS-IS Application-Specific Link Attributes", RFC 8919, DOI 10.17487/RFC8919, , <https://www.rfc-editor.org/info/rfc8919>.
[RFC8920]
Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, J., and J. Drake, "OSPF Application-Specific Link Attributes", RFC 8920, DOI 10.17487/RFC8920, , <https://www.rfc-editor.org/info/rfc8920>.
[RFC9350]
Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", RFC 9350, DOI 10.17487/RFC9350, , <https://www.rfc-editor.org/info/rfc9350>.
[RFC9351]
Talaulikar, K., Ed., Psenak, P., Zandi, S., and G. Dawra, "Border Gateway Protocol - Link State (BGP-LS) Extensions for Flexible Algorithm Advertisement", RFC 9351, DOI 10.17487/RFC9351, , <https://www.rfc-editor.org/info/rfc9351>.

10.2. Informative References

[RFC5120]
Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/RFC5120, , <https://www.rfc-editor.org/info/rfc5120>.
[RFC5311]
McPherson, D., Ed., Ginsberg, L., Previdi, S., and M. Shand, "Simplified Extension of Link State PDU (LSP) Space for IS-IS", RFC 5311, DOI 10.17487/RFC5311, , <https://www.rfc-editor.org/info/rfc5311>.
[RFC5316]
Chen, M., Zhang, R., and X. Duan, "ISIS Extensions in Support of Inter-Autonomous System (AS) MPLS and GMPLS Traffic Engineering", RFC 5316, DOI 10.17487/RFC5316, , <https://www.rfc-editor.org/info/rfc5316>.
[RFC7471]
Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. Previdi, "OSPF Traffic Engineering (TE) Metric Extensions", RFC 7471, DOI 10.17487/RFC7471, , <https://www.rfc-editor.org/info/rfc7471>.
[RFC8570]
Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, , <https://www.rfc-editor.org/info/rfc8570>.

Authors' Addresses

Shraddha Hegde
Juniper Networks Inc.
Exora Business Park
Bangalore 560103
KA
India
Peter Psenak
Cisco Systems
Bruno Decraene
Orange