Destination handler now answers a retransmitted EOF PDU instead of silently reprocessing it. Per CFDP 4.7.2 every EOF PDU must be acknowledged, and a retransmission means our previous ACK was lost. It used to be handled like a brand new EOF regardless of transaction state, which re-ran completion, re-sent a fresh Finished PDU, and restarted its positive ACK procedure on every retransmission the sender made.
cfdp-rs - High level Rust crate for CFDP components
The cfdp-rs Rust crate offers some high-level CCSDS File Delivery Protocol (CFDP) components to
perform file transfers according to the CCSDS Blue Book 727.0-B-5.
The underlying base packet library used to generate the packets to be sent is the
spacepackets library.
Features
cfdp-rs currently supports following high-level features:
- Unacknowledged (class 1) file transfers for both source and destination side.
- Acknowledged (class 2) file transfers for both source and destination side.
The following features have not been implemented yet. PRs or notifications for demand are welcome!
- Suspending transfers
- Inactivity handling
- Start and end of transmission and reception opportunity handling
- Keep Alive and Prompt PDU handling
Check out the documentation for more information on available Rust features.
Examples
You can check the documentation of individual modules for various usage examples.
Coverage
Coverage can be generated using llvm-cov. If you have not done so
already, install the tool:
cargo +stable install cargo-llvm-cov --locked
After this, you can run cargo llvm-cov nextest to run all the tests and display coverage.