You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Svc/Ccsds/AosFramer/docs/sdd.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,5 +34,5 @@ The `Svc::Ccsds::AosFramer` uses an internal (member) buffer to hold the fixed s
34
34
| output | dataOut | Svc.ComDataWithContext | Outputs framed data with optional context |
35
35
| output | dataReturnOut | Svc.ComDataWithContext | Returns ownership of the incoming Fw::Buffer to its sender once framing is handled |
36
36
| sync input | dataReturnIn | Svc.ComDataWithContext | Receives buffer from a deallocate call in a ComDriver component |
37
-
| sync input | comStatusIn | Fw.SuccessCondition | Receives general status from downstream component indicating readiness for more input|
38
-
| output | comStatusOut | Fw.SuccessCondition |Indicates the status of framer for receiving more data|
37
+
| sync input | comStatusIn | Fw.SuccessCondition | Receives status from downstream communication adapter per the [Communication Adapter Protocol](../../../../docs/reference/communication-adapter-interface.md#communication-adapter-protocol)|
38
+
| output | comStatusOut | Fw.SuccessCondition |Passes status through to upstream `Svc::ComQueue` per the [Framer Status Protocol](../../../../docs/reference/communication-adapter-interface.md#framer-status-protocol)|
Copy file name to clipboardExpand all lines: Svc/Ccsds/TmFramer/docs/sdd.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,8 +42,8 @@ For each frame generated, the `Svc::Ccsds::TmFramer` will populate the CCSDS TM
42
42
| output | dataOut | Svc.ComDataWithContext | Outputs framed data with optional context |
43
43
| output | dataReturnOut | Svc.ComDataWithContext | Returns ownership of the incoming Fw::Buffer to its sender once framing is handled |
44
44
| sync input | dataReturnIn | Svc.ComDataWithContext | Receives buffer from a deallocate call in a ComDriver component |
45
-
| sync input | comStatusIn | Fw.SuccessCondition | Receives general status from downstream component indicating readiness for more input|
46
-
| output | comStatusOut | Fw.SuccessCondition |Indicates the status of framer for receiving more data|
45
+
| sync input | comStatusIn | Fw.SuccessCondition | Receives status from downstream communication adapter per the [Communication Adapter Protocol](../../../../docs/reference/communication-adapter-interface.md#communication-adapter-protocol)|
46
+
| output | comStatusOut | Fw.SuccessCondition |Passes status through to upstream `Svc::ComQueue` per the [Framer Status Protocol](../../../../docs/reference/communication-adapter-interface.md#framer-status-protocol)|
47
47
48
48
## Requirements
49
49
@@ -56,7 +56,7 @@ For each frame generated, the `Svc::Ccsds::TmFramer` will populate the CCSDS TM
56
56
| SVC-Ccsds-TM-FRAMER-004 | The TmFramer shall output the constructed TM Transfer Frame via its `dataOut` port. | Unit Test |
57
57
| SVC-Ccsds-TM-FRAMER-005 | The TmFramer shall return ownership of the input buffer via the `dataReturnOut` port after the framing process is complete. | Unit Test |
58
58
| SVC-Ccsds-TM-FRAMER-006 | The TmFramer shall accept returned buffers (previously sent via `dataOut`) through the `dataReturnIn` port for deallocation or reuse. | Unit Test |
59
-
| SVC-Ccsds-TM-FRAMER-007 | The TmFramer shall receive communication status from downstream components via the `comStatusIn` port, and pass it through to `comStatusOut`| Unit Test, Integration Test |
59
+
| SVC-Ccsds-TM-FRAMER-007 | The TmFramer shall receive communication status from downstream components via the `comStatusIn` port and pass it through to `comStatusOut`, including the initial start-up `Fw::Success::SUCCESS`, per-message statuses, and any recovery `Fw::Success::SUCCESS` after a `Fw::Success::FAILURE`, per the [Framer Status Protocol](../../../../docs/reference/communication-adapter-interface.md#framer-status-protocol)| Unit Test, Integration Test |
60
60
| SVC-Ccsds-TM-FRAMER-008 | The TmFramer shall use exactly one Virtual Channel. | Unit Test, Integration Test |
61
61
| SVC-Ccsds-TM-FRAMER-009 | The TmFramer shall correctly populate all mandatory fields of the TM Transfer Frame Primary Header, including Transfer Frame Version Number, Spacecraft Identifier, Virtual Channel Identifier, Operational Control Field Flag, Master Channel Frame Count, Virtual Channel Frame Count, Transfer Frame Secondary Header Flag, Synchronization Flag, Packet Order Flag, Segment Length Identifier, and First Header Pointer. | Unit Test, Inspection |
62
62
| SVC-Ccsds-TM-FRAMER-010 | The TmFramer shall be configurable with a Spacecraft Identifier. | Inspection, Unit Test |
Copy file name to clipboardExpand all lines: Svc/ComAggregator/docs/sdd.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,9 +13,9 @@ Aggregates buffers in the downlink chain. This is for use with systems that have
13
13
| Svc-ComAggregator-002 | ComAggregator shall hold the incoming buffer when there is insufficient space in the aggregate buffer. | Unit-Test |
14
14
| Svc-ComAggregator-003 | ComAggregator shall send the current aggregate buffer when the incoming buffer is held due to overflow. | Unit-Test |
15
15
| Svc-ComAggregator-004 | ComAggregator shall send the current aggregate buffer when it receives a timeout trigger if and only if the aggregate is non-empty. | Unit-Test |
16
-
| Svc-ComAggregator-005 | ComAggregator shall clear aggregation state when a SUCCESS communication status is received back. | Unit-Test |
16
+
| Svc-ComAggregator-005 | ComAggregator shall clear aggregation state when a `Fw::Success::SUCCESS` communication status is received back. | Unit-Test |
17
17
| Svc-ComAggregator-006 | ComAggregator shall preserve the order of received buffers when forming each aggregate and across aggregate sends. | Unit-Test |
18
-
| Svc-ComAggregator-007 | ComAggregator shall inter operate with the [Communication Adapter Interface comStatus protocol](../../../docs/reference/communication-adapter-interface.md)| Unit-Test |
18
+
| Svc-ComAggregator-007 | ComAggregator shall interoperate with the [Communication Adapter Interface protocol](../../../docs/reference/communication-adapter-interface.md). Specifically, it shall pass through `Fw::Success::SUCCESS` and `Fw::Success::FAILURE` statuses per the [Framer Status Protocol](../../../docs/reference/communication-adapter-interface.md#framer-status-protocol), including the initial start-up SUCCESS and any recovery SUCCESS following a FAILURE.| Unit-Test |
Copy file name to clipboardExpand all lines: Svc/ComQueue/docs/sdd.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## 1. Introduction
4
4
5
-
`Svc::ComQueue` is an F´ active component that functions as a priority queue of buffer types. Messages are dequeued and forwarded in order of priority when a `Fw::Success::SUCCESS` signal is received. Receiving a `Fw::Success::FAILURE` results in the queues being paused until a following`Fw::Success::SUCCESS` is received.
5
+
`Svc::ComQueue` is an F´ active component that functions as a priority queue of buffer types. Messages are dequeued and forwarded in order of priority when a `Fw::Success::SUCCESS` signal is received on the `comStatusIn` port. `Fw::Success::SUCCESS` is accepted in three contexts: (1) at start-up to initiate data flow, (2) in response to a previously sent message, and (3) after a previous `Fw::Success::FAILURE` to indicate recovery. Receiving a `Fw::Success::FAILURE` results in the queues being paused until a subsequent`Fw::Success::SUCCESS` is received.
6
6
7
7
`Svc::ComQueue` is configured with a queue depth and queue priority for each incoming `Fw::Com` and `Fw::Buffer` port by passing in a configuration table at initialization.
8
8
Queued messages from the highest priority source port are serviced first and a round-robin algorithm is used to balance between ports of shared priority.
@@ -12,10 +12,11 @@ Queued messages from the highest priority source port are serviced first and a r
12
12
## 2. Assumptions
13
13
14
14
1. Incoming buffers to a given port are in priority order
15
-
2. Data is considered to be successfully sent when a `Fw::Success::SUCCESS` signal was received
16
-
3. The com adapter is responsible for any retransmission of failed data
15
+
2. Data is considered to be successfully sent when a `Fw::Success::SUCCESS` signal is received in response to that data
16
+
3. The communication adapter is responsible for any retransmission of failed data and for emitting a recovery `Fw::Success::SUCCESS` after a failure
17
17
4. The system includes downstream components implementing the
| SVC-COMQUEUE-001 |`Svc::ComQueue` shall queue `Fw::Buffer` and `Fw::ComBuffer` received on incoming ports. | The purpose of the queue is to store messages. | Unit Test |
27
-
| SVC-COMQUEUE-002 |`Svc::ComQueue` shall output exactly one `Fw::Buffer` (wrapping the queued data units) on a received `Fw::Success::SUCCESS` signal. |`Svc::ComQueue` obeys the communication adapter interface protocol. | Unit Test |
28
-
| SVC-COMQUEUE-003 |`Svc::ComQueue` shall pause sending on the `Fw::Success::FAILURE` and restart on the next `Fw::Success::SUCCESS` signal. |`Svc::ComQueue` should not sent to a failing communication adapter. | Unit Test |
28
+
| SVC-COMQUEUE-002 |`Svc::ComQueue` shall output exactly one `Fw::Buffer` (wrapping the queued data units) on a received `Fw::Success::SUCCESS` signal. `Fw::Success::SUCCESS` is valid at start-up (to initiate flow), in response to a sent message, or after a previous `Fw::Success::FAILURE` (to indicate recovery). |`Svc::ComQueue` obeys the [communication adapter interface protocol](../../../docs/reference/communication-adapter-interface.md#communication-queue-protocol). | Unit Test |
29
+
| SVC-COMQUEUE-003 |`Svc::ComQueue` shall pause sending on `Fw::Success::FAILURE` and resume on the next `Fw::Success::SUCCESS` signal. |`Svc::ComQueue` should not send to a failing communication adapter. | Unit Test |
29
30
| SVC-COMQUEUE-004 |`Svc::ComQueue` shall have a configurable number of `Fw::Com` and `Fw::Buffer` input ports. |`Svc::ComQueue` should be adaptable for a number of projects. | Inspection |
30
-
| SVC-COMQUEUE-005 |`Svc::ComQueue` shall select and send the next priority `Fw::Buffer` and `Fw::ComBuffer` message in response to `Fw::Success::SUCCESS`. |`Svc::ComQueue` obeys the communication adapter interface protocol. | Unit test |
31
+
| SVC-COMQUEUE-005 |`Svc::ComQueue` shall select and send the next priority `Fw::Buffer` and `Fw::ComBuffer` message in response to `Fw::Success::SUCCESS`. |`Svc::ComQueue` obeys the [communication adapter interface protocol](../../../docs/reference/communication-adapter-interface.md#communication-queue-protocol). | Unit test |
31
32
| SVC-COMQUEUE-006 |`Svc::ComQueue` shall periodically telemeter the number of queued messages per-port in response to a `run` port invocation. |`Svc::ComQueue` should provide useful telemetry. | Unit Test |
32
33
| SVC-COMQUEUE-007 |`Svc::ComQueue` shall emit a queue overflow event for a given port when the configured depth is exceeded. Messages shall be discarded. |`Svc::ComQueue` needs to indicate off-nominal events. | Unit Test |
33
34
| SVC-COMQUEUE-008 |`Svc::ComQueue` shall implement a round robin approach to balance between ports of the same priority. | Allows projects to balance between a set of queues of similar priority. | Unit Test |
@@ -78,6 +79,8 @@ buffer is received. `FAILURE` statuses keep the `Svc::ComQueue` in `WAITING` sta
78
79
either send a buffer and transition to `WAITING` or will have no buffers to send and will transition into `READY` state.
79
80
Buffers are queued when in `WAITING` state.
80
81
82
+
`Fw::Success::SUCCESS` triggers a transition from `WAITING` to either `WAITING` (if a buffer was sent) or `READY` (if no buffers are queued). This SUCCESS is valid in three contexts per the [Communication Queue Protocol](../../../docs/reference/communication-adapter-interface.md#communication-queue-protocol): at start-up, in response to a sent message, or after a previous FAILURE indicating recovery.
83
+
81
84

Copy file name to clipboardExpand all lines: Svc/ComRetry/docs/sdd.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## 1. Introduction
4
4
5
-
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.
5
+
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 per the [Communication Adapter Protocol](../../../docs/reference/communication-adapter-interface.md#communication-adapter-protocol). 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. After all retries are exhausted, it emits `Fw::Success::FAILURE` upstream, and the downstream communication adapter is responsible for eventually emitting a recovery `Fw::Success::SUCCESS` to resume data flow.
6
6
7
7
`Svc::ComRetry` can be used alongside the other F´ communication components (`Svc::Framer`, `Svc::Deframer`, `Svc::ComQueue`).
8
8
@@ -14,7 +14,7 @@ The `Svc::ComRetry` component forwards messages from upstream to downstream comp
14
14
| 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 |
15
15
| 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 |
16
16
| 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 |
17
-
| 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 |
17
+
| SVC-COMRETRY-005 |`Svc::ComRetry` shall pass through the initial start-up `Fw::Success::SUCCESS` and any non-data statuses upstream when no buffer is pending | The initial SUCCESS must reach `Svc::ComQueue` to initiate data flow per the [Communication Queue Protocol](../../../docs/reference/communication-adapter-interface.md#communication-queue-protocol)| Unit test |
18
18
| SVC-COMRETRY-006 | The maximum number of retries shall be configurable | The number of retries should be adaptable for projects | Inspection |
19
19
| 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 |
20
20
| 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 |
0 commit comments