Skip to main content

Considerations for common QoS IPv6 extension header(s)
draft-eckert-6man-qos-exthdr-discuss-00

Document Type Active Internet-Draft (individual)
Authors Toerless Eckert , Jinoo Joung , Shaofu Peng , Xuesong Geng
Last updated 2024-03-04
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-eckert-6man-qos-exthdr-discuss-00
6MAN                                                           T. Eckert
Internet-Draft                                Futurewei Technologies USA
Intended status: Informational                                  J. Joung
Expires: 5 September 2024                           Sangmyung University
                                                                 S. Peng
                                                               ZTE Corp.
                                                                 X. Geng
                                                                  Huawei
                                                            4 March 2024

         Considerations for common QoS IPv6 extension header(s)
                draft-eckert-6man-qos-exthdr-discuss-00

Abstract

   This document is written to start a discussion and collect opinions
   and ansers to questions raised in this document on the issue of
   defining IPv6 extension headers for DETNET-WG functionality with
   IPv6.

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 5 September 2024.

Copyright Notice

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

Eckert, et al.          Expires 5 September 2024                [Page 1]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   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.  Process and innovation problem and proposal . . . . . . .   3
     1.2.  Technical Problem (DetNet)  . . . . . . . . . . . . . . .   4
       1.2.1.  Background  . . . . . . . . . . . . . . . . . . . . .   4
       1.2.2.  Gaps and challenges . . . . . . . . . . . . . . . . .   6
   2.  Common header proposal  . . . . . . . . . . . . . . . . . . .   7
   3.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . .   9
     3.1.  Example End-to-End extension header method for DetNet . .  10
       3.1.1.  PREOF . . . . . . . . . . . . . . . . . . . . . . . .  10
       3.1.2.  End-to-end time-stamping  . . . . . . . . . . . . . .  11
     3.2.  Example Hop-by-hop extension header Methods . . . . . . .  12
       3.2.1.  C-SCORE . . . . . . . . . . . . . . . . . . . . . . .  12
       3.2.2.  TCQF  . . . . . . . . . . . . . . . . . . . . . . . .  13
       3.2.3.  TQF . . . . . . . . . . . . . . . . . . . . . . . . .  14
       3.2.4.  Earliest Deadline First (EDF) . . . . . . . . . . . .  14
       3.2.5.  CSQF  . . . . . . . . . . . . . . . . . . . . . . . .  15
       3.2.6.  gLBF Guaranteed Latency Based Forwarding (gLBF) . . .  15
       3.2.7.  Dynamic Packet State (DPS)  . . . . . . . . . . . . .  16
       3.2.8.  Latency Based Forwarding (LBF)  . . . . . . . . . . .  17
   4.  Open questions  . . . . . . . . . . . . . . . . . . . . . . .  19
     4.1.  Functional requirements / limitation  . . . . . . . . . .  19
     4.2.  Combination with IPv6 routing header. . . . . . . . . . .  20
     4.3.  Hop-by-hop or Routing-Header  . . . . . . . . . . . . . .  21
     4.4.  Extending existing router headers or new routing header
           ? . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21
     4.5.  Integrated or split DetNet header . . . . . . . . . . . .  22
   5.  Method and e2eMthd code-point/semantic allocation . . . . . .  22
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  23
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  24
   8.  Logistics . . . . . . . . . . . . . . . . . . . . . . . . . .  24
     8.1.  Changelog . . . . . . . . . . . . . . . . . . . . . . . .  24
   9.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  24
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  24
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  24
     10.2.  Informative References . . . . . . . . . . . . . . . . .  25
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  27

1.  Introduction

Eckert, et al.          Expires 5 September 2024                [Page 2]
Internet-Draft               ipv6-qos-exthdr                  March 2024

1.1.  Process and innovation problem and proposal

   DetNet has or is considering different functionalities which would
   require IPv6 extension headers if they where to be supported with
   IPv6 without the use of an additional hop-by-hop or tunneling
   mechanism.  Due to the absence of such headers, DetNet has so far
   been developing variations of transporting IPv6 over MPLS because in
   MPLS some of this functionality was already defined by DetNet.

   For the problem of hop-by-hop bounded latency guaranteed especially
   for large-scale networks such as Service-Provider or private
   metropolitan aggregation networks, various competing proposals are
   being made and agreement on only one or very few of such proposal
   will be a hard competitive decision and is not supportive of the
   proven IETF model of allowing new technology to be productized and
   let the market decide - and then after sufficient experience discuss
   further standardization on what was successful.

   The main issue to gain experience is the overhead that would exist if
   each of these proposal was to ask for an IPv6 extension header to
   embody it's functionality.  This goes even to a chicken-and-egg
   problem, that 6MAN would very likely not want to spend time on
   multiple extension headers for different proposals that have not yet
   achieved enough adoption experience that they would qualify for
   standards track.

   This problem also extensions to per-hop QoS functionality beyond
   DetNet, such as novel congestion control mechanisms that where
   already presented to IETF and did not progress due to the high
   overhead of getting extension headers, or possible new work, also
   from research (IRTF or other) that does not even dare to attempt work
   on an IPv6 solution due to the process overhead of defining IPv6
   extension headers.

   This document therefore proposes to cut through this chicken-and-egg
   problem by proposing a single, but extensible (set of) IPv6 extension
   header(s) for IPv6 that are built to support multiple different end-
   to-end and hop-by-hop QoS functions.

   The goal would be to ultimately arrive at a 6MAN standards track
   document that defines all the encoding and allocation aspects under
   the purview of 6MAN, so that by using those extension header(s),
   technical groups who are experts on specific functionality can then
   create specifications defining multiple alternative options for QoS
   packet processing that leverage the common header.  These
   specification can range from industry specific with public
   documentation over informational IETF RFCs over to experimental/
   standards track RFC for those methods.

Eckert, et al.          Expires 5 September 2024                [Page 3]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   To rephrase the above in a more packet level explanation: The goal is
   to produce a common packet header that can be thought of as a larger
   variation of the IPv6 header TOS field (which over time evolved into
   ECN and DSCP sub-fields), and allow those different specifications to
   define the encoding and end-to-end and per-hop processing options
   based on subdividing that packet header space into multiple metadata
   fields used in processing.

   Like with ECN and DSCP, the semantic of the processing is not the
   purview of 6MAN anymore, but groups expert in the intended
   processing.

   One of the tasks to define a clear demarcation between the
   responsibility of DetNet is to define in such a common packet header
   specification the permitted limits as to what can be done in
   processing, such as not impacting routing, but only per-hop packet
   scheduling, admission or congestion based or end-to-end resiliency
   functions derived from DetNet's PREOF (described below).  Likewise
   some definition of appropriate type of metadata will be required
   which does not violate privacy but only describes the processing
   required characteristics of the traffic.

   While the core initial driver for this discussion are DetNet QoS
   functions, this work should equally be applicable to non-DetNet QoS
   functions, such as congestion control algorithms in need of more
   metadata than possible via DSCP and ECN.  To this end, two examples
   are included, DPS and LBF.

1.2.  Technical Problem (DetNet)

   DetNet supports today or plan to support through additional work
   functions that require packet header "metadata" elements, and those
   elements are not all supported in IETF standards for existing network
   layers.

1.2.1.  Background

   The following attempts to summarize DetNet functionality as relevant
   to the discussions in this document.

   The DetNet architecture [RFC8655] specifies that "DetNet operates at
   the IP layer and delivers service over lower-layer technologies such
   as MPLS and Time-Sensitive Networking (TSN) as defined by IEEE
   802.1".  DetNet forwarding has two sub-layers, the forwarding sub-
   layer and the service sub-layer.

Eckert, et al.          Expires 5 September 2024                [Page 4]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Nodes that only participate in the forwarding sub-layer, but not the
   service sub-layer are called DetNet transit node.  Transit nodes
   operate some hop-by-hop forwarding protocols, such a IP, IPv6, MPLS,
   802.1 (ethernet switching with TSN services) or other, that is not
   explicitly mentioned in the DetNet architecture, such as BIER
   [RFC8279].  Note that DetNet supports unicast and multicast.

   The DetNet forwarding sub-layer provides resource allocation and
   explicit routing to DetNet flows or their aggregates.  Resource
   allocation means bandwidth reservation and buffer management to
   ensure no-loss forwarding, and when required for the traffic also
   per-hop scheduling to guarantee bounded latency of the forwarded
   DetNet traffic.

   The DetNet service sub-layer provides (according to [RFC8655] the
   Packet Replication Function (PRF), the Packet Elimination Function
   (PEF) and the Packet Ordering Function (POF).  These functions are
   collectively called PREOF (Packet Replication Elimination and
   Ordering Functions).  PREOF provides resilience against even
   individual packet loss by utilizing or inserting some sequence number
   in packets in the PRF and sending out two or more copies of the
   traffic to disjoint paths which are only converging in a DetNet
   service node performing the PEF and optionally the POF.  These
   functions may occur on network nodes or on DetNet sender/receiver
   nodes.  POF is optional because it implies packet buffering in the
   face of packet reordering, something which may be too complex to
   perform in a network node.

   In DetNet MPLS data plane [RFC8964], DetNet/MPLS packets have one (or
   more) F(orwarding) labels through which the explicit path and
   resource reservation can happen and which can be set up by various
   MPLS control plane mechanisms, including, but not limited to RSVP-TE.
   These are followed by a S(ervice) label (S-Label) and at the bottom
   of the MPLS stack a DetNet Control Word (d-CW) containing a sequence
   number for the traffic (DetNet flow or aggregate) identified by the
   S-label.

   In a simple example MPLS network deployment of DetNet, the ingress PE
   LSR would perform the DetNet service sub-layer with PRF and replicate
   the two copies of the traffic into two RSVP-TE tunnels (over disjoint
   paths) to the egress PE that performs the PRF/POF.  Intervening MPLS
   P LSR act solely as DetNet forwarding sub-layer nodes, forwarding the
   traffic as MPLS, and resource allocation only happens out-of-band in
   the Path Computation Engine (PCE) and Admission Controller (AC).

Eckert, et al.          Expires 5 September 2024                [Page 5]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Note that service sub-layer functions are not necessarily only
   applied on ingress and egress of a network, depending on the design
   and deployment of a service, they may also occur on intermediate
   DetNet service nodes, for example to protect against packet loss on
   more than one hop along a long path.

1.2.2.  Gaps and challenges

1.2.2.1.  No PREOF header for IP

   For IP and IPv6, there is no equivalent network packet header to the
   S-label/d-CW in MPLS.  Hence, it is currently not possible to build
   PREOF purely with an IP packet header.  Instead, there are proposal
   to utilize the MPLS header within an IP environment, such as
   [I-D.ietf-detnet-mpls-over-ip-preof].  Such mixed stacks may not be
   ideal for processing performance and/or implementation also on DetNet
   sender/receivers.

1.2.2.2.  Limited choice for bounded latency scheduling in IP and MPLS

   The only scheduling mechanism documented in an RFC to provide per-hop
   bounded latency is [RFC2212].  This severely limits the ability to
   easily implement IP router or MPLS LSR forwarding sub-layer bounded-
   latency functionality.  The IEEE TSN working group has defined
   several per-hop bounded latency mechanisms.  These can not be used
   today though hop-by-hop when the forwarding node is not operating as
   an 802.1 bridge, but as an IP/IPv6 router or MPLS LSR.  The IEEE has
   the intend to extend specification of TSN mechanism to make them
   applicable to IP/MPLS forwarding layers, but except for some summary
   of this effort, it is unclear what degree of IETF review and hence
   IETF standards applicability those mechanisms would get (ongoing work
   at 2/2024).

1.2.2.3.  Scalability issues of explicit routing

   In most cases, bandwidth and if possible bounded-latency guarantees
   can only be provided on a strict explicit path, because every single
   re-route that could happen would require pre-allocated resources.  In
   per-hop explicit routing, such as RSVP-TE, this requires a so-called
   strict ERO, and every LSR requires an MPLS LSP for each such RSVP-TE
   tunnel.  In a large MPLS network with e.g.: 1000 PE and a full-mesh
   of PE-PE RSVP-TE tunnels, this would require 1,000,000 LSP.  PCE
   established LSP could gain some optimization through MP2P LSP setup,
   but this is still an undesirable large design, purely from the
   perspective of the required PCE signaling to P LSR.

Eckert, et al.          Expires 5 September 2024                [Page 6]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   The same considerations apply to strict routes in IP/IPv6 networks,
   due to the absence of an RSVP-TE equivalent signaling of ERO in IP/
   IPv6, only PCE signaling based solutions are available through
   standard mechanisms today.

   Segment Routing (SR) for MPLS and IPv6 overcomes this issue by
   eliminating the per-hop steering, and moves the explicit route into
   the packet header.  However, SR started out primarily for use-cases
   such as capacity optimization, where strict explicit routing is not
   required, but instead loose routing is sufficient, and the PCE is
   calculating a minimum number of loose hops to put into the steering
   header.  This is insufficient for DetNet, but instead large service
   provider networks, especially in sparsely populated but large
   countries may have ring-type topologies with 20 or more hops,
   requiring 20 or more explicit steering hops in the source routing
   header.

   In SRv6, mechanisms such as [I-D.ietf-spring-srv6-srh-compression]
   are looking into supporting longer SR paths in the header, which
   should hopefully suffice for the long and strict explicit paths
   required for DetNet in such networks.  Likewise, MPLS LSR
   requirements for the maximum supported length of label stacks should
   take the requirement for strict explicit paths into account in
   profiling implementation requirements.

1.2.2.4.  Scalability issues of hop-by-hop bounded latency mechanisms

   Both [RFC2212] as well as most TSN mechanisms in support of hop-by-
   hop bounded latency scheduling operate on the basis of per-flow, per-
   hop traffic state, such as per-flow Weighted-Fair-Queuing or Shaping.
   These mechanisms require per-flow, per-hop state that needs to be
   established by a PCE and whose operational performance and
   scalability requirements are worse of those of per-hop, per-flow
   explicit traffic steering without source routing (segment routing).

2.  Common header proposal

   The following two picture show the proposed common metadata blocks
   from which one or two IPv6 extension header(s) are to be composed.
   these blocks do not include the common headers of the possible IPv6
   extension header options but are only their payload.

Eckert, et al.          Expires 5 September 2024                [Page 7]
Internet-Draft               ipv6-qos-exthdr                  March 2024

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Per Hop Method |    Method Parameters (56 bits)                |
     +-+-+-+-+-+-+-+-+                                               |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 1: Per-hop metadata block

   Per Hop Method, Method Parameters:

   The Per Hop Method field (abbreviated to Method) indicates the format
   of the following 56 bits of method parameters and its processing by a
   per-hop scheduling/marking algorithms.  When used with DetNet, this
   header is processed by every DetNet transport node.

   For this option, IANA would have to allocate one new 5-bit codepoint
   for the Hop-by-Hop option in combination with all "act"/"chg" bit
   combinations.  The specification for each method would be required to
   comply with [I-D.ietf-6man-hbh-processing] and define which
   "act"/"chg" options the method uses and how.

   The common specification for this hop-by-hop option would specify
   that the requirements of [I-D.ietf-6man-hbh-processing] for this new
   option apply individually on a per-method basis.  In other word,
   implementations supporting this option must not only perform the
   right "act" processing based on whether this option is supported/
   configured, but on whether/how the specific "Per Hop Method" is
   supported/configured.  More specifically, by default, packets with
   any non-explicitly configured "Per Hop Method" must default to be
   discarded with only internal logging, not or minimally impacting
   performance of other packets (aka: increase a single per-received-
   interface (potentially sampled) counter for packets with this option
   - or better).

   ICMP replies support must only be provided for explicitly supported
   and configured methods.  Likewise, ignoring/passing packets with
   unknown methods must be explicitly configured on a per-method basis.

   Ultimately, one core goal of this per-method approach is to escape
   the limited space we still have left for hop-by-hop options and on
   the other hand commonize across multiple different QoS mechanism
   variations all reasonable common-practice aspects so each such method
   does not have to re-invent that common part of the wheel.

Eckert, et al.          Expires 5 September 2024                [Page 8]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Algorithms supported by this option will typically attempt to achieve
   per-hop bounded latency, and optionally also limit per-hop jitter
   when they are serving DetNet.  Alternatively (or additionally) they
   may also attempt to achieve specific congestion control goals.
   Nevertheless, the 56 bit may support any per-hop function of interest
   based on method allocation rules and the limits seen as reasonable
   for the of this extension header - for example: scheduling and
   marking/discarding of the packet.

   Allocation of Method values are proposed/discussed in Section 5.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |e2eMthd|  End-to-end Method (e2emth) Parameters (60 bits)      |
     +-+-+-+-+                                                       |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 2: End-to-end metadata block

   e2eMthd, Method Parameters:

   This extension header data block follows the same logic as the hop-
   by-hop metadata block except that in general it is meant to only be
   processed by DetNet Service nodes, or for non DetNet functions
   equally only the ingress/egress nodes of an IPv6 packet path.
   Depending on how this is packetized, it may be part of a per-hop
   extension header but the data might simply be ignored there.

   Processing rules would have to be written similarly to what was
   outlined above for the hop-by-hop option.

   Allocation of e2eMthd values are proposed/discussed in Section 5.

3.  Examples

   This section describes example functionalities that would have to be
   specified (as IETF standard/experimental/informational, ISE ...
   external specification) utilizing the above proposed extension header
   options.

   The text for these examples does not attempt to include all such
   possible specification but instead focuses on a summary of the
   functionality and how the metadata carried in the extension header(s)
   achieves it.

Eckert, et al.          Expires 5 September 2024                [Page 9]
Internet-Draft               ipv6-qos-exthdr                  March 2024

3.1.  Example End-to-End extension header method for DetNet

   The following is an example for how the end-to-end extension header
   might be defined for DetNet.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |e2eMthd|Rsrvd|P|           End-to-End Timestamp                |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |0|0 0 0|                Sequence Number                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 3: Example DetNet End-to-end metadata block

   Rsrvd: Reserved.

   Sequence Number: Explained in the following PREOF subsection.

   End-to-end Timestamp, P: Explained in the following End-to-end Time-
   stamping subsection.

3.1.1.  PREOF

   Sequence Number:

   The field carrying the Sequence Number has the same encoding and
   semantic as the "DetNet Control Word" as specified in the MPLS Data
   plane for DetNet, [RFC8964].

   Note that processing the sequence number field (insertion,
   reordering, duplicate elimination) is relative to the DetNet flow
   that the packet belongs to, requiring per-DetNet flow state in the
   processing nodes.

   This means that it is relative to the N-tuple that is looked up by
   the processing node.  The DetNet architecture lays out various
   option.  In simple, non-SRv6 end-to-end flow scenarios, this is the
   typical 5-tuple of (Src-IPv6/Mask, Dst-IPv6/Mask, Proto, SrcPort,
   DstPort), where Proto is the value of the first IPv6 "Next Header"
   field which is not an IPv6 extension header, and SrcPort, DstPort the
   first two 16 bit values of that protocol header.

Eckert, et al.          Expires 5 September 2024               [Page 10]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   When a routing header is used, DstIP is the final routing header
   address, which will only be the IPv6 headers destination address on
   the last hop.  In addition, the DetNet flow tuple can be as small as
   a 2-tuple (Src-IPv6/Mask, Dst-IPv6/Mask), indicating for example all
   traffic to use DetNet service between a service provider networks
   ingress PE (Src-IP6) and egress PE (Dst-IPv6).

3.1.2.  End-to-end time-stamping

   The P and End-to-end Timestamp serve an "end-to-end time-stamping"
   service.  Clock timestamp has a unit of 1 usec.

   When the hop-by-hop scheduling mechanism is "in-time", traffic will
   incur no or little per-hop scheduling delay in the absence of
   competing traffic, but more delay when there is competing traffic.
   This can lead to a high degree of end-to-end latency variation
   ("jitter") under varying degrees of competing traffic, something that
   applications may not be able to easily deal with.

   End-to-end timestamping is a way to permit the egress DetNet service
   node to buffer packets received before their guaranteed maximum
   bounded latency.  This is a tentative feature which has not yet been
   considered in other drafts in DetNet, and is included to offer a more
   comprehensive view of possible still to be resolved DetNet packet
   header features beyond per-hop scheduling.

   If the P)layout flag is 0, then the end-to-end timestamp indicates
   the time I at which the ingress DetNet service node inject the
   packet.  The egress DetNet service node then needs to understand the
   guaranteed bounded latency D for the packets flow and delay the
   packet up to time I+D.

   In some cases, it may be easier for the ingress DetNet service node
   to know D, in which case it can set the End-to-End Timestamp to I+D
   and indicate this via P=1.  The egress DetNet service node then needs
   to delay the packet up to the time indicated by the end-to-end
   timestamp.

   Because the end-to-end timestamp is not a full timestamp, it needs to
   be defined as a 24 bit modulo against some reference clock timestamp,
   such as seconds since Jan-1-1970.  There is also the need for the
   egress DetNet node to check the modulo (formula TBD).

   The unit of the end-to-end-timestamp is 0.1 usec, allowing a maximum
   latency of 1.6 seconds (24 bit value).  This allows any potentially
   necessary timestamp calculations to be at last 1 usec precise. 1.6
   seconds is assume to be significantly longer than any relevant end-
   to-end delay that needs to be supported.

Eckert, et al.          Expires 5 September 2024               [Page 11]
Internet-Draft               ipv6-qos-exthdr                  March 2024

3.2.  Example Hop-by-hop extension header Methods

   The different example methods described in the following subsections
   use a one-bit field V(ersion) to allow introduction of both backward
   compatible and non-backward compatible extensions of a method without
   requiring a new Method field allocation.

   When V=0, extensions need to be backward compatible and use only
   Reserved bits in the header, which are by default sent as 0 and
   ignored by the following methods.

   When V=1, receivers will recognize the packet header as being
   incompatible with the following specifications.  In that case all
   bits of the Method parameters can be redefined as seem fit by such
   extensions, but all nodes processing such a header must then support
   that new version of the Method.

3.2.1.  C-SCORE

   "Work Conserving Stateless Core Fair Queuing" (C-SCORE,
   [I-D.joung-detnet-stateless-fair-queuing]) is a mechanism for per-hop
   stateless fair queuing that together with admission control allows to
   guarantee per-hop bounded latency in which because of the properties
   of fair queuing the latency of bursts is only paid once.  It aims to
   achieve similar end-to-end bounded latency guarantees as [RFC2212],
   which is also leveraging fair queuing, except that that mechanism
   does not operate stateless, but requires for each flow on every
   relevant hop per-flow state, specifically the weighted fair queue for
   the flow.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |  Reserved     | Service Rate                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                  Finish Time                                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 4: TCQF hop-by-hop block

   Finish Time:

   This is also called F(p) in the C-SCORE draft.  This is in units of
   usec and updated through the C-SCORE algorithm and experienced
   processing latency on every hop.  See below in the gLBF section for
   thoughts on how to deal with overflow modulo for such a parameter.

   Service Rate:

Eckert, et al.          Expires 5 September 2024               [Page 12]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   This is also called r in the C-Score draft.  The unit is bits/sec.
   TBD: this may need to be a larger unit, such as kbps.

   Note that C-SCORE also needs to know the length of the packet for its
   calculation.  It is assumed that this length is known when C-SCORE
   algorithm is run, and it is up to implementations to determine the
   length from e.g.: L2 encapsulation of the IPv6 packet or further
   parsing of the packet header chain following the IPv6 extension
   headers.

3.2.2.  TCQF

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |V|   Reserved          | Prio  |    Cycle      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                     Reserved                                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 5: TCQF hop-by-hop block

   Cycle:

   "Tagged Cyclic Queuing and Forwarding" (TCQF) is a forwarding method
   derived from IEEE "Cyclic Queuing and Forwarding" ([CQF]).  In TCQF,
   multiple cycles are used to forward packets.  For example, if 3
   cycles are used packets will be sent in sequence for a cycle time
   period T of e.g.: 10 usec from cycle buffer 1, then for T from cycles
   2, then cycle 3 and then cycle 1 again.  The Cycle value in received
   packets from a neighbor are mapped via a simple (neighbor, input-
   cycle) -> output-cycle function, output-cycle is written into the
   Cycle field and the packet is enqueued into that cycle buffer.  The
   mapping is set up so that all packets for input-cycle can be received
   before output-cycle starts to send.  Carrying the Cycle value in the
   packet allows to support arbitrary link-latencies (which is limited
   in CQF) as well as higher level of errors between clocks on adjacent
   nodes.  This is called "Maximum Time Interval Error" - MTIE in clock
   synchronization protocols such as PTP.

   Cycle=0 is reserved.  Current considerations are that fewer than
   e.g.: 10 Cycles are needed with TCQF, but the field is defined larger
   to allow extensions without having to redefine the field in an
   incompatible fashion.

Eckert, et al.          Expires 5 September 2024               [Page 13]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   While not specified in the current TCQF draft, it is possible to use
   multiple independent set of cycle buffers for packets of different
   priorities.  Thus the encoding also includes a Prio(rity) field.
   Prio=0 is reserved, Typically a maximum of 8 priorities is likely to
   be beneficial/necessary.

3.2.3.  TQF

   "Timeslot Queueing and Forwarding" (TQF),
   [I-D.peng-detnet-packet-timeslot-mechanism] is a variation of CQF
   (and TCQF, CSQF) in which a larger number of cycles, which are called
   Timeslots, are used to allow direct interleaving of more smaller
   flows without having to reserve bandwidth in every cycle to such
   flows - but only reserving bandwidth in a smaller number of timeslots
   in a larger number of timeslots.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |V|   Reserved  |G| Timeslot                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                     Reserved    | Deviation                   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 6: TQF hop-by-hop block

   Timeslot is the equivalent of Cycle in TCQF, but may use 1024 or more
   values.

   If G)lobal =0, this indicates Local Timeslot style, G)local=1
   indicates Global Timeslot style.  See
   [I-D.peng-detnet-packet-timeslot-mechanism], for more explanations.

   Deviation indicates the number of timeslots which a packet was
   delayed by on one or more hops because it did not fit into the
   earliest available timeslot on a processing node.  This value is
   updated by adding the number of slots the packet is delayed to the
   Deviation value and updating the Deviation field in the packet.

   When so desired, the egress DetNet service node can then use this
   value and the admission control system calculated maximum value of
   this field for this flow to delay packets such that all packets of
   the flow will have the same latency (reducing jitter).

3.2.4.  Earliest Deadline First (EDF)

   TBD.  See [I-D.peng-detnet-deadline-based-forwarding].

Eckert, et al.          Expires 5 September 2024               [Page 14]
Internet-Draft               ipv6-qos-exthdr                  March 2024

3.2.5.  CSQF

   CSQF, [I-D.chen-detnet-sr-based-bounded-latency] operates
   fundamentally like TCQF except that it does not operate on a single
   cycle identifier in a header field, which is then rewritten on every
   hop like TCQF, but instead the cycle identifier for every hop is a
   (parameter of the) SRv6 SID for every hop, e.g.: it requires use a of
   a routing header such as SRH.

   Compared to TCQF, this approach has the benefit of allowing a more
   flexible per-hop sequence of cycles because the cycle for every hop
   is programmable for each packet, whereas it is fixed by router
   mapping tables in TCQF.

   As a downside, when the cycle mapping does not require this
   flexibility, it costs more bits on the wire, because when e.g.: N=4
   bit of cycle values are required, then this requires as many bits per
   hop in the routing header, which may be a relevant consideration when
   using compressed routing headers.

   However, CSQF like TCQF can also be implemented with different
   priorities, and if that is an end-to-end priority, then it may be
   beneficial not to replicate the priority field into every source
   routing header hop (e.g.: SRv6 SID in SRH), but carry it in the hop-
   by-hop extension header field.  For this purpose, it would be
   possible even to re-use the CQF Method formatting, set the Cycle
   field to 0, but the Prio field to a non-zero value indicating the
   priority.  Likewise, it should then be possible to only allocate a
   single Method value for both TCQF and CSQF.

3.2.6.  gLBF Guaranteed Latency Based Forwarding (gLBF)

   "guaranteed Latency Based Forwarding" (gLBF, [I-D.eckert-detnet-glbf]
   is a mechanism for on-time stateless forwarding of packets without
   requirements for clock synchronization utilizing the calculus for
   admission control and flow specifications of TSN-ATS.  To eliminate
   the per-hop shaper or interleaved regulator state of TSN-ATS, it
   instead uses a Damper.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |V|   Reserved                  | PPrio | Prio  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Damper Time                           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 7: gLBF hop-by-hop block

Eckert, et al.          Expires 5 September 2024               [Page 15]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   If Method equals to the value assigned to gLBF, the method parameters
   are as follows:

   Prio:

   Prio is the end-to-end priority of the packet with defined values 1
   to 8. 1 is highest priority, 8 is lowest priority.  Values 9-15 are
   reserved.  If Prio is 0, then the per-hop priority needs to be
   derived from the per-hop routing header information, such as the SID
   or its parameters when using SRH.  When using per-hop priorities
   solely via SIDs (such as when using compressed SIDs), this requires
   up to 8 SID per node (depending if all 8 priorities are required in
   the deployment).

   PPrio (prior hop priority):

   This is an optional parameter.  It is set to 0 when not used.  When
   supported then a node will insert the per-hop priority extracted from
   its SID (or its parameters) into this field (value 1-8) in support of
   less complex processing of the packet on the following node, such as
   simple timed FIFOs.  See [I-D.eckert-detnet-glbf] for further
   explanations.

   Note that the prior hop prio is also available from the routing
   header SID when using IPv6 routing headers, because unlike in MPLS,
   it is not discarded.  Nevertheless, a node typically would not know
   the semantics of the prior-hop nodes SID to priority mapping.

   Damper Time:

   This is the time calculated by the prior-hop node that the receiving
   node needs to delay the packet so that the sum of scheduling latency
   on the prior hop and this damper time is the known maximum bounded
   latency for this hop and the prior hops priority of the packet.

   Each node rewrites this field after knowing when the packet will hit
   the outgoing interface (e.g.: after dequeing it from the egress
   queue).

3.2.7.  Dynamic Packet State (DPS)

   "Dynamic Packet State" (DPS) [I-D.stoica-diffserv-dps] is a proposal
   that was brought to the IETF in 2002.  It is not considered for
   DetNet, but is the first example presented here how the common header
   proposed might also help accelerate at least practical
   experimentation with research QoS options that so far have always
   struggled to get even towards practical experimentation because of
   packetization.

Eckert, et al.          Expires 5 September 2024               [Page 16]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   DPS provides weighted fair scheduling approximation without per-flow
   state (such as a per-flow weighted queue) by carrying a flows target
   data rate as metadata in the packet.  In the most basic setup, all
   DPS flows share a single traffic class.  The scheduler calculates an
   ongoing estimate of the (over-load) of that traffic class, deriving a
   packet ECN-mark or discard probability, and then adjusting that
   probability up or down based on the packets target data rate.

   A solution like DPS does require controlled networks where the target
   data rate of flows can be trusted, but then allows to easily solve
   issues such as allowing devices/applications requiring much faster
   flows to get those higher speed under congestion - without
   introducing any non-scalable per-flow state management issues (except
   for wherever on ingress some policy admission is needed).

   The DPS draft lays out primarily complex encoding options to minimize
   the number of bits required to encode the metadata.  These
   considerations not only precede faster networks of today, but they
   also ignore the issue that complex encoding will not necessarily work
   at high speeds in programmable forwarding plane.  Hence a simple,
   non-floating point representation would likewise also accelerate the
   ability to experiment with these type of advanced mechanisms.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |V|   Reserved                                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Flow Rate                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 8: DPS hop-by-hop block

   In a simple encoding option, the DPS metadata would simply consist of
   a 32-bit Flow Rate field in units of 10 bps, allowing maximum flow
   rates of 40 Gbps, thus allowing experimentation both in high-speed as
   well as low-speed, radio networks.

3.2.8.  Latency Based Forwarding (LBF)

   Like DPS, "Latency Based Forwarding" (LBF, [LBF]) is also not a
   DetNet target per-hop method, but a more research experiment from
   which gLBF was derived.

Eckert, et al.          Expires 5 September 2024               [Page 17]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   It is included here as a second examples of how the common header
   structure proposed here could also help to avoid researchers having
   to introduce new packet headers fully and instead are able to rely on
   the framework of the common header.  It also shows how the desire for
   a space optimized common header may cause limitation to more
   experimental, advanced solutions.

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Method     |V| Reserved  |A| eLatency                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | minLatency                    | maxLatency                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 9: LBF hop-by-hop block

   eLatency is the latency experienced by the packet when it travels
   hop-by-hop in the unit of usec.  Every node along the path adds the
   latency including link and queuing latency to the value, updating the
   packet header field.

   minLatency and maxLatency are only set by the originator and never
   changed.  Like eLatency their unit is usec.

   Every node performing LBF scheduling management uses routing
   information that includes propagation latencies to know the minimum,
   no-queuing latency to the packets destination to determine how much
   scheduling time budget the packet has, taking eLatency and maxLatency
   into account.  When it calculates that the packet could not reach the
   destination in time it discards the packet immediately, hence
   avoiding unnecessary congestion downstream.  When immediate sending
   of the packet would make the packet likely arrive too early (taking
   minLatency into account), the packet will be intentionally delayed
   even in the absence of contention.  As soon as the packet would not
   be too early to be sent it's dynamic scheduling priority versus
   contending packet based on the calculated maximum time it could spend
   to not exceed maxLatency when it reaches the destination.

   A)dmitted is a flag indicating whether the traffic is admission
   controlled, which increases its dynamic scheduling priority in LBF.

   minLatency and maxLatency are so-called "Service Level Objectives"
   (SLO), and overall LBF attempts to show that latency SLO can not only
   be orchestrated in complex fashions in the controller/control-plane,
   but also lightweight and stateless (hence scaling) directly in the
   forwarding plane.  It can equalize end-to-end latency for flows
   across different long paths to create fairness, such as in

Eckert, et al.          Expires 5 September 2024               [Page 18]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   metropolitan access rings, and it can minimize multi-hop queuing
   latency - once a packet experiences undesired queuing on one hop, its
   dynamic priority will be higher on the next.

   Because three time values are required, they can all only be 16 bit
   long, making the maximum latency supportable 65 msec.  This should
   well suffice for any interactive time-critical applications, but it
   would not be good enough for arbitrary use over wide-area networks.

4.  Open questions

4.1.  Functional requirements / limitation

   Assume a standards track draft/RFC was to be created from this header
   concept.  What are the functional requirements / limitation necessary
   and sufficient so that it becomes most easy to create
   standard/experimental/information/external methods leveraging this
   encapsulation.

   For example:

   Defining constraints that must be met by the mechanism to be allowed
   to use this header, such as:

   o The header operation may primarily only impact scheduling, marking
   and/or discarding of packets containing the header relative to other
   packets.  The mechanisms explicitly need to minimize exposure of
   application information to the network according to [RFC9419].  For
   example, past proposal attempted to include metadata characterizing
   the application, session and type of media transported so that the
   network operator could try to provide mappings to the service quality
   deemed necessary for the traffic.  Instead the metadata should
   explicitly only be the control parameter for the QoS algorithm
   provided by the method.

   o If parameters beyond this limit are proposed to be transported,
   then they must be encrypted in a way that would allow for them to be
   decoded only by entities to whom the originating application can
   build an equal trust relationship to the one deemed to be sufficient
   to carry the same information in an encrypted/authenticated end-to-
   end connection.  Note that the potential to include such encryption
   related parameters may be one reason to potentially reserve more
   space, such as another 32 bits for some form of security-association
   identifier.

   o Unless the mechanism claims and provides sufficient evidence (any
   standard requirements to achieve this) to be compatible to Internet
   congestion control (best RFC reference ?), the mechanism needs to be

Eckert, et al.          Expires 5 September 2024               [Page 19]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   scoped for intra-domain/controlled-network/federation use (not across
   the Internet) and/or require participating hosts to employ circuit
   breakers ([RFC8084]).

   o Operation of the method must only depend on parameters included in
   the header(s) (hop-by-hop, end-to-end), and the base IPv6 header, but
   not other headers or payload.

   o All operations on any hop-by-hop header defined for a method are
   intended to be possible within the "fast-path" forwarding plane of
   advanced routers, any control-plane / slow-path functionality should
   not rely on these headers.  Any normal end-to-end header should in
   general be designed in the same way, but an additional method may be
   assigned to end-to-end headers that are intended to operate only in
   software.  For example the proposed playout metadata in the end-to-
   end header requires timed buffering of packets, something typically
   not deemed feasible for even most advanced high-speed router
   forwarding plane engines today.  However, this functionality is easy
   to do in software on receiver host stacks, and supporting this via an
   IPv6 destination option header will likely may it easier to add such
   functionality to existing application/host-stacks than defining a new
   "transport" header for it - because the latter option would then
   require to "tunnel" e.g.: UDP on top of that transport.

   o The method must specify how it fits into a DiffServ configuration
   model.

   o A method specification must describe how the method interacts with
   traffic not carrying the methods header.

4.2.  Combination with IPv6 routing header.

   When DetNet wants to guarantee per-hop resources for bandwidth and
   optionally per-hop latency, then this means in almost all network
   designs with redundancy, that the network path needs to be fixed
   through what is commonly called a strict, explicit hop-by-hop route,
   or else a re-route event on a loose intermediate hop will cause the
   traffic to reconverge to a path without prior resource allocation.

Eckert, et al.          Expires 5 September 2024               [Page 20]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Today, in IPv6 there are two relevant source-routing headers through
   which this steering is done in the industry.  For high-speed networks
   the "IPv6 Segment Routing Header", [RFC8754], and for lower speed,
   industrial, and often also wireless-mesh networks the "IPv6 Routing
   Header for Source Routes with the Routing Protocol for Low-Power and
   Lossy Networks", [RFC6554].  Because DetNet explicitly includes the
   wireless network architecture aspects originating from the IETF RAW
   working group, we should assume that in the ideal case, the DetNet
   header can be combined with the functionality of either of these type
   of networks.

4.3.  Hop-by-hop or Routing-Header

   Should the DetNet header (primarily) be a Hop-by-Hop (HbH) header, or
   a routing-header ? Here are a couple of considerations:

   A HbH header would have the benefit of allowing to combine DetNet
   with unmodified routing headers [RFC8754] or [RFC6554].

   A HbH header would have the possible downside that parsing and
   executing both a HbH header and a routing header may be more
   expensive in high-speed forwarding planes than if the DetNet header
   would become part of a new routing header.  Especially because in the
   worst case, 50% the DetNet functionality may need to be applied on
   ingress before routing, and the other 50% may need to be applied
   after routing on the egress of the router.

   A HbH header would have the benefit of allowing per-hop operation
   even if the routing header is loose hop.  As mentioned above, this
   does not seem to be a significant use-case for DetNet.

4.4.  Extending existing router headers or new routing header ?

   Technically it seems to be an option to include the DetNet header
   into an SRH as a "DetNet" TLV.  So far, all existing SRH TLV are, as
   far as the authors are aware only examined by the final SRH hop, but
   not hop-by-hop.  In this respect, the SRH TLV options seem to be
   mostly a replacement for a separate Destination Options Header, and
   implementations may have a higher overhead acting hop-by-hop on a TLV
   encoded DetNet header.

   However, the option for hop-by-hop examined TLVs are architecturally
   possible in SRH through the high order bit of the TLV type field.

   For [RFC6554] extensions are not explicitly considered, but it should
   be possible to update this RFC with a DetNet header added at the end
   (similar to the TLV section in SRH), but without having to add a TLV
   encoding.

Eckert, et al.          Expires 5 September 2024               [Page 21]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Extending the existing headers will have the architectural downside
   of having to support two routing headers with DetNet, but this seems
   to be only a theoretical and RFC text duplication downside, because
   almost every device will only support one type of header anyhow.

4.5.  Integrated or split DetNet header

   The service sub-layer functions and associated DetNet packet header
   elements do not need to be executed on every hop where DetNet
   transport sub-layer functions and hence the associated packet header
   elements are required.

   Therefore it could be considered to be technically feasible and
   architecturally sound to split up the DetNet header into two IPv6
   extension headers.

   A DetNet transport sub-layer extension header with the first 64 bit
   of data would be encoded as a HbH header, and/or an extension to an
   existing or new routing header.

   A DetNet service sub-layer extension header with the second 32 bit
   which would be encoded in a Destination Options header, or (as the
   SHR TLV example shows, added to a routing header).  When encoded into
   a Destination Options header there is the option of adding the 64 bit
   of information as options into the common Destination Options
   extension header or allocating a new Destination Options extension
   header.

   It would even be possible to consider calling this header not a
   Destination Options header, but a new "DetNet service transport
   header" - by simply not declaring the new "Next Header" value to be
   an IPv6 extension header

   Which of the options is best is an open issue.

   One core functional benefit of having a single joint header is that
   it would be possible to consider the option that different Methods
   can also redefine the semantic of the 64 end-to-end bit and perform
   per-hop operations on them.  This for example could allow longer
   metadata values in LBF.

5.  Method and e2eMthd code-point/semantic allocation

   The hop-by-hop Method is proposed to be allocated through different
   mechanisms in different blocks as follows.

   Values 0 - 31: Header encoding and associated forwarding behavior
   specified through standards track RFC.

Eckert, et al.          Expires 5 September 2024               [Page 22]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   Values 32 - 63: Header encoding and associated forwarding behavior
   specified through experimental or informational IETF or IRTF RFC.

   Values 64 - 223: Header encoding and associated forwarding behavior
   specified through specification (including IETF) plus expert review.
   Typical use would be for third-party SDO or research / industry
   specifications.

   Values 224 - 240: Experimental use.  No RFC shall refer to a binding
   of encoding or associated forwarding behavior to a specific code
   point in this range.

   Values 241 - 255: Configurable.

   Nodes along the path need to be configured with a consistent
   Configured Method Semantic.  Configured Method Semantic is a another
   IANA registry of 64 bit value allocated on FCFS basis to a public
   specification without expert review.  Each referenced specification
   can only request one Method unless expert review allows it to be
   associated with more than one.

   The difference between Experimental and Configurable code points is
   that experimental explicitly attempts to avoid creating documentation
   for experiments that would cause them to proliferate beyond a stage
   of an experiment, while Configurable explicitly demands documentation
   to be produced, without consuming a limited space codepoint (instead
   consuming only a codepoint from a large space).

   Configurable and Experimental are targeted to be similar to private
   DSCP for which no standard functionality is assigned, but instead
   consistent behavior, such as queue assignment and queue / early-
   discard/marking behavior need to be configured on every node in the
   network.

   For values 0 - 223, temporary allocations are permitted through IETF
   or IRTF working group drafts (of the right track) until the draft
   expires or is abandoned.

   For e2eMthd, similarly blocks would be assigned to different
   allocation policies (TBD).

6.  Security Considerations

   This document has no security considerations (yet?).

Eckert, et al.          Expires 5 September 2024               [Page 23]
Internet-Draft               ipv6-qos-exthdr                  March 2024

7.  IANA Considerations

   This document has no IANA considerations.

8.  Logistics

   The authors welcome feedback, please address it to ipv6@ietf.org.
   Feel free to submit suggestions to improve the document also as
   issues to https://github.com/toerless/detnet.

8.1.  Changelog

   00 Initial version.

9.  Acknowledgments

10.  References

10.1.  Normative References

   [RFC2212]  Shenker, S., Partridge, C., and R. Guerin, "Specification
              of Guaranteed Quality of Service", RFC 2212,
              DOI 10.17487/RFC2212, September 1997,
              <https://www.rfc-editor.org/rfc/rfc2212>.

   [RFC6554]  Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
              Routing Header for Source Routes with the Routing Protocol
              for Low-Power and Lossy Networks (RPL)", RFC 6554,
              DOI 10.17487/RFC6554, March 2012,
              <https://www.rfc-editor.org/rfc/rfc6554>.

   [RFC8084]  Fairhurst, G., "Network Transport Circuit Breakers",
              BCP 208, RFC 8084, DOI 10.17487/RFC8084, March 2017,
              <https://www.rfc-editor.org/rfc/rfc8084>.

   [RFC8279]  Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A.,
              Przygienda, T., and S. Aldrin, "Multicast Using Bit Index
              Explicit Replication (BIER)", RFC 8279,
              DOI 10.17487/RFC8279, November 2017,
              <https://www.rfc-editor.org/rfc/rfc8279>.

   [RFC8655]  Finn, N., Thubert, P., Varga, B., and J. Farkas,
              "Deterministic Networking Architecture", RFC 8655,
              DOI 10.17487/RFC8655, October 2019,
              <https://www.rfc-editor.org/rfc/rfc8655>.

Eckert, et al.          Expires 5 September 2024               [Page 24]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   [RFC8754]  Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
              Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
              (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
              <https://www.rfc-editor.org/rfc/rfc8754>.

   [RFC8964]  Varga, B., Ed., Farkas, J., Berger, L., Malis, A., Bryant,
              S., and J. Korhonen, "Deterministic Networking (DetNet)
              Data Plane: MPLS", RFC 8964, DOI 10.17487/RFC8964, January
              2021, <https://www.rfc-editor.org/rfc/rfc8964>.

   [RFC9419]  Arkko, J., Hardie, T., Pauly, T., and M. Kühlewind,
              "Considerations on Application - Network Collaboration
              Using Path Signals", RFC 9419, DOI 10.17487/RFC9419, July
              2023, <https://www.rfc-editor.org/rfc/rfc9419>.

10.2.  Informative References

   [CQF]      IEEE Time-Sensitive Networking (TSN) Task Group., "IEEE
              Std 802.1Qch-2017: IEEE Standard for Local and
              Metropolitan Area Networks — Bridges and Bridged Networks
              — Amendment 29: Cyclic Queuing and Forwarding", 2017.

   [I-D.chen-detnet-sr-based-bounded-latency]
              Chen, M., Geng, X., Li, Z., Joung, J., and J. Ryoo,
              "Segment Routing (SR) Based Bounded Latency", Work in
              Progress, Internet-Draft, draft-chen-detnet-sr-based-
              bounded-latency-03, 7 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-chen-detnet-
              sr-based-bounded-latency-03>.

   [I-D.eckert-detnet-glbf]
              Eckert, T. T., Clemm, A., Bryant, S., and S. Hommes,
              "Deterministic Networking (DetNet) Data Plane - guaranteed
              Latency Based Forwarding (gLBF) for bounded latency with
              low jitter and asynchronous forwarding in Deterministic
              Networks", Work in Progress, Internet-Draft, draft-eckert-
              detnet-glbf-02, 5 January 2024,
              <https://datatracker.ietf.org/doc/html/draft-eckert-
              detnet-glbf-02>.

   [I-D.ietf-6man-hbh-processing]
              Hinden, R. M. and G. Fairhurst, "IPv6 Hop-by-Hop Options
              Processing Procedures", Work in Progress, Internet-Draft,
              draft-ietf-6man-hbh-processing-14, 25 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-6man-
              hbh-processing-14>.

Eckert, et al.          Expires 5 September 2024               [Page 25]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   [I-D.ietf-detnet-mpls-over-ip-preof]
              Varga, B., Farkas, J., and A. G. Malis, "Deterministic
              Networking (DetNet): DetNet PREOF via MPLS over UDP/IP",
              Work in Progress, Internet-Draft, draft-ietf-detnet-mpls-
              over-ip-preof-11, 22 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-detnet-
              mpls-over-ip-preof-11>.

   [I-D.ietf-spring-srv6-srh-compression]
              Cheng, W., Filsfils, C., Li, Z., Decraene, B., and F.
              Clad, "Compressed SRv6 Segment List Encoding", Work in
              Progress, Internet-Draft, draft-ietf-spring-srv6-srh-
              compression-13, 29 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-spring-
              srv6-srh-compression-13>.

   [I-D.joung-detnet-stateless-fair-queuing]
              Joung, J., Ryoo, J., Cheung, T., Li, Y., and P. Liu,
              "Latency Guarantee with Stateless Fair Queuing", Work in
              Progress, Internet-Draft, draft-joung-detnet-stateless-
              fair-queuing-02, 29 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-joung-detnet-
              stateless-fair-queuing-02>.

   [I-D.peng-detnet-deadline-based-forwarding]
              Peng, S., Du, Z., Basu, K., cheng, Yang, D., and C. Liu,
              "Deadline Based Deterministic Forwarding", Work in
              Progress, Internet-Draft, draft-peng-detnet-deadline-
              based-forwarding-09, 1 March 2024,
              <https://datatracker.ietf.org/doc/html/draft-peng-detnet-
              deadline-based-forwarding-09>.

   [I-D.peng-detnet-packet-timeslot-mechanism]
              Peng, S., Liu, P., Basu, K., Liu, A., Yang, D., and G.
              Peng, "Timeslot Queueing and Forwarding Mechanism", Work
              in Progress, Internet-Draft, draft-peng-detnet-packet-
              timeslot-mechanism-06, 4 March 2024,
              <https://datatracker.ietf.org/doc/html/draft-peng-detnet-
              packet-timeslot-mechanism-06>.

   [I-D.stoica-diffserv-dps]
              Stoica, I., Zhang, H., Baker, F., and Y. Bernet, "Per Hop
              Behaviors Based on Dynamic Packet State", Work in
              Progress, Internet-Draft, draft-stoica-diffserv-dps-02, 9
              October 2002, <https://datatracker.ietf.org/doc/html/
              draft-stoica-diffserv-dps-02>.

Eckert, et al.          Expires 5 September 2024               [Page 26]
Internet-Draft               ipv6-qos-exthdr                  March 2024

   [LBF]      Clemm, A. and T. Eckert, "High-Precision Latency
              Forwarding over Packet-Programmable Networks", IEEE 2020
              IEEE/IFIP Network Operations and Management Symposium
              (NOMS 2020), doi 10.1109/NOMS47738.2020.9110431, April
              2020.

Authors' Addresses

   Toerless Eckert
   Futurewei Technologies USA
   2220 Central Expressway
   Santa Clara,  CA 95050
   United States of America
   Email: tte@cs.fau.de

   Jinoo Joung
   Sangmyung University
   South Korea
   Email: jjoung@smu.ac.kr

   Shaofu Peng
   ZTE Corp.
   Nanjing
   China
   Email: peng.shaofu@zte.com.cn

   Xuesong Geng
   Huawei
   China
   Email: gengxuesong@huawei.com

Eckert, et al.          Expires 5 September 2024               [Page 27]