<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-taylor-dtn-btpu-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="BTPU">Bundle Transfer Protocol - Unidirectional</title>
    <seriesInfo name="Internet-Draft" value="draft-taylor-dtn-btpu-02"/>
    <author fullname="Rick Taylor">
      <organization>Aalyria Technologies</organization>
      <address>
        <email>rtaylor@aalyria.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="31"/>
    <area>INT</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>DTN</keyword>
    <keyword>BPv7</keyword>
    <keyword>Bundle Protocol</keyword>
    <abstract>
      <?line 72?>

<t>This document defines a protocol for the unidirectional transfer of large binary objects, typically Bundle Protocol version 7 bundles, between two nodes connected by a unidirectional, unreliable, frame-based link-layer protocol, without requiring IP services.</t>
      <t>The protocol does not require a return path for acknowledgements, but instead supports data repetition as a mechanism to protect against data loss.  It fully supports the disaggregation of flows of bundles of different priority, preventing head-of-line blocking impacting performance.</t>
      <t>The binary wire format of the protocol is designed to enable performant implementation in hardware or software, with the aim of enabling protocol implementations to run at the line-rate of the underlying link-layer protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ricktaylor.github.io/btpu/draft-taylor-dtn-btpu.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-taylor-dtn-btpu/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Delay/Disruption Tolerant Networking Working Group mailing list (<eref target="mailto:dtn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dtn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dtn/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ricktaylor/btpu"/>.</t>
    </note>
  </front>
  <middle>
    <?line 80?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Bundle Protocol version 7 (BPv7) is defined in terms a layered logical architecture, detailed in <xref target="RFC9171"/>, wherein the responsibility for the storing and routing of bundles lies with the Bundle Processing Agent (BPA), and the BPA relies upon Convergence Layer Protocols (CLAs) to provide bundle transport between nodes. CLAs provide a unified interface to the BPA, allowing BPAs to be link-layer agnostic, but still use a diverse range of Convergence Layer Protocols to transfer bundles between BPAs over underlying link-layer protocols.</t>
      <t>In the realm of near- and deep-space communication there are a number of standardized link-layer protocols, including <xref target="USLP"/>, <xref target="TM"/>, <xref target="AOS"/>, <xref target="DVB-S2X"/>, that share a set of common properties:</t>
      <ul spacing="normal">
        <li>
          <t>They are unidirectional: data transfer occurs in one direction only, there is no in-band return path for data.</t>
        </li>
        <li>
          <t>They are frame-based: the link-layer protocol will guarantee that a frame of data is either delivered to a receiver in its entirety or not at all. Frames may be of fixed or variable length.</t>
        </li>
        <li>
          <t>They provide a single logical channel: the communication between a sender and one or more receivers of frames can be logically separated from other communication over the link-layer by an implementation, perhaps by the use of channel identifiers, circuit identifiers, or tuples of source and destination address information.</t>
        </li>
      </ul>
      <t>These characteristics provide a common baseline that allows the definition of a lightweight protocol for transferring BPv7 bundles meeting the requirements of a BPv7 Convergence Layer Protocol, and this document describes such a protocol, Bundle Transfer Protocol - Unidirectional (BTPU), suitable for implementation over any link-layer protocol that shares these characteristics.  The protocol is applicable to other link-layer technologies which share these characteristics beyond those commonly used for space communication, for example 5G Unstructured PDUs <xref target="_5G"/>, or <xref target="IEEE.802.3"/>, without requiring underlying IP services.  Although designed for any link-layer protocol that shares the characteristics above, additional specification or profiling may be required to map the constructs of the link-layer protocol to the mechanisms defined in this specification.</t>
      <figure anchor="fig-stack">
        <name>The location of BTPU in relation to the Bundle Protocol and a Link-layer protocol</name>
        <artwork align="center"><![CDATA[
+----------------------+
|  DTN Application     |
+----------------------+
|  BPv7 / BPv6         |
+----------------------+
|  BTPU                |
+----------------------+
|  Link-layer Protocol |
+----------------------+
]]></artwork>
      </figure>
      <t>The driving use-case of the protocol has been the transfer of BPv7 Bundles, however it is equally capable of transferring any kind of binary data, but includes no explicit discriminator of the format of a particular block of binary data. If multiple different types of binary data are to be transferred by a single implementation, this specification considers the differentiation between different types of binary data to be a matter for the implementation. For example, both BPv6 Bundles (<xref target="RFC5050"/>) and BPv7 Bundles can be multiplexed without issue, as the different formats can be distinguished by simple examination of the initial octets of a received bundle by an implementation.  Additionally, the segmentation mechanism enables the use of this protocol with binary data formats that do not natively support some form of fragmentation.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="terminology">
        <name>Terminology</name>
        <t>Within the scope of this document, the following terms have specific meaning:</t>
        <dl>
          <dt>Bundle:</dt>
          <dd>
            <t>A higher-layer protocol data unit, typically a BPv7 Bundle as defined in <xref target="RFC9171"/>.</t>
          </dd>
          <dt>Link-layer PDU:</dt>
          <dd>
            <t>The protocol data unit, excluding any link-layer protocol specific headers or metadata, that makes up a complete transmission unit or frame, as defined by the link-layer protocol specification.</t>
          </dd>
          <dt>Message:</dt>
          <dd>
            <t>A single protocol data item, see <xref target="message-definitions"/>.</t>
          </dd>
          <dt>Transfer:</dt>
          <dd>
            <t>The context in which the transmission of the Segments of a single Bundle occurs, see <xref target="transfers"/>.</t>
          </dd>
          <dt>Segment:</dt>
          <dd>
            <t>In order to transfer a Bundle larger than a Link-layer PDU, Bundles may be subdivided into Segments in order to fit within a Link-layer PDU, see <xref target="transfers"/>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>The purpose of the protocol is to transfer a series of Bundles between two nodes. Because a Bundle is of variable length, which is unlikely to be exactly the same size as a Link-layer PDU, the protocol defines a mechanism to divide Bundles into Segments as required, such that each Link-layer PDU is efficiently filled with data, and one or more Bundles can be transferred in a minimal number of Link-layer PDUs, described in more detail in <xref target="transfers"/>.</t>
      <t>This segmentation is unrelated to BPv7 bundle fragmentation as defined in <xref section="5.8" sectionFormat="of" target="RFC9171"/>.  Although BPv7 bundle fragmentation may be used to sub-divide oversized BPv7 bundles, the required duplication of metadata blocks can result in inefficiencies or fail to generate BPv7 bundle fragment small enough to fit in a single Link-layer PDU.</t>
      <t>As a sender may prioritize the transfer of each Bundle differently, the protocol allows for the multiplexing of Bundle transfers, so that the transfer of higher priority Bundles may interrupt the transfer of other Bundles, avoiding "head of line blocking", see <xref target="interleaving-transfers"/> for more detail.  The bundle transfers are expected to occur over the same logical channel, rather than using a separate channel for each bundle or group of bundles that share priority.  This does not preclude using multiple logical channels, but each channel is expected to be an independent instance of the protocol.</t>
      <section anchor="messages">
        <name>Messages</name>
        <t>The basic primitive of the protocol is the Message, a self-describing unit of protocol control information of variable length. The sender is responsible for composing one or more Messages as required, and packing them into a Link-layer PDU, such that a single PDU is optimally filled.  The receiving node parses the contained Messages from each received Link-layer PDU, and then processes them as individual control signals.  This sequence of Messages is the logical control-plane used by the protocol.  This document uses the verb "emit" to describe to the writing of a new Message to a Link-layer PDU ready for transmission, to differentiate from the the transmission of the Link-layer PDU itself, as many Messages may emitted prior to the transmission of the containing PDU.</t>
        <t>See <xref target="message-definitions"/> for detail of each type of Message.</t>
      </section>
      <section anchor="padding">
        <name>Padding</name>
        <t>Because the size of a Bundle is not expected to exactly match the size of a Link-layer PDU, an implementation will likely need to add padding to the PDU so that the Link-layer PDU size requirements are met.  Two Messages are available for this purpose: The <xref target="definite-padding-message">Definite Padding Message</xref> and the <xref target="indefinite-padding-message">Indefinite Padding Message</xref>.  Padding Messages are valid at any point within a Link-layer PDU.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that implementations use the Definite Padding Message to add padding to a Link-layer PDU, except when less than four octets of padding are required, as the minimum length of the Definite Padding Message is four octets.</t>
        <t>When the link-layer protocol provides variable length Link-layer PDUs, implementations <bcp14>SHOULD</bcp14> take into account the mechanisms used by the link-layer protocol to support variable length Link-layer PDUs, and emit Link-layer PDUs of a suitable size for the underlying protocol. For example, if variable length Link-layer PDUs are implemented by the link-layer protocol using a sub-framing mechanism, then emitting Link-layer PDUs of a single, or whole number of sub-frames may increase reliability.</t>
        <t>The algorithm used to pad and pack Messages efficiently into Link-layer PDUs is an implementation matter.</t>
      </section>
    </section>
    <section anchor="transfers">
      <name>Segmentation and Transfers</name>
      <t>As described in the <xref target="protocol-overview">Protocol Overview</xref>, in order to transfer Bundles larger than a single Link-layer PDU into multiple PDUs, Bundles are be divided into a sequence of Segments by the sender and each Segment is emitted in its own a Message. However, if a complete Bundle can fit in the next Link-layer PDU, then the Bundle <bcp14>SHOULD</bcp14> be transferred without segmentation, see the <xref target="bundle-message">Bundle Message</xref>.</t>
      <t>Each Segment is assigned a monotonically increasing integral Segment Index, starting at zero (0), that indicates the relative position of the Segment within the total sequence of Segments.  In addition to a Segment Index, every Segment is associated with a Transfer that provides context to the sequence of Segments to enable the correct reassembly of the original Bundle. Each Transfer is assigned a number as an identifier, with each identified Transfer mapping to the segmentation of a single Bundle.</t>
      <t>The transfer of a sequence of Segments of a Bundle a sender <bcp14>MUST</bcp14> be emitted via a series of <xref target="transfer-segment-message">Transfer Segment Messages</xref> carrying the same Transfer identifier.  The end of a sequence of Segments <bcp14>MUST</bcp14> be indicated by emitting a <xref target="transfer-end-message">Transfer End Message</xref>, including the final Segment and the identifier of the Transfer that is now complete.</t>
      <t>A receiver reassembles the transferred Bundle by concatenating the Segments that share a common Transfer number in the order of their Segment Index.  When all the Segments have been received and concatenated, a receiver is expected to pass the recombined Bundle to an upper layer for further processing.</t>
      <t>Transfer numbers are expressed as 32-bit unsigned integers. A sending implementation <bcp14>SHOULD</bcp14> choose a random value between 0 and 2^32-1 for the first Transfer number, and each subsequent Transfer <bcp14>MUST</bcp14> use the next numeric value in the sequence.  To avoid placing a limit on the total number of Transfers between peers, numbers are allowed to "roll-over" to zero and repeat, i.e. the next number in the sequence is the previous number incremented by one, modulo 2^32.</t>
      <section anchor="interleaving-transfers">
        <name>Interleaving Transfers</name>
        <t>In order to support the transmission of Bundles with different priorities, Transfer Messages associated with different Transfers, i.e. with different Transfer numbers, <bcp14>MAY</bcp14> be interleaved.  This allows senders to interrupt the emission of a sequence of Segments associated with one Transfer with one or more Segments of another Transfer, preventing a large lower priority Transfer blocking a higher priority Transfers.</t>
      </section>
      <section anchor="cancelled">
        <name>Cancelling Transfers</name>
        <t>A Transfer may be aborted by the sender while a Transfer is in progress by the emitting of a <xref target="transfer-cancel-message">Transfer Cancel Message</xref> containing the identifier of the Transfer to cancel.  A receiver of a Transfer Cancel Message <bcp14>SHOULD</bcp14> discard any cached segments already received and <bcp14>MUST</bcp14> ignore any further Messages associated with the Transfer.</t>
      </section>
    </section>
    <section anchor="transfer-window">
      <name>Transfer Window</name>
      <t>Because Messages may be lost in transmission due to the loss of Link-layer PDUs, and a sender may emit duplicate Messages as a defense against loss, see <xref target="repetition"/>, a sender <bcp14>MUST</bcp14> maintain a sliding Transfer Window that defines the maximum number of Transfers that can be simultaneously in progress.  As Transfers are identified by a monotonically increasing number, the size of the Transfer Window also strictly defines the range of identifiers of Transfers in progress.</t>
      <t>The sender <bcp14>MUST</bcp14> maintain a reference to the greatest Transfer number used in any emitted Message, and <bcp14>MUST NOT</bcp14> emit any Message with a Transfer number less than or equal to the latest minus the size of the Transfer Window, taking into account the modulo 2^32 roll-over.</t>
      <t>Each receiver <bcp14>MUST</bcp14> maintain a reference to the greatest Transfer number received in any Message.  When a Transfer Message is received with a Transfer number greater than the greatest previously received, the new Transfer number is considered the greatest Transfer number, and Transfers with number less than or equal to the latest minus the size of the Transfer Window <bcp14>MUST</bcp14> be considered <xref target="cancelled"/>.  Because of Transfer number roll-over, half the number space of 2^32 and window size is used to determine if a number is older or newer than the latest Transfer number.  Pseudocode for the algorithm is given in <xref target="fig-windowing"/>.</t>
      <t>The size of the Transfer Window <bcp14>SHOULD</bcp14> be the same at the sender and all receivers, and <bcp14>MUST</bcp14> be configured via some out-of-band mechanism.  The Transfer Window size <bcp14>MUST</bcp14> be at least 4, <bcp14>MUST</bcp14> be less than 2^12, and is <bcp14>RECOMMENDED</bcp14> to be 16. <cref anchor="_1">These are entirely arbitrary numbers, and need discussing by the WG.</cref></t>
      <figure anchor="fig-windowing">
        <name>A receiver's algorithm for determining Transfer number validity and sliding window</name>
        <artwork type="pseudocode"><![CDATA[
const WINDOW_SIZE  # Configured transfer window size
var GREATEST = NIL # Greatest received transfer number, initially NIL

# Function to check if a transfer is valid within the current window
FUNCTION isTransferValid(T):
    # Ensure Transfer T is within the
    #  sliding window defined by WINDOW_SIZE
    RETURN ((GREATEST - T + 2^32) MOD 2^32) < WINDOW_SIZE

# Function to check if the transfer is considered a "new" transfer
FUNCTION isNewTransfer(T):
    IF GREATEST IS NIL THEN
        # The first transfer is always considered new
        RETURN TRUE
    # Check if the transfer is within the valid window range
    #  (half of the number space + window size)
    RETURN ((T - GREATEST + 2^32) MOD 2^32) <
                     (2^32 / 2) + (WINDOW_SIZE / 2)

# Main function to process a transfer and manage the sliding window
FUNCTION processTransfer(T):
    IF isNewTransfer(T) THEN
        # New transfer, update the greatest received transfer number
        GREATEST ← T
        # Cancel transfers that are now outside the window
        CANCEL_OUTDATED_TRANSFERS()
    ELSE IF isTransferValid(T) THEN
        # Transfer is in progress, continue handling it
        CONTINUE_PROCESSING(T)
    ELSE
        # Transfer is invalid (outside the window), ignore it
        IGNORE_MESSAGE(T)
]]></artwork>
      </figure>
    </section>
    <section anchor="repetition">
      <name>Handling Link-layer PDU Loss</name>
      <t>Due to the unreliable nature of the link-layer protocol, Link-layer PDUs may be lost in transmission, resulting in the loss of the contained Messages.  Because the underlying link-layer is assumed to be unidirectional, the protocol does not include a mechanism to trigger the retransmission of lost Messages; instead the protocol allows the sender to repeat the transmission of Messages.</t>
      <t>A sender <bcp14>MAY</bcp14> emit any Message multiple times in different Link-layer PDUs.  Although every Link-layer PDU transmitted may contain different Messages, any repeated Message <bcp14>MUST</bcp14> be an exact copy of an already emitted Message.  When segmenting bundles, not all Messages in a Transfer need be repeated the same number of times, and different Transfers may repeat Messages differently.</t>
      <t>Although it is <bcp14>RECOMMENDED</bcp14> that <xref target="transfer-segment-message">Transfer Segment Messages</xref> are emitted in ascending order of Segment Index; once emitted, any Message <bcp14>MAY</bcp14> be repeated any number of times, in any order.  The number of repetitions of a particular Message is an implementation matter that can be influenced by many factors, including:</t>
      <ul spacing="normal">
        <li>
          <t>Offline analysis of the deployed environment may require a certain amount of Message repetition to reach some required certainty of transfer.</t>
        </li>
        <li>
          <t>A higher 'reliability' factor associated with a particular Bundle may result in more copies of each associated Transfer Message being emitted.</t>
        </li>
        <li>
          <t>Signalling from the link-layer protocol, or some other out-of-band mechanism, may trigger increased repetition of a subset Messages, to protect against some temporary spike in Link-layer PDU loss rate.</t>
        </li>
      </ul>
      <t>Message replication is logically separate from any facilities the underlying link-layer protocol may have to protect against information loss through redundancy and/or erasure coding, and may be used as required by a deployment.  If a link-layer protocol receives a duplicate Link-layer PDU, it <bcp14>SHOULD</bcp14> be delivered to this protocol only once.</t>
    </section>
    <section anchor="message-definitions">
      <name>Message Definitions</name>
      <t>All protocol Messages except the <xref target="indefinite-padding-message">Indefinite Padding Message</xref> follow the common "Type-Length-Value" formatting pattern, with each Message being identified by a four octet header that encodes the type of the Message, and the length of the content of the Message.</t>
      <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type          | Length (24-bit unsigned integer)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       ... Content ...                         :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <dl>
        <dt>Type:</dt>
        <dd>
          <t>The type of the Message, allocated from IANA "BTPU Message Types" registry, see <xref target="iana-considerations"/>, encoded as a 8-bit unsigned integer in network byte order.</t>
        </dd>
        <dt>Length:</dt>
        <dd>
          <t>The length of the Message in octets, excluding the 4 octets of the header itself, encoded as a 24-bit unsigned integer in network byte order.</t>
        </dd>
        <dt>Content:</dt>
        <dd>
          <t>A sequence of octets of data of variable length determined by the corresponding Length field value, encoded according to the type of the Message.</t>
        </dd>
      </dl>
      <section anchor="bundle-message">
        <name>Bundle Message</name>
        <t>The Bundle Message is used to encapsulate an entire Bundle, and <bcp14>SHOULD</bcp14> be used by an implementation when a Bundle will fit in its entirety in a single Link-layer PDU to avoid the overhead of segmentation, and reducing the risk of the total loss of a Bundle if one or more unnecessary segments of a Bundle is lost.</t>
        <t>A Bundle Message has a type of 2. The Message Content <bcp14>MUST</bcp14> be a valid Bundle.</t>
        <t>Emitting a Bundle Message with a Length field value of zero (0), i.e no Bundle content, only adds control-plane overhead and <bcp14>SHOULD NOT</bcp14> be used as an alternative form of padding.</t>
      </section>
      <section anchor="transfer-segment-message">
        <name>Transfer Segment Message</name>
        <t>The Transfer Segment Message is used to encapsulate a segment of a multi-segment Bundle Transfer.</t>
        <t>A Transfer Segment Message has a type of 3. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment Index                                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    ... Segment Data ...                       :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the Transfer that this Segment is part of, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Segment Index:</dt>
          <dd>
            <t>The position of the Segment within the sequence of all Segments of a Transfer, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Segment Data:</dt>
          <dd>
            <t>The octets of a Segment of the Transfer, with the length calculated as the Message content length excluding the eight (8) octets of the Transfer Number and Segment Index.</t>
          </dd>
        </dl>
        <t>Transfer Segment Messages <bcp14>SHOULD NOT</bcp14> have zero octets of Segment Data, i.e. the total length of the Message <bcp14>SHOULD</bcp14> be greater than 12 octets.  Such Messages only add control-plane overhead and <bcp14>SHOULD NOT</bcp14> be used as an alternative form of padding.</t>
      </section>
      <section anchor="transfer-end-message">
        <name>Transfer End Message</name>
        <t>The Transfer End Message is used to encapsulate the last segment of a multi-segment Bundle Transfer, and complete the Transfer.</t>
        <t>A Transfer End Message has a type of 4. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment Index                                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    ... Segment Data ...                       :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the <xref target="transfer-window">in-progress</xref> Transfer that is completing, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Segment Index:</dt>
          <dd>
            <t>The non-zero Segment Index of the final Segment, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Segment Data:</dt>
          <dd>
            <t>The octets of the final Segment of the Transfer, with the length calculated as the Message content length excluding the eight (8) octets of the Transfer Number and Segment Index.</t>
          </dd>
        </dl>
        <t>Transfer End Messages <bcp14>SHOULD NOT</bcp14> have zero octets of Segment Data, i.e. the total length of the Message <bcp14>SHOULD</bcp14> be greater than 12 octets.  Such Messages only add control-plane overhead and <bcp14>SHOULD NOT</bcp14> be used as an alternative form of padding.</t>
      </section>
      <section anchor="transfer-cancel-message">
        <name>Transfer Cancel Message</name>
        <t>The Transfer Cancel Message is used to indicate that the indicated Transfer is being aborted, and any prior or later received Segments associated with the Transfer <bcp14>MUST</bcp14> be discarded by a receiver.</t>
        <t>A Transfer Cancel Message has a type of 5. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the <xref target="transfer-window">in-progress</xref> Transfer that is cancelled, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
        </dl>
        <t>The Transfer Cancel Message has no content, and hence has a fixed length of 4 octets.</t>
        <t>A peer that receives a Transfer Cancel Message with a Transfer Number field value that does not match the numeric identifier of an <xref target="transfer-window">in-progress</xref> Transfer <bcp14>MUST</bcp14> ignore the Message.</t>
      </section>
      <section anchor="definite-padding-message">
        <name>Definite Padding Message</name>
        <t>The Definite Padding Message is used to add padding to a Link-layer PDU.</t>
        <t>A Definite Padding Message has a type of 1. Any content it contains has no semantic meaning, and a sender <bcp14>SHOULD</bcp14> set the content to a sequence of zero (0) octets.  Receivers <bcp14>MUST</bcp14> ignore any Message content.</t>
        <t>It is valid for this Message to have no content, i.e. a Length field value of zero (0), adding a total of four (4) octets of padding to the Link-layer PDU.</t>
      </section>
      <section anchor="indefinite-padding-message">
        <name>Indefinite Padding Message</name>
        <t>An Indefinite Padding Message has a type of zero (0), and in order to support padding with a minimum total length of one octet, the Message does not include an explicit Length or Content field, and hence has the following layout:</t>
        <artwork><![CDATA[
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| Type          |
+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Type:</dt>
          <dd>
            <t>The type of the Message: zero (0).</t>
          </dd>
        </dl>
        <t>The Indefinite Padding Message type field is followed by a sequence of zero or more zero (0) octets, ending at the first non-zero octet, or the end of the fixed-length Link-layer PDU.  The content of the Message has no meaning, and <bcp14>MUST</bcp14> be ignored by a receiver.</t>
        <t>Note: When a Indefinite Padding Message terminates with a non-zero octet, the non-zero octet is the first octet of the subsequent Message.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This protocol does not define any measures to protect Messages or their content.  There may be link-layer mechanisms to protect the transmission of frames against over-hearing and interference, and upper layer mechanisms, such as BPSec defined in <xref target="RFC9172"/>, can be used to provide integrity and protection at a higher layer.  Therefore transport-layer security is considered out of scope for the protocol, and lower and/or upper layer mechanisms <bcp14>MUST</bcp14> be used to provide security.</t>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>The following caveats should be considered before deploying instances of this protocol:</t>
      <ol spacing="normal" type="1"><li>
          <t>It is unreliable. Although there may be a link-layer protocol mechanism for a receiver to be notified that a frame has been lost in transmission, due to the unidirectional nature of the link-layer there is no in-band return path suitable for higher-layer acknowledgement of transfer success.  Any acknowledgement system designed to provide reliability <bcp14>MUST</bcp14> use a logically separate path from receiver back to sender.</t>
        </li>
        <li>
          <t>It does not provide congestion control or signalling. The underlying link-layer is expected to provide an uncontested channel between sender and receivers, and hence such mechanisms are considered to be out of scope. The protocol <bcp14>MUST NOT</bcp14> be deployed in environments where congestion may occur, such as the public Internet, when the underlying link-layer does not provide suitable congestion control.</t>
        </li>
        <li>
          <t>It requires an out-of-band mechanism for configuration. This can either be via pre-placed static configuration, a parallel dynamic control-plane protocol, or some other mechanism beyond the scope of this specification.</t>
        </li>
      </ol>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to create a new registry entitled "BTPU Message Types", in the existing "Bundle Protocol" registry group.  The registration procedures for this registry, using terms defined in <xref target="RFC8126"/>, is:</t>
      <table align="left" anchor="tab-message-types-reg">
        <name>BTPU Message Types registration policies</name>
        <thead>
          <tr>
            <th align="center">Values</th>
            <th align="left">Registration Procedure</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">0..0x6F</td>
            <td align="left">Standards Action</td>
          </tr>
          <tr>
            <td align="center">0x70..0x7F</td>
            <td align="left">Private Use</td>
          </tr>
          <tr>
            <td align="center">0x80..0xFF</td>
            <td align="left">Reserved for future expansion</td>
          </tr>
        </tbody>
      </table>
      <t>The initial values for the registry are:</t>
      <table align="left" anchor="tab-message-types-vals">
        <name>BTPU Message Types initial values</name>
        <thead>
          <tr>
            <th align="center">Type</th>
            <th align="left">Message</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">0</td>
            <td align="left">
              <xref target="indefinite-padding-message">Indefinite Padding Message</xref></td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="center">1</td>
            <td align="left">
              <xref target="definite-padding-message">Definite Padding Message</xref></td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="center">2</td>
            <td align="left">
              <xref target="bundle-message">Bundle Message</xref></td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="center">3</td>
            <td align="left">
              <xref target="transfer-segment-message">Transfer Segment Message</xref></td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="center">4</td>
            <td align="left">
              <xref target="transfer-end-message">Transfer End Message</xref></td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="center">5</td>
            <td align="left">
              <xref target="transfer-cancel-message">Transfer Cancel Message</xref></td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9171">
          <front>
            <title>Bundle Protocol Version 7</title>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="K. Fall" initials="K." surname="Fall"/>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document presents a specification for the Bundle Protocol, adapted from the experimental Bundle Protocol specification developed by the Delay-Tolerant Networking Research Group of the Internet Research Task Force and documented in RFC 5050.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9171"/>
          <seriesInfo name="DOI" value="10.17487/RFC9171"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9172">
          <front>
            <title>Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="K. McKeever" initials="K." surname="McKeever"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines a security protocol providing data integrity and confidentiality services for the Bundle Protocol (BP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9172"/>
          <seriesInfo name="DOI" value="10.17487/RFC9172"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="USLP" target="https://public.ccsds.org/Pubs/732x1b3e1.pdf">
          <front>
            <title>Unified Space Data Link Protocol (USLP)</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="June"/>
          </front>
          <seriesInfo name="CCSDS" value="732.1-B-3"/>
        </reference>
        <reference anchor="TM" target="https://public.ccsds.org/Pubs/132x0b3.pdf">
          <front>
            <title>Telemetry (TM) Space Data Link Protocol</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="October"/>
          </front>
          <seriesInfo name="CCSDS" value="132.0-B-3"/>
        </reference>
        <reference anchor="AOS" target="https://public.ccsds.org/Pubs/132x0b3.pdf">
          <front>
            <title>Advanced Orbiting Systems (AOS) Space Data Link Protocol</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="October"/>
          </front>
          <seriesInfo name="CCSDS" value="732.0-B-4"/>
        </reference>
        <reference anchor="DVB-S2X" target="https://www.etsi.org/deliver/etsi_en/302300_302399/30230702/01.04.01_60/en_30230702v010401p.pdf">
          <front>
            <title>Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications; Part 2: DVB-S2 Extensions (DVB-S2X)</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="ETSI" value="EN 302 307-2"/>
        </reference>
        <reference anchor="_5G" target="https://www.3gpp.org/ftp/Specs/archive/23_series/23.501/23501-i00.zip">
          <front>
            <title>System architecture for the 5G System (5GS)</title>
            <author>
              <organization abbrev="3GPP">3rd Generation Partnership Project</organization>
              <address>
                <postal>
                  <country>France</country>
                  <city>Sophia Antipolis Cedex</city>
                </postal>
              </address>
            </author>
            <author fullname="CHANDRAMOULI, Devaki">
              <organization>Nokia Germany</organization>
            </author>
            <date day="21" month="December" year="2022"/>
          </front>
        </reference>
        <reference anchor="IEEE.802.3">
          <front>
            <title>IEEE Standard for Ethernet</title>
            <author>
              <organization/>
            </author>
            <date month="July" year="2022"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/ieeestd.2022.9844436"/>
          <seriesInfo name="ISBN" value="[&quot;9781504487252&quot;]"/>
          <refcontent>IEEE</refcontent>
        </reference>
        <reference anchor="RFC5050">
          <front>
            <title>Bundle Protocol Specification</title>
            <author fullname="K. Scott" initials="K." surname="Scott"/>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <date month="November" year="2007"/>
            <abstract>
              <t>This document describes the end-to-end protocol, block formats, and abstract service description for the exchange of messages (bundles) in Delay Tolerant Networking (DTN).</t>
              <t>This document was produced within the IRTF's Delay Tolerant Networking Research Group (DTNRG) and represents the consensus of all of the active contributors to this group. See http://www.dtnrg.org for more information. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5050"/>
          <seriesInfo name="DOI" value="10.17487/RFC5050"/>
        </reference>
      </references>
    </references>
    <?line 415?>

<section anchor="examples">
      <name>Examples</name>
      <t>The following sections has examples of an implementation emitting Bundles into Link-layer PDUs.  Although the examples demonstrate the core principles, for example Bundle Segmentation with priority, the algorithm used to pack Messages into Link-layer PDUs is just for example purposes.  An implementation may use an alternate algorithm that meets this specification but suits its overall architecture, and where this is applicable is noted in each example.</t>
      <section anchor="segmentation-of-a-sequence-of-bundles-of-equal-priority">
        <name>Segmentation of a sequence of Bundles of equal priority</name>
        <t>An example of the transmission of three Bundles of varying sizes and equal priority in three Link-layer PDUs is shown in <xref target="fig-sequential"/>.</t>
        <figure anchor="fig-sequential">
          <name>Segmentation of a sequence of Bundles of equal priority</name>
          <artwork><![CDATA[
+---------------------------+------------+-----------------+
| Bundle A                  | Bundle B   | Bundle C        |
+---------------------------+------------+-----------------+

:                           :            :                 :

+----------------------+----+------------+----+------------+---------+
| Transfer 1           | T1 |  Complete  | T2 | Transfer 2 | Padding |
| Segment 0            | S1 |  Bundle B  | S0 | Segment 1  |         |
+----------------------+----+------------+----+------------+---------+

:                      :                      :                      :

+----------------------+----------------------+----------------------+
| Link-layer PDU N     | Link-layer PDU N + 1 | Link-layer PDU N + 2 |
+----------------------+----------------------+----------------------+
]]></artwork>
        </figure>
        <t>Bundle A is emitted as two Segments, included in the first and second Link-layer PDU, as Transfer 1.  Bundle B fits completely in the second Link-layer PDU, and is therefore emitted without segmentation.  Bundle C is emitted as two Segments split between the second and third PDU, but padding is required to fill the third PDU.  An alternative algorithm could have selected to not segment Bundle C, but to pad the second PDU and include Bundle C without segmentation in the third PDU, without changing the semantics, as an implementation preference.</t>
      </section>
      <section anchor="segmentation-of-a-sequence-of-bundles-of-different-priority">
        <name>Segmentation of a sequence of Bundles of different priority</name>
        <t>An example of the transmission of three Bundles of varying sizes and different priority in three Link-layer PDUs is shown in <xref target="fig-interleaved"/>.</t>
        <figure anchor="fig-interleaved">
          <name>Interleaved segmentation of a sequence of Bundles of different priority</name>
          <artwork><![CDATA[
                       +---------------------------+
                       | Bundle C                  |  High Priority
                       +---------------------------+
+--------------+-----------------+
| Bundle A     | Bundle B        |                    Low Priority
+--------------+-----------------+

                       :                           :
:              :                 :

+--------------+-------+----------------------+----+----------+------+
| Complete     | T1    | Transfer 2           | T2 | T1       | Pad  |
| Bundle A     | S0    | Segment 0            | S1 | S1       |      |
+--------------+-------+----------------------+----+----------+------+

:                      :                      :                      :

+----------------------+----------------------+----------------------+
| Link-layer PDU N     | Link-layer PDU N + 1 | Link-layer PDU N + 2 |
+----------------------+----------------------+----------------------+
]]></artwork>
        </figure>
        <t>Bundle A is emitted without segmentation, and the Bundle B is segmented to fill the first Link-layer PDU. During the preparation of the next Link-layer PDU high priority Bundle C is queued for emission. Therefore the further emission of Bundle B is paused, and Bundle C is emitted as two Segments, with the third Link-layer PDU containing the second Segments of both Bundle B and C, plus padding.  The order of emission of the second Segments of Bundle B and C makes no semantic difference.</t>
      </section>
      <section anchor="repetition-of-bundle-segments">
        <name>Repetition of Bundle Segments</name>
        <t>An example of the transmission of two Bundles of differing required repetition in three Link-layer PDUs is shown in <xref target="fig-repetition"/>.</t>
        <figure anchor="fig-repetition">
          <name>Repetition of some Bundles within a sequence of Segments</name>
          <artwork><![CDATA[
+--------------+
| Bundle A     |                              2x repetition required
+--------------+

           +-------------------------------+
           | Bundle B                      |  No repetition required
           +-------------------------------+

:              :
           :                               :

+--------------+-------+--------------+-------+---------------+------+
| Complete     | T1    | Complete     | T1    | Transfer 1    | Pad  |
| Bundle A     | S0    | Bundle A     | S1    | Segment 2     |      |
+--------------+-------+--------------+-------+---------------+------+

:                      :                      :                      :

+----------------------+----------------------+----------------------+
| Link-layer PDU N     | Link-layer PDU N + 1 | Link-layer PDU N + 2 |
+----------------------+----------------------+----------------------+
]]></artwork>
        </figure>
        <t>Bundle A is required by some higher-layer loss protection policy to be repeated twice in two separate Link-layer PDUs.  Bundle A does not require additional loss protection, and can therefore be transmitted once.  As Bundle A can fit in its entirety in a single Link-layer PDU, it is emitted as a Complete Bundle Message, with Bundle B emitted as a Segment Messages sized to fill the remainder of each PDU.  The Complete Bundle Message of Bundle A is repeated in the second Link-layer PDU, with the remainder of the second PDU filled with the next Segment of Bundle B.  The third Link-layer PDU contains the last Segment of Bundle B and padding.  An alternate implementation could have segmented both Bundles, and repeated the Segments of Bundle A whilst interleaving the Segments of Bundle B.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author would like to thank Erik Kline, Brian Sipos, and Chloe He for their invaluable feedback and discussion of the protocol, and this work would not exist without the excellent prior work by the TCP-CLv4 authors.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923bbSLbYO7+ion4Y6TRJXSy33ZrbkSXZrRVbVix6OpNe
M14gUCRxDAI8KEAyx+3XPOcT8i35lHxJ9q1uICjL3T5nnSStWdMmwbrs2nvX
vldhNBoNBk3eFPpE7Txry6zQalInpZnpWl3XVVOlVaFG6m2ZZ3mt0yavyqTY
GSTTaa1vsc/k+u3OIE0aPa/q9YkyTTYYZFVaJksYMquTWTNqknVR1aOsKUfT
ZtWODo4Gpp0uc2NgtGa9goaXF5Pn6huVFKaCQfMy0ysN/ymbnaHa0VneVHUO
88KXy9Nn8E9Vw6c3k+c7g7JdTnV9MsgAhJNBWpVGl6Y1J6qpWz0AEB8Nklon
MMXVZHBX1e/nddWuYJJzXSTr/fPc1O0Kl6UmVaFh6Y260g02zMv5zmDwXq/h
S3YyGIzU+eQK/vvs+vYJ/sPYskgaDJK2WVQ1NZy1RcEYeJOn79WEEDBQAPY8
KfN/JDjfiTpNijUsS010uiiroprn2kAjvUzy4kTVjLZ/TrjVOK2Wg8GtLltY
plJftgqlGM07P/IT9QK743Oeawdo88+5bmZjgBAfJ3W6gMeLplmZk/19bIWP
8ls9ts328cH+tK7ujN6H/vvYb543i3YKPWtYNy9gH2mOvxVAIdMEo/o2Y+43
zitqvd/LN+NFswTWG5RVvQQM3gIeBnk589+Uenvz8hr/hfUm9VzDZHauVTst
8nScpiYzBP11OzX7Tx4dfTicPtKH41U24368F4DfZ7nO1M0qSbU6T5pEvczL
935L7OJUe9SFOE8dHRwdjw6+oydG10BKhI2BUWrn7Ozm/GYHFg9Tjg9Hz0aP
ECWTV18C7SFAezB91IV1ogu91E29VruTV3tbQY5hPRwdHnwWVphwfGBhPX19
8xWAPc1ukzIFzL6up3mDrHizNo1eGrULE3xV6J8I9McI/flfno1ujv5r/wru
7u7GujE5QZ/pArip3scH73S5/+jg6NHBwTv85/vv+duTg6P9g8PxwfH44PDd
dwf7unxnn98eHB4cHxyuuuv+k4B3ngOrJ4X6S57pSj2rqyRLE0OI2AUY934v
7W40iLJMzXUJu5k29qxOltjMgGBLm7bWQ5UukrLUhUqrDH9Jykx6L6usLbib
EfTCPommG0rTy7KBGVLcQTBpfZun2gxBeNwZ9SJpFoDfaOQKH6kpDjSFp8oA
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

-->

</rfc>
