Skip to content

ION Regression & Demo Test Matrix

This matrix maps every regression test (tests/) and demonstration (demos/) in the ION source tree to the DTN function or behavior it exercises, the kind of test it is, and the relevant IETF/CCSDS specification. It is generated from the tests' own descriptions and scripts.

  • Category / Subcategory — the DTN function area exercised (see the summary below).
  • Type — System-dataflow (end-to-end multi-hop scenario), Integration (multi-node feature exercise), Regression (pins a specific bug/issue fix), Unit (single component/algorithm), Utility (exercises a CLI tool), Benchmark (throughput/performance), Conformance (explicit spec check).
  • Spec § — the governing standard; a section number is shown only where it is confidently applicable. ION-specific means no ratified standard governs the behavior; — means internal platform infrastructure. See the Specification References key.

Coverage summary

Category Tests
Bundle Protocol v7 — Core 23
Custody Transfer & Status Signaling 26
Routing — Contact Graph Routing / SABR 19
Licklider Transmission Protocol (LTP) 18
Convergence-Layer Adapters (CLAs) 18
Security — BPSec & Key Management 9
CCSDS File Delivery Protocol (CFDP) 8
Application Services & Utilities 17
Core Infrastructure & Platform 24
Performance Benchmarks 12
Total 174

System / data-flow demonstrations

These tests demonstrate an end-to-end data flow across a topology rather than checking a single component — useful as worked examples of ION carrying data through a scenario:

  • demos/bss-multicast — Bundle Streaming Service multicast streaming to group (BSS multicast stream node 1 to group 19 for 30s; secondary: BP-CORE/multicast)
  • tests/file-transfer — File CLA store-and-forward file transfer (File CLA sneakernet scenario; separate send/receive files)
  • tests/relay-restart-mixed-cla — Relay restart mid-transfer with mixed LTP/TCP CLAs (3 nodes, 200 bundles; relay resumes after restart; mixed LTP+TCP)

Note: many Integration tests below also exercise multi-node data flows for a single feature (relays, BPSec over LTP, CFDP over LTP, custody chains); the list above is limited to tests whose primary purpose is demonstrating a full scenario.

Matrix by DTN function

Bundle Protocol v7 — Core (BP-CORE, 23 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/bug-critical-dedup-diamond critical-bundles Dedup critical bundle on diamond+tail topology Regression RFC 9171 §5 cbdedup de-duplicates critical (BP_MINIMUM_LATENCY) bundle at relay; 5 nodes; UDP
tests/issue-325-329-critical critical-bundles Critical bundle transmission Regression RFC 9171 Pins #325/#329; critical bundle replication over routes
tests/extblk-relay extension-blocks Relay updates Bundle Age, continues Previous Node block hop-by-hop Integration RFC 9171 §4.2.3 Bundle Age + Previous Node blocks on relay; non-ION inbound bundle; CCSDS 734.2-O-1
tests/extblk-source-defaults extension-blocks Source-node extension block generation defaults Conformance RFC 9171 §4.2.3 No PNB; Bundle Age only when creation time zero; per CCSDS 734.2-O-1 BPv7
tests/issue-37-blknum-overflow extension-blocks Extension block number 255 forwarding without selectBlkNumber overflow Regression RFC 9171 §4.2.3 Issue #37; 1 node UDP + Python receiver
tests/crc_relay forwarding-relay CRC type preserved for primary/payload blocks through relay Integration RFC 9171 §4 Block CRC handling preserved end-to-end through relay
tests/relay-restart-mixed-cla forwarding-relay Relay restart mid-transfer with mixed LTP/TCP CLAs System-dataflow RFC 9171 §5 3 nodes, 200 bundles; relay resumes after restart; mixed LTP+TCP
tests/issue-325-329-fragmentation fragmentation-reassembly Partial replication of fragmented bundles Regression RFC 9171 §5.8 Pins #325/#329; fragmentation with critical replication
tests/issue-265-bpdriver-ttl-option lifetime-expiration bpdriver sends bundles with varying TTL values Regression RFC 9171 §5.4 Pins #265; bpdriver TTL option
tests/issue-344-bpsource-ttl lifetime-expiration bpsource sends bundles with varying TTL values Regression RFC 9171 §5.4 Pins #344; bpsource TTL option
tests/req-0002-bundle-age lifetime-expiration Bundle expiration with and without synchronized clocks Integration RFC 9171 §5.4 Bundle Age block / expiration for clock-synced and unsynced nodes
tests/cpsync multicast Multicast (imc) bundle transmission Integration RFC 9171 Contact plan sync / multicast delivery; imc scheme is ION-specific
tests/req-0003-multicast multicast Multicast transmission Integration RFC 9171 imc/multicast group delivery
tests/req-0003-multicast-v7 multicast BPv7 multicast transmission Integration RFC 9171 imc/multicast group delivery under BPv7
tests/priorities priority-qos Bundle priority effect on transmission ordering Integration RFC 9171 Class-of-service priority ordering
tests/stewardship reliability-stewardship Delay bundle deletion until CLA notifies transmission outcome Regression RFC 9171 Non-custodial bundle not deleted before CL xmit-completion notice
tests/status-rpts status-reports Bundle status report generation and logging Integration RFC 9171 Status reports generated and logged
tests/1021.dynamic-ep-valgrind transmission Send 5 bundles between BP endpoints over UDP Integration RFC 9171 Dynamic endpoint; UDP CLA; valgrind profiling
tests/conformance_test transmission Several bundles handled per RFC 9171 conformance Conformance RFC 9171 2-node; explicit BPv7 conformance check
tests/ipn-null-eid transmission dtn:none null EID handling does not crash node Regression RFC 9171 Null endpoint ID (dtn:none) robustness
tests/issue-236-src-eid-trunc transmission Source EID not truncated via dpdriver/bpecho Regression RFC 9171 Source EID truncation fix
tests/issue-313-overlapping-memcpy transmission Multiple bundles per LTP segment separated without corruption Regression RFC 9171 Pins #313 overlapping memcpy in acquisition; LTP transport

Custody Transfer & Status Signaling (CUSTODY, 26 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/bibect bibe-custody Bundle-in-Bundle Encapsulation transfer Integration draft-ietf-dtn-bibect BIBE encapsulation
tests/req-0019-bibe bibe-custody Bundle-in-Bundle Encapsulation Integration draft-ietf-dtn-bibect BIBE encapsulation of bundles
tests/cbr-ct-orange-book/cbr-aggr-runtime cbr-ct-signaling Runtime reconfiguration of CRS aggregation limits Integration CCSDS 734.6-O-1 §5.2 G8: live m cbraggr flushes pending CRS; 2 nodes
tests/cbr-ct-orange-book/cbr-counter-width cbr-ct-signaling Configurable sequence-counter wraparound width Regression CCSDS 734.6-O-1 §3.2 G5: m cbrcounterwidth 16/32/64; single node config
tests/cbr-ct-orange-book/creb-eid-persist cbr-ct-signaling CREB source EID preserved through relay re-serialization Regression CCSDS 734.6-O-1 §5.1 creb_parse sourceEid persistence (arrayLen>=4) through relay; 3 nodes
tests/cbr-ct-orange-book/crebreportto-redirect cbr-ct-signaling Override CREB report-to EID via m crebreportto Regression CCSDS 734.6-O-1 §5.1 G4: crebDefaultReportToEid redirects CRS; 3 nodes
tests/cbr-ct-orange-book/crs-aggregation cbr-ct-signaling Aggregate multiple bundles into fewer CRS signals Integration CCSDS 734.6-O-1 §5.2 cbraggr CRS-limit aggregation (20 bundles -> ~4 CRS); 2 nodes
tests/cbr-ct-orange-book/crs-deletion cbr-ct-signaling Deletion CRS generated on no-route abandonment Regression CCSDS 734.6-O-1 §5.2 Deletion CRS status=3 via SrNoKnownRoute; Node 3 unreachable
tests/cbr-ct-orange-book/crs-history cbr-ct-signaling CRS reception history log query and filtering Regression CCSDS 734.6-O-1 §5.2 l crslog history, status/sender filtering, m crsmaxlog; 2 nodes
tests/cbr-ct-orange-book/crs-individual-flags cbr-ct-signaling CRS reception/forwarding/delivery status flags generated independently Integration CCSDS 734.6-O-1 §5.2 3-node; bptrace -flags rcv/fwd/dlv; secondary: status-reports
tests/cbr-ct-orange-book/crs-simple cbr-ct-signaling CREB block attach and basic CRS generation/return Integration CCSDS 734.6-O-1 §5.1–5.2 2-node; CREB block, rcv+dlv CRS returned to source
tests/cbr-ct-orange-book/custody-bundle-query cbr-ct-signaling bpadmin custodybundle query of pending custody entries Utility CCSDS 734.6-O-1 §4.3 2-node; admin query of custody bundles; cbrretx=none
tests/cbr-ct-orange-book/custody-ccs-verify cbr-ct-signaling CCS signal flow verified via cbrcustodytest tool Utility CCSDS 734.6-O-1 §4.2 3-node; cbrcustodytest verifies custody/CCS receive/release
tests/cbr-ct-orange-book/custody-stress cbr-ct-signaling CCS/CRS signal aggregation under rapid bundle load Integration CCSDS 734.6-O-1 §4.2 aggregate limit 5; 20 bundles -> 4 aggregated CCS
tests/cbr-ct-orange-book/seqid-gap cbr-ct-signaling CRS CBOR range-array encoding for non-contiguous seqNums Integration CCSDS 734.6-O-1 §5.2 4-node; gap via no-route; range-array CBOR decode; secondary: ici-encoding (seq range arrays §3.3)
tests/cbr-ct-orange-book/seqid-nonzero cbr-ct-signaling Non-zero seqId uses global sequence counter for custody Integration CCSDS 734.6-O-1 §3.2 3-node; global vs destination-specific counters; custody release verified
tests/cbr-ct-orange-book/creb-custody-flags custody-acceptance CREB custody-event request flags and accept CRS Regression CCSDS 734.6-O-1 §5.1 G3: CREB request flags; custody-accepted CRS status=4; 2 nodes
tests/cbr-ct-orange-book/custody-accept-whitelist custody-acceptance cbraccept custodian whitelist enforced (refuse then accept) Regression CCSDS 734.6-O-1 §4.3 2-node; cbraccept whitelist policy; CTEB accept/refuse
tests/cbr-ct-orange-book/custody-auto-request custody-acceptance custodyreq policy auto-promotes bundle to custody Regression CCSDS 734.6-O-1 §4.3 2-node; auto custody-request attaches CTEB; CCS acceptance/release
tests/cbr-ct-orange-book/custody-simple custody-acceptance End-to-end custody transfer with CCS release Integration CCSDS 734.6-O-1 §4.3 3-node (1->2->3); custody request, CCS release, tracking empty after
tests/cbr-ct-orange-book/heterogeneous custody-acceptance CTEB transparently forwarded through non-CBR intermediate node Integration CCSDS 734.6-O-1 §4.1 3-node; relay lacks CBR; CTEB flags preserved; CCS returns; secondary: forwarding-relay
tests/cbr-ct-orange-book/ccs-retransmit-range-array custody-retransmission CCS-triggered retransmit of batched refused bundles Regression CCSDS 734.6-O-1 §4.3 G6: cbr_handleCcs fix; RETX_SIGNAL retransmits 3 batched refused bundles; 2 nodes
tests/cbr-ct-orange-book/custody-multi custody-retransmission Multiple custody bundles all released after CCS Integration CCSDS 734.6-O-1 §4.3 3-node; 5 bundles; all custody entries released after CCS
tests/cbr-ct-orange-book/custody-retransmit-timer custody-retransmission Retransmit timer reforwards bundle when CCS never arrives Regression CCSDS 734.6-O-1 §4.3 2-node; cbrretx timer 5s; bpclock cbr_processTimeouts -> reforward

Routing — Contact Graph Routing / SABR (ROUTING, 19 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/issue-196-checkforcongestion-looping congestion-forecasting checkforcongestion() does not loop excessively Regression ION-specific (no ratified standard) Congestion forecast loop-bound fix
tests/issue-306-congestion-forecasting congestion-forecasting Congestion forecasting works across configurations Regression ION-specific (no ratified standard) Pins #306; congestion forecast engine
tests/issue-323-congestion-forecasting-overflow congestion-forecasting Congestion forecasting overflow corrected Regression ION-specific (no ratified standard) Pins #323; overflow-inducing config still delivers
tests/bug-0001-cgr-loopback contact-graph-routing CGR routes bundles over loopback interface Regression CCSDS 734.3-B-1 CGR loopback routing
tests/cgr-test contact-graph-routing CGR routing over a very large contact graph Integration CCSDS 734.3-B-1 large contact plan scale test of SABR/CGR
tests/cgr-zeroed-hop-recovery contact-graph-routing Relay contact expiry must not crash ipnfw via zeroed route hop Regression CCSDS 734.3-B-1 pins #1047; zeroed CGR route-hop guard on contact expiry
tests/issue-950-cgr-semaphores contact-graph-routing CGR semaphore-footprint regression Regression CCSDS 734.3-B-1 Issue #950; CGR resource/semaphore usage
tests/adjacent-contacts contact-plan-mgmt Seamless bundle transfer across adjacent contacts Integration CCSDS 734.3-B-1 2-node; back-to-back contacts without overlap; 6000 bundles
tests/asymmetric-range contact-plan-mgmt Asymmetric contact-graph range: forwarding, reforwarding, expiration Integration CCSDS 734.3-B-1 Asymmetric OWLT ranges; expects forwarding, reforwarding, expiration
tests/bug-0007-ionadmin-duplicate-contacts contact-plan-mgmt ionadmin rejects duplicate contact entries Regression — (implementation) Contact-plan management admin behavior
tests/contact-volume/ltp-loopback contact-plan-mgmt Contact volume behavior over LTP loopback Integration CCSDS 734.3-B-1 Contact volume/capacity; single-node LTP loopback
tests/contact-volume/udp-loopback contact-plan-mgmt Contact volume behavior over UDP loopback Integration CCSDS 734.3-B-1 Contact volume/capacity; single-node UDP loopback
tests/issue-245-contactrangewildcard contact-plan-mgmt Wildcard contact/range deletion works Regression CCSDS 734.3-B-1 ionadmin contact/range wildcard deletion fix
tests/issue-276-loopback-range contact-plan-mgmt Non-zero loopback one-way light time supported Regression ION-specific (no ratified standard) Pins #276; range/OWLT on loopback
tests/bug-0008-limbo-bpclock-use-after-free limbo-reforwarding Delete limbo-queued bundles on lifetime expiration Regression RFC 9171 §5.4 limbo queue use-after-free fix in bpclock; secondary: lifetime-expiration
tests/limbo limbo-reforwarding Bundle limbo via blocking/unblocking an outduct Integration ION-specific (no ratified standard) Limbo/reforwarding on outduct block-unblock
tests/req-0033-prob-CGR opportunistic-prob-routing Opportunistic/probabilistic forwarding Integration CCSDS 734.3-B-1 Simple opportunistic forwarding test

Licklider Transmission Protocol (LTP) (LTP, 18 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/issue-324-ltp-files acquisition-files LTP acquisition files removed after receipt Regression RFC 5326 Pins #324; cleanup of receiving-node acquisition files
tests/issue-264-ltp-blksize block-size-aggregation LTP no longer limits aggregated block size Regression RFC 5326 Pins #264; CCSDS 734.1-B-1 equivalent
tests/ltp-tune block-size-aggregation LTP throughput tuning across aggregation/session params Benchmark RFC 5326 2-node LTP perf-tuning harness; prints throughput
tests/issue-303-green-sessions green-unreliable Green data flows when red session limit reached Regression RFC 5326 Pins #303; LTP green vs red sessions
tests/ltp-green green-unreliable LTP green (unacknowledged) transmission Integration RFC 5326 Green/unreliable LTP data; no retransmission
tests/ltp-inactivity-timeout inactivity-stale-session Stale import session cleanup via inactivity timeout Regression RFC 5326 Sender crashes before checkpoint/EORP/EOB; receiver import session times out
tests/1002.loopback-valgrind red-retransmission LTP loopback bundle send under valgrind Integration RFC 5326 Single-node LTP loopback; valgrind profiling; CCSDS 734.1-B-1 equivalent
tests/1003.loopback-sdr red-retransmission LTP loopback multi-bundle send, memory-leak check Integration RFC 5326 Single-node loopback; SDR memory-leak regression origin
tests/ltp-retransmission red-retransmission LTP block reassembly with out-of-order retransmitted segments Integration RFC 5326 2-node LTP; red-part retransmission; CCSDS 734.1-B-1 equivalent
tests/ltp-sda service-data-aggregation LTP Service Data Aggregation with two client IDs Integration CCSDS 734.1-B-1 §7 SDA client op per CCSDS LTP §7; distinct client IDs at different layers
tests/ltp-cancel-ack-regression session-cancellation Cancel Segment ack for already-completed sessions Regression RFC 5326 §6 Cancel segs after session completion must be acked; prevents needless retransmission
tests/ltp-purge session-cancellation LTP Purge functionality Integration RFC 5326 Issue #173; multi-node purge of LTP sessions/blocks
tests/issue-920-ltp-removespan-closedimports span-configuration ltp removeSpan succeeds with non-empty closedImports Regression RFC 5326 Issue #920; span teardown correctness
tests/ltp-config-incomplete-warnings span-configuration Warnings and default application for incomplete LTP config Integration ION-specific (no ratified standard) Single node; LTP admin default-value application
tests/ltp-config-span span-configuration Per-span LTP override configuration Integration RFC 5326 Per-span retries/loss overrides vs global defaults
tests/ltp-config-split span-configuration Asymmetric split-mode LTP xmit/recv configuration Integration RFC 5326 Different xmit/recv retries and loss per direction
tests/ltp-config-unified span-configuration Unified-mode LTP maxretries/maxseglossrate config Integration RFC 5326 'm maxretries'/'m maxseglossrate' with 10% loss via owltsim

Convergence-Layer Adapters (CLAs) (CLA, 18 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/ipaddr-caching-udpclo address-caching Dual-stack IPv4/IPv6 address caching/re-resolution in udpclo Regression ION-specific (no ratified standard) UDP CLO DNS re-resolution; invalid-address fallback logging
tests/ipaddr-caching-udplso address-caching IP address caching/periodic re-resolution in udplso (LTP) Regression ION-specific (no ratified standard) LTP UDP link service DNS re-resolution
tests/file-transfer file-epp-spp File CLA store-and-forward file transfer System-dataflow ION-specific (no ratified standard) File CLA sneakernet scenario; separate send/receive files
tests/loopback-epp file-epp-spp EPP CLA loopback with stub provider library Integration ION-specific (no ratified standard) EPP CLA; custom loopback stub provider
tests/loopback-file file-epp-spp File CLA loopback with simple file provider library Integration ION-specific (no ratified standard) File CLA; custom loopback provider
tests/loopback-spp file-epp-spp SPP CLA loopback with stub provider library Integration ION-specific (no ratified standard) SPP CLA; custom loopback stub provider
tests/issue-132-udplso-tx-rate-limit rate-limiting Transmission rate limit on UDP link service to LTP Regression ION-specific (no ratified standard) udplso tx rate limiting; LTP over UDP
tests/qos-besteffort-tcp-fallback rate-limiting Best-effort bundles fall back to reliable TCP CLA Integration ION-specific (no ratified standard) QoS best-effort uses TCP CLA when no unreliable CLA; CLA selection
tests/bug-0009-tcpclo-fixes tcpcl tcpclo handles neighbors unavailable at startup Regression RFC 9174 TCPCLv4 CLO outduct startup handling
tests/bug-0015-tcpclo-bpcp-sig-handling tcpcl Signal-interrupted semaphore ops in tcpclo/bpcp handlers Regression — (implementation) EINTR semaphore handling in tcpclo/bpcp/bpcpd
tests/issue-253-tcpcl-keepalive tcpcl TCPCL keepalive backoff timer triggers keepalive Regression RFC 9174 TCPCLv4 keepalive timer; every 30s
tests/issue-253-tcpcl-keepalive-v6 tcpcl TCPCL keepalive backoff timer triggers keepalive (IPv6) Regression RFC 9174 TCPCLv4 keepalive timer; IPv6; every 30s
tests/issue-347-tcpcl-reconnection tcpcl tcpcli recovers from neighbor shutdown cascade Regression RFC 9174 Pins #347; tcpcli reconnection after shutdown message; also exercises the ionrestart utility (node 1 restarted mid-test)
tests/tcpcl-ack-resilience tcpcl TCPCL recovers and completes file transfer after mid-stream block Regression RFC 9174 TCPCLv4 resilience to interrupted connection; RFC 7242 also relevant
tests/tcpcl-dos tcpcl tcpcli hardened against denial-of-service bug Regression RFC 9174 Security/robustness of TCPCL input daemon

Security — BPSec & Key Management (SECURITY, 9 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/bpsec/bpsec-bcb-only.bsl bcb-confidentiality BCB confidentiality blocks across 3 nodes over LTP Integration RFC 9172 BSL; confidentiality only; RFC 9173 default contexts
tests/bpsec/bpsec-bib-only.bsl bib-integrity BIB integrity blocks across 3 nodes over LTP Integration RFC 9172 BSL; integrity only; RFC 9173 default contexts
tests/bpsec/bpsec-verifier.bsl bib-integrity BIB/BCB verification at intermediate relay node Integration RFC 9172 Verifier role (2->3->4) over LTP; BIB and BCB verification
tests/tc-dtka key-distribution Delay-tolerant key administration (DTKA) key distribution Integration draft-burleigh-dtnwg-dtka DTKA; multi-node public-key distribution
tests/bpsec/bpsec-all-multinode-test.bsl security-policy BIB+BCB applied across 3 nodes over LTP Integration RFC 9172 BSL; 6 bundles integrity+confidentiality; 2->3 and 2->3->4; RFC 9173 contexts
tests/bpsec/bpsec-policy-test security-policy BPSec policy rules for BIB and BCB source/acceptor Integration RFC 9172 3-4 nodes over LTP; bpsecadmin policyrule/event_set; bptrace-driven
tests/bpsec/bpsec-target-mult.bsl security-policy Multiple security blocks per bundle over LTP relay Integration RFC 9172 BSL target multiplicity (2->3); RFC 9173 contexts
tests/bpsec/python_tests security-policy Python-driven BPSec test suite runner Integration RFC 9172 dotest.py –test_macro all; needs Python 3.7+

CCSDS File Delivery Protocol (CFDP) (CFDP, 8 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/issue-330-cfdpclock-FDU-removal fdu-management cfdpclock no longer removes FDUs without file data Regression CCSDS 727.0-B Pins #330; cfdpclock FDU lifecycle
demos/bench-cfdp file-delivery Benchmark/exercise CCSDS file delivery protocol revisions Benchmark CCSDS 727.0-B CFDP throughput demo; secondary: BENCH
tests/cfdpv1 file-delivery CFDP v1 file delivery protocol revisions Integration CCSDS 727.0-B baseline CFDP v1 test
tests/cfdpv1-4node-ltp file-delivery CFDP over LTP with limbo via outduct block/unblock Integration CCSDS 727.0-B 4-node over LTP; limbo/reforwarding; RFC 5326 LTP CLA
tests/cfdpv1-tcp file-delivery CFDP v1 file delivery over TCP CLA Integration CCSDS 727.0-B TCPCL transport
tests/issue-358-cfdp-inactivity inactivity-deadline CFDP inactivity deadline option handled correctly Regression CCSDS 727.0-B Pins #358; CFDP inactivity deadline config

Application Services & Utilities (APP-SVC, 17 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/ams-sana ams AMS with large Node/Continuum numbers (SANA range upgrade) Integration CCSDS 735.1-B Verifies AMS message space with expanded SANA node/continuum ranges
tests/issue-319-parseSocketSpec ams AMS socket-spec parsing / basic AMS functionality Regression CCSDS 735.1-B Pins #319 parseSocketSpec; AMS message space
tests/bpchat bp-utilities bpchat bidirectional bundle send/receive Utility RFC 9171 Exercises bpchat CLI over BP
tests/bpcp-dirlist-truncation bp-utilities bpcp -r surfaces incomplete listings/unsafe filenames/symlinks Regression ION-specific (no ratified standard) bpcp recursive-copy safety
tests/bping bp-utilities Basic bping echo utility functionality Utility ION-specific (no ratified standard) BP echo/ping utility
tests/bpinspect-ops bp-utilities bpinspect cancel/suspend/resume/filter/dry-run operations Utility ION-specific (no ratified standard) bpinspect bundle-management CLI
tests/bpstats2 bp-utilities Exercise bpstats2 statistics utility Utility ION-specific (no ratified standard) bpstats2 CLI basic functionality
tests/bptrace_terminal_test bp-utilities Verify terminal-mode bptrace utility behavior Utility ION-specific (no ratified standard) bptrace CLI (terminal); status-report tracing
tests/issue-352-bpcp bp-utilities bpcp local/remote file copy Utility ION-specific (no ratified standard) Pins #352; local/remote/remote-remote copies
tests/issue-352-bpcp-ltp bp-utilities bpcp local/remote file copy over LTP Utility ION-specific (no ratified standard) Pins #352; bpcp over LTP CLA
tests/issue-352-bpcp-stcp bp-utilities bpcp local/remote file copy over STCP Utility ION-specific (no ratified standard) Pins #352; bpcp over STCP CLA
tests/smart-file-transfer bp-utilities sendfile/recvfile transfer with optional encryption Utility ION-specific (no ratified standard) 2-node sendfile/recvfile; encrypt/decrypt variant; secondary: BPSec
demos/bss-multicast bss Bundle Streaming Service multicast streaming to group System-dataflow ION-specific (no ratified standard) BSS multicast stream node 1 to group 19 for 30s; secondary: BP-CORE/multicast
tests/issue-364-dtpc dtpc Delay-tolerant payload conditioning Regression ION-specific (no ratified standard) Pins #364; DTPC
tests/issue-364-dtpc.ipn2 dtpc Delay-tolerant payload conditioning (2-node) Integration ION-specific (no ratified standard) Pins #364; DTPC; ipn2 topology
tests/ipnd neighbor-discovery IP neighbor discovery of BPAs via beacons, dynamic outduct creation Integration draft-irtf-dtnrg-ipnd IPND beacons over TCP CLA; 2 active nodes

Core Infrastructure & Platform (INFRA, 24 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
tests/1001.sysctl-script admin-config Verify OSX sysctl shared-memory limits sufficient for ION Utility — (implementation) Platform precondition check on macOS; no data flow
tests/1004.loopback-bpstats admin-config Verify BP batched statistics tally counts over LTP loopback Regression ION-specific (no ratified standard) ION batched-stats tally functions; LTP loopback
tests/1005.relay-stats admin-config Verify BP and LTP batched statistics across 3-node relay Integration ION-specific (no ratified standard) 3-node source/relay/dest; secondary: forwarding-relay
tests/admin_parsers admin-config Reject malformed numeric inputs across admin CLIs Regression — (implementation) platform_parse_* validation across ionadmin/ltpadmin/bpsecadmin
tests/issue-285-286-segfaults admin-config Admin command syntax errors no longer segfault Regression — (implementation) Pins #285/#286; ionadmin parser robustness
tests/issue-918-bpadmin-null-eid admin-config bpadmin rejects null-EID endpoint registration cleanly Regression — (implementation) Issue #918; dtn:none / ipn:0.0 register/delete
tests/linking build-linking Verify linking cleanliness of built executables Utility — (implementation) Build/link integrity check
tests/atomics ici-encoding Validate IPC atomics header across C11/builtin/sync tiers Unit — (implementation) Offline per-tier compile+run of ion_atomic; no ION node
tests/cbor-oob-read ici-encoding CBOR string decoder rejects over-declared length Regression — (implementation) ICI CBOR decoder OOB-read/underflow guard (VDP-2945)
tests/issue-302-fast-structures ici-encoding ICI fast data structures functionality Regression — (implementation) Pins #302; 2-node LTP; internal data structures
demos/watchdog-daemon lifecycle psmwatch/sdrwatch auto-launch, ionrestart, ionexit lifecycle Integration — (implementation) Watchdog daemon auto-launch; restart and shutdown; two LTP nodes
tests/ionexit_test lifecycle ionexit cleans up ION processes and shared resources Utility — (implementation) ionexit IPC/shm/sem cleanup
tests/multinode-sdrwmkey lifecycle Per-node sdrWmKey isolates node shutdown from peers Integration — (implementation) Unique sdrWmKey makes SDR working memory per-node
tests/ion-memory-usage/memprotect-settings psm-memory Memory protection threshold, edge-triggered logging, breach detection Regression — (implementation) PSM/SDR memory watermark protection
tests/ion-memory-usage/monitoring psm-memory sdrwatch high-water memory warning and recovery logging Utility — (implementation) sdrwatch daemon monitoring
tests/issue-234-235 psm-memory PSM/SDR mutex bugs eliminated Regression — (implementation) Mutex bugs in PSM and SDR (issues 234, 235)
tests/issue-260-teach-valgrind-mtake psm-memory Valgrind detects leaked blocks (mtake instrumentation) Regression — (implementation) Valgrind PSM mtake leak-detection tooling
tests/psm-trace-restart psm-memory PSM trace lifecycle and trace-restart leak fix Regression — (implementation) traceCount episodes, sptrace_stop leak fix, trace restart
tests/issue-965-file-backed-zco-abort sdr-transactions Unreadable file-backed ZCO drops one bundle not whole instance Regression — (implementation) Issue #965; ZCO file-backed extent error handling
tests/req-0022-reversibility/reversibilityCorrectness sdr-transactions reverseTransaction restores SDR byte-for-byte on cancel Unit — (implementation) Cancelled modified transaction reverses; read-only skip path when unmodified
tests/robust-sdr-lock-recovery sdr-transactions SDR lock robust-mutex recovery after mid-transaction death Regression — (implementation) Robust-mutex EOWNERDEAD recovery
tests/sdr-no-dram sdr-transactions SDR heap file-only mode (configFlags=2, no RAM copy) Integration — (implementation) 2 nodes, 30 bundles with SDR heap in files only
tests/sdr-preservation sdr-transactions SDR data preserved across ionexit shutdown/restart Integration — (implementation) ionexit k preservation for FILE and DRAM modes

Performance Benchmarks (BENCH, 12 tests)

Test Subcategory DTN function / behavior Type Spec § Notes
demos/bench-cgr cgr-benchmark Contact graph routing (SABR) throughput/performance benchmark Benchmark CCSDS 734.3-B-1 CGR/SABR perf over STCP on one host; secondary: ROUTING
demos/bench-ams throughput-benchmark AMS two-node message throughput benchmark Benchmark CCSDS 735.1-B AMS benchtest, 1000 msgs of 1000 bytes; secondary: APP-SVC/ams
demos/bench-bibect throughput-benchmark BIBE custodial-retransmission throughput over UDP Benchmark draft-ietf-dtn-bibect BIBE over UDP with custodial retransmission; secondary: CUSTODY/bibe-custody
demos/bench-dgr throughput-benchmark DGR convergence-layer throughput benchmark Benchmark ION-specific (no ratified standard) DGR (Internet-compatible LTP variant); secondary: CLA/dgr
demos/bench-ltp throughput-benchmark LTP convergence-layer throughput benchmark Benchmark RFC 5326 LTP CLA same-host; CCSDS 734.1-B-1 equivalent
demos/bench-ltp-xlsa throughput-benchmark LTP throughput benchmark over shared-memory xlsa link Benchmark RFC 5326 LTP over ION-specific xlsa ring; delay/drop/rate sweeps
demos/bench-stcp throughput-benchmark STCP convergence-layer throughput benchmark Benchmark ION-specific (no ratified standard) Simplified TCP CLA; secondary: CLA/stcp
demos/bench-tcp throughput-benchmark TCPCL convergence-layer throughput benchmark Benchmark RFC 9174 TCP CLA same-host; secondary: CLA/tcpcl
demos/bench-tcpv6 throughput-benchmark TCPCL-over-IPv6 convergence-layer throughput benchmark Benchmark RFC 9174 IPv6 transport; secondary: CLA/tcpcl
demos/bench-testutils-ltp throughput-benchmark LTP throughput benchmark using test utilities Benchmark RFC 5326 LTP CLA benchmark variant using testutils
demos/bench-udp throughput-benchmark UDP convergence-layer throughput benchmark Benchmark ION-specific (no ratified standard) UDP CLA same-host; secondary: CLA/udp

Specification references

Reference Title / notes
RFC 9171 Bundle Protocol Version 7
RFC 9172 Bundle Protocol Security (BPSec)
RFC 9173 Default Security Contexts for BPSec
RFC 9174 DTN TCP Convergence-Layer Protocol Version 4 (TCPCLv4)
RFC 7242 DTN TCP Convergence-Layer Protocol (v3, historical)
RFC 5326 Licklider Transmission Protocol (LTP) — Specification
RFC 4838 Delay-Tolerant Networking Architecture
draft-ietf-dtn-bibect Bundle-in-Bundle Encapsulation (BIBE) — IETF Internet-Draft
draft-irtf-dtnrg-ipnd DTN IP Neighbor Discovery (IPND) — IRTF Internet-Draft
draft-burleigh-dtnwg-dtka Delay-Tolerant Key Administration (DTKA) — Internet-Draft
CCSDS 727.0-B CCSDS File Delivery Protocol (CFDP)
CCSDS 734.1-B-1 Licklider Transmission Protocol (LTP) for CCSDS (§7 = Service Data Aggregation)
CCSDS 734.2-O-1 Bundle Protocol Specification, BPv7 (Orange Book)
CCSDS 734.3-B-1 Schedule-Aware Bundle Routing (SABR) — the CGR routing standard
CCSDS 734.6-O-1 Custody Transfer and Compressed Bundle Status Reporting (Orange Book, Issue 1, June 2026)
CCSDS 735.1-B Asynchronous Message Service (AMS)
ION-specific (no ratified standard) Behavior specific to the ION implementation; no ratified IETF/CCSDS standard
— (implementation) Internal platform / infrastructure; not governed by a protocol standard

Citation policy. Section numbers are given only where confidently applicable. Where a test invokes CCSDS conventions the CCSDS document is noted alongside the IETF RFC. The cbr-ct-orange-book/* suite maps to CCSDS 734.6-O-1 (Custody Transfer and Compressed Bundle Status Reporting, Issue 1, June 2026): §3.2 = Bundle Sequence Numbers/counters, §3.3 = Sequences & Collections (range arrays), §4.1 = Custody Transfer Extension Block (CTEB), §4.2 = Compressed Custody Signal (CCS), §4.3 = Custody Procedures, §5.1 = Compressed Reporting Extension Block (CREB), §5.2 = Compressed Reporting Signal (CRS).

Generated from tests/ and demos/ descriptions; regenerate when tests are added or renamed.