Internet DRAFT - draft-sipos-dtn-bpv7-cla-services

draft-sipos-dtn-bpv7-cla-services







Delay-Tolerant Networking                                       B. Sipos
Internet-Draft                                                   JHU/APL
Intended status: Informational                           17 October 2022
Expires: 20 April 2023


      Bundle Protocol Expected Convergence Layer Adapter Services
                  draft-sipos-dtn-bpv7-cla-services-00

Abstract

   This document attempts to harmonize the services expected of a
   Convergence Layer Adapter (CLA) by an overlaying Bundle Protocol
   Agent (BPA).  This harmonization is based on combining the various
   existing CLA behaviors into a set of minimum expected service
   interfaces.

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 20 April 2023.

Copyright Notice

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




Sipos                     Expires 20 April 2023                 [Page 1]

Internet-Draft              BPv7 CLA Services               October 2022


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Scope . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Convergence Layer Aspects . . . . . . . . . . . . . . . . . .   4
   3.  Convergence Layer Adapter Services  . . . . . . . . . . . . .   5
     3.1.  Bundle Transmission . . . . . . . . . . . . . . . . . . .   5
     3.2.  Bundle Reception  . . . . . . . . . . . . . . . . . . . .   9
     3.3.  Persistent Session Keeping  . . . . . . . . . . . . . . .  11
     3.4.  Passive Listening . . . . . . . . . . . . . . . . . . . .  14
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  15
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .  15
     6.2.  Informative References  . . . . . . . . . . . . . . . . .  16
   Appendix A.  Applicability to Existing Convergence Layers . . . .  17
     A.1.  UDPCL . . . . . . . . . . . . . . . . . . . . . . . . . .  17
     A.2.  TCPCL . . . . . . . . . . . . . . . . . . . . . . . . . .  18
     A.3.  LTPCL . . . . . . . . . . . . . . . . . . . . . . . . . .  19
     A.4.  BIBE  . . . . . . . . . . . . . . . . . . . . . . . . . .  19
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  19
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  19

1.  Introduction

   Before this document, each convergence layer (CL) definition included
   (or implied) its own set of specific services and primitives that
   would be supported by an associated convergence layer adapter (CLA).
   From the perspective of capabilities and behaviors of an individual
   CLA this is sensible, but from the perspective of the Bundle Protocol
   Agent (BPA) this lack of consistency in both capability and naming
   makes the logical interface between BPA and its CLAs difficult to
   manage and in many cases implementation dependent (both in capability
   and in terminology).

   The task of this document is thus to harmonize the CLA interface into
   a set of distinct and consistently named services, each composed of
   primitives inspired by the ISO naming convention of "request" meaning
   a service user intending to invoke an activity on the service
   provider and "indication" meaning the service provider giving status
   of an activity to a service user.

   Because the wide variety of transport mechanisms used across the
   various CLs and their differing aspects (see Section 2) many of the
   requests or indications do not apply and are not used or usable by
   any particular CLA (see Appendix A for some examples).




Sipos                     Expires 20 April 2023                 [Page 2]

Internet-Draft              BPv7 CLA Services               October 2022


1.1.  Scope

   This document is based on existing CLs which transport over UDP
   [RFC7122] [CCSDS-BP], TCP [RFC9174], LTP/UDP [RFC5326] [RFC7122], and
   BIBE [I-D.ietf-dtn-bibect].

   This document does not specify any additional services needed of
   existing CL specifications.  In cases where existing CLs deviate from
   these service definitions it represents a possible future enhancement
   to the CL to harmonize it with these idealized services.

1.2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   The following are definitions necessary to understand the services
   and functions in this document.

   Bundle Protocol:  The definition of the data contained in bundles and
      the encoding of that data.

   Bundle Protocol Agent:  The entity which performs the functions of
      the bundle protocol.

   Convergence Layer:  The definition of how an encoded bundle can be
      transferred over a particular underlying transport.

   Convergence Layer Adapter:  The entity which performs the functions
      of a specific convergence layer.

   Transfer:  The activity of one CLA transmitting and some number of
      CLAs receiving a bundle.

   Transmission:  A transfer from the perspective of the transmitting
      CLA.

   Transmission ID:  A unique identifier for a specific Bundle
      Transmission service instance.

   Reception:  A transfer from the perspective of the receiving CLA.

   Reception ID:  A unique identifier for a specific Bundle Reception
      service instance.




Sipos                     Expires 20 April 2023                 [Page 3]

Internet-Draft              BPv7 CLA Services               October 2022


   Session:  A persistent connection of a transport along with
      additional CLA state related to that connection.

   Session ID:  A unique identifier for a specific Persistent Session
      Keeping service instance.

2.  Convergence Layer Aspects

   This section attempts to categorize existing CLs by a few different
   critical aspects of their behavior.  This expands on the general
   terminology of Section 1.2 with definitions specific to those
   aspects.

   There is currently no concept of a "streaming" CL.  All CLAs must
   operate with bundles as their service data unit (SDU) so must behave
   as a datagram service to the BPA.  In the case where the underlying
   transport is an octet stream (_e.g._, the TCPCL using TCP) the CL
   itself must encapsulate the encoded bundles into the transport
   stream.

   Reliable or Unreliable  The reliability of a CL is determined by
      whether or not the CLA transmitting a bundle has a positive
      indication of the reception of the bundle above the transport
      itself.  For example, it is not enough for TCP to acknowledge that
      the TCP/IP stack has received the segment; the CLA MUST have
      feedback from the receiving BPA that the bundle has progressed all
      the way "into the receiving node."

   Atomic or Segmented  Although the reliability of a CL is at the level
      of the entire bundle, some CLs also provide segmentation of the
      bundle data in order to provide additional capabilities such as
      selective retransmission, intermediate progress, or interleaving
      of transfers on the same stream.  In the absence of segmentation a
      CL performs its transfers atomically; either all or nothing.

   Connection-oriented or Connectionless  Some CLs operate over
      transports that require establishment of connections before
      transfers can be made, while other CLs operate on connectionless
      transports which can transfer datagrams unsolicited.  In some
      cases a security association can necessitate a connection-like
      shared state between peers.  Even for connectionless transports
      there can be recommendations about "conversation" state keeping to
      allow the transport to operate consistently through middleboxes.

   Unicast or Multicast  At the network level, some CLs can only operate
      properly with a unicast next-hop destination.  For many reliable
      transports, this is a natural limitation of the protocol.  Other
      transports can operate with multicast (or broadcast) destinations



Sipos                     Expires 20 April 2023                 [Page 4]

Internet-Draft              BPv7 CLA Services               October 2022


      either because they are not reliable (_e.g._, UDP or LTP green-
      part) or because they use a multicast-aware retransmission scheme
      (_e.g._, NORM [RFC5740]).

   Size Limitations  The BPv7 specification [RFC9171] does not impose an
      upper-bound on either the size of the payload data or the size of
      the overall encoded bundle.  Despite this, some CLs have a natural
      upper bound on the size of bundle which can be transferred.  In
      other cases, a profile of the CL can reduce the effective upper
      bound of bundle size.

      While the LTPCL and TCPCL technically allow a 64-bit transfer
      size, the UDPCL by its nature is limited to 64KiB on IPv4 and only
      in certain circumstances can be enlarged on IPv6 jumbograms
      Section 4 of [RFC2675].  Large datagram sizes however will run
      into path MTU and fragmentation issues [RFC8900].

3.  Convergence Layer Adapter Services

   Each of the following subsections defines an independent service
   provided by a CLA to a BPA.  Depending on the mechanics of the
   specific CLA, not all of the requests or indications listed here will
   be meaningful or used.

3.1.  Bundle Transmission

   The principal purpose of any CLA is to allow a BPA to transmit bundle
   data to a peer node's BPA.  Because of this, all CLAs SHALL support
   the Bundle Transmission service.

   Each transmission is a time-bounded activity to transfer a bundle
   from the local CLA to a peer CLA.  Transmissions are always initiated
   by the local BPA, and it is out of scope of this document to
   determine when a bundle is ready for transmission over a particular
   CLA to a particular peer.

   Each transmission is identified by a CLA-defined transmission ID
   which is unique within the context of a single BPA--CLA association.
   The bundle identity is not a sufficient transmission ID because a CLA
   can request duplicated transmissions (across time or simultaneously)
   of the same bundle from the same CLA.










Sipos                     Expires 20 April 2023                 [Page 5]

Internet-Draft              BPv7 CLA Services               October 2022


                    +---------------+              error
                    |     Begin     +------------+ before
                    |  Transmission |            v start
                    |    Request    |    +---------------+
                    +-------+-------+    |  Transmission |
                            |            |    Failure    |
                            v            |   Indication  |
                    +---------------+    +---------------+
                    |  Transmission |            ^
                 +--+    Started    |            | error
                 |  |   Indication  +------------+ after
                 |  +-------+-------+            | start
                 |          |                    |
                 |          v                    |
                 |  +---------------+            |
                 |  |  Transmission |            |
                 |  |    Progress   +------------+
                 |  |   Indication  |            |
                 |  +-------+-------+    +-------+-------+
                 |          |            |   Interrupt   |
                 |          v            |> Transmission |
                 |  +---------------+    |    Request    |
                 |  |  Transmission |    +---------------+
                 +->|    Success    |
                    |   Indication  |
                    +---------------+

              Figure 1: Activity flow for Bundle Transmission

   The primitives associated with this service are in the following
   subsections.

3.1.1.  Begin Transmission

   The BPA requests transfer of an individual encoded bundle with
   parameters indicating to what CLA peer the transmission is destined.
   Any queueing of transmissions is the obligation of the BPA, as soon
   as the request is made to the CLA the transmission MAY begin.

   Each transmission SHALL include an absolute time deadline based on at
   least the bundle lifetime.  The BPA MAY expand or reduce the deadline
   based on other factors including: the bundle size, the expected or
   estimated network throughput and loss rate, the expected or estimated
   one-way light time (OWLT) to and from the peer.

   Parameters to this request include:

   Bundle data:  The bundle encoded as an octet string to be



Sipos                     Expires 20 April 2023                 [Page 6]

Internet-Draft              BPv7 CLA Services               October 2022


      transmitted.

   Peer transport parameters:  Network and transport parameters
      necessary to either identify an existing peer connection (if
      applicable) or begin transport of the bundle.

   Transfer deadline:  The amount of time, from the request, for which
      is acceptable for the CLA to operate before either Success or
      Failure.

   Security Needs:  Along with the bundle data itself, the BPA provides
      requirements about the transport security such as: the required
      identity of the peer, requirement for authentication, if the
      transport must be confidential or integrity-checked, _etc._

      Many of the needs are optional rather than purely boolean in that
      some aspects of security can be labeled as "don't care" to allow
      opportunistic security [RFC7435].

   The result of this request SHALL be a unique transmission ID used to
   correlate later interactions with the request.

   Following this request exactly one of the following SHALL be
   indicated: Transmission Started, if the transmission is in fact
   started, or Transmission Failure if the CLA cannot accommodate the
   request for whatever reason.

3.1.2.  Transmission Started

   Even for unreliable transports, the CLA indicates to the BPA when the
   transmission is actually started.  Because of contention for
   resources (_e.g._, socket writes or rate-limiting tokens) the actual
   start of transmission can be delayed from the request to begin
   transmission.

   Parameters to this indication include:

   Transmission ID:  The correlator for the bundle transmission.

3.1.3.  Transmission Progress

   Not all CLAs will support the notion of a segmented transfer.  For
   those that do, this indication provides information to the BPA about
   how far along a transmission has progressed since the start.  If a
   transmission is completed in a single unit, either the whole data
   atomically or as a single segment, this indication SHALL NOT be
   provided.  The size in this indication SHALL be relative to the
   bundle data being transmitted and not include any segmentation or



Sipos                     Expires 20 April 2023                 [Page 7]

Internet-Draft              BPv7 CLA Services               October 2022


   transport overhead.  When the CLA is reliable, this indication SHALL
   include only peer acknowledged progress.

   Parameters to this indication include:

   Transmission ID:  The correlator for the bundle transmission.

   Current size:  The accumulated data size sent so far.

3.1.4.  Transmission Success

   This indication concludes a transmission and informs the BPA that it
   was a success.  An unreliable CL will always indicate success upon
   completion.  When the CLA is reliable, this indication SHALL include
   only peer acknowledged progress.

   Parameters to this indication include:

   Transmission ID:  The correlator for the bundle transmission.

   Security Metadata:  Along with the bundle data itself, the CLA
      provides metadata about the transport security such as: the
      identity of the peer, whether or not it was authenticated, if the
      transport is confidential or integrity-checked, _etc._

3.1.5.  Transmission Failure

   This indication concludes a transmission and informs the BPA that a
   failure occurred.  The reason for the failure is CL-dependent and MAY
   be absent if a CL has non-specific failures.

   Parameters to this indication include:

   Transmission ID:  The correlator for the bundle transmission.

   Reason:  An optional reason for why the transmission failed.

3.1.6.  Interrupt Transmission

   This request provides a way for the BPA to cancel transmission any
   time after it is started and before its deadline has expired.

   Parameters to this request include:

   Transmission ID:  The correlator for the bundle transmission.

   Following this request the Transmission Failure MAY be indicated if
   the interruption applied before the transmission finished.



Sipos                     Expires 20 April 2023                 [Page 8]

Internet-Draft              BPv7 CLA Services               October 2022


3.2.  Bundle Reception

   A necessary part of any CLA is the ability to receive from peer nodes
   BPA in an asynchronous manner.  Because of this, all CLAs SHALL
   support the Bundle Reception service.

   Each reception is a time-bounded activity to transfer a bundle from a
   peer CLA to the local CLA.  Receptions are always initiated by a peer
   CLA, so the start of a reception is an indication.  Before a
   reception can be started the local CLA needs to either be in an
   established session (where applicable, see Section 3.3) or listening
   for datagrams (where applicable, see Section 3.4).

   Each reception is identified by a CLA-defined reception ID which is
   unique within the context of a single BPA--CLA association.  The
   bundle identity is not a sufficient reception ID because a CLA can
   receive duplicated transmissions (across time or simultaneously) of
   the same bundle and also the reception ID is needed before any bundle
   primary block data is received.

                    +---------------+
                    |    Passive    |
                    |   Listening   |    +---------------+
                    +-------+-------+    |   Reception   |
                            |            |    Failure    |
                            v            |   Indication  |
                    +---------------+    +---------------+
                    |   Reception   |            ^
                 +--+    Started    |            |
                 |  |   Indication  +------------+
                 |  +-------+-------+            |
                 |          |                    |
                 |          v                    |
                 |  +---------------+            |
                 |  |   Reception   |            |
                 |  |    Progress   +------------+
                 |  |   Indication  |            |
                 |  +-------+-------+    +-------+-------+
                 |          |            |   Interrupt   |
                 |          v            |>  Reception   |
                 |  +---------------+    |    Request    |
                 |  |   Reception   |    +---------------+
                 +->|    Success    |
                    |   Indication  |
                    +---------------+

                Figure 2: Activity flow for Bundle Reception




Sipos                     Expires 20 April 2023                 [Page 9]

Internet-Draft              BPv7 CLA Services               October 2022


   The primitives associated with this service are in the following
   subsections.

3.2.1.  Reception Started

   The CLA indicates to the BPA when a reception is started.

   Parameters to this indication include:

   Reception ID:  The correlator for the bundle reception.

   Peer transport parameters:  Network and transport parameters
      necessary to identify the peer sending the bundle.

   Total size:  An optional expected size of the bundle data.

3.2.2.  Reception Progress

   Not all CLs will support the notion of a segmented transfer.  For
   those that do, this indication provides information to the BPA about
   how far along a reception has progressed since the start.  If a
   reception is completed in a single unit, either the whole data
   atomically or as a single segment, this indication SHALL NOT be
   provided.  The size in this indication SHALL be relative to the
   bundle data being transmitted and not include any segmentation or
   transport overhead.  When the CL is reliable, this indication SHALL
   include only peer acknowledged progress.

   Parameters to this indication include:

   Reception ID:  The correlator for the bundle reception.

   Current size:  The accumulated data size received so far.  This size
      does not necessarily need to be contiguous or at the head of the
      bundle data.

   Current data head:  An optional chunk of contiguous data at the head
      of the total bundle data.  For CLs that can receive data out-of-
      order this MAY be absent even when the current size is non-zero.

3.2.3.  Reception Success

   This indication concludes a reception and informs the BPA that it was
   a success as well as providing the actual bundle data received.

   Parameters to this indication include:

   Reception ID:  The correlator for the bundle reception.



Sipos                     Expires 20 April 2023                [Page 10]

Internet-Draft              BPv7 CLA Services               October 2022


   Bundle data:  The received bundle encoded as an octet string.

   Security Metadata:  Along with the bundle data itself, the CLA
      provides metadata about the transport security such as: the
      identity of the peer, whether or not it was authenticated, if the
      transport is confidential or integrity-checked, _etc._

3.2.4.  Reception Failure

   This indication concludes a reception and informs the BPA that a
   failure occurred.  The reason for the failure is CL-dependent and MAY
   be absent if a CL has non-specific failures.

   Parameters to this indication include:

   Reception ID:  The correlator for the bundle reception.

   Reason:  An optional reason for why the reception failed.

3.2.5.  Interrupt Reception

   This request provides a way for the BPA to refuse reception any time
   after it is started.

   If a CLA indicates current data head in its Reception Progress
   indication, this can be used to inspect the bundle's primary block
   before a large payload is received and preemptively refuse the bundle
   to save time and network volume.

   Parameters to this request include:

   Reception ID:  The correlator for the bundle reception.

   Following this request the Reception Failure MAY be indicated if the
   interruption applied before the reception finished.

3.3.  Persistent Session Keeping

   An optional service provided by connection-oriented CLs, such as the
   TCPCL of [RFC9174], is the ability to establish a session with a peer
   node before any bundles need to be sent to that peer.  The
   distinction between a connection and session is that the connection
   is a service provided by the underlying transport while the session
   is a service of the convergence layer itself.  Additionally, sessions
   can include a security association between peers which can amortize
   much of the processing time associated with authenticating and
   authorizing a peer connection.




Sipos                     Expires 20 April 2023                [Page 11]

Internet-Draft              BPv7 CLA Services               October 2022


   Sessions MAY be initiated by the local CLA or as a response to
   passive listening by the local CLA to peer initiations.  In either
   case, the Session State Changed indication is produced by the CLA as
   the sessions progress through to an established (or a failed or
   terminated) state.

   Whether or not a CLA requires a session to perform the actual
   transfer of bundles does not affect the way in which the bundle-data-
   focused services in Section 3.1 and Section 3.2 operate.  A CLA which
   uses sessions SHOULD transparently create a sessions as needed to
   perform a Bundle Transmission; the Transmission Started indication
   would just be delayed until after the session is established and
   ready for use.  In the case where a session can not be established in
   a timely manner, the Transmission Failure indication would be used to
   inform the BPA that the bundle was not able to be sent.

   In order to fit this service model, CLAs SHALL include pseudo-states
   which are associated with the session ending.  Doing so avoids the
   need for a separate "session ended" indication.

                   +---------------+
                   |    Attempt    |   +---------------+
                   |>   Session    |   |    Passive    |
                   |    Request    |   |   Listening   |
                   +-------+-------+   +-------+-------+
                           |                   |
                           +---------+---------+
                                     |
                                     v
                             +---------------+
                             | Session State |
                             |    Changed    |<-+
                             |   Indication  |  |
                             +-------+-------+  |
                                     |          |
                                     +----------+
                                                |
                             +---------------+  |
                             |   Terminate   |  |
                             |>   Session    +--+
                             |    Request    |
                             +---------------+

                Figure 3: Activity flow for session keeping

   The primitives associated with this service are in the following
   subsections.




Sipos                     Expires 20 April 2023                [Page 12]

Internet-Draft              BPv7 CLA Services               October 2022


3.3.1.  Attempt Session

   This request allows the local BPA to initiate a session with a peer.
   The attempt to create a session will not necessarily result in a
   session eventually having an established state with the desired peer.
   Configuration of the local or peer BPA can result in a session not
   being able to become established.

   Parameters to this request include:

   Peer transport parameters:  Network and transport parameters
      necessary to identify the connection.

   The result of this request SHALL be a unique session ID used to
   correlate later interactions with the session.  The peer transport
   parameters are not a sufficient session identifier because a CLA can
   request and/or establish multiple sessions with the same peer.

3.3.2.  Terminate Session

   This request allows the BPA to preemptively terminate a session with
   a peer.  In the case where a CLA allows a clean termination procedure
   that will avoid transmission or reception failures, it is better to
   terminate than to simply stop the CLA.

   Parameters to this request include:

   Session ID:  The correlator for the session.

3.3.3.  Session State Changed

   The CLA indicates to the BPA when the state of a session changes in a
   way that would be visible to the BPA.  The available states are
   specific to the CLA but can include pre-established handshaking
   states and pre-termination cleanup states.

   Parameters to this indication include:

   Session ID:  The correlator for the session.

   Peer transport parameters:  Network and transport parameters
      necessary to identify the connection.

   New state:  The new state associated with the identified session.







Sipos                     Expires 20 April 2023                [Page 13]

Internet-Draft              BPv7 CLA Services               October 2022


3.3.4.  List Sessions

   This optional request allows a BPA to poll the status of existing
   connections to peer nodes.  This includes connections in which the
   local node was the active entity (_i.e._, the client) and in which
   the local node was the passive entity (_i.e._, the server).

   The result of this request is list of session summaries, each
   containing:

   *  Session ID
   *  Peer parameters
   *  Session state

3.4.  Passive Listening

   In order to support the Bundle Reception service of Section 3.2 and/
   or the Persistent Session service of Section 3.3, a BPA must
   passively listen for network datagrams or connection attempts in
   accordance with the CL specifics.  Because of this, all CLAs SHALL
   support the Passive Listening service.

      |  Just because this is mandatory to implement, does not mean that
      |  any particular instances of the CLA need to use this service.
      |  In the case of a connection-oriented CLA (_i.e._, implementing
      |  the TCPCL) on one side of a firewall or NAT with restrictive
      |  access policies in place, it would not be meaningful to listen
      |  because the outside network cannot access that transport.  In
      |  that case, the CLA can still transmit and receive bundles via
      |  an actively initiated persistent connection.  For other,
      |  connectionless CLA (_i.e._, implementing the LTPCL) it is
      |  always necessary to passively listen in order to perform the
      |  session/stream/transfer demultiplexing in the CLA.

   The primitives associated with this service are in the following
   subsections.

3.4.1.  Begin Listening

   This request informs the CLA when it is to begin passive listening on
   a transport.  Because a single CLA would either not be able to listen
   concurrently with the same parameters, or not logically gain anything
   by doing so, there is no concept here of a listening identifier; the
   transport parameters used to listen _are_ the identifier.

   Parameters to this request include:

   Transport parameters:  Network and transport parameters necessary to



Sipos                     Expires 20 April 2023                [Page 14]

Internet-Draft              BPv7 CLA Services               October 2022


      enable the BPA to listen for datagrams or connection requests.

   The result of this request SHALL be an indication of whether or not
   the request succeeded.  There are many reasons why a set of
   parameters will not be able to listened for, including local network
   address assignments or other processes on the same host using the
   same transport parameters for listening.

3.4.2.  End Listening

   This request informs the CLA when it is to end passive listening on a
   transport.  This request SHALL be coupled with an earlier Begin
   Listening request, as there is no concept of ending listening before
   beginning.

   Parameters to this request include:

   Transport parameters:  Network and transport parameters identical to
      a Begin Listening request.

4.  Security Considerations

   This document does not define any requirements or structures which
   introduce new security considerations.  All of the security
   considerations of specific convergence layers following this service
   model are all still applicable, including activities that are _not_
   covered by this model.

   The parameters available as "Security Needs" in Begin Transmission or
   as "Security Metadata" in Reception Success are specific to the
   combination of the security capabilities of a CL and the security
   policy configured on a CLA.

5.  IANA Considerations

   This document does not affect any IANA registries.

6.  References

6.1.  Normative References

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






Sipos                     Expires 20 April 2023                [Page 15]

Internet-Draft              BPv7 CLA Services               October 2022


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

6.2.  Informative References

   [CCSDS-BP] Consultative Committee for Space Data Systems, "CCSDS
              Bundle Protocol Specification", CCSDS 734.2-B-1, September
              2015, <https://public.ccsds.org/Pubs/734x2b1.pdf>.

   [RFC2675]  Borman, D., Deering, S., and R. Hinden, "IPv6 Jumbograms",
              RFC 2675, DOI 10.17487/RFC2675, August 1999,
              <https://www.rfc-editor.org/info/rfc2675>.

   [RFC5326]  Ramadas, M., Burleigh, S., and S. Farrell, "Licklider
              Transmission Protocol - Specification", RFC 5326,
              DOI 10.17487/RFC5326, September 2008,
              <https://www.rfc-editor.org/info/rfc5326>.

   [RFC5740]  Adamson, B., Bormann, C., Handley, M., and J. Macker,
              "NACK-Oriented Reliable Multicast (NORM) Transport
              Protocol", RFC 5740, DOI 10.17487/RFC5740, November 2009,
              <https://www.rfc-editor.org/info/rfc5740>.

   [RFC7122]  Kruse, H., Jero, S., and S. Ostermann, "Datagram
              Convergence Layers for the Delay- and Disruption-Tolerant
              Networking (DTN) Bundle Protocol and Licklider
              Transmission Protocol (LTP)", RFC 7122,
              DOI 10.17487/RFC7122, March 2014,
              <https://www.rfc-editor.org/info/rfc7122>.

   [RFC7242]  Demmer, M., Ott, J., and S. Perreault, "Delay-Tolerant
              Networking TCP Convergence-Layer Protocol", RFC 7242,
              DOI 10.17487/RFC7242, June 2014,
              <https://www.rfc-editor.org/info/rfc7242>.

   [RFC7435]  Dukhovni, V., "Opportunistic Security: Some Protection
              Most of the Time", RFC 7435, DOI 10.17487/RFC7435,
              December 2014, <https://www.rfc-editor.org/info/rfc7435>.

   [RFC8900]  Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O.,
              and F. Gont, "IP Fragmentation Considered Fragile",
              BCP 230, RFC 8900, DOI 10.17487/RFC8900, September 2020,
              <https://www.rfc-editor.org/info/rfc8900>.

   [RFC9171]  Burleigh, S., Fall, K., and E. Birrane, III, "Bundle
              Protocol Version 7", RFC 9171, DOI 10.17487/RFC9171,
              January 2022, <https://www.rfc-editor.org/info/rfc9171>.



Sipos                     Expires 20 April 2023                [Page 16]

Internet-Draft              BPv7 CLA Services               October 2022


   [RFC9174]  Sipos, B., Demmer, M., Ott, J., and S. Perreault, "Delay-
              Tolerant Networking TCP Convergence-Layer Protocol Version
              4", RFC 9174, DOI 10.17487/RFC9174, January 2022,
              <https://www.rfc-editor.org/info/rfc9174>.

   [I-D.ietf-dtn-bibect]
              Burleigh, S., "Bundle-in-Bundle Encapsulation", Work in
              Progress, Internet-Draft, draft-ietf-dtn-bibect-03, 18
              February 2020, <https://www.ietf.org/archive/id/draft-
              ietf-dtn-bibect-03.txt>.

   [I-D.sipos-dtn-udpcl]
              Sipos, B., "Delay-Tolerant Networking UDP Convergence
              Layer Protocol", Work in Progress, Internet-Draft, draft-
              sipos-dtn-udpcl-01, 26 March 2021,
              <https://www.ietf.org/archive/id/draft-sipos-dtn-udpcl-
              01.txt>.

Appendix A.  Applicability to Existing Convergence Layers

   This section explains how existing CLs relate to the idealized
   service model defined in this document.  In some cases a CL can
   simply omit optional and non-applicable parts of this model.  In
   other cases the CL can deviate from this model in meaningful ways,
   some by specification and some because of lack of specification of
   such detail in the CL definition.

A.1.  UDPCL

   There are two different "current" definitions of the UDPCL: one in
   Section 3.2.2 of [RFC7122] which is very vague on details of network
   addressing and port numbers, and another in Appendix B4 of [CCSDS-BP]
   which is more specific on some details but still ignores the effects
   of network middleboxes.

      |  The updates in [I-D.sipos-dtn-udpcl] are intended to address
      |  these unspecified behaviors in a way which is compatible with
      |  middlebox best practices.

   The UDPCL does not have any notion of a partial transmission or
   reception so no so will never indicate intermediate Transmission
   Progress or Reception Progress and has no ability to Interrupt
   Transmission or Interrupt Reception.  The UDPCL is unreliable so will
   never indicate Transmission Failure.  The UDPCL will never indicate
   Reception Started with a total size.

   The peer transport parameters for the UDPCL are a network host name
   or address and a UDP port number.



Sipos                     Expires 20 April 2023                [Page 17]

Internet-Draft              BPv7 CLA Services               October 2022


   The UDPCL does not have a concept of a persistent session, but
   implementations are encouraged to re-use source port numbers when
   transmitting to the same peer in order to be compatible with
   firewalls and other middleboxes.

A.2.  TCPCL

   Because they both share the same overall logic and workflow, this
   section applies to both the current TCPCL version 4 [RFC9174] and the
   earlier version 3 [RFC7242].

   Although the TCPCL provides a reliable transfer between transmitter
   CLA and receiver CLA, there is no current requirement that mandates
   the receiver sending a final XFER_ACK only after the BPA has fully
   processed it (i.e. it will be either delivered, forwarded, or deleted
   but not silently dropped).

   The TCPCL does not include a Begin Transmission deadline or the
   ability to interrupt a transmission.  There is an assumption in its
   operation that a single transfer will complete in a short enough time
   that it will be insignificant compared to a bundle's lifetime.  This
   is applicable for small bundles with long lifetimes, but can cause
   logical issues for large bundles and short lifetimes (relative to the
   network throughput).

   The TCPCL will only indicate Reception Started with a total size if
   the sender of the bundle provided a size in an optional mechanism.
   For TCPCLv3 this is a separate pre-transfer message and for TCPCLv4
   this is a transfer extension item.

   The peer transport parameters for the TCPCL are a network host name
   or address and a TCP port number.  A CLA SHOULD NOT make correlation
   assumptions between sessions to the same network host name or
   address.  Only a session-reported Node ID MAY be used by a to
   correlate between TCPCL sessions.

   The TCPCL has a concept of a persistent session which agrees with the
   service model of Section 3.3.  While the TCPCL definition is more
   focused on the mechanics of session keeping and transfers as distinct
   activities, this document treats session keeping as a subordinate
   activity to transmissions (_i.e._, a CLA is free to transparently
   reuse a session or establish a new session in support of a
   transmission request with the same transport parameters).








Sipos                     Expires 20 April 2023                [Page 18]

Internet-Draft              BPv7 CLA Services               October 2022


A.3.  LTPCL

   Current LTP implementations do not universally have the concept of a
   Begin Transmission deadline and the version zero specification in
   [RFC5326] [RFC7122] do not mention reasons why a client would cancel
   a transmitting session.  LTP has several types of internal segment-
   to-segment timers for reliable transport, but outside of an explicit
   transmission deadline a CLA provides no guarantee to the BPA about
   the aggregate effect of timer durations, backoff durations, OWLT
   assumptions or retry counts.

   The peer transport parameters for the LTPCL-over-UDP are a network
   host name or address and a UDP port number.  In some implementations,
   the peering logic is based on LTP Engine ID rather than transport
   parameters but ultimately there must be some mapping down to the
   transport parameters.

   Although LTP transfers are associated with an "LTP session" this is
   not a persistent session as defined by Section 3.3; LTP has no
   persistent sessions.

A.4.  BIBE

   The proposed bundle-in-bundle encapsulation (BIBE) service
   [I-D.ietf-dtn-bibect] acts as an administrative record type above the
   Administrative Entity [RFC9171] of a BPA as well as a CLA transport
   below a BPA.

   The proposed BIBE transport is atomic (any fragmentation of the
   encapsulating bundle is not considered to be part of the BIBE layer),
   so the BIBE will never indicate intermediate Transmission Progress or
   Reception Progress.  Also because of that any Transmission Failure
   will occur immediately after start (as the encapsulating bundle is
   assembled) and any Reception Failure will occur immediately after
   start (as the encapsulating bundle payload is decoded).

Acknowledgments


Author's Address

   Brian Sipos
   The Johns Hopkins University Applied Physics Laboratory
   11100 Johns Hopkins Rd.
   Laurel, MD 20723
   United States of America
   Email: brian.sipos+ietf@gmail.com




Sipos                     Expires 20 April 2023                [Page 19]