Network Working Group                                        S. Burleigh
Internet-Draft                           JPL, Calif. Inst. of Technology
Intended status: Standards Track                              F. Templin
Expires: November 6, 2021                             The Boeing Company
                                                             May 5, 2021


            Bundle Protocol Extended Class of Service (ECOS)
                       draft-burleigh-dtn-ecos-00

Abstract

   This document describes an extension to the Delay-Tolerant Networking
   (DTN) Bundle Protocol (BP) that marks bundles with class-of-service
   designators.  The class-of-service designators are an "ordinal"
   number that provides fine-grained prioritization of bundles, a
   "critical" flag, flags that explicitly request "timely" or "assured"
   convergence-layer transmission (or both), and an optional QoS tag.

Requirements Language

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

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on November 6, 2021.

Copyright Notice

   Copyright (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.





Burleigh & Templin      Expires November 6, 2021                [Page 1]


Internet-Draft                    ECOS                          May 2021


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  ECOS Block Format . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Processing  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     3.1.  Bundle Origination  . . . . . . . . . . . . . . . . . . .   5
     3.2.  Bundle Forwarding . . . . . . . . . . . . . . . . . . . .   6
     3.3.  Bundle Delivery . . . . . . . . . . . . . . . . . . . . .   8
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   6.  Normative References  . . . . . . . . . . . . . . . . . . . .   8
   Appendix A.  Congestion Experienced . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   This document describes an extension to the Delay-Tolerant Networking
   (DTN) Bundle Protocol (BP) that marks bundles with class-of-service
   designators.  The Bundle Protocol version 7 (BPv7) base specification
   [I-D.ietf-dtn-bpbis] defines no class of service designators, while
   its predecessor Bundle Protocol version 6 (BPv6) [RFC5050] defined a
   single designator for a bundle's class of service:

   o  Priority, a value in the range 0 through 2, with higher values
      indicating greater urgency: 0 = "bulk", 1 = "normal", 2 =
      "expedited".  Priority level 3 is reserved for future use.

   For some applications, such as space flight and tactical unmanned air
   vehicle operations, additional variations in class of service may be
   required:

   o  Many more levels of priority may be needed, enabling more fine-
      grained control over the precedence of user-selected application
      data types in the progress of bundles through the network.

   o  A way of indicating emergency ("critical") traffic may be needed.
      Emergency traffic is not merely high-priority: it is so important
      that the user is willing to incur the network overhead of



Burleigh & Templin      Expires November 6, 2021                [Page 2]


Internet-Draft                    ECOS                          May 2021


      transmitting the bundle along every potential route to its
      destination, rather than only on the route that would normally be
      selected as the "best" route according to the applicable routing
      value function.  This expedient ensures that the bundle arrives at
      its destination in the least possible time, regardless of how
      accurately the routing system reckons end-to-end latency on any
      given route: the bundle arrives by whatever turns out to be the
      fastest route, as well as by all others.

   o  There may be a need to request explicitly that all nodes
      forwarding the bundle use convergence-layer protocols that either
      always do or always don't perform retransmission upon detected
      loss of data.  This designation may be important for bundles
      carrying application data for which timeliness of delivery is
      known to be more important than certainty, or vice versa.  In some
      cases, retransmitted "old data" may be a waste of bandwidth that
      could instead be used to convey new data of greater value, or the
      out-of-order arrival of retransmitted data may degrade the
      usefulness of streaming data such as audio or video.

   o  There may be a need for an opaque "QoS tag" that can be used by
      the application to pass a variety of transmission control
      parameters to the convergence-layer protocol.

   The Extended Class of Service (ECOS) extension block for BPv7 is
   designed to provide these class of service designators.

2.  ECOS Block Format

   The ECOS block conforms to sections 4.3.2 and 4.4 of
   [I-D.ietf-dtn-bpbis], where the block SHALL be represented as a CBOR
   array with 5 elements (i.e., since CRC type is 0).  The ECOS block is
   constrained as follows:

   o  Block type code is TBD.  (See "IANA Considerations" below.)

   o  Block number is coded as discussed in Section 4.1 of
      [I-D.ietf-dtn-bpbis].

   o  Per Section 4.2.4 of [I-D.ietf-dtn-bpbis], block processing
      control flags are next encoded as a CBOR unsigned integer.  The
      following block processing control flag MUST be set to 1:

      *  Bit 0 - block must be replicated in every fragment.

      The setting of other block processing control flags, where not
      mandated by the Bundle Protocol specification, is an
      implementation matter.



Burleigh & Templin      Expires November 6, 2021                [Page 3]


Internet-Draft                    ECOS                          May 2021


   o  CRC type is set to 0 as discussed in Section 4.2.1 of
      [I-D.ietf-dtn-bpbis].

   o  Block-type-specific data is represented as a single definite-
      length CBOR byte string containing a 16-bit Flags field, an 8-bit
      Priority field and (optionally) a 32-bit QoS Tag field.

   The first field of the Block-type-specific data is a 16-bit Flags
   byte.  The bits of the flags signify the following conditions:

   o  The 0x0001 bit, if True, indicates that the bundle is "critical":
      the bundle protocol agent is requested to forward one copy of the
      bundle along every path that might get it to its destination.

   o  The 0x0002 bit, if True, indicates an explicit preference that
      delivery of the bundle be timely and in order: the bundle protocol
      agent is requested to forward the bundle on a "best-effort" basis,
      without retransmission.

   o  The 0x0004 bit, if True, indicates that the Ordinal Number field
      of this ECOS block (the byte immediately following the Flags) is
      followed by a numeric QoS Tag field.

   o  The 0x0008 bit, if True, indicates an explicit preference that
      delivery of the bundle be assured even if out of order: the bundle
      protocol agent is requested to forward the bundle reliably, with
      retransmission as necessary.

   o  The 0x0010 bit, if True, means "BSSP required".

   o  The 0x0020 bit, if True, means "BIBE required".

   o  The 0x0040 bit, if True, means "(BIBE) Custody Transfer required".

   o  Bits 0x0080 through 0x2000 are reserved for future use.  For the
      purpose of this specification, they are set to 0 on transmission
      and ignored on recepition (future specifications may define new
      settings and interpretations).

   o  Bits 0x4000 and 0x8000 are reserved as Congestion Experienced (CE)
      indications.  For the purpose of this specification, they are set
      to 0 on transmission and ignored on recepition (future
      specifications may define new settings and interpretations).

   Note that both the 0x0002 and 0x0008 bits might be set for a given
   bundle.  This indicates an explicit preference that delivery of the
   bundle be timely and in-order if possible but in any case assured, as
   in a bundle streaming service: whenever loss is detected in "best-



Burleigh & Templin      Expires November 6, 2021                [Page 4]


Internet-Draft                    ECOS                          May 2021


   effort" transmission, the lost data are retransmitted for eventual
   out-of-order delivery in background.

   The Flags field is followed by an 8-bit Priority field with the most
   significant 2 bits containing a Service Class value as follows:

   o  00 = bulk

   o  01 = normal

   o  10 = expedited

   o  11 is reserved for future use.

   The remaining 6 bits of the Priority field encode an unsigned Ordinal
   Number value in the range 0-63.  For a bundle whose Service Class is
   2 ("expedited"), the Ordinal Number indicates the relative priority
   of this bundle among all other expedited bundles: Ordinal Number
   value 63 indicates greater urgency than value 62, and so on.  For a
   bundle whose Service Class is not 2, the Ordinal Number value has no
   significance.

   If the 0x0004 bit of the Flags field is True, the third field of the
   block data is a numeric QoS Tag value.  The significance of the QoS
   Tag is an implementation matter.  Notionally, the QoS Tag is intended
   to be used to convey quality-of-service information to the
   convergence-layer protocol adapter.  The bundle protocol agent's
   response to a QoS Tag whose significance is unknown is an
   implementation matter.

3.  Processing

3.1.  Bundle Origination

   At the time a bundle is sourced it MAY contain one ECOS block.  When
   a bundle contains an ECOS block, the ECOS block MUST precede the
   payload block and it MUST be the only ECOS block in the bundle.

   The manner in which the application issuing the block communicates
   the values of the ECOS block data fields to the bundle protocol agent
   is an implementation matter.

   If the ECOS block contains a QoS Tag field, then the 0x0004 bit of
   the block's Flags field MUST be set to 1 (True) and the QoS Tag MUST
   be a numeric value.  Otherwise the 0x0004 bit of the block's Flags
   field MUST be set to 0 (False) and the QoS Tag field is omitted.





Burleigh & Templin      Expires November 6, 2021                [Page 5]


Internet-Draft                    ECOS                          May 2021


   The Priority field of the ECOS block MUST contain a 2-bit Service
   Class value followed by a 6-bit Ordinal Number unsigned integer in
   the range 0-63.

3.2.  Bundle Forwarding

   This section applies only to nodes at which procedures for processing
   ECOS blocks are implemented.  When a node at which such procedures
   are not implemented receives a bundle that contains one or more ECOS
   blocks, those blocks must be processed as prescribed in the Bundle
   Protocol specification.

   When a received bundle contains multiple ECOS blocks or contains a
   single ECOS block that is invalid (that is, one that violates one or
   more of the provisions of section 3.1 above), all ECOS blocks in the
   bundle MUST be ignored and SHOULD be deleted.

   At the time a bundle that has no valid single ECOS block is received
   from a neighboring node, the bundle protocol agent MAY insert an ECOS
   block into the bundle.  The values of the block data fields of such
   an ECOS block are an implementation matter, provided that they
   conform to this specification.

   The forwarding of a bundle that contains a valid ECOS block, whether
   locally sourced or received from another bundle protocol agent or
   locally inserted upon reception from another bundle protocol agent,
   MUST comply with the following rules:

   1.  If the 0x0001 bit of the ECOS block's Flags field is set to 1,
       then exactly one copy of the bundle SHOULD be forwarded to every
       neighboring node that has some plausible prospect of being able
       to forward the bundle toward its final destination without
       returning it to the local node, a determination that is a matter
       left to the bundle protocol agent's route computation mechanism;
       also, the bundle MUST be queued for transmission as if its
       Service Class were 2 ("expedited") and its Ordinal Value were 63,
       regardless of the actual values of these fields.  Each "critical"
       bundle MUST be forwarded *at most once* by each bundle protocol
       agent; that is, critical bundles MUST NOT be reforwarded in
       response to custody refusals, the expiration of custody transfer
       timers, the presence of a routing loop in the network, or any
       other condition, because such reforwarding could result in
       unbounded bundle transmission explosions.  The manner in which
       this constraint is enforced is an implementation matter.  One
       possible approach is to manage a list of the IDs and expiration
       times of all critical bundles received, removing bundles from the
       list only as the associated expiration times are reached; since
       "critical" bundles should be issued rarely, managing such a list



Burleigh & Templin      Expires November 6, 2021                [Page 6]


Internet-Draft                    ECOS                          May 2021


       should not be a severe processing burden.  Note that a bundle
       protocol agent MAY choose to handle a critical bundle as non-
       critical traffic and forward it on only a single path, but
       ignoring the "critical" flag may put network assets as risk and
       should be avoided unless necessary to preserve the continued
       operation of the bundle protocol agent.

   2.  If the 0x0002 bit of the ECOS block's Flags field is set to 1,
       then the bundle protocol agent SHOULD forward the bundle by
       invoking an adapter for a convergence layer protocol that does
       NOT perform retransmission of data lost in transit.  If the
       bundle protocol agent has no access to such a convergence layer
       adapter then this flag may be ignored, but in that case
       application data units may arrive out of transmission order at
       the destination (possibly degrading application performance) and/
       or transmission bandwidth may be wasted on unnecessary
       retransmission, reducing the effective throughput of the network.

   3.  If the 0x0008 bit of the ECOS block's Flags field is set to 1,
       then the bundle protocol agent SHOULD forward the bundle by
       invoking an adapter for a convergence layer protocol that DOES
       perform retransmission of data lost in transit.  If the bundle
       protocol agent has no access to such a convergence layer adapter
       then this flag may be ignored, but in that case application data
       units may not arrive at the destination, possibly degrading
       application performance.

   4.  If both the 0x0002 bit and the 0x0008 bit of the ECOS block's
       Flags field are set to 1, then the bundle protocol agent SHOULD
       forward the bundle by invoking an adapter for a convergence layer
       protocol that functions as a bundle streaming service: whenever
       loss is detected in "best-efforts" transmission, the lost data
       are retransmitted for eventual out-of-order delivery in
       background.  If the bundle protocol agent has no access to such a
       convergence layer adapter then this flag may be ignored, but in
       that case application performance may be degraded.

   5.  If the bundle's Service Class is 2 (expedited), then the bundle
       protocol agent MUST forward this bundle only after forwarding all
       other bundles that are to be forwarded to the same node with
       Service Class 2 and have explicit or implicit ordinal value that
       is higher than or equal to the ECOS block's ordinal value.
       Moreover, the bundle protocol agent MUST forward this bundle
       before forwarding any other bundle that is to be forwarded to the
       same node and either (a) has Service Class 2 and an explicit or
       implicit ordinal value lower than the ECOS block's Ordinal Number
       field or (b) has Service Class less than 2.  An implicit ordinal




Burleigh & Templin      Expires November 6, 2021                [Page 7]


Internet-Draft                    ECOS                          May 2021


       value is the value for a bundle that has no valid ECOS block;
       that value is 0.

   The valid ECOS block of a received bundle that is to be forwarded to
   another node MUST NOT be deleted from the bundle.

3.3.  Bundle Delivery

   When a bundle that contains an ECOS block is delivered to its final
   destination, the values of ECOS block fields MAY be provided to the
   application but otherwise have no impact on bundle delivery
   procedures.

4.  IANA Considerations

   The IANA is requested to allocate a codepoint TBD for the Extended
   Class of Service (ECOS) block in the Bundle Block Type registry
   defined in [I-D.ietf-dtn-bpbis] and with reference to this
   specification.  The registration should appear as follows:

      +----------+-------+-----------------------------+---------------+

      | Bundle   | Value | Description                 | Reference     |

      | Protocol |       |                             |               |

      | Version  |       |                             |               |

      +----------+-------+-----------------------------+---------------+

      |     7    |   TBD | Extended Class of Service   | [RFCXXXX]     |

5.  Security Considerations

   Clearly the injection of bundles with the "critical" flag set to True
   could increase the impact of a denial of service attack.  As with all
   such attacks, the best available defense is to require the use of
   BPsec [I-D.ietf-dtn-bpsec] on all received bundles.

6.  Normative References

   [I-D.ietf-dtn-bpbis]
              Burleigh, S., Fall, K., and E. J. Birrane, "Bundle
              Protocol Version 7", draft-ietf-dtn-bpbis-31 (work in
              progress), January 2021.






Burleigh & Templin      Expires November 6, 2021                [Page 8]


Internet-Draft                    ECOS                          May 2021


   [I-D.ietf-dtn-bpsec]
              III, E. J. B. and K. McKeever, "Bundle Protocol Security
              Specification", draft-ietf-dtn-bpsec-27 (work in
              progress), February 2021.

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

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <https://www.rfc-editor.org/info/rfc3986>.

   [RFC5050]  Scott, K. and S. Burleigh, "Bundle Protocol
              Specification", RFC 5050, DOI 10.17487/RFC5050, November
              2007, <https://www.rfc-editor.org/info/rfc5050>.

Appendix A.  Congestion Experienced

   Section 2 of this specification reserves two ECOS flag bits as
   Congestion Experienced (CE) indications and mandates their values be
   set to 0.  Further study on whether BPv7 would benefit from CE
   indications can therefore be conducted in parallel with the
   progression of this specification.

Authors' Addresses

   Scott Burleigh
   JPL, Calif. Inst. of Technology
   4800 Oak Grove Drive, m/s 301-490
   Pasadena, CA  91109
   USA

   Phone: +1 818 393 3353
   Email: Scott.C.Burleigh@jpl.nasa.gov


   Fred Templin
   The Boeing Company
   P.O. Box 3707
   Seattle, WA  98124
   USA

   Phone: +1 425 802-9039
   Email: fltemplin@acm.org




Burleigh & Templin      Expires November 6, 2021                [Page 9]