IDR                                                        L. Zhang, Ed.
Internet-Draft                                                   T. Zhou
Intended status: Standards Track                                 J. Dong
Expires: 25 April 2024                                            Huawei
                                                         23 October 2023


         BGP Flow Specification Extensions for Path Scheduling
               draft-zzd-idr-flowspec-path-scheduling-00

Abstract

   Path scheduling is required in many network scenarios.  For example,
   some links or nodes will be shut down in the tidal network when the
   traffic decreases, which may lead to the expiration of some routing
   paths.

   This document defines a new type of component for BGP Flow
   Specification to identify the packets arrived at different time slot.
   Based on that, the headend can steer packets into different paths at
   different time.

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 25 April 2024.

Copyright Notice

   Copyright (c) 2023 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



Zhang, et al.             Expires 25 April 2024                 [Page 1]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  Motivation  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Scheduling time information in FlowSpec . . . . . . . . . . .   3
     3.1.  Aperiodic Scheduling Time Information . . . . . . . . . .   4
     3.2.  Periodic Scheduling Time Information  . . . . . . . . . .   5
   4.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .   5
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   [RFC8955] and [RFC8956] define the BGP [RFC4271] Flow Specification
   (FlowSpec) that allows conveying flow specifications and traffic
   Action/Rules associated.  BGP Flow specifications are encoded within
   the MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760].  Rules
   (Actions associated) are encoded in Extended Community attribute
   [RFC4360].  The BGP Flow Specification function allows BGP Flow
   Specification routes that carry traffic policies to be transmitted to
   BGP Flow Specification peers to steer traffic.

   [I-D.ietf-idr-ts-flowspec-srv6-policy] describes BGP flow
   specification usage that are used to steer data flow into an SR
   Policy which can steer traffic into a specific path.

   The existing traffic filter rules and actions in FlowSpec are always
   effective and will steer specific traffic into one Policy once been
   delivered to the headend.  However, there are many scenarios that
   need to schedule routing paths in the network.

   [I-D.zzd-tvr-use-case-tidal-network] introduces the tidal network, in
   which the topology of the network will change periodically over time.
   The topology change may cause some of the paths invalid, and lead to
   path reselection or even recalculation.  However, the reselection or
   recalculation takes a period of time, which will affect packet
   forwarding and cause problems such as packet disorder and packet
   loss.  On a network with predictable topology changes, the controller



Zhang, et al.             Expires 25 April 2024                 [Page 2]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


   knows future topology changes, it can deliver several policies for
   different topology to the headend in advance.  Then the headend
   steers traffic to different policies based on time to prevent packet
   forwarding from being affected by topology changes.

   This document defines a new type of component for BGP Flow
   Specification to identify the packets arrived at different time slot.
   Based on that, the headend can steer packets into different paths at
   different time.

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.  Motivation

   [I-D.zzd-tvr-use-case-tidal-network] introduces the time variant
   routing scenario in the tidal network, in which the traffic volume
   varies greatly at different time.  In order to reduce the power
   consumption, some of the links and nodes may be shut down when the
   traffic is at a low level.

   In this scenario, the SR policy originator can generate several
   policies for different topologies.  The headend doesn’t need to wait
   for the advertisement of topology change and just steer traffic in to
   different policies based on the flowSpec with scheduling time
   information, the affection of topology change is minimized.

3.  Scheduling time information in FlowSpec

   [RFC8955] defines 12 Components to identify different traffics.
   Based on [RFC8955], this document defines a new Component to identify
   the arrival time of packets, so as to enable Policies scheduling.

   Encoding: <type (1 octet), length (1 octet), scheduling time
   information (variabile)]+>

   Defines the time information that matches the arrival time of
   packets.  This component matches if either the arrival time of an IP
   packet in the scope of scheduling time information.







Zhang, et al.             Expires 25 April 2024                 [Page 3]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


   The Scheduling time information has two formats according to the
   change regularity of network topology.  They are Aperiodic Scheduling
   Time Information (ASTI) and Periodic Scheduling Time Information
   (PSTI).

3.1.  Aperiodic Scheduling Time Information

   The ASTI indicates one or more group of matching time slot (each
   includes the enable time and disable time) for the packets.  The
   format of ASTI is shown 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      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Enable Time                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Disable Time                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   /                          Variable                             /
   |                                                               |

                          Figure 1: Format of ASTI

   Type: used to identify the type of scheduling time information.  The
   value and corresponding types are shown as follows:

             +=======+=======================================+
             | Value | Type                                  |
             +=======+=======================================+
             | 0x01  | Aperiodic Scheduling Time Information |
             +-------+---------------------------------------+
             | 0x02  | Periodic Scheduling Time Information  |
             +-------+---------------------------------------+

                                  Table 1

   Enable Time: the time in seconds indicates the start time when the
   packets matching.

   Disable Time: the time in seconds indicates the end time when the
   packets matching.

   Variable: one or more groups of time information (A information group
   is composed of Enable Time and Disable time) may be included in one
   ASTI.



Zhang, et al.             Expires 25 April 2024                 [Page 4]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


3.2.  Periodic Scheduling Time Information

   The PSTI indicates one or more group of periodic matching time slot
   (each includes period, enable time and disable time) for the packets.
   The format of PSTI is shown 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      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Period                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Enable Time                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Disable Time                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   /                          Variable                             /
   |                                                               |

                          Figure 2: Format of PSTI

   Type: as defined in clause “Aperiodic Scheduling Time Information”

   Length: the size of the value field in octets.

   Period: the time in seconds between the enable time of one repetition
   and the enable time of the next repetition.

   Enable Time: the time in seconds indicates when the path(s) is(are)
   enabled.

   Disable Time: the time in seconds indicates when the path(s) is(are)
   disabled

   Variable: one or more groups of time information(A information group
   is composed of Period, Enable Time and Disable time) may be included
   in one PSTI.

4.  Procedures

   When the headend device (as a FlowSpec client) receives a instruction
   with scheduling time information from a BGP FlowSpec Controller, it
   will steer the traffic packets matching the time slot and other
   conditions in the Flowspec instruction into a specific Policy.





Zhang, et al.             Expires 25 April 2024                 [Page 5]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


   And the packets will be encapsulated with an SR List <S1, S2, S3> in
   the headend device, then send the packets to the TailEnd device along
   the path indicated by the SR list.

5.  Security Considerations

   These extensions to BGP FlowSpec do not add any new security issues
   to the existing protocol.

6.  IANA Considerations

   This document defines a new Component in the registry " Flow Spec
   Component Types" to be assigned by IANA:

          +=======+=============================+===============+
          | Value | Description                 | Reference     |
          +=======+=============================+===============+
          | TBD1  | Scheduling Time Information | This document |
          +-------+-----------------------------+---------------+

                                  Table 2

7.  References

7.1.  Normative References

   [RFC8955]  Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M.
              Bacher, "Dissemination of Flow Specification Rules",
              RFC 8955, DOI 10.17487/RFC8955, December 2020,
              <https://www.rfc-editor.org/info/rfc8955>.

   [RFC8956]  Loibl, C., Ed., Raszuk, R., Ed., and S. Hares, Ed.,
              "Dissemination of Flow Specification Rules for IPv6",
              RFC 8956, DOI 10.17487/RFC8956, December 2020,
              <https://www.rfc-editor.org/info/rfc8956>.

   [RFC4760]  Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
              "Multiprotocol Extensions for BGP-4", RFC 4760,
              DOI 10.17487/RFC4760, January 2007,
              <https://www.rfc-editor.org/info/rfc4760>.

   [I-D.ietf-idr-ts-flowspec-srv6-policy]
              Wenying, J., Liu, Y., Zhuang, S., Mishra, G. S., and S.
              Chen, "Traffic Steering using BGP FlowSpec with SR
              Policy", Work in Progress, Internet-Draft, draft-ietf-idr-
              ts-flowspec-srv6-policy-03, 16 June 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-idr-ts-
              flowspec-srv6-policy-03>.



Zhang, et al.             Expires 25 April 2024                 [Page 6]

Internet-Draft        BGP FlowSpec Path Scheduling          October 2023


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

7.2.  Informative References

   [RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
              Border Gateway Protocol 4 (BGP-4)", RFC 4271,
              DOI 10.17487/RFC4271, January 2006,
              <https://www.rfc-editor.org/info/rfc4271>.

   [RFC4360]  Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
              Communities Attribute", RFC 4360, DOI 10.17487/RFC4360,
              February 2006, <https://www.rfc-editor.org/info/rfc4360>.

   [I-D.zzd-tvr-use-case-tidal-network]
              Zhang, L., Zhou, T., Dong, J., and N. Nzima, "Use Case of
              Tidal Network", Work in Progress, Internet-Draft, draft-
              zzd-tvr-use-case-tidal-network-02, 28 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-zzd-tvr-use-
              case-tidal-network-02>.

Authors' Addresses

   Li Zhang (editor)
   Huawei
   Beiqing Road
   Beijing
   China
   Email: zhangli344@huawei.com


   Tianran Zhou
   Huawei
   Email: zhoutianran@huawei.com


   Jie Dong
   Huawei
   Email: jie.dong@huawei.com






Zhang, et al.             Expires 25 April 2024                 [Page 7]