Network Working Group                                             B. Liu
Internet-Draft                                              J. Dang, Ed.
Intended status: Standards Track                                  Huawei
Expires: August 26, 2021                               February 22, 2021


            A Queuing Mechanism with Multiple Cyclic Buffers
           draft-dang-queuing-with-multiple-cyclic-buffers-00

Abstract

   This document presents a queuing mechanism with multiple cyclic
   buffers.

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 August 26, 2021.

Copyright Notice

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






Liu & Dang               Expires August 26, 2021                [Page 1]


Internet-Draft                                             February 2021


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   2
   3.  Terminology & Abbreviations . . . . . . . . . . . . . . . . .   2
   4.  Problem Statement . . . . . . . . . . . . . . . . . . . . . .   2
   5.  Queuing with Multiple Cyclic Buffers  . . . . . . . . . . . .   3
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   5
   9.  Normative References  . . . . . . . . . . . . . . . . . . . .   5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   Network forwarding with bounded latency and zero congestion loss is
   important for various industrial applications.  The DetNet working
   group draft "DetNet Bounded
   Latency"[draft-ietf-detnet-bounded-latency] describes requirements
   for queuing mechanisms.  Among the referenced queuing mechanisms,
   Cyclic Queuing and Forwarding (CQF) requires no per-flow dynamic
   state at core nodes, which is scalable when the number of flows
   grows.  To cope with long link delay, more than two cyclic buffers
   can be used.

   This document discusses the details of the cyclic queuing mechanisms.
   We propose a queuing model and mechanism with multiple cyclic
   buffers, which can improve bandwidth utilization without sacrificing
   latency and jitter.

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

3.  Terminology & Abbreviations

   CQF: Cyclic Queuing and Forwarding

   T_c: the length of a cycle

4.  Problem Statement

   IEEE 802.1Q[IEEE8021TSN] defines CQF.  As described in "DetNet
   Bounded Latency"[draft-ietf-detnet-bounded-latency], CQF with two
   synchronized buffers works as follows.  All nodes keep a same cycle
   starting time.  In a cycle x, Node A sends all packets in a buffer to



Liu & Dang               Expires August 26, 2021                [Page 2]


Internet-Draft                                             February 2021


   Node B.  In the same cycle x, Node B uses a buffer to accumulate all
   packets from A, and at the same time sends out the packets that have
   already been buffered in cycle x-1.  In the next cycle x+1, Node B
   sends out all the packets that are received from Node A in cycle x.
   If a packet traverses h hops, the maximum latency is (h+1)T_c, and
   the minimum latency is (h-1)T_c.  The jitter (latency variation)
   bound is 2T_c.

                            |  cycle x  | cycle x+1 |
                     Node A +-----------+-----------+
                               \
                                \packet
                                 \receiving
                                  \
                            |      V    | cycle x+1 |
                     Node B +-----------+-----------+
                               cycle x      \packets
                                             \sending
                                              \
                                               \
                                                V

   Figure-1: CQF with two synchronized buffers

   The major disadvantages of CQF with two synchronized buffers are as
   follows.  First, packets are sent and received in a same cycle by
   upstream and downstream nodes, respectively.  So the link propagation
   delay must be smaller than the T_c.  This prohibits the method from
   being used with long links, such as in WAN and MAN scenarios.
   Otherwise T_c must be larger than the link delay, resulting in high
   latency, jitter and buffer upper bound.  Second, when the method is
   applicable, the sum of link delay, output delay, preemption delay and
   processing delay takes a portion of T_c, called dead time in
   [draft-ietf-detnet-bounded-latency], which cannot be used to send
   packets with deterministic services.  This results in the conflict
   between good bandwidth utilization rate and good latency and jitter
   bound.

5.  Queuing with Multiple Cyclic Buffers

   This document proposes a cyclic queuing model that decouples link
   propagation delay with cycle length T_c.  The model is shown in
   Figure-2.








Liu & Dang               Expires August 26, 2021                [Page 3]


Internet-Draft                                             February 2021


               |  cycle x  | cycle x+1 |
        Node A +-----------+-----------+
                           \ `
                   packets  \ `   packets
                   in        \ `  in
                   cycle x    \ ` cycle x+1
                               \ `
                                \ `
                                 \ `
                                  \ `
                                   \ `
                                    \ `
                                     \ `
                                      \ `
                                       \ `
                                        \ `
                                         V v
                     | cycle y-1 |  cycle y  | cycle y+1 | cycle y+2 |
              Node B +-----------+-----------+-----------+-----------+
                                                    \        `
                                                     \        `
                                                      V        v


   Figure-2: Proposed model for cyclic queuing

   In this model, the cycle starting time points of different nodes can
   be either synchronized or not.  However, the "phase difference"
   between neighbor nodes should be stable, and the variation should be
   bounded.

   Since link delay and T_c are decoupled, a small T_c can be used with
   arbitrary link length without sacrificing bandwidth utilization.  Any
   time range in a cycle can be used for deterministic traffic.  In
   Figure-2, the last packet of the deterministic packets sent in cycle
   x by Node A is received by Node B in its local cycle y (all
   variations and jitters are considered).  Node B stores those packets
   in a buffer associated with cycle y, and transmits the packets in
   this buffer in cycle y+1.  The first packet of cycle x+1 may also be
   received by Node B in cycle y.  So two or even more receiving buffers
   are needed simultaneously.

   Since there is variation in link delay and output delay, the last
   packet in cycle x and the first packet in cycle x+1 may be difficult
   to distinguish to Node B, especially when the bandwidth utilization
   is high.  To resolve the ambiguity, a cycle label can be put in a
   packet, which identifies which cycle the packet belongs with.
   Packets in different cycles carry different cycle labels.  So Node B



Liu & Dang               Expires August 26, 2021                [Page 4]


Internet-Draft                                             February 2021


   can unambiguously distinguish the packet's sending cycle and map it
   in a correct local buffer even when the bandwidth is fully utilized.

   There can be multiple ways to map a cycle label in a packet to a
   local cyclic buffer.  For example, an ordered pair of neighboring
   nodes can learn a cycle mapping table.  Node B may receive packets
   from different upstream nodes that carry different cycle labels.
   Node B can use the mapping table to swap the labels to a same local
   cycle label, and put the packets into a same local buffer.  Or, an
   upstream node can swap a local label to a downstream label before
   transmitting the packet.  Another way is to put a label stack in the
   packet, so every hop just pops a label and maps it to a local buffer.
   Further study is required to define how cycle labels are formated and
   processed and how mapping tables are learned.

6.  Security Considerations

   TBD

7.  IANA Considerations

   TBD

8.  Acknowledgements

   TBD

9.  Normative References

   [draft-ietf-detnet-bounded-latency]
              "DetNet Bounded Latency", <https://tools.ietf.org/html/
              draft-ietf-detnet-bounded-latency>.

   [IEEE8021TSN]
              "IEEE 802.1 Time-Sensitive Networking (TSN) Task Group",
              <http://www.ieee802.org/1/>.

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

Authors' Addresses








Liu & Dang               Expires August 26, 2021                [Page 5]


Internet-Draft                                             February 2021


   Bingyang Liu
   Huawei
   No.156 Beiqing Road
   Beijing, P.R. China  100095
   China

   Email: liubingyang@huawei.com


   Joanna Dang (editor)
   Huawei
   No.156 Beiqing Road
   Beijing, P.R. China  100095
   China

   Email: dangjuanna@huawei.com



































Liu & Dang               Expires August 26, 2021                [Page 6]