Borealis#
DTN daemon with policy DSL for software-defined satellite networking.
Overview#
Borealis is a Delay-Tolerant Networking daemon with an embedded policy language (borealis-policy) for software-defined satellite networking. It provides:
- Multi-tenant isolation via X.509 certificate-based resource delegation
- Contact Graph Routing for time-varying satellite topologies
- DTN-native control using admin bundles (no gRPC complexity)
- Policy DSL for declarative routing and custody decisions
Architecture#
+------------------------------------------+
| borealis-policy (compiled) |
+------------------------------------------+
| borealis daemon |
| +--------+ +--------+ +-----------+ |
| | Bundle | | CGR | | Admin | |
| | Store | | Engine | | Bundles | |
| +--------+ +--------+ +-----------+ |
+------------------------------------------+
| Convergence Layer Adapters |
| +-------+ +-----+ +-------+ |
| | TCPCL | | LTP | | UDP | |
| +-------+ +-----+ +-------+ |
+------------------------------------------+
Installation#
opam install borealis
Usage#
Running the Daemon#
# Start borealis with a config file
borealis run --config /etc/borealis/config.yaml
# Start with verbose logging
borealis run -vvv --config config.yaml
Control CLI#
# Show daemon status
borealis status
# Deploy a policy
borealis policy deploy policy.bp
# Update contact plan
borealis contacts update contacts.json
# List stored bundles
borealis bundles list
Policy DSL#
Borealis includes an embedded policy language for declarative routing:
(* Multi-tenant policy example *)
let policy =
match_tenant "operator:imaging" (
if_priority Expedited then
forward ~custody:true via:ISL
else
store ~until:ground_contact
) @@
match_tenant "operator:comms" (
forward_immediate
) @@
default (drop "unknown tenant")
Multi-Tenant Resource Delegation#
Uses ocaml-delegation for X.509 certificate-based hierarchical resource
allocation:
Root CA (Mission Operator)
├── Operator Cert (100 bundles/sec, 1GB storage)
│ ├── Tenant A Cert (imaging: 50 bundles/sec, 500MB)
│ └── Tenant B Cert (comms: 30 bundles/sec, 200MB)
DTN-Native Control#
Control messages use Bundle Protocol administrative records rather than gRPC:
- Single protocol for control and data
- Store-and-forward tolerant
- BPSec for authentication
- CBOR-encoded, compact
Related Work#
- ION - NASA's DTN implementation in C
- HDTN - NASA's High-rate DTN in C++
- µD3TN - Lightweight DTN implementation
- Albatross - Unikernel orchestrator (inspiration for delegation model)
Borealis differs by:
- Pure OCaml with minimal dependencies
- Embedded policy DSL for software-defined networking
- X.509-based multi-tenant resource delegation
- DTN-native control plane (no gRPC)
License#
ISC License. See LICENSE.md.