pub trait TimerCreatorProvider {
type Countdown: CountdownProvider;
// Required method
fn create_countdown(&self, timer_context: TimerContext) -> Self::Countdown;
}
Expand description
A generic trait which allows CFDP entities to create check timers which are required to implement special procedures in unacknowledged transmission mode, as specified in 4.6.3.2 and 4.6.3.3.
This trait also allows the creation of different check timers depending on context and purpose of the timer, the runtime environment (e.g. standard clock timer vs. timer using a RTC) or other factors.
The countdown timer is used by 3 mechanisms of the CFDP protocol.
§1. Check limit handling
The first mechanism is the check limit handling for unacknowledged transfers as specified in 4.6.3.2 and 4.6.3.3 of the CFDP standard. For this mechanism, the timer has different functionality depending on whether the using entity is the sending entity or the receiving entity for the unacknowledged transmission mode.
For the sending entity, this timer determines the expiry period for declaring a check limit fault after sending an EOF PDU with requested closure. This allows a timeout of the transfer. Also see 4.6.3.2 of the CFDP standard.
For the receiving entity, this timer determines the expiry period for incrementing a check counter after an EOF PDU is received for an incomplete file transfer. This allows out-of-order reception of file data PDUs and EOF PDUs. Also see 4.6.3.3 of the CFDP standard.
§2. NAK activity limit
The timer will be used to perform the NAK activity check as specified in 4.6.4.7 of the CFDP standard. The expiration period will be provided by the NAK timer expiration limit of the remote entity configuration.
§3. Positive ACK procedures
The timer will be used to perform the Positive Acknowledgement Procedures as specified in 4.7. 1of the CFDP standard. The expiration period will be provided by the Positive ACK timer interval of the remote entity configuration.
Required Associated Types§
Required Methods§
fn create_countdown(&self, timer_context: TimerContext) -> Self::Countdown
Implementors§
Source§impl TimerCreatorProvider for StdTimerCreator
Available on crate feature std
only.
impl TimerCreatorProvider for StdTimerCreator
std
only.