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.
64 lines
3.0 KiB
Markdown
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
|