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)
Full documentation is available at dtn-mtp.github.io/cspcl.
| Page | Description |
|---|---|
| Getting Started | Build, initialize, and send your first bundle |
| C API Reference | Complete C function and type reference |
| Rust API Reference | Rust crate documentation |
| uD3TN Integration | Use CSPCL inside uD3TN |
| Unibo Integration | Use CSPCL inside Unibo |
| Architecture | Design decisions, SFP fragmentation, protocol stack |
git clone https://github.com/dtn-mtp/cspcl.git
cd cspcl && mkdir build && cd build
cmake .. && make
ctest --verboseRecommended for testing and integration development.
Docker deployment provides complete DTN environments with both uD3TN and Unibo-BP integrations, automated interoperability tests, and support for ZMQHUB (virtual) and CAN (hardware-like) transports.
# Quick start - Run all interoperability tests
cd cspcl
docker build -t cspcl-base:latest -f docker/base/Dockerfile .
cd tests/interop
./run-tests.sh
./run-tests.sh --transport can
# Manual stack/message workflow helpers
./stack-up.sh --transport zmqhub
./send-message.sh --scenario all
# Or use Docker Compose directly
cd docker
docker-compose -f docker-compose.zmqhub.yml upWhat's included:
- 🐳 Multi-stage Docker builds (base, uD3TN, Unibo-BP)
- 🧪 Automated test suite (uD3TN basic, Unibo-BP basic, cross-integration)
- 🔌 Two transport modes (ZMQHUB virtual, CAN with vcan)
- 📊 Test runner with reporting and interactive mode
- 📚 Comprehensive documentation
System requirements:
- Docker 20.10+
- Docker Compose v2+
- 2GB RAM, 2GB disk space
- Linux (recommended) or macOS/Windows with WSL2
See: docker/README.md for complete Docker deployment guide.
CSPCL uses automated code formatting to maintain consistency:
# Format all code (C, Python, shell scripts)
./tools/format-code.sh
# Check formatting without modifying files
clang-format --dry-run --Werror src/*.c src/*.h
black tools/ --check
shellcheck tools/*.sh tests/interop/*.shStyle guides:
- C code: Based on LLVM style (see
.clang-format) - Python: Black formatter, 100 character line limit
- Shell: ShellCheck compliant
# Unit tests
mkdir build && cd build
cmake .. -DCSPCL_BUILD_TESTS=ON -DCSP_REPO_DIR=/path/to/libcsp
make && ctest --output-on-failure
# Integration tests
cd tests/interop
./run-tests.sh --transport zmqhubThe project uses GitHub Actions for CI/CD. Every push and pull request runs:
✅ Code quality checks (formatting, linting, style)
✅ Build verification (Debug + Release)
✅ Unit tests
✅ Docker image builds
✅ Integration tests
✅ Documentation validation
✅ Security scanning
See: .github/CI.md for detailed CI documentation.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License.
Copyright © 2025 DTN-MTP contributors.