CSPCL — CubeSat Space Protocol Convergence Layer
CSPCL is a lightweight convergence layer that bridges Bundle Protocol 7 (BP7) and CubeSat Space Protocol (CSP), enabling Delay/Disruption Tolerant Networking (DTN) over space-grade radio links.
BP7 Bundle → CSPCL → CSP SFP → Physical Layer (CAN / ZMQHUB / SocketCAN)
Why CSPCL?
CubeSat missions often rely on CSP as their on-board network layer. BP7 / DTN is increasingly adopted for inter-satellite and ground-to-space data exchange. CSPCL provides the glue between the two — handling fragmentation of large bundles across CSP’s small MTU without requiring changes to either stack.
Key Features
| Feature | Detail |
|---|---|
| SFP Fragmentation | Transparently fragments and reassembles bundles using CSP’s built-in Simple Fragmentation Protocol |
| Connection-Based | One CSP connection per bundle transfer — clean lifecycle |
| Address Translation | IPN (ipn:X.Y) and DTN (dtn://nodeX/) endpoint IDs map directly to CSP node addresses |
| Minimal Footprint | ~300 lines of C, no dynamic allocation beyond SFP reassembly buffer |
| CSP v1.6 | Compatible with libcsp v1.6 (the version widely deployed on CubeSats) |
| Rust Bindings | Safe, idiomatic Rust wrappers included |
Documentation
- Getting Started — build, initialize, send your first bundle
- C API Reference — full function and type reference
- Rust API Reference — Rust crate documentation
- uD3TN Integration — use CSPCL inside uD3TN
- Unibo Integration — use CSPCL with Unibo-BP
- Architecture — design decisions and protocol stack
License
University of Montpellier Space Center