Protocol coverage
Space CCSDS is the link component of the Parsimoni Platform: an OCaml implementation of the CCSDS and delay-tolerant networking protocols that carry releases, commands, and results between a node and its ground segment.
Coverage
| Protocol | Standard | Status | Tested by |
|---|---|---|---|
| Space Packet | CCSDS 133.0-B-2 | Implemented | Fuzzing |
| TM Space Data Link | CCSDS 132.0-B-3 | Implemented | Fuzzing |
| TC Space Data Link | CCSDS 232.0-B-4 | Implemented | Fuzzing |
| AOS Space Data Link | CCSDS 732.0-B-4 | Implemented | Fuzzing |
| USLP | CCSDS 732.1-B-3 | Implemented | Fuzzing |
| COP-1 (FOP and FARM) | CCSDS 232.1-B-2 | Implemented | Fuzzing |
| SDLS | CCSDS 355.0-B-2 | Implemented | Fuzzing |
| CFDP Class 1 and 2 | CCSDS 727.0-B-5 | Implemented | Fuzzing, interoperability |
| SLE (RAF, RCF, CLTU, FSP, ROCF, ISP1) | CCSDS 911 and 912 series | Implemented | Fuzzing |
| BPv7 | RFC 9171 | Implemented | Fuzzing, interoperability |
| BPSec | RFC 9172 | Implemented | Fuzzing, interoperability |
| LTP | RFC 5326 | Implemented | Fuzzing |
| PUS-C | ECSS-E-ST-70-41C | Partial | Fuzzing |
Implemented means the protocol is complete against its standard. Partial means a subset is available; for PUS-C, the services a mission actually uses vary widely, and support is limited to the services exercised by mission tests.
Test coverage
Fuzzing. The stack has more than 60 fuzz targets covering protocol parsing, serialization, state-machine transitions, and error paths. Each layer is written as a pure function from input events to output events, with no mutable state carried across calls, which is what makes generating random inputs and checking invariants practical.
Interoperability. Where a protocol has a widely used reference
implementation, the OCaml one is tested against it rather than only against
itself: the eu.dariolucia.ccsds Java suite and the Python spacepackets
library for CFDP, and the Rust bp7 implementation for BPv7 and BPSec. A
protocol marked Fuzzing alone has no external implementation in the test
loop, so it is checked against the standard and its own invariants.
Verified parsers. For selected formats, Microsoft’s EverParse generates formally verified C parsers with proofs of memory safety, round-trip correctness between parser and serializer, and non-malleability, meaning a valid message has exactly one binary encoding. The OCaml and generated C implementations are differentially tested against each other where that path exists.
Ground-system interoperability
These protocols are the interoperability boundary. A ground system that speaks them needs no Parsimoni software: CCSDS-compatible tools such as Yamcs and OpenC3 COSMOS interoperate at the protocol level. SLE is the usual interface to a ground-station network through the CCSDS 911 and 912 series.