|
| enum | { NumChannels = 2
} |
| | Number of CFDP channels. More...
|
| |
| enum | { MaxFilePathSize = 200
} |
| | File path size used for CFDP file system operations. More...
|
| |
| enum | { MaxPduSize = 1024
} |
| | Maximum PDU size in bytes. More...
|
| |
| enum | { NakMaxSegments = 58
} |
| | Max NAK segments supported in a NAK PDU. More...
|
| |
| enum | { MaxTlv = 4
} |
| | Maximum TLVs (Type-Length-Value) per PDU. More...
|
| |
| enum | { R2CrcChunkSize = 1024
} |
| | R2 CRC calc chunk size. More...
|
| |
| enum | { MaxSimultaneousRx = 5
} |
| | Max number of simultaneous file receives. More...
|
| |
| enum | { MaxCommandedPlaybackFilesPerChan = 10
} |
| | Number of max commanded playback files per channel. More...
|
| |
| enum | { MaxCommandedPlaybackDirectoriesPerChan = 2
} |
| | Max number of commanded playback directories per channel. More...
|
| |
| enum | { MaxPollingDirPerChan = 5
} |
| | Max number of polling directories per channel. More...
|
| |
| enum | { NumTransactionsPerPlayback = 5
} |
| | Number of transactions per playback directory. More...
|
| |
| enum | { NumHistoriesPerChannel = 256
} |
| | Number of histories per channel. More...
|
| |
| enum | CListTraverseStatus : U8 { CLIST_TRAVERSE_CONTINUE = 0,
CLIST_TRAVERSE_EXIT = 1
} |
| | Traverse status for circular list operations. More...
|
| |
| enum | PduType : U8 { PduType::PDU_TYPE_DIRECTIVE = 0,
PduType::PDU_TYPE_FILE_DATA = 1
} |
| |
| enum | PduDirection : U8 { PduDirection::DIRECTION_TOWARD_RECEIVER = 0,
PduDirection::DIRECTION_TOWARD_SENDER = 1
} |
| |
| enum | CrcFlag : U8 { CrcFlag::CRC_NOT_PRESENT = 0,
CrcFlag::CRC_PRESENT = 1
} |
| |
| enum | LargeFileFlag : U8 { LargeFileFlag::LARGE_FILE_32_BIT = 0,
LargeFileFlag::LARGE_FILE_64_BIT = 1
} |
| |
| enum | TlvType : U8 {
TlvType::TLV_TYPE_FILESTORE_REQUEST = 0,
TlvType::TLV_TYPE_FILESTORE_RESPONSE = 1,
TlvType::TLV_TYPE_MESSAGE_TO_USER = 2,
TlvType::TLV_TYPE_FAULT_HANDLER_OVERRIDE = 4,
TlvType::TLV_TYPE_FLOW_LABEL = 5,
TlvType::TLV_TYPE_ENTITY_ID = 6
} |
| |
| enum | FileDirective : U8 {
FileDirective::FILE_DIRECTIVE_INVALID_MIN = 0,
FileDirective::FILE_DIRECTIVE_END_OF_FILE = 4,
FileDirective::FILE_DIRECTIVE_FIN = 5,
FileDirective::FILE_DIRECTIVE_ACK = 6,
FileDirective::FILE_DIRECTIVE_METADATA = 7,
FileDirective::FILE_DIRECTIVE_NAK = 8,
FileDirective::FILE_DIRECTIVE_PROMPT = 9,
FileDirective::FILE_DIRECTIVE_KEEP_ALIVE = 12,
FileDirective::FILE_DIRECTIVE_INVALID_MAX = 13
} |
| |
| enum | ConditionCode : U8 {
ConditionCode::CONDITION_CODE_NO_ERROR = 0,
ConditionCode::CONDITION_CODE_POS_ACK_LIMIT_REACHED = 1,
ConditionCode::CONDITION_CODE_KEEP_ALIVE_LIMIT_REACHED = 2,
ConditionCode::CONDITION_CODE_INVALID_TRANSMISSION_MODE = 3,
ConditionCode::CONDITION_CODE_FILESTORE_REJECTION = 4,
ConditionCode::CONDITION_CODE_FILE_CHECKSUM_FAILURE = 5,
ConditionCode::CONDITION_CODE_FILE_SIZE_ERROR = 6,
ConditionCode::CONDITION_CODE_NAK_LIMIT_REACHED = 7,
ConditionCode::CONDITION_CODE_INACTIVITY_DETECTED = 8,
ConditionCode::CONDITION_CODE_INVALID_FILE_STRUCTURE = 9,
ConditionCode::CONDITION_CODE_CHECK_LIMIT_REACHED = 10,
ConditionCode::CONDITION_CODE_UNSUPPORTED_CHECKSUM_TYPE = 11,
ConditionCode::CONDITION_CODE_SUSPEND_REQUEST_RECEIVED = 14,
ConditionCode::CONDITION_CODE_CANCEL_REQUEST_RECEIVED = 15
} |
| |
| enum | AckTxnStatus : U8 {
AckTxnStatus::ACK_TXN_STATUS_UNDEFINED = 0,
AckTxnStatus::ACK_TXN_STATUS_ACTIVE = 1,
AckTxnStatus::ACK_TXN_STATUS_TERMINATED = 2,
AckTxnStatus::ACK_TXN_STATUS_UNRECOGNIZED = 3,
AckTxnStatus::ACK_TXN_STATUS_INVALID = 4
} |
| |
| enum | FinDeliveryCode : U8 { FinDeliveryCode::FIN_DELIVERY_CODE_COMPLETE = 0,
FinDeliveryCode::FIN_DELIVERY_CODE_INCOMPLETE = 1
} |
| |
| enum | FinFileStatus : U8 { FinFileStatus::FIN_FILE_STATUS_DISCARDED = 0,
FinFileStatus::FIN_FILE_STATUS_DISCARDED_FILESTORE = 1,
FinFileStatus::FIN_FILE_STATUS_RETAINED = 2,
FinFileStatus::FIN_FILE_STATUS_UNREPORTED = 3
} |
| |
| enum | ChecksumType : U8 { ChecksumType::CHECKSUM_TYPE_MODULAR = 0,
ChecksumType::CHECKSUM_TYPE_CRC_32 = 1,
ChecksumType::CHECKSUM_TYPE_NULL_CHECKSUM = 15
} |
| |
| enum | TxnState : U8 {
TxnState::TXN_STATE_UNDEF = 0,
TxnState::TXN_STATE_INIT = 1,
TxnState::TXN_STATE_R1 = 2,
TxnState::TXN_STATE_S1 = 3,
TxnState::TXN_STATE_R2 = 4,
TxnState::TXN_STATE_S2 = 5,
TxnState::TXN_STATE_DROP = 6,
TxnState::TXN_STATE_HOLD = 7,
TxnState::TXN_STATE_INVALID = 8
} |
| | High-level state of a transaction. More...
|
| |
| enum | TxSubState : U8 {
TxSubState::TX_SUB_STATE_METADATA = 0,
TxSubState::TX_SUB_STATE_FILEDATA = 1,
TxSubState::TX_SUB_STATE_EOF = 2,
TxSubState::TX_SUB_STATE_CLOSEOUT_SYNC = 3,
TxSubState::TX_SUB_STATE_NUM_STATES = 4
} |
| | Sub-state of a send file transaction. More...
|
| |
| enum | RxSubState : U8 { RxSubState::RX_SUB_STATE_FILEDATA = 0,
RxSubState::RX_SUB_STATE_EOF = 1,
RxSubState::RX_SUB_STATE_CLOSEOUT_SYNC = 2,
RxSubState::RX_SUB_STATE_NUM_STATES = 3
} |
| | Sub-state of a receive file transaction. More...
|
| |
| enum | Direction : U8 { Direction::DIRECTION_RX = 0,
Direction::DIRECTION_TX = 1,
Direction::DIRECTION_NUM = 2
} |
| | Direction identifier. More...
|
| |
| enum | TransactionInitType : U8 { TransactionInitType::INIT_BY_COMMAND = 0,
TransactionInitType::INIT_BY_PORT = 1
} |
| | Transaction initiation method. More...
|
| |
| enum | CfdpTickType : U8 { CfdpTickType::CFDP_TICK_TYPE_RX,
CfdpTickType::CFDP_TICK_TYPE_TXW_NORM,
CfdpTickType::CFDP_TICK_TYPE_TXW_NAK,
CfdpTickType::CFDP_TICK_TYPE_NUM_TYPES
} |
| | Identifies the type of timer tick being processed. More...
|
| |
| enum | TxnStatus : I32 {
TxnStatus::TXN_STATUS_UNDEFINED = -1,
TxnStatus::TXN_STATUS_NO_ERROR = static_cast<I32>(ConditionCode::CONDITION_CODE_NO_ERROR),
TxnStatus::TXN_STATUS_POS_ACK_LIMIT_REACHED = static_cast<I32>(ConditionCode::CONDITION_CODE_POS_ACK_LIMIT_REACHED),
TxnStatus::TXN_STATUS_KEEP_ALIVE_LIMIT_REACHED = static_cast<I32>(ConditionCode::CONDITION_CODE_KEEP_ALIVE_LIMIT_REACHED),
TxnStatus::TXN_STATUS_INVALID_TRANSMISSION_MODE = static_cast<I32>(ConditionCode::CONDITION_CODE_INVALID_TRANSMISSION_MODE),
TxnStatus::TXN_STATUS_FILESTORE_REJECTION = static_cast<I32>(ConditionCode::CONDITION_CODE_FILESTORE_REJECTION),
TxnStatus::TXN_STATUS_FILE_CHECKSUM_FAILURE = static_cast<I32>(ConditionCode::CONDITION_CODE_FILE_CHECKSUM_FAILURE),
TxnStatus::TXN_STATUS_FILE_SIZE_ERROR = static_cast<I32>(ConditionCode::CONDITION_CODE_FILE_SIZE_ERROR),
TxnStatus::TXN_STATUS_NAK_LIMIT_REACHED = static_cast<I32>(ConditionCode::CONDITION_CODE_NAK_LIMIT_REACHED),
TxnStatus::TXN_STATUS_INACTIVITY_DETECTED = static_cast<I32>(ConditionCode::CONDITION_CODE_INACTIVITY_DETECTED),
TxnStatus::TXN_STATUS_INVALID_FILE_STRUCTURE = static_cast<I32>(ConditionCode::CONDITION_CODE_INVALID_FILE_STRUCTURE),
TxnStatus::TXN_STATUS_CHECK_LIMIT_REACHED = static_cast<I32>(ConditionCode::CONDITION_CODE_CHECK_LIMIT_REACHED),
TxnStatus::TXN_STATUS_UNSUPPORTED_CHECKSUM_TYPE = static_cast<I32>(ConditionCode::CONDITION_CODE_UNSUPPORTED_CHECKSUM_TYPE),
TxnStatus::TXN_STATUS_SUSPEND_REQUEST_RECEIVED = static_cast<I32>(ConditionCode::CONDITION_CODE_SUSPEND_REQUEST_RECEIVED),
TxnStatus::TXN_STATUS_CANCEL_REQUEST_RECEIVED = static_cast<I32>(ConditionCode::CONDITION_CODE_CANCEL_REQUEST_RECEIVED),
TxnStatus::TXN_STATUS_PROTOCOL_ERROR = 16,
TxnStatus::TXN_STATUS_ACK_LIMIT_NO_FIN = 17,
TxnStatus::TXN_STATUS_ACK_LIMIT_NO_EOF = 18,
TxnStatus::TXN_STATUS_NAK_RESPONSE_ERROR = 19,
TxnStatus::TXN_STATUS_SEND_EOF_FAILURE = 20,
TxnStatus::TXN_STATUS_EARLY_FIN = 21,
TxnStatus::TXN_STATUS_MAX = 22
} |
| | Values for Transaction Status code. More...
|
| |
|
| static FileSize | CfdpChunkMax (FileSize a, FileSize b) |
| | Selects the larger of the two passed-in offsets. More...
|
| |
| void | CfdpCListInitNode (CListNode *node) |
| | Initialize a clist node. More...
|
| |
| void | CfdpCListInsertFront (CListNode **head, CListNode *node) |
| | Insert the given node into the front of a list. More...
|
| |
| void | CfdpCListInsertBack (CListNode **head, CListNode *node) |
| | Insert the given node into the back of a list. More...
|
| |
| CListNode * | CfdpCListPop (CListNode **head) |
| | Remove the first node from a list and return it. More...
|
| |
| void | CfdpCListRemove (CListNode **head, CListNode *node) |
| | Remove the given node from the list. More...
|
| |
| void | CfdpCListInsertAfter (CListNode **head, CListNode *start, CListNode *after) |
| | Insert the given node into the last after the given start node. More...
|
| |
| void | CfdpCListTraverse (CListNode *start, CListFunc fn, void *context) |
| | Traverse the entire list, calling the given function on all nodes. More...
|
| |
| void | CfdpCListTraverseR (CListNode *end, CListFunc fn, void *context) |
| | Reverse list traversal, starting from end, calling given function on all nodes. More...
|
| |
| static bool | CfdpCListTraverseStatusIsContinue (CListTraverseStatus stat) |
| |
| template<typename Container , typename Member > |
| constexpr Container * | container_of_cpp (Member *member_ptr, Member Container::*member) |
| | Obtains a pointer to the parent structure. More...
|
| |
| static Fw::SerializeStatus | encodeIntegerInSize (Fw::SerialBufferBase &serialBuffer, U64 value, U8 encodeSize) |
| |
| static U64 | decodeIntegerInSize (Fw::SerialBufferBase &serialBuffer, U8 decodeSize, Fw::SerializeStatus &status) |
| |
| PduTypeEnum::T | peekPduType (const Fw::Buffer &buffer) |
| |
| AckTxnStatus | GetTxnStatus (Transaction *txn) |
| | Gets the status of this transaction. More...
|
| |
| CListTraverseStatus | FindTransactionBySequenceNumberImpl (CListNode *node, void *context) |
| | List traversal function to check if the desired sequence number matches. More...
|
| |
| CListTraverseStatus | PrioSearch (CListNode *node, void *context) |
| | Searches for the first transaction with a lower priority than given. More...
|
| |
| bool | TxnStatusIsError (TxnStatus txn_stat) |
| | Check if the internal transaction status represents an error. More...
|
| |
| ConditionCode | TxnStatusToConditionCode (TxnStatus txn_stat) |
| | Converts the internal transaction status to a CFDP condition code. More...
|
| |
Values for Transaction Status code.
This enum defines the possible values representing the result of a transaction. This is a superset of the condition codes defined in CCSDS book 727 (condition codes) but with additional values for local conditions that the blue book does not have, such as protocol/state machine or decoding errors.
The values here are designed to not overlap with the condition codes defined in the blue book, but can be translated to one of those codes for the purposes of FIN/ACK/EOF PDUs.
| Enumerator |
|---|
| TXN_STATUS_UNDEFINED | The undefined status is a placeholder for new transactions before a value is set.
|
| TXN_STATUS_NO_ERROR | |
| TXN_STATUS_POS_ACK_LIMIT_REACHED | |
| TXN_STATUS_KEEP_ALIVE_LIMIT_REACHED | |
| TXN_STATUS_INVALID_TRANSMISSION_MODE | |
| TXN_STATUS_FILESTORE_REJECTION | |
| TXN_STATUS_FILE_CHECKSUM_FAILURE | |
| TXN_STATUS_FILE_SIZE_ERROR | |
| TXN_STATUS_NAK_LIMIT_REACHED | |
| TXN_STATUS_INACTIVITY_DETECTED | |
| TXN_STATUS_INVALID_FILE_STRUCTURE | |
| TXN_STATUS_CHECK_LIMIT_REACHED | |
| TXN_STATUS_UNSUPPORTED_CHECKSUM_TYPE | |
| TXN_STATUS_SUSPEND_REQUEST_RECEIVED | |
| TXN_STATUS_CANCEL_REQUEST_RECEIVED | |
| TXN_STATUS_PROTOCOL_ERROR | |
| TXN_STATUS_ACK_LIMIT_NO_FIN | |
| TXN_STATUS_ACK_LIMIT_NO_EOF | |
| TXN_STATUS_NAK_RESPONSE_ERROR | |
| TXN_STATUS_SEND_EOF_FAILURE | |
| TXN_STATUS_EARLY_FIN | |
| TXN_STATUS_MAX | |
Definition at line 193 of file Types.hpp.
template<typename Container , typename Member >
| constexpr Container* Svc::Ccsds::Cfdp::container_of_cpp |
( |
Member * |
member_ptr, |
|
|
Member Container::* |
member |
|
) |
| |
Obtains a pointer to the parent structure.
Given a pointer to a CListNode object which is known to be a member of a larger container, this converts the pointer to that of the parent. This is the C++ equivalent of the Linux kernel's container_of macro.
Definition at line 79 of file Clist.hpp.