Files
cfdp/CHANGELOG.md
T
Robin Mueller b74893f6c7 Fix for destination handler EOF handling
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.
2026-09-14 11:32:14 +02:00

64 lines
3.0 KiB
Markdown

Change Log
=======
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
# [unreleased]
- Bumped `spacepackets` to v0.18
## Fixed
- Destination handler's `TransactionParams::reset` now resets all fields instead of just two.
The incomplete reset left stale acknowledged-mode state behind, so a new transaction's Metadata
PDU was mistaken for a duplicate of an already-processed one and silently dropped, breaking
every transfer after the first one on a given destination handler instance.
- Source handler's `TransactionParams::reset` had the same issue. A second transaction on the
same source handler instance could compute its EOF checksum over stale state left behind by the
first one.
- Metadata-only transactions (e.g. a Proxy Put Request per CCSDS 727.0-B-5 6.1) now correctly
send and expect an EOF (No error) PDU, as required by 4.6.1.1.9 case (C). The source handler no
longer tries to checksum a source file that does not exist for this case, and the destination
handler no longer tries to create or truncate a destination file that was never named.
- Destination handler no longer panics when a metadata PDU's Message To User TLVs overflow its
internal buffer. It now returns `DestError::MsgsToUserBufferTooSmall` instead, and the buffer
was bumped from 1024 to 2048 bytes.
- Destination handler's `lost_segment_handling` now clears a gap that a retransmission exactly
refills. It used to compare the end of the received segment against the start of the most
recently received window instead of its end, so such a retransmission matched neither branch
and the gap stayed in the tracker, causing the destination to re-request data it had already
written on every NAK round until it hit its NAK limit.
- 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.
# [v0.3.0] 2025-09-25
- Bumped `spacepackets` to v0.16
- Bumped `defmt` to v1
## Added
- Acknowledged mode support for both source and destination handler.
- `FaultInfo` structure which is passed to user fault callbacks.
# [v0.2.0] 2024-11-26
- Bumped `thiserror` to v2
- Bumped `spacepackets` to v0.13
- The source and destination handlers can now be used without the `std` feature and only require
the `alloc` feature.
# [v0.1.0] 2024-09-11
Initial release
[unreleased]: https://egit.irs.uni-stuttgart.de/rust/cfdp/compare/v0.3.0...HEAD
[v0.3.0]: https://egit.irs.uni-stuttgart.de/rust/cfdp/compare/v0.2.0...v0.3.0
[v0.2.0]: https://egit.irs.uni-stuttgart.de/rust/cfdp/compare/v0.1.0...v0.2.0