Internet-Draft Compressed Bundle Status Reporting October 2026
Flentge Expires 29 April 2027 [Page]
Workgroup:
Delay/Disruption Tolerant Networking
Internet-Draft:
draft-flentge-dtn-compressed-status-reporting-00
Published:
Intended Status:
Standards Track
Expires:
Author:
F. Flentge
European Space Agency

Compressed Bundle Status Reporting for Bundle Protocol Version 7

Abstract

This document defines compact, aggregated status reporting for Bundle Protocol Version 7. A Compressed Reporting Extension Block assigns sequence information and optionally requests reports, while a Compressed Reporting Signal reports events for multiple bundles.

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 29 April 2027.

▲

Table of Contents

1. Introduction

Standard BPv7 status reporting, as defined in [RFC9171], generates one report bundle for each reportable event such as reception, forwarding, delivery or deletion of a bundle. As this can create excessive network traffic, bundle status reports must be disabled by default. Building on the corresponding CCSDS experimental specification [CCSDS-734.6-O-1], this document defines compact reporting in which a Compressed Reporting Extension Block (CREB) supplies sequence information and optionally requests reports, and a Compressed Reporting Signal (CRS) aggregates events for multiple bundles.

This document depends on the sequence-identification framework in [I-D.flentge-dtn-bundle-sequence-identification].

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

Block Source Administrative Endpoint ID (AEID): An endpoint ID of the administrative element of the BP agent that assigns a Bundle Sequence Number and inserts the corresponding Compressed Reporting Extension Block.

Compressed Reporting Signal (CRS): An administrative record sent to a report-to endpoint to provide bundle status information on a set of bundles.

Compressed Reporting Extension Block (CREB): A BPv7 extension block which requests compressed reporting of bundle status.

3. Applicability

The mechanism is intended for DTNs where aggregating reports materially reduces signaling overhead. CREBs can be forwarded by nodes that do not implement this specification, but reports are generated only by supporting nodes. Deployment policy must account for incomplete support and possible loss or delay of reporting signals.

4. Compressed Reporting Extension Block

Compressed Reporting is requested by adding a Compressed Reporting Extension Block (CREB). The CREB MUST use the BPv7 canonical block format according to [RFC9171]. Block Type 14 as assigned by IANA for CREB MUST be used. A bundle MAY contain multiple CREBs inserted by the same or different nodes.

Using CBOR as defined by [RFC8949], the block-type-specific data MUST be a definite-length CBOR byte string containing a definite-length array of one to five elements as defined below.

4.1. 1-Element Form: Sequence Number Only

For an array-length of 1, the array SHALL contain:

The block source AEID SHALL be implicitly given by the source node EID in the primary block of the bundle. Only the source node MAY use the 1-Element Form. This form does not request creation of aggregate reports but can, for example, be used by a receiving node to detect gaps in bundle sequences or restore the order of bundles.

4.2. 2-Element Form: Sequence Number and Identification

For an array-length of 2, the array SHALL contain:

The block source AEID SHALL be implicitly given by the source node EID in the primary block of the bundle. Only the source node MAY use the 2-Element Form. This form does not request creation of aggregate reports but can, for example, be used by a receiving node to detect gaps in bundle sequences or restore the order of bundles.

4.3. 3-Element Form: Reporting-Request with implicit source

For an array-length of 3, the array SHALL contain:

  • Item 1 and Item 2 SHALL be as defined in Section 4.2

  • Item 3 SHALL contain the Status Report Request flags which SHALL be processed as a bit field indicating the flag values for the following reporting requests:

    • Bit 0 - reception;

    • Bit 1 - forwarding;

    • Bit 2 - delivery;

    • Bit 3 - deletion;

    • Bit 4 - custody acceptance;

    • Bit 5 - custody rejection;

    • Bit 6 and higher - reserved for future use.

Custody-related reporting is for informational purposes only and should not be confused with custody signals that trigger the behavior defined in Custody Procedures [I-D.flentge-dtn-bpv7-custody-transfer]. The intention is to enable the reporting of custody-related behavior to a report-to node that is different from the current custodian, which is the receiver of all custody signals.

Only the bundle source MAY use the 3-Element Form. The block source AEID and report destination SHALL be implicitly given by the source node EID in the primary block of the bundle and MUST identify an administrative endpoint capable of receiving the CRS.

4.4. 4-Element Form: Reporting-Request with explicit block source

For an array-length of 4, the array SHALL contain:

4.5. 5-Element Form: Reporting-Request with explicit report-to EID

For an array-length of 5, the array SHALL contain:

4.6. Malformed CREBs

A node MUST treat a CREB as malformed if its array length is outside one through five, field types are invalid, reserved flag bits are set contrary to this specification, or the array form violates the source or EID constraints. It MUST apply the block processing control flags according to BPv7 and MUST NOT generate reports from malformed request data.

5. Compressed Reporting Signal

The Compressed Reporting Signal (CRS) is used to transmit aggregated status reports. A CRS MUST be a BPv7 administrative record. Administrative Record Type 14 as assigned by IANA for the CRS MUST be used.

The content of the CRS administrative record MUST be a CBOR map with the following key/value pairs:

6. Reporting Procedures

Reception of a valid 3-, 4-, or 5-Element CREB MUST cause a supporting node to retain the information needed to report each requested event that occurs. The retained information includes CRS event code, BSN, BSID, source Node ID, destination EID, Block Source EID and report-to EID as available and required.

The CRS destination MUST be the bundle's source node ID for a 3-Element CREB, the block source AEID for a 4-Element CREB, and the report-to EID for a 5-Element CREB. A node SHALL generate and transmit CRSs from stored disposition information to the CRS destination according to configuration or external events. CRS generation and transmission MAY be based on:

Once a CRS for a specific bundle has been transmitted, no other reporting signal for this bundle SHOULD be generated with the same event code.

7. End-to-End Use

Compressed Reporting can be used to realize various End-to-End Services. Sequence-only CREBs (1- and 2-Element Form) can support in-sequence delivery, duplicate suppression, and gap detection without CRS generation. Delivery and deletion CRSs can provide end-to-end accounting and can be used to trigger retransmission of bundles from the source to enable reliable bundle delivery. The services described in the following sections are not mutually exclusive, so they can be combined without the need for additional extension blocks.

7.1. In-Sequence Delivery

CREB sequence numbers based on separate counters per destination EID (BSID '0') enable bundle re-ordering at destination. Lost or delayed bundles can be handled using timeouts.

7.2. Duplicate Suppression

Duplicate suppression works similarly to the in-sequence delivery. When CREB sequence numbers use separate counters per destination EID (BSID '0'), duplicated bundles can be detected by the same sequence number and suppressed. This is more efficient than using time stamps as it allows more compact storage of information about received bundles.

7.3. Gap Detection

End-to-end gap detection can also be based on BSNs using separate counters per destination EID (BSID '0'). Out-of-order bundle arrivals can be addressed by implementing a time window before reporting a gap, to wait for late arrivals with lower sequence numbers than the current maximum.

7.4. Bundle Accounting

The use of CRSs for delivery or deletion of bundles allows for end-to-end accounting of bundles towards the bundle source node (using Section 4.3), the block source AEID (using Section 4.4), or a different report-to EID (using Section 4.5). For delivery reporting, only the destination node must support CRS. For deletion accounting, both the destination and deleting nodes must support CRS. If the deleting node does not support CRS, failed delivery can still be inferred from a missing delivery report. However, cases where the reporting signal is lost may result in wrongly assumed delivery failure.

7.5. Reliability

Using the end-to-end accounting mechanism described above, end-to-end reliability can be provided by re-forwarding a bundle when an expected delivery report has not been received or the bundle has been reported as deleted. Re-forwarding a bundle again over the full end-to-end path is usually inefficient, so this mechanism may be combined with Custody Transfer as specified in [I-D.flentge-dtn-bpv7-custody-transfer]. In this way, re-forwarding will typically happen between custodians with re-forwarding from the source required only if Custody Transfer fails.

8. Fragmentation

A bundle containing a CREB MUST NOT be fragmented. A CREB MUST NOT be added to or processed in a fragment. Sources SHOULD set the Bundle Must Not be Fragmented flag.

9. CDDL

The following CDDL uses the CDDL notation of [RFC8610] and the rules defined by [RFC9171].

;CREB
$extension-block /= extension-block-use<14, embedded-cbor<creb-data>>

creb-data = [
  seq-num: uint,
  ? seq-id: uint,
  ? status-request-flags: uint,
  ? blk-source: eid,
  ? report-to-eid: eid
]

;CRS
$admin-record /= [14, reporting-signal-content]

reporting-signal-content = {
  0 => seq-collection, 1 => seq-collection,
  2 => seq-collection, 3 => seq-collection,
  4 => seq-collection, 5 => seq-collection,
  * uint => seq-collection
}

10. IANA Considerations

IANA has assigned Bundle Block Type 14 to the Compressed Status Reporting Extension Block and Bundle Administrative Record Type 14 to the Compressed Reporting Signal, with CCSDS 734.6-O-1 as the current reference. IANA is requested to add this document as a reference for both registrations upon publication as an RFC.

11. Security Considerations

Reports can reveal traffic patterns and delivery state. Forged requests can amplify traffic toward a victim report-to EID, while forged signals can corrupt accounting or trigger unnecessary retransmission. Nodes MUST authorize report requests and destinations and MUST bound stored report state and transmission rate.

Deployments SHOULD use BPSec [RFC9172] integrity protection for CREBs and CRS administrative records where authentication and integrity are required, and confidentiality protection where reporting data is sensitive.

12. Operational and Manageability Considerations

Implementations should expose report aggregation timers and thresholds, pending report state by destination and event, generated and received CRS counts, duplicate reports, malformed CREBs and CRSs, authorization failures, discarded requests, and resource-limit events.

13. Implementation Status

This section records implementation experience in accordance with [RFC7942] and is intended to be removed before publication as an RFC.

The European Space Agency Bundle Protocol implementation supports CREB and CRS encoding and processing, sequence-only and reporting-request forms, event collection, timer- and size-triggered aggregation, and compressed signal transmission. The mechanisms have been validated with unit tests, simulations, and a simulated lunar communication scenario involving a relay orbiter, rover, ground station, and control centers. The implementation information reflects the status reported in June 2026.

14. References

14.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8610]
Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, , <https://www.rfc-editor.org/info/rfc8610>.
[RFC8949]
Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, , <https://www.rfc-editor.org/info/rfc8949>.
[RFC9171]
Burleigh, S., Fall, K., and E. Birrane, III, "Bundle Protocol Version 7", RFC 9171, DOI 10.17487/RFC9171, , <https://www.rfc-editor.org/info/rfc9171>.
[RFC9172]
Birrane, III, E. and K. McKeever, "Bundle Protocol Security (BPSec)", RFC 9172, DOI 10.17487/RFC9172, , <https://www.rfc-editor.org/info/rfc9172>.
[I-D.flentge-dtn-bundle-sequence-identification]
Flentge, F., "Bundle Sequence Identification for the Bundle Protocol Version 7", Work in Progress, Internet-Draft, draft-flentge-dtn-bundle-sequence-identification-00, , <https://datatracker.ietf.org/doc/html/draft-flentge-dtn-bundle-sequence-identification-00>.

14.2. Informative References

[RFC7942]
Sheffer, Y. and A. Farrel, "Improving Awareness of Running Code: The Implementation Status Section", BCP 205, RFC 7942, DOI 10.17487/RFC7942, , <https://www.rfc-editor.org/info/rfc7942>.
[CCSDS-734.6-O-1]
Consultative Committee for Space Data Systems, "Custody Transfer and Compressed Bundle Status Reporting, Experimental Specification", CCSDS 734.6-O-1, , <https://ccsds.org/publications/orangebooks/entry/4868/>.
[I-D.flentge-dtn-bpv7-custody-transfer]
Flentge, F., "Custody Transfer for Bundle Protocol Version 7", Work in Progress, Internet-Draft, draft-flentge-dtn-bpv7-custody-transfer-00, , <https://datatracker.ietf.org/doc/html/draft-flentge-dtn-bpv7-custody-transfer-00>.

Appendix A. Acknowledgements

The author would like to acknowledge the substantial technical contributions of Aida Manole, Alice LeBihan, and Yanik Jeck to the development, review, discussion, and refinement of the mechanisms specified in this document. Their contributions to the corresponding CCSDS work significantly influenced the design and maturation of this specification.

Author's Address

Felix Flentge
European Space Agency