Skip to main content

Module cfdp

Module cfdp 

Source
Expand description

CCSDS File Delivery Protocol (CFDP). CCSDS File Delivery Protocol (CFDP) Protocol

Spec: https://ccsds.org/Pubs/727x0b5e1.pdf

This module provides a complete CFDP implementation with both low-level state machines and high-level async APIs.

§Architecture

The implementation is split into layers:

  • [pdu]: PDU parsing and serialization
  • [machine]: Pure, synchronous state machines (sender and receiver)
  • [filestore]: Abstract file I/O trait
  • [api]: High-level async API with explicit sender/receiver roles

§Features

  • tokio: Enables async API with tokio runtime support
  • cfs: Enables async API with leodos-libcfs runtime support

§Example (tokio)

use leodos_ccsds::cfdp::api::net::{CfdpSender, CfdpReceiver};

let mut sender = CfdpSender::new(entity_id);
let stream = sender.put("file.txt", "remote.txt", dest_id, addr).await?;

let mut receiver = CfdpReceiver::new(entity_id);
let file = receiver.accept().await;

TODO: Finish this implementation

Modules§

checksum
Checksum algorithms for CFDP data integrity verification.
class2
Class 2 (acknowledged) CFDP state machines and transaction management.
filestore
Abstract file I/O trait for platform-independent file operations. The FileStore trait for abstracting file system operations.
pdu
PDU parsing, serialization, and zero-copy views. Defines the structures and serialization/deserialization logic for CCSDS File Delivery Protocol (CFDP) Protocol Data Units (PDUs).

Enums§

CfdpError
Errors that can occur during CFDP operations.