Skip to content

Svc::ComRetry

1. Introduction

The Svc::ComRetry component forwards messages from upstream to downstream components, resending messages on failure. Any topology requiring retry capabilities must place this component in the pipeline before a ComStub or Radio component. This component expects a ComStatus response. It acts as a pass-through component in case of a successful delivery, i.e. when it receives Fw::Success::SUCCESS. On receiving Fw::Success::FAILURE, it resends the message until it exceeds the maximum number of retries.

Svc::ComRetry can be used alongside the other F´ communication components (Svc::Framer, Svc::Deframer, Svc::ComQueue).

2. Requirements

Requirement Description Rationale Verification Method
SVC-COMRETRY-001 Svc::ComRetry shall accept incoming downlink data as Fw::Buffer and pass them to an Svc.ComDataWithContext port The component must forward messages without modifying them Unit Test
SVC-COMRETRY-002 Svc::ComRetry shall store Fw::Buffer and its context on receiving buffer ownership through dataReturnIn Store the buffer in case a retry is required Unit test
SVC-COMRETRY-003 Svc::ComRetry shall pause delivery on receiving Fw::Success::FAILURE Svc::ComRetry should not send to a failing communication adapter. Unit test
SVC-COMRETRY-004 Svc::ComRetry shall resend Fw::Buffer on receiving Fw::Success::SUCCESS after prior failure if retries are available Retry delivery of buffer Unit test
SVC-COMRETRY-005 Svc::ComRetry shall simply pass the status upstream when the buffer is not initialized No buffer has been passed down the stack to Svc::ComRetry yet Unit test
SVC-COMRETRY-006 The maximum number of retries shall be configurable The number of retries should be adaptable for projects Inspection
SVC-COMRETRY-007 Svc::ComRetry shall return buffer ownership to the upstream component on receiving Fw::Success::SUCCESS or after all retry attempts fail Memory management Unit Test
SVC-COMRETRY-008 Svc::ComRetry shall send ComStatus upstream on successful delivery or after all retry attempts fail Status of message delivery must be passed up the stack Unit Test

3. Design

Svc::ComRetry implements Svc.Framer.