From 7f822dd5e82de95d2767fd5eefa98229ed82f8aa Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Mon, 5 Oct 2026 20:32:05 +0200 Subject: [PATCH 01/21] validation before writing --- .gitignore | 1 + include/sdlp_tc.h | 1 + include/sdlp_tm.h | 3 +- src/sdlp_tc.c | 85 ++++++++++++++------------ src/sdlp_tm.c | 153 +++++++++++++++++++++++++++++----------------- tests/test_tc.c | 61 ++++++++++++++++++ tests/test_tm.c | 92 ++++++++++++++++++++++++++++ 7 files changed, 300 insertions(+), 96 deletions(-) diff --git a/.gitignore b/.gitignore index 4748466..71f35d7 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ obj/ bin/ .github/ .vscode/ +TODO.md \ No newline at end of file diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 5b66188..44a0430 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -201,6 +201,7 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, * * Validates that the Frame Length matches the octet count and rejects the reserved * Bypass=0/Control Command=1 combination. The FECF is surfaced without validation. + * On failure, @p frame is left unchanged. * * @param[in] buffer Wire buffer to parse. * @param[in] buffer_size Buffer length in octets. diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index c5c23a8..89bc872 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -196,7 +196,8 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, * @brief Parse a wire-format TM Transfer Frame. * * Recovers the header, any Secondary Header / OCF signalled by their flags, the - * Data Field, and the FECF (surfaced as-is, without validation). + * Data Field, and the FECF (surfaced as-is, without validation). On failure, + * @p frame is left unchanged. * * @param[in] buffer Wire buffer to parse. * @param[in] buffer_size Buffer length in octets. diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index ec237a3..f87206c 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -31,6 +31,26 @@ static uint16_t tc_frame_length(const sdlp_tc_frame_t *frame) return (uint16_t)(frame_octets - 1u); } +/** + * @brief Decode the 5-octet Transfer Frame Primary Header (CCSDS 232.0-B-4 §4.1.2). + * + * @param[in] buffer Wire buffer holding at least ::TC_PRIMARY_HEADER_SIZE octets. + * @param[out] header Decoded primary header fields. + */ +static void sdlp_tc_decode_primary_header(const uint8_t *buffer, sdlp_tc_header_t *header) +{ + memset(header, 0, sizeof(sdlp_tc_header_t)); + + header->transfer_frame_version = (uint16_t)((buffer[0] >> 6) & 0x03u); + header->bypass_flag = (uint16_t)((buffer[0] >> 5) & 0x01u); + header->control_command_flag = (uint16_t)((buffer[0] >> 4) & 0x01u); + header->reserved = (uint16_t)((buffer[0] >> 2) & 0x03u); + header->spacecraft_id = (uint16_t)((((unsigned)buffer[0] << 8) | buffer[1]) & 0x03FFu); + header->virtual_channel_id = (uint16_t)((buffer[2] >> 2) & 0x3Fu); + header->frame_length = (uint16_t)((((unsigned)buffer[2] << 8) | buffer[3]) & 0x03FFu); + header->frame_sequence_number = buffer[4]; +} + sdlp_status_t sdlp_tc_create_frame(sdlp_tc_frame_t *frame, uint16_t spacecraft_id, uint8_t virtual_channel_id, @@ -216,75 +236,64 @@ sdlp_status_t sdlp_tc_decode_frame(const uint8_t *buffer, size_t buffer_size, sdlp_tc_frame_t *frame) { - if (!buffer || !frame || buffer_size < TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE) + if ((!buffer) || (!frame) || + (buffer_size < (TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE))) { return SDLP_ERROR_INVALID_PARAM; } - memset(frame, 0, sizeof(sdlp_tc_frame_t)); - - size_t offset = 0; - - frame->header.transfer_frame_version = (uint8_t)((buffer[offset] >> 6) & 0x03u); - frame->header.bypass_flag = (uint8_t)((buffer[offset] >> 5) & 0x01u); - frame->header.control_command_flag = (uint8_t)((buffer[offset] >> 4) & 0x01u); - frame->header.reserved = (uint8_t)((buffer[offset] >> 2) & 0x03u); - frame->header.spacecraft_id = - (uint16_t)(((uint16_t)(buffer[offset] & 0x03u) << 8) | buffer[offset + 1]); - offset += 2; + sdlp_tc_header_t header; + sdlp_tc_decode_primary_header(buffer, &header); /* Bypass=0 with Control Command=1 is reserved for future application * (CCSDS 232.0-B-4, table 4-1). */ - if (!frame->header.bypass_flag && frame->header.control_command_flag) + if ((!header.bypass_flag) && (header.control_command_flag)) { return SDLP_ERROR_INVALID_FRAME; } - frame->header.virtual_channel_id = (uint8_t)((buffer[offset] >> 2) & 0x3Fu); - frame->header.frame_length = - (uint16_t)((((uint16_t)buffer[offset] & 0x03u) << 8) | (uint16_t)buffer[offset + 1]); - offset += 2; - frame->header.frame_sequence_number = buffer[offset++]; - /* Frame Validation: the Frame Length must equal the actual octet count minus one * (CCSDS 232.0-B-4, 4.1.2.7.2). */ - if ((size_t)frame->header.frame_length + 1u != buffer_size) + if (((size_t)header.frame_length + 1u) != buffer_size) { return SDLP_ERROR_INVALID_FRAME; } + size_t data_offset = TC_PRIMARY_HEADER_SIZE; + #ifdef TC_SEGMENT_HEADER_ENABLED - if (!frame->header.control_command_flag) + sdlp_tc_segment_header_t segment_header = {0}; + if (!header.control_command_flag) { if (buffer_size < - TC_PRIMARY_HEADER_SIZE + TC_SEGMENT_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE) + (TC_PRIMARY_HEADER_SIZE + TC_SEGMENT_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE)) { return SDLP_ERROR_INVALID_FRAME; } - frame->segment_header.sequence_flags = (uint8_t)((buffer[offset] >> 6) & 0x03u); - frame->segment_header.map_id = (uint8_t)(buffer[offset] & 0x3Fu); - offset++; - frame->data_length = (uint16_t)(buffer_size - TC_PRIMARY_HEADER_SIZE - - TC_SEGMENT_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE); - } - else - { - frame->data_length = - (uint16_t)(buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE); + segment_header.sequence_flags = (buffer[data_offset] >> 6) & 0x03u; + segment_header.map_id = buffer[data_offset] & 0x3Fu; + data_offset += TC_SEGMENT_HEADER_SIZE; } -#else - frame->data_length = - (uint16_t)(buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE); #endif /* The Frame Length validation above pins buffer_size to frame_length + 1 (<= 1024), * so data_length is inherently <= TC_MAX_DATA_SIZE and the Data Field fits. */ - memcpy(frame->data, &buffer[offset], frame->data_length); - offset += frame->data_length; + const size_t data_length = buffer_size - data_offset - TC_FRAME_ERROR_CONTROL_SIZE; + const size_t fecf_offset = data_offset + data_length; + + /* Every check has passed. The output frame is written only from here on, so a + * rejected buffer leaves it exactly as the caller passed it. */ + memset(frame, 0, sizeof(sdlp_tc_frame_t)); + frame->header = header; +#ifdef TC_SEGMENT_HEADER_ENABLED + frame->segment_header = segment_header; +#endif + memcpy(frame->data, &buffer[data_offset], data_length); + frame->data_length = (uint16_t)data_length; /* The Frame Error Control Field is surfaced as-is; validating it (e.g. via * CRC-16) is left to the application. */ - frame->fecf = (uint16_t)(((uint16_t)buffer[offset] << 8) | buffer[offset + 1]); + frame->fecf = (uint16_t)(((uint16_t)buffer[fecf_offset] << 8) | buffer[fecf_offset + 1u]); return SDLP_SUCCESS; } diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 7e14426..ca0034f 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -71,6 +71,76 @@ static tm_master_channel_t *tm_get_master_channel(uint16_t spacecraft_id) return NULL; } +/** + * @brief Decode the 6-octet Transfer Frame Primary Header (CCSDS 132.0-B-3 §4.1.2). + * + * @param[in] buffer Wire buffer holding at least ::TM_PRIMARY_HEADER_SIZE octets. + * @param[out] header Decoded primary header fields. + */ +static void sdlp_tm_decode_primary_header(const uint8_t *buffer, sdlp_tm_header_t *header) +{ + const uint16_t data_field_status = (uint16_t)(((uint16_t)buffer[4] << 8) | buffer[5]); + + memset(header, 0, sizeof(sdlp_tm_header_t)); + + header->transfer_frame_version = (uint16_t)((buffer[0] >> 6) & 0x03u); + header->spacecraft_id = (uint16_t)(((buffer[0] & 0x3Fu) << 4) | ((buffer[1] >> 4) & 0x0Fu)); + header->virtual_channel_id = (uint16_t)((buffer[1] >> 1) & 0x07u); + header->ocf_flag = (uint16_t)(buffer[1] & 0x01u); + header->master_channel_frame_count = buffer[2]; + header->virtual_channel_frame_count = buffer[3]; + sdlp_tm_unpack_data_field_status(data_field_status, &header->transfer_frame_data_field_status); +} + +/** + * @brief Validate the Transfer Frame Secondary Header of a wire frame and return its size. + * + * Reads nothing beyond the Identification Field, so it is safe on any buffer that holds + * at least a primary header and a Frame Error Control Field. + * + * @param[in] buffer Wire buffer holding the whole Transfer Frame. + * @param[in] buffer_size Buffer length in octets. + * @return Secondary Header size in octets (Identification Field plus Data Field), or 0 if + * the header is malformed or does not fit in the frame. + */ +static size_t sdlp_tm_secondary_header_wire_size(const uint8_t *buffer, size_t buffer_size) +{ + /* Need the Identification Field plus at least one Data Field octet (4.1.3.1.3). */ + if (buffer_size < + (TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + 1u + TM_FRAME_ERROR_CONTROL_SIZE)) + { + return 0; + } + + /* The wire Length is the total Secondary Header size minus one, which is exactly the + * Data Field length (4.1.3.2.3.2). */ + const size_t data_length = buffer[TM_PRIMARY_HEADER_SIZE] & 0x3Fu; + const size_t header_size = TM_SECONDARY_HEADER_ID_SIZE + data_length; + + if ((data_length == 0u) || + (buffer_size < (TM_PRIMARY_HEADER_SIZE + header_size + TM_FRAME_ERROR_CONTROL_SIZE))) + { + return 0; + } + + return header_size; +} + +/** + * @brief Decode a wire-format Transfer Frame Secondary Header (CCSDS 132.0-B-3 §4.1.3). + * + * @param[in] wire Secondary Header octets, starting at the Identification Field + * and already validated by sdlp_tm_secondary_header_wire_size(). + * @param[out] secondary_header Decoded Secondary Header. + */ +static void sdlp_tm_decode_secondary_header(const uint8_t *wire, + sdlp_tm_secondary_header_t *secondary_header) +{ + secondary_header->version = (wire[0] >> 6) & 0x03u; + secondary_header->length = wire[0] & 0x3Fu; + memcpy(secondary_header->data, &wire[TM_SECONDARY_HEADER_ID_SIZE], secondary_header->length); +} + uint16_t sdlp_tm_pack_data_field_status(const sdlp_tm_data_field_status_t *status) { if (!status) @@ -256,89 +326,58 @@ sdlp_status_t sdlp_tm_decode_frame(const uint8_t *buffer, size_t buffer_size, sdlp_tm_frame_t *frame) { - if (!buffer || !frame || buffer_size < TM_PRIMARY_HEADER_SIZE + TM_FRAME_ERROR_CONTROL_SIZE) + if ((!buffer) || (!frame) || + (buffer_size < (TM_PRIMARY_HEADER_SIZE + TM_FRAME_ERROR_CONTROL_SIZE))) { return SDLP_ERROR_INVALID_PARAM; } - memset(frame, 0, sizeof(sdlp_tm_frame_t)); - - size_t offset = 0; - - frame->header.transfer_frame_version = (uint8_t)((buffer[offset] >> 6) & 0x03u); - frame->header.spacecraft_id = - (uint16_t)(((buffer[offset] & 0x3Fu) << 4) | ((buffer[offset + 1] >> 4) & 0x0Fu)); - offset++; - - frame->header.virtual_channel_id = (uint8_t)((buffer[offset] >> 1) & 0x07u); - frame->header.ocf_flag = (uint8_t)(buffer[offset] & 0x01u); - offset++; - - frame->header.master_channel_frame_count = buffer[offset++]; - frame->header.virtual_channel_frame_count = buffer[offset++]; - - uint16_t data_field_status = (uint16_t)(((uint16_t)buffer[offset] << 8) | buffer[offset + 1]); - sdlp_tm_unpack_data_field_status(data_field_status, - &frame->header.transfer_frame_data_field_status); - offset += 2; + sdlp_tm_header_t header; + sdlp_tm_decode_primary_header(buffer, &header); /* Transfer Frame Secondary Header (CCSDS 132.0-B-3, 4.1.3), present when the * Secondary Header Flag is set. Its size is signaled in the Identification Field. */ size_t secondary_header_size = 0; - if (frame->header.transfer_frame_data_field_status.secondary_header_flag) + if (header.transfer_frame_data_field_status.secondary_header_flag) { - uint8_t sh_length; - - /* Need the Identification Field plus at least one Data Field octet (4.1.3.1.3). */ - if (buffer_size < - TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + 1u + TM_FRAME_ERROR_CONTROL_SIZE) + secondary_header_size = sdlp_tm_secondary_header_wire_size(buffer, buffer_size); + if (secondary_header_size == 0u) { return SDLP_ERROR_INVALID_FRAME; } - - frame->secondary_header.version = (uint8_t)((buffer[offset] >> 6) & 0x03u); - sh_length = (uint8_t)(buffer[offset] & 0x3Fu); /* total size - 1 = Data Field length */ - if (sh_length == 0u) - { - return SDLP_ERROR_INVALID_FRAME; - } - secondary_header_size = TM_SECONDARY_HEADER_ID_SIZE + sh_length; - - if (buffer_size < - TM_PRIMARY_HEADER_SIZE + secondary_header_size + TM_FRAME_ERROR_CONTROL_SIZE) - { - return SDLP_ERROR_INVALID_FRAME; - } - - frame->secondary_header.length = sh_length; - memcpy(frame->secondary_header.data, - &buffer[offset + TM_SECONDARY_HEADER_ID_SIZE], - sh_length); - offset += secondary_header_size; } /* Operational Control Field (CCSDS 132.0-B-3, 4.1.5): four octets between the * Data Field and the Frame Error Control Field, present when the OCF Flag is set. */ - size_t ocf_size = frame->header.ocf_flag ? TM_OCF_SIZE : 0; - - size_t overhead = + const size_t ocf_size = header.ocf_flag ? TM_OCF_SIZE : 0; + const size_t overhead = TM_PRIMARY_HEADER_SIZE + secondary_header_size + ocf_size + TM_FRAME_ERROR_CONTROL_SIZE; - if (buffer_size < overhead) + + /* The Data Field length is range-checked at full width: narrowing it to the 16-bit + * data_length first would let an oversized buffer wrap round to a small, valid length. */ + if ((buffer_size < overhead) || ((buffer_size - overhead) > TM_MAX_DATA_SIZE)) { return SDLP_ERROR_INVALID_FRAME; } + const size_t data_length = buffer_size - overhead; - frame->data_length = (uint16_t)(buffer_size - overhead); + /* Every check has passed. The output frame is written only from here on, so a + * rejected buffer leaves it exactly as the caller passed it. */ + memset(frame, 0, sizeof(sdlp_tm_frame_t)); + frame->header = header; - if (frame->data_length > TM_MAX_DATA_SIZE) + size_t offset = TM_PRIMARY_HEADER_SIZE; + if (secondary_header_size > 0u) { - return SDLP_ERROR_INVALID_FRAME; + sdlp_tm_decode_secondary_header(&buffer[offset], &frame->secondary_header); + offset += secondary_header_size; } - memcpy(frame->data, &buffer[offset], frame->data_length); - offset += frame->data_length; + memcpy(frame->data, &buffer[offset], data_length); + frame->data_length = (uint16_t)data_length; + offset += data_length; - if (frame->header.ocf_flag) + if (header.ocf_flag) { memcpy(frame->ocf, &buffer[offset], TM_OCF_SIZE); offset += TM_OCF_SIZE; diff --git a/tests/test_tc.c b/tests/test_tc.c index bd03e79..b0fbe50 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -9,6 +9,7 @@ #include #include +#include /* The TC unit tests always exercise the segment-header configuration. */ #ifndef TC_SEGMENT_HEADER_ENABLED @@ -335,6 +336,65 @@ static int test_tc_decode_segment_too_small(void) return 0; } +/** + * @brief Decode a buffer the decoder must reject and check the output frame is untouched. + * + * The frame is pre-filled with a sentinel pattern, so any write by the decoder shows up + * as a difference, whichever field it lands in. + * + * @param[in] buffer Wire buffer to decode (may be NULL). + * @param[in] buffer_size Buffer length in octets. + * @param[in] expected Status the decoder must return. + * @return 0 if the decoder returned @p expected and left the frame unchanged, 1 otherwise. + */ +static int test_tc_expect_decode_rejected(const uint8_t *buffer, + size_t buffer_size, + sdlp_status_t expected) +{ + sdlp_tc_frame_t frame; + sdlp_tc_frame_t untouched; + + memset(&frame, 0xA5, sizeof(frame)); + memset(&untouched, 0xA5, sizeof(untouched)); + + ASSERT_EQ_INT(expected, sdlp_tc_decode_frame(buffer, buffer_size, &frame)); + ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); + + return 0; +} + +static int test_tc_decode_failure_leaves_frame_unchanged(void) +{ + const uint8_t too_short[TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE - 1] = {0}; + /* Bypass=0, Control Command=1 is reserved (table 4-1); the Frame Length is consistent. */ + const uint8_t reserved_type[8] = {0x10u, 0, 0, 7}; + /* Frame Length = 6 announces 7 octets, but 8 are present. */ + const uint8_t wrong_length[8] = {0, 0, 0, 6}; + /* A consistent 7-octet Type-D frame has no room for the Segment Header and the FECF. */ + const uint8_t no_segment_room[7] = {0, 0, 0, 6}; + + ASSERT_EQ_INT( + 0, + test_tc_expect_decode_rejected(NULL, sizeof(wrong_length), SDLP_ERROR_INVALID_PARAM)); + ASSERT_EQ_INT( + 0, + test_tc_expect_decode_rejected(too_short, sizeof(too_short), SDLP_ERROR_INVALID_PARAM)); + ASSERT_EQ_INT(0, + test_tc_expect_decode_rejected(reserved_type, + sizeof(reserved_type), + SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT(0, + test_tc_expect_decode_rejected(wrong_length, + sizeof(wrong_length), + SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT(0, + test_tc_expect_decode_rejected(no_segment_room, + sizeof(no_segment_room), + SDLP_ERROR_INVALID_FRAME)); + + return 0; +} + test_result_t test_tc_run_all(void) { test_result_t result; @@ -352,6 +412,7 @@ test_result_t test_tc_run_all(void) RUN_TEST(test_tc_decode_reserved_frame_type); RUN_TEST(test_tc_segment_header_roundtrip); RUN_TEST(test_tc_decode_segment_too_small); + RUN_TEST(test_tc_decode_failure_leaves_frame_unchanged); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ diff --git a/tests/test_tm.c b/tests/test_tm.c index ffd7452..e140605 100644 --- a/tests/test_tm.c +++ b/tests/test_tm.c @@ -9,6 +9,8 @@ #include #include +#include +#include static int test_tm_create_frame_invalid_params(void) { @@ -360,6 +362,94 @@ static int test_tm_decode_malformed(void) return 0; } +/** + * @brief Decode a buffer the decoder must reject and check the output frame is untouched. + * + * The frame is pre-filled with a sentinel pattern, so any write by the decoder shows up + * as a difference, whichever field it lands in. + * + * @param[in] buffer Wire buffer to decode (may be NULL). + * @param[in] buffer_size Buffer length in octets. + * @param[in] expected Status the decoder must return. + * @return 0 if the decoder returned @p expected and left the frame unchanged, 1 otherwise. + */ +static int test_tm_expect_decode_rejected(const uint8_t *buffer, + size_t buffer_size, + sdlp_status_t expected) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t untouched; + + memset(&frame, 0xA5, sizeof(frame)); + memset(&untouched, 0xA5, sizeof(untouched)); + + ASSERT_EQ_INT(expected, sdlp_tm_decode_frame(buffer, buffer_size, &frame)); + ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); + + return 0; +} + +static int test_tm_decode_failure_leaves_frame_unchanged(void) +{ + const uint8_t too_short[TM_PRIMARY_HEADER_SIZE + TM_FRAME_ERROR_CONTROL_SIZE - 1] = {0}; + /* Secondary Header Flag set (byte 4 bit 7), no room for its Identification Field plus + * one Data Field octet. */ + const uint8_t no_secondary_room[9] = {0, 0, 0, 0, 0x80u}; + /* Secondary Header Length of zero, i.e. an empty Data Field. */ + const uint8_t empty_secondary[10] = {0, 0, 0, 0, 0x80u}; + /* Secondary Header Length overruns the remaining buffer. */ + const uint8_t secondary_overrun[10] = {0, 0, 0, 0, 0x80u, 0, 0x0Au}; + /* OCF Flag set (byte 1 bit 0), no room for the 4-octet OCF. */ + const uint8_t no_ocf_room[8] = {0, 0x01u}; + /* Data Field one octet longer than TM_MAX_DATA_SIZE. */ + static const uint8_t oversized[TM_PRIMARY_HEADER_SIZE + TM_MAX_DATA_SIZE + 1 + + TM_FRAME_ERROR_CONTROL_SIZE] = {0}; + + ASSERT_EQ_INT( + 0, + test_tm_expect_decode_rejected(NULL, sizeof(no_ocf_room), SDLP_ERROR_INVALID_PARAM)); + ASSERT_EQ_INT( + 0, + test_tm_expect_decode_rejected(too_short, sizeof(too_short), SDLP_ERROR_INVALID_PARAM)); + ASSERT_EQ_INT(0, + test_tm_expect_decode_rejected(no_secondary_room, + sizeof(no_secondary_room), + SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT(0, + test_tm_expect_decode_rejected(empty_secondary, + sizeof(empty_secondary), + SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT(0, + test_tm_expect_decode_rejected(secondary_overrun, + sizeof(secondary_overrun), + SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT( + 0, + test_tm_expect_decode_rejected(no_ocf_room, sizeof(no_ocf_room), SDLP_ERROR_INVALID_FRAME)); + ASSERT_EQ_INT( + 0, + test_tm_expect_decode_rejected(oversized, sizeof(oversized), SDLP_ERROR_INVALID_FRAME)); + + return 0; +} + +static int test_tm_decode_data_length_beyond_16_bits(void) +{ + /* A Data Field of 65546 octets reads as 10 once narrowed to 16 bits, so the decoder + * must range-check the length before narrowing it. */ + const size_t data_length = (size_t)UINT16_MAX + 1u + 10u; + const size_t buffer_size = TM_PRIMARY_HEADER_SIZE + data_length + TM_FRAME_ERROR_CONTROL_SIZE; + uint8_t *buffer = calloc(buffer_size, 1); + int result; + + ASSERT_TRUE(buffer); + result = test_tm_expect_decode_rejected(buffer, buffer_size, SDLP_ERROR_INVALID_FRAME); + free(buffer); + ASSERT_EQ_INT(0, result); + + return 0; +} + test_result_t test_tm_run_all(void) { test_result_t result; @@ -377,6 +467,8 @@ test_result_t test_tm_run_all(void) RUN_TEST(test_tm_set_ocf_invalid); RUN_TEST(test_tm_null_params); RUN_TEST(test_tm_decode_malformed); + RUN_TEST(test_tm_decode_failure_leaves_frame_unchanged); + RUN_TEST(test_tm_decode_data_length_beyond_16_bits); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ From 5b865b4c8353b94d2e8d880f4696dedc0329ad46 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Mon, 5 Oct 2026 20:40:06 +0200 Subject: [PATCH 02/21] Enhance error handling in frame encoding functions and add tests for oversized frames --- include/sdlp_tc.h | 7 ++- include/sdlp_tm.h | 7 ++- src/sdlp_tc.c | 8 +++ src/sdlp_tm.c | 4 +- tests/test_tc.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++ tests/test_tm.c | 110 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 256 insertions(+), 5 deletions(-) diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 44a0430..080e201 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -183,13 +183,16 @@ sdlp_status_t sdlp_tc_create_set_vr_frame(sdlp_tc_frame_t *frame, * * Emits the primary header, the Segment Header (when compiled in and the frame is * not Type-BC), the Data Field, then the FECF (verbatim from @p frame->fecf). The - * wire Frame Length is derived from the emitted octet count. + * wire Frame Length is derived from the emitted octet count. On failure, @p buffer + * and @p encoded_size are left unchanged. * * @param[in] frame Frame to serialise. * @param[out] buffer Output buffer. * @param[in] buffer_size Buffer capacity in octets. * @param[out] encoded_size Bytes written on success. - * @return ::SDLP_SUCCESS, ::SDLP_ERROR_INVALID_PARAM, or ::SDLP_ERROR_BUFFER_TOO_SMALL. + * @return ::SDLP_SUCCESS; ::SDLP_ERROR_INVALID_PARAM on NULL args or a frame that would + * exceed ::TC_MAX_FRAME_SIZE octets; ::SDLP_ERROR_BUFFER_TOO_SMALL if @p buffer + * cannot hold the frame. */ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, uint8_t *buffer, diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 89bc872..8402d8d 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -179,13 +179,16 @@ sdlp_status_t sdlp_tm_set_ocf(sdlp_tm_frame_t *frame, const uint8_t ocf[TM_OCF_S * @brief Serialise a TM Transfer Frame into a caller-supplied buffer. * * Emits, in order: primary header, Secondary Header (if flagged), Data Field, - * OCF (if flagged), then the FECF (written verbatim from @p frame->fecf). + * OCF (if flagged), then the FECF (written verbatim from @p frame->fecf). On failure, + * @p buffer and @p encoded_size are left unchanged. * * @param[in] frame Frame to serialise. * @param[out] buffer Output buffer. * @param[in] buffer_size Buffer capacity in octets. * @param[out] encoded_size Bytes written on success. - * @return ::SDLP_SUCCESS, ::SDLP_ERROR_INVALID_PARAM, or ::SDLP_ERROR_BUFFER_TOO_SMALL. + * @return ::SDLP_SUCCESS; ::SDLP_ERROR_INVALID_PARAM on NULL args or a Data Field longer + * than ::TM_MAX_DATA_SIZE; ::SDLP_ERROR_BUFFER_TOO_SMALL if @p buffer cannot hold + * the frame. */ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, uint8_t *buffer, diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index f87206c..6262e49 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -189,6 +189,14 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, } #endif + /* A Transfer Frame is at most TC_MAX_FRAME_SIZE octets, the most the 10-bit Frame + * Length can express (CCSDS 232.0-B-4, 4.1.2.7). The same limit keeps data_length + * within frame->data, so the copy below cannot read past the array. */ + if (required_size > TC_MAX_FRAME_SIZE) + { + return SDLP_ERROR_INVALID_PARAM; + } + if (buffer_size < required_size) { return SDLP_ERROR_BUFFER_TOO_SMALL; diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index ca0034f..3ac265d 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -250,7 +250,9 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, size_t buffer_size, size_t *encoded_size) { - if (!frame || !buffer || !encoded_size) + /* A hand-filled frame can carry any data_length; one beyond the Data Field array + * would make the copy below read past it. */ + if ((!frame) || (!buffer) || (!encoded_size) || (frame->data_length > TM_MAX_DATA_SIZE)) { return SDLP_ERROR_INVALID_PARAM; } diff --git a/tests/test_tc.c b/tests/test_tc.c index b0fbe50..92c3741 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -9,6 +9,7 @@ #include #include +#include #include /* The TC unit tests always exercise the segment-header configuration. */ @@ -16,6 +17,9 @@ #error "test_tc.c must be built with -DTC_SEGMENT_HEADER_ENABLED" #endif +/** @brief Scratch buffer size for rejected-encode checks: holds a frame just over the limit. */ +#define TEST_TC_SCRATCH_SIZE (2 * TC_MAX_FRAME_SIZE) + static int test_tc_create_frame_invalid_params(void) { sdlp_tc_frame_t frame; @@ -395,6 +399,125 @@ static int test_tc_decode_failure_leaves_frame_unchanged(void) return 0; } +/** + * @brief Encode a frame the encoder must reject and check both outputs are untouched. + * + * The buffer and the encoded size are pre-filled with a sentinel pattern, so any write + * by the encoder shows up as a difference. + * + * @param[in] frame Frame to encode. + * @param[in] buffer_size Capacity to offer the encoder, at most ::TEST_TC_SCRATCH_SIZE. + * @param[in] expected Status the encoder must return. + * @return 0 if the encoder returned @p expected and left its outputs unchanged, 1 otherwise. + */ +static int test_tc_expect_encode_rejected(const sdlp_tc_frame_t *frame, + size_t buffer_size, + sdlp_status_t expected) +{ + uint8_t buffer[TEST_TC_SCRATCH_SIZE]; + uint8_t untouched[TEST_TC_SCRATCH_SIZE]; + size_t encoded_size = 0xA5A5u; + + memset(buffer, 0xA5, sizeof(buffer)); + memset(untouched, 0xA5, sizeof(untouched)); + + ASSERT_EQ_INT(expected, sdlp_tc_encode_frame(frame, buffer, buffer_size, &encoded_size)); + ASSERT_EQ_INT(0xA5A5u, encoded_size); + ASSERT_EQ_MEM(untouched, buffer, sizeof(buffer)); + + return 0; +} + +/** + * @brief Round-trip the largest legal Type-D frame through an exact-size buffer. + * + * @param[out] encoded Buffer of exactly ::TC_MAX_FRAME_SIZE octets. + * @return 0 if every check passed, 1 otherwise. + */ +static int test_tc_check_max_frame_roundtrip(uint8_t *encoded) +{ + sdlp_tc_frame_t frame; + sdlp_tc_frame_t decoded; + uint8_t payload[TC_MAX_DATA_SIZE - TC_SEGMENT_HEADER_SIZE]; + size_t encoded_size = 0; + + for (size_t i = 0; i < sizeof(payload); i++) + { + payload[i] = (uint8_t)i; + } + + ASSERT_EQ_INT( + SDLP_SUCCESS, + sdlp_tc_create_frame(&frame, 0x3FFu, 0x3Fu, 0xFFu, payload, (uint16_t)sizeof(payload))); + ASSERT_EQ_INT( + 0, + test_tc_expect_encode_rejected(&frame, TC_MAX_FRAME_SIZE - 1, SDLP_ERROR_BUFFER_TOO_SMALL)); + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, TC_MAX_FRAME_SIZE, &encoded_size)); + ASSERT_EQ_INT(TC_MAX_FRAME_SIZE, encoded_size); + /* Frame Length = 1023 sets all ten bits: the low two of octet 2 and all of octet 3. */ + ASSERT_EQ_INT(0x03u, encoded[2] & 0x03u); + ASSERT_EQ_INT(0xFFu, encoded[3]); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_decode_frame(encoded, encoded_size, &decoded)); + ASSERT_EQ_INT((int)sizeof(payload), decoded.data_length); + ASSERT_EQ_MEM(payload, decoded.data, sizeof(payload)); + + return 0; +} + +static int test_tc_encode_max_frame_exact_buffer(void) +{ + uint8_t *encoded = malloc(TC_MAX_FRAME_SIZE); + int result; + + ASSERT_TRUE(encoded); + result = test_tc_check_max_frame_roundtrip(encoded); + free(encoded); + ASSERT_EQ_INT(0, result); + + return 0; +} + +static int test_tc_encode_rejects_oversized_frame(void) +{ + sdlp_tc_frame_t frame; + const uint8_t payload[1] = {0x01u}; + uint8_t encoded[TC_MAX_FRAME_SIZE]; + size_t encoded_size = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 1)); + + /* Type-D: the Segment Header takes one octet, so a full Data Field array makes a + * 1025-octet frame, one more than the 10-bit Frame Length can express. */ + frame.data_length = TC_MAX_DATA_SIZE; + ASSERT_EQ_INT( + 0, + test_tc_expect_encode_rejected(&frame, TEST_TC_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + /* A length far beyond the Data Field array must not be read out of the frame. */ + frame.data_length = UINT16_MAX; + ASSERT_EQ_INT( + 0, + test_tc_expect_encode_rejected(&frame, TEST_TC_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + /* Type-BC carries no Segment Header: a full Data Field array is exactly the largest + * frame, and one octet more is rejected. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_frame_type(&frame, SDLP_TC_FRAME_TYPE_BC)); + frame.data_length = TC_MAX_DATA_SIZE; + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT(TC_MAX_FRAME_SIZE, encoded_size); + + frame.data_length = TC_MAX_DATA_SIZE + 1; + ASSERT_EQ_INT( + 0, + test_tc_expect_encode_rejected(&frame, TEST_TC_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + return 0; +} + test_result_t test_tc_run_all(void) { test_result_t result; @@ -413,6 +536,8 @@ test_result_t test_tc_run_all(void) RUN_TEST(test_tc_segment_header_roundtrip); RUN_TEST(test_tc_decode_segment_too_small); RUN_TEST(test_tc_decode_failure_leaves_frame_unchanged); + RUN_TEST(test_tc_encode_max_frame_exact_buffer); + RUN_TEST(test_tc_encode_rejects_oversized_frame); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ diff --git a/tests/test_tm.c b/tests/test_tm.c index e140605..4b7398a 100644 --- a/tests/test_tm.c +++ b/tests/test_tm.c @@ -12,6 +12,13 @@ #include #include +/** @brief Scratch buffer size for rejected-encode checks: holds a frame just over the limit. */ +#define TEST_TM_SCRATCH_SIZE (2 * TM_MAX_DATA_SIZE) + +/** @brief Size of a frame with a full Data Field and neither Secondary Header nor OCF. */ +#define TEST_TM_MAX_PLAIN_FRAME_SIZE \ + (TM_PRIMARY_HEADER_SIZE + TM_MAX_DATA_SIZE + TM_FRAME_ERROR_CONTROL_SIZE) + static int test_tm_create_frame_invalid_params(void) { sdlp_tm_frame_t frame; @@ -450,6 +457,107 @@ static int test_tm_decode_data_length_beyond_16_bits(void) return 0; } +/** + * @brief Encode a frame the encoder must reject and check both outputs are untouched. + * + * The buffer and the encoded size are pre-filled with a sentinel pattern, so any write + * by the encoder shows up as a difference. + * + * @param[in] frame Frame to encode. + * @param[in] buffer_size Capacity to offer the encoder, at most ::TEST_TM_SCRATCH_SIZE. + * @param[in] expected Status the encoder must return. + * @return 0 if the encoder returned @p expected and left its outputs unchanged, 1 otherwise. + */ +static int test_tm_expect_encode_rejected(const sdlp_tm_frame_t *frame, + size_t buffer_size, + sdlp_status_t expected) +{ + uint8_t buffer[TEST_TM_SCRATCH_SIZE]; + uint8_t untouched[TEST_TM_SCRATCH_SIZE]; + size_t encoded_size = 0xA5A5u; + + memset(buffer, 0xA5, sizeof(buffer)); + memset(untouched, 0xA5, sizeof(untouched)); + + ASSERT_EQ_INT(expected, sdlp_tm_encode_frame(frame, buffer, buffer_size, &encoded_size)); + ASSERT_EQ_INT(0xA5A5u, encoded_size); + ASSERT_EQ_MEM(untouched, buffer, sizeof(buffer)); + + return 0; +} + +/** + * @brief Round-trip a frame with the largest Data Field through an exact-size buffer. + * + * @param[out] encoded Buffer of exactly ::TEST_TM_MAX_PLAIN_FRAME_SIZE octets. + * @return 0 if every check passed, 1 otherwise. + */ +static int test_tm_check_max_data_roundtrip(uint8_t *encoded) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t decoded; + uint8_t payload[TM_MAX_DATA_SIZE]; + size_t encoded_size = 0; + + for (size_t i = 0; i < sizeof(payload); i++) + { + payload[i] = (uint8_t)i; + } + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, 1, 0, payload, (uint16_t)sizeof(payload))); + ASSERT_EQ_INT(0, + test_tm_expect_encode_rejected(&frame, + TEST_TM_MAX_PLAIN_FRAME_SIZE - 1, + SDLP_ERROR_BUFFER_TOO_SMALL)); + + ASSERT_EQ_INT( + SDLP_SUCCESS, + sdlp_tm_encode_frame(&frame, encoded, TEST_TM_MAX_PLAIN_FRAME_SIZE, &encoded_size)); + ASSERT_EQ_INT(TEST_TM_MAX_PLAIN_FRAME_SIZE, encoded_size); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_decode_frame(encoded, encoded_size, &decoded)); + ASSERT_EQ_INT(TM_MAX_DATA_SIZE, decoded.data_length); + ASSERT_EQ_MEM(payload, decoded.data, sizeof(payload)); + + return 0; +} + +static int test_tm_encode_max_data_exact_buffer(void) +{ + uint8_t *encoded = malloc(TEST_TM_MAX_PLAIN_FRAME_SIZE); + int result; + + ASSERT_TRUE(encoded); + result = test_tm_check_max_data_roundtrip(encoded); + free(encoded); + ASSERT_EQ_INT(0, result); + + return 0; +} + +static int test_tm_encode_rejects_oversized_data(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x01u}; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, payload, 1)); + + /* One octet more than the Data Field array holds. */ + frame.data_length = TM_MAX_DATA_SIZE + 1; + ASSERT_EQ_INT( + 0, + test_tm_expect_encode_rejected(&frame, TEST_TM_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + /* A length far beyond the Data Field array must not be read out of the frame. */ + frame.data_length = UINT16_MAX; + ASSERT_EQ_INT( + 0, + test_tm_expect_encode_rejected(&frame, TEST_TM_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + return 0; +} + test_result_t test_tm_run_all(void) { test_result_t result; @@ -469,6 +577,8 @@ test_result_t test_tm_run_all(void) RUN_TEST(test_tm_decode_malformed); RUN_TEST(test_tm_decode_failure_leaves_frame_unchanged); RUN_TEST(test_tm_decode_data_length_beyond_16_bits); + RUN_TEST(test_tm_encode_max_data_exact_buffer); + RUN_TEST(test_tm_encode_rejects_oversized_data); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ From 2b1b730ff6f67cb7c72d81acbd93e6c1c645b0c8 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Mon, 5 Oct 2026 20:47:11 +0200 Subject: [PATCH 03/21] validation against the secondary header len = 0 --- include/sdlp_tm.h | 6 ++-- src/sdlp_tm.c | 64 ++++++++++++++++++++++++---------- tests/test_tm.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 21 deletions(-) diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 8402d8d..6b4e678 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -186,9 +186,9 @@ sdlp_status_t sdlp_tm_set_ocf(sdlp_tm_frame_t *frame, const uint8_t ocf[TM_OCF_S * @param[out] buffer Output buffer. * @param[in] buffer_size Buffer capacity in octets. * @param[out] encoded_size Bytes written on success. - * @return ::SDLP_SUCCESS; ::SDLP_ERROR_INVALID_PARAM on NULL args or a Data Field longer - * than ::TM_MAX_DATA_SIZE; ::SDLP_ERROR_BUFFER_TOO_SMALL if @p buffer cannot hold - * the frame. + * @return ::SDLP_SUCCESS; ::SDLP_ERROR_INVALID_PARAM on NULL args, a Data Field longer + * than ::TM_MAX_DATA_SIZE, or the Secondary Header Flag set with an empty Secondary + * Header; ::SDLP_ERROR_BUFFER_TOO_SMALL if @p buffer cannot hold the frame. */ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, uint8_t *buffer, diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 3ac265d..62d4682 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -141,6 +141,46 @@ static void sdlp_tm_decode_secondary_header(const uint8_t *wire, memcpy(secondary_header->data, &wire[TM_SECONDARY_HEADER_ID_SIZE], secondary_header->length); } +/** + * @brief Compute the encoded size of a TM Transfer Frame, validating the lengths it depends on. + * + * A frame filled in by hand, rather than through sdlp_tm_create_frame() and + * sdlp_tm_set_secondary_header(), can carry lengths that cannot be encoded. + * + * @param[in] frame Frame to measure. + * @return Encoded size in octets, or 0 if the Data Field is longer than ::TM_MAX_DATA_SIZE + * or the Secondary Header Flag is set with an empty Secondary Header. + */ +static size_t sdlp_tm_encoded_size(const sdlp_tm_frame_t *frame) +{ + size_t size = TM_PRIMARY_HEADER_SIZE + frame->data_length + TM_FRAME_ERROR_CONTROL_SIZE; + + /* A data_length beyond the Data Field array would make the encoder read past it. */ + if (frame->data_length > TM_MAX_DATA_SIZE) + { + return 0; + } + + if (frame->header.transfer_frame_data_field_status.secondary_header_flag) + { + /* The wire Length is the total Secondary Header size minus one (CCSDS 132.0-B-3, + * 4.1.3.2.3.2). A Length of 0 would be an Identification Field with no Data Field behind + * it, which is mandatory */ + if (frame->secondary_header.length == 0u) + { + return 0; + } + size += TM_SECONDARY_HEADER_ID_SIZE + frame->secondary_header.length; + } + + if (frame->header.ocf_flag) + { + size += TM_OCF_SIZE; + } + + return size; +} + uint16_t sdlp_tm_pack_data_field_status(const sdlp_tm_data_field_status_t *status) { if (!status) @@ -250,27 +290,15 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, size_t buffer_size, size_t *encoded_size) { - /* A hand-filled frame can carry any data_length; one beyond the Data Field array - * would make the copy below read past it. */ - if ((!frame) || (!buffer) || (!encoded_size) || (frame->data_length > TM_MAX_DATA_SIZE)) + if ((!frame) || (!buffer) || (!encoded_size)) { return SDLP_ERROR_INVALID_PARAM; } - int secondary_header_present = - frame->header.transfer_frame_data_field_status.secondary_header_flag ? 1 : 0; - int ocf_present = frame->header.ocf_flag ? 1 : 0; - - size_t required_size = - TM_PRIMARY_HEADER_SIZE + frame->data_length + TM_FRAME_ERROR_CONTROL_SIZE; - - if (secondary_header_present) + const size_t required_size = sdlp_tm_encoded_size(frame); + if (required_size == 0u) { - required_size += TM_SECONDARY_HEADER_ID_SIZE + frame->secondary_header.length; - } - if (ocf_present) - { - required_size += TM_OCF_SIZE; + return SDLP_ERROR_INVALID_PARAM; } if (buffer_size < required_size) @@ -295,7 +323,7 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, /* Transfer Frame Secondary Header (CCSDS 132.0-B-3, 4.1.3): Identification Field * (Version '00' | Length = total size - 1 = Data Field length) then the Data Field. */ - if (secondary_header_present) + if (frame->header.transfer_frame_data_field_status.secondary_header_flag) { buffer[offset++] = (uint8_t)(((frame->secondary_header.version & 0x03u) << 6) | (frame->secondary_header.length & 0x3Fu)); @@ -308,7 +336,7 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, /* Operational Control Field (CCSDS 132.0-B-3, 4.1.5): four octets following the * Data Field, present when the OCF Flag is set. The content is caller-supplied. */ - if (ocf_present) + if (frame->header.ocf_flag) { memcpy(&buffer[offset], frame->ocf, TM_OCF_SIZE); offset += TM_OCF_SIZE; diff --git a/tests/test_tm.c b/tests/test_tm.c index 4b7398a..416c785 100644 --- a/tests/test_tm.c +++ b/tests/test_tm.c @@ -558,6 +558,92 @@ static int test_tm_encode_rejects_oversized_data(void) return 0; } +static int test_tm_encode_rejects_empty_secondary_header(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x01u}; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, payload, 1)); + + /* The flag is raised by hand, without sdlp_tm_set_secondary_header(), so the Secondary + * Header Data Field is empty; 4.1.3.1.3 requires 1 to 63 octets. */ + frame.header.transfer_frame_data_field_status.secondary_header_flag = 1; + ASSERT_EQ_INT( + 0, + test_tm_expect_encode_rejected(&frame, TEST_TM_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); + + return 0; +} + +/** + * @brief Round-trip a frame carrying a Secondary Header of a given Data Field length. + * + * @param[in] length Secondary Header Data Field length in octets. + * @param[out] encoded Buffer of exactly @p frame_size octets. + * @param[in] frame_size Encoded size of the frame: one Data Field octet plus the headers + * and the FECF. + * @return 0 if every check passed, 1 otherwise. + */ +static int test_tm_check_secondary_header_roundtrip(uint8_t length, + uint8_t *encoded, + size_t frame_size) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t decoded; + const uint8_t payload[1] = {0x5Au}; + uint8_t sh_data[TM_SECONDARY_HEADER_MAX_DATA]; + size_t encoded_size = 0; + + for (size_t i = 0; i < sizeof(sh_data); i++) + { + sh_data[i] = (uint8_t)(i + 1u); + } + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, payload, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_set_secondary_header(&frame, sh_data, length)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_encode_frame(&frame, encoded, frame_size, &encoded_size)); + ASSERT_EQ_INT((int)frame_size, (int)encoded_size); + /* Identification Field: Version '00' in the top two bits, then the Length, which + * equals the Data Field length (4.1.3.2). */ + ASSERT_EQ_INT(length, encoded[TM_PRIMARY_HEADER_SIZE]); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_decode_frame(encoded, encoded_size, &decoded)); + ASSERT_EQ_INT(length, decoded.secondary_header.length); + ASSERT_EQ_MEM(sh_data, decoded.secondary_header.data, length); + ASSERT_EQ_INT(1, decoded.data_length); + ASSERT_EQ_INT(payload[0], decoded.data[0]); + + return 0; +} + +/** + * @brief Run the Secondary Header round trip through an exact-size heap buffer. + * + * @param[in] length Secondary Header Data Field length in octets. + * @return 0 if every check passed, 1 otherwise. + */ +static int test_tm_secondary_header_roundtrip_at(uint8_t length) +{ + const size_t frame_size = TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + length + 1u + + TM_FRAME_ERROR_CONTROL_SIZE; + uint8_t *encoded = malloc(frame_size); + int result; + + ASSERT_TRUE(encoded); + result = test_tm_check_secondary_header_roundtrip(length, encoded, frame_size); + free(encoded); + + return result; +} + +static int test_tm_secondary_header_length_limits(void) +{ + ASSERT_EQ_INT(0, test_tm_secondary_header_roundtrip_at(1)); + ASSERT_EQ_INT(0, test_tm_secondary_header_roundtrip_at(TM_SECONDARY_HEADER_MAX_DATA)); + + return 0; +} + test_result_t test_tm_run_all(void) { test_result_t result; @@ -579,6 +665,8 @@ test_result_t test_tm_run_all(void) RUN_TEST(test_tm_decode_data_length_beyond_16_bits); RUN_TEST(test_tm_encode_max_data_exact_buffer); RUN_TEST(test_tm_encode_rejects_oversized_data); + RUN_TEST(test_tm_encode_rejects_empty_secondary_header); + RUN_TEST(test_tm_secondary_header_length_limits); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ From 5cc22d6e30db9fcd098559e8988eb23b4eafbe79 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:11:07 +0200 Subject: [PATCH 04/21] improve handling for resource limits --- README.md | 2 +- include/sdlp_common.h | 3 +- include/sdlp_tm.h | 31 ++++++- src/sdlp_tm.c | 51 +++++------- tests/test_tm.c | 189 +++++++++++++++++++++++++++++++++++++----- 5 files changed, 224 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index b8c62f4..2b4d509 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ Current implementation focuses on core protocol features: - No SDLS (Space Data Link Security) option - No TM Only-Idle-Data (OID) frame generation or PN randomization - TM Transfer Frames are variable length; the mission-fixed frame length must be enforced by the caller -- TM frame counts are kept per Master Channel / Virtual Channel in fixed static state (up to `TM_MAX_MASTER_CHANNELS` Master Channels; not thread-safe) +- TM frame counts are kept per Master Channel / Virtual Channel in fixed static state (not thread-safe). At most `TM_MAX_MASTER_CHANNELS` (default 8) Spacecraft IDs are tracked; `sdlp_tm_create_frame` returns `SDLP_ERROR_NO_RESOURCE` for one more, and `sdlp_tm_reset_frame_counts` empties the table These can be extended as needed for specific mission requirements. diff --git a/include/sdlp_common.h b/include/sdlp_common.h index 5fdb45b..11052c8 100644 --- a/include/sdlp_common.h +++ b/include/sdlp_common.h @@ -27,7 +27,8 @@ typedef enum SDLP_SUCCESS = 0, /**< Operation completed successfully. */ SDLP_ERROR_INVALID_PARAM = -1, /**< NULL pointer or out-of-range argument. */ SDLP_ERROR_BUFFER_TOO_SMALL = -2, /**< Output buffer smaller than the encoded frame. */ - SDLP_ERROR_INVALID_FRAME = -3 /**< Malformed or inconsistent frame on decode. */ + SDLP_ERROR_INVALID_FRAME = -3, /**< Malformed or inconsistent frame on decode. */ + SDLP_ERROR_NO_RESOURCE = -4 /**< A fixed-size internal table is full. */ } sdlp_status_t; #ifdef __cplusplus diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 6b4e678..81d6779 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -36,6 +36,20 @@ extern "C" #define TM_OCF_SIZE 4 /**< Operational Control Field size in octets (§4.1.5). */ +/** + * @brief Number of distinct Master Channels whose frame counts are tracked concurrently. + * + * TM Master/Virtual Channel Frame Counts are kept per Master Channel (identified by + * Spacecraft ID, as the Transfer Frame Version Number is fixed at 0) and, within each, + * per Virtual Channel (CCSDS 132.0-B-3 §4.1.2.5 and §4.1.2.6). The state lives in a + * fixed-size table (no dynamic allocation), so sdlp_tm_create_frame() returns + * ::SDLP_ERROR_NO_RESOURCE for a Spacecraft ID beyond this many. Define it when building + * the library to change the limit. + */ +#ifndef TM_MAX_MASTER_CHANNELS +# define TM_MAX_MASTER_CHANNELS 8 +#endif + /** * @brief Transfer Frame Data Field Status sub-field values (CCSDS 132.0-B-3 §4.1.2.7). * @{ @@ -132,14 +146,17 @@ void sdlp_tm_unpack_data_field_status(uint16_t raw, sdlp_tm_data_field_status_t * @brief Build a TM Transfer Frame carrying a Data Field. * * Sets a standards-valid default Data Field Status (Sync Flag = 0, Segment Length - * Identifier '11') and advances the per-Master/Virtual-Channel frame counts. + * Identifier '11') and advances the per-Master/Virtual-Channel frame counts. On failure, + * @p frame is left unchanged and no frame count advances. * * @param[out] frame Target frame. * @param[in] spacecraft_id Spacecraft Identifier — masked to 10 bits. * @param[in] virtual_channel_id Virtual Channel Identifier — masked to 3 bits. * @param[in] data Data Field content (copied into the frame). * @param[in] data_length Data Field length (0..::TM_MAX_DATA_SIZE). - * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on NULL args or oversized data. + * @return ::SDLP_SUCCESS; ::SDLP_ERROR_INVALID_PARAM on NULL args or oversized data; + * ::SDLP_ERROR_NO_RESOURCE if @p spacecraft_id is a new Master Channel and + * ::TM_MAX_MASTER_CHANNELS of them are already tracked. */ sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, uint16_t spacecraft_id, @@ -147,6 +164,16 @@ sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, const uint8_t *data, uint16_t data_length); +/** + * @brief Forget every Master Channel and restart all frame counts from zero. + * + * Empties the table sdlp_tm_create_frame() uses to number frames, freeing all + * ::TM_MAX_MASTER_CHANNELS slots. Meant for (re-)initialisation and for tests: in normal + * operation a count must not be reset unless it is unavoidable (CCSDS 132.0-B-3 + * §4.1.2.5.3 and §4.1.2.6.3). Not thread-safe. + */ +void sdlp_tm_reset_frame_counts(void); + /** * @brief Attach a Transfer Frame Secondary Header (CCSDS 132.0-B-3 §4.1.3). * diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 62d4682..b96921e 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -10,19 +10,6 @@ #include -/** - * @brief Number of distinct Master Channels whose frame counts are tracked concurrently. - * - * TM Master/Virtual Channel Frame Counts are kept per Master Channel (identified by - * Spacecraft ID, as the Transfer Frame Version Number is fixed at 0) and, within each, - * per Virtual Channel (CCSDS 132.0-B-3, 4.1.2.5 and 4.1.2.6). Both counts are - * free-running modulo-256. State lives in a fixed-size table (no dynamic allocation); - * frames for further Master Channels are emitted with zeroed counts. Not thread-safe. - */ -#ifndef TM_MAX_MASTER_CHANNELS -# define TM_MAX_MASTER_CHANNELS 8 -#endif - #define TM_VC_PER_MC 8 /**< TM Virtual Channels per Master Channel (VCID is 3 bits). */ /** @@ -36,7 +23,11 @@ typedef struct uint8_t vc_frame_count[TM_VC_PER_MC]; /**< Virtual Channel Frame Counts, indexed by VCID. */ } tm_master_channel_t; -/** @brief Fixed-size table of per-Master-Channel counter state. */ +/** + * @brief Fixed-size table of per-Master-Channel counter state (see ::TM_MAX_MASTER_CHANNELS). + * + * Both counts are free-running modulo-256. Not thread-safe. + */ static tm_master_channel_t tm_master_channels[TM_MAX_MASTER_CHANNELS]; /** @@ -207,37 +198,41 @@ void sdlp_tm_unpack_data_field_status(uint16_t raw, sdlp_tm_data_field_status_t status->first_header_pointer = (uint16_t)(raw & 0x07FFu); } +void sdlp_tm_reset_frame_counts(void) +{ + memset(tm_master_channels, 0, sizeof(tm_master_channels)); +} + sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, uint16_t spacecraft_id, uint8_t virtual_channel_id, const uint8_t *data, uint16_t data_length) { - if (!frame || !data || data_length > TM_MAX_DATA_SIZE) + if ((!frame) || (!data) || (data_length > TM_MAX_DATA_SIZE)) { return SDLP_ERROR_INVALID_PARAM; } - memset(frame, 0, sizeof(sdlp_tm_frame_t)); + const uint16_t scid = (uint16_t)(spacecraft_id & 0x3FFu); + const uint8_t vcid = (uint8_t)(virtual_channel_id & 0x07u); - uint16_t scid = (uint16_t)(spacecraft_id & 0x3FFu); - uint8_t vcid = (uint8_t)(virtual_channel_id & 0x07u); + /* The lookup is the last check and claims a table slot only when it succeeds, so a + * rejected call leaves the frame and every frame count as they were. */ tm_master_channel_t *mc = tm_get_master_channel(scid); + if (!mc) + { + return SDLP_ERROR_NO_RESOURCE; + } + + memset(frame, 0, sizeof(sdlp_tm_frame_t)); frame->header.transfer_frame_version = SDLP_VERSION; frame->header.spacecraft_id = scid; frame->header.virtual_channel_id = vcid; frame->header.ocf_flag = 0; - if (mc != NULL) - { - frame->header.master_channel_frame_count = mc->mc_frame_count++; - frame->header.virtual_channel_frame_count = mc->vc_frame_count[vcid]++; - } - else - { - frame->header.master_channel_frame_count = 0; - frame->header.virtual_channel_frame_count = 0; - } + frame->header.master_channel_frame_count = mc->mc_frame_count++; + frame->header.virtual_channel_frame_count = mc->vc_frame_count[vcid]++; /* Default to a valid "Packets, no segmentation" Data Field Status: Sync Flag = 0 * requires the Segment Length Identifier to be '11' (CCSDS 132.0-B-3, 4.1.2.7.5.2), diff --git a/tests/test_tm.c b/tests/test_tm.c index 416c785..9206b31 100644 --- a/tests/test_tm.c +++ b/tests/test_tm.c @@ -19,6 +19,17 @@ #define TEST_TM_MAX_PLAIN_FRAME_SIZE \ (TM_PRIMARY_HEADER_SIZE + TM_MAX_DATA_SIZE + TM_FRAME_ERROR_CONTROL_SIZE) +/** @brief Byte pre-filled into outputs that a rejected call must leave untouched. */ +#define TEST_TM_SENTINEL 0xA5 + +/** @brief Run one TM test from an empty frame-count table, so no test depends on another. */ +#define RUN_TM_TEST(fn) \ + do \ + { \ + sdlp_tm_reset_frame_counts(); \ + RUN_TEST(fn); \ + } while (0) + static int test_tm_create_frame_invalid_params(void) { sdlp_tm_frame_t frame; @@ -136,7 +147,7 @@ static int test_tm_frame_counts_per_channel(void) { sdlp_tm_frame_t f; const uint8_t payload[1] = {0xA5u}; - const uint16_t scid_a = 0x055u; /* SCIDs not used by other tests => fresh counters */ + const uint16_t scid_a = 0x055u; const uint16_t scid_b = 0x056u; /* First frame on (SCID A, VC 0): both counts start at 0. */ @@ -644,29 +655,167 @@ static int test_tm_secondary_header_length_limits(void) return 0; } +/** + * @brief Build a frame the library must reject and check the output frame is untouched. + * + * @param[in] spacecraft_id Spacecraft Identifier to request. + * @param[in] data Data Field content (may be NULL). + * @param[in] data_length Data Field length in octets. + * @param[in] expected Status sdlp_tm_create_frame() must return. + * @return 0 if the call returned @p expected and left the frame unchanged, 1 otherwise. + */ +static int test_tm_expect_create_rejected(uint16_t spacecraft_id, + const uint8_t *data, + uint16_t data_length, + sdlp_status_t expected) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t untouched; + const uint8_t vcid = 0; + + memset(&frame, TEST_TM_SENTINEL, sizeof(frame)); + memset(&untouched, TEST_TM_SENTINEL, sizeof(untouched)); + + ASSERT_EQ_INT(expected, sdlp_tm_create_frame(&frame, spacecraft_id, vcid, data, data_length)); + ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); + + return 0; +} + +static int test_tm_create_failure_leaves_state_unchanged(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x5Au}; + const uint16_t payload_size = (uint16_t)sizeof(payload); + const uint16_t scid = 0x155u; + const uint8_t vcid = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(0, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(0, frame.header.virtual_channel_frame_count); + + ASSERT_EQ_INT( + 0, + test_tm_expect_create_rejected(scid, NULL, payload_size, SDLP_ERROR_INVALID_PARAM)); + ASSERT_EQ_INT(0, + test_tm_expect_create_rejected(scid, + payload, + TM_MAX_DATA_SIZE + 1, + SDLP_ERROR_INVALID_PARAM)); + + /* Neither rejected call consumed a count: the next frame carries the next number. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(1, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(1, frame.header.virtual_channel_frame_count); + + return 0; +} + +static int test_tm_master_channel_table_full(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x5Au}; + const uint16_t payload_size = (uint16_t)sizeof(payload); + const uint16_t first_scid = 0x200u; + const uint16_t extra_scid = (uint16_t)(first_scid + TM_MAX_MASTER_CHANNELS); + const uint8_t vcid = 0; + + /* A call rejected for its arguments claims no slot, however many Spacecraft IDs + * are tried. */ + for (uint16_t i = 0; i <= TM_MAX_MASTER_CHANNELS; i++) + { + ASSERT_EQ_INT(0, + test_tm_expect_create_rejected((uint16_t)(first_scid + i), + NULL, + payload_size, + SDLP_ERROR_INVALID_PARAM)); + } + + /* Every slot can be claimed, the last one included. */ + for (uint16_t i = 0; i < TM_MAX_MASTER_CHANNELS; i++) + { + ASSERT_EQ_INT( + SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, (uint16_t)(first_scid + i), vcid, payload, payload_size)); + ASSERT_EQ_INT(0, frame.header.master_channel_frame_count); + } + + /* One Master Channel more is refused, not numbered with zeroes. */ + ASSERT_EQ_INT( + 0, + test_tm_expect_create_rejected(extra_scid, payload, payload_size, SDLP_ERROR_NO_RESOURCE)); + + /* The Master Channels already tracked keep counting. */ + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, first_scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(1, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(1, frame.header.virtual_channel_frame_count); + + /* A reset empties the table: the refused Master Channel is accepted, and one that was + * tracked before starts again from zero. */ + sdlp_tm_reset_frame_counts(); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, extra_scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(0, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, first_scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(0, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(0, frame.header.virtual_channel_frame_count); + + return 0; +} + +static int test_tm_frame_counts_wrap(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x5Au}; + const uint16_t payload_size = (uint16_t)sizeof(payload); + const uint16_t scid = 0x155u; + const uint8_t vcid = 3; + + /* Both counts are modulo-256 (4.1.2.5.2, 4.1.2.6.2): they run from 0 to 255... */ + for (unsigned expected = 0; expected <= UINT8_MAX; expected++) + { + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(expected, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(expected, frame.header.virtual_channel_frame_count); + } + + /* ...and the frame after 255 is numbered 0 again. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, scid, vcid, payload, payload_size)); + ASSERT_EQ_INT(0, frame.header.master_channel_frame_count); + ASSERT_EQ_INT(0, frame.header.virtual_channel_frame_count); + + return 0; +} + test_result_t test_tm_run_all(void) { test_result_t result; - RUN_TEST(test_tm_create_frame_invalid_params); - RUN_TEST(test_tm_encode_decode_roundtrip); - RUN_TEST(test_tm_data_field_status_codec); - RUN_TEST(test_tm_encode_buffer_too_small); - RUN_TEST(test_tm_fecf_passthrough); - RUN_TEST(test_tm_frame_counts_per_channel); - RUN_TEST(test_tm_secondary_header_roundtrip); - RUN_TEST(test_tm_set_secondary_header_invalid); - RUN_TEST(test_tm_ocf_roundtrip); - RUN_TEST(test_tm_secondary_header_and_ocf_roundtrip); - RUN_TEST(test_tm_set_ocf_invalid); - RUN_TEST(test_tm_null_params); - RUN_TEST(test_tm_decode_malformed); - RUN_TEST(test_tm_decode_failure_leaves_frame_unchanged); - RUN_TEST(test_tm_decode_data_length_beyond_16_bits); - RUN_TEST(test_tm_encode_max_data_exact_buffer); - RUN_TEST(test_tm_encode_rejects_oversized_data); - RUN_TEST(test_tm_encode_rejects_empty_secondary_header); - RUN_TEST(test_tm_secondary_header_length_limits); + RUN_TM_TEST(test_tm_create_frame_invalid_params); + RUN_TM_TEST(test_tm_encode_decode_roundtrip); + RUN_TM_TEST(test_tm_data_field_status_codec); + RUN_TM_TEST(test_tm_encode_buffer_too_small); + RUN_TM_TEST(test_tm_fecf_passthrough); + RUN_TM_TEST(test_tm_frame_counts_per_channel); + RUN_TM_TEST(test_tm_secondary_header_roundtrip); + RUN_TM_TEST(test_tm_set_secondary_header_invalid); + RUN_TM_TEST(test_tm_ocf_roundtrip); + RUN_TM_TEST(test_tm_secondary_header_and_ocf_roundtrip); + RUN_TM_TEST(test_tm_set_ocf_invalid); + RUN_TM_TEST(test_tm_null_params); + RUN_TM_TEST(test_tm_decode_malformed); + RUN_TM_TEST(test_tm_decode_failure_leaves_frame_unchanged); + RUN_TM_TEST(test_tm_decode_data_length_beyond_16_bits); + RUN_TM_TEST(test_tm_encode_max_data_exact_buffer); + RUN_TM_TEST(test_tm_encode_rejects_oversized_data); + RUN_TM_TEST(test_tm_encode_rejects_empty_secondary_header); + RUN_TM_TEST(test_tm_secondary_header_length_limits); + RUN_TM_TEST(test_tm_create_failure_leaves_state_unchanged); + RUN_TM_TEST(test_tm_master_channel_table_full); + RUN_TM_TEST(test_tm_frame_counts_wrap); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ From 5d421988694af58226d63aae2aaaea37f6af5f22 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:21:58 +0200 Subject: [PATCH 05/21] enhance compiler flags and remove warnings --- Makefile | 7 ++++--- README.md | 7 +++++-- examples/example_crc.h | 22 ++++++++++++++++------ src/sdlp_tc.c | 11 ++++++----- src/sdlp_tm.c | 18 ++++++++---------- tests/test_tc.c | 2 +- 6 files changed, 40 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 584de0c..2015f65 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,9 @@ -CC = gcc -CFLAGS ?= -O2 -Iinclude -Wall -Wextra -Wpedantic -Wshadow \ +CC ?= cc +# Stronger warnings for code quality; any warning fails the build +CFLAGS ?= -O2 -Iinclude -Werror -Wall -Wextra -Wpedantic -Wconversion -Wshadow \ -Wcast-align -Wcast-qual -Wpointer-arith -Wformat=2 \ -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wundef \ - -std=c11 + -std=c99 LDFLAGS = SRC_DIR = src diff --git a/README.md b/README.md index 2b4d509..6b37b21 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ Minimal, embedded-optimized implementation of **CCSDS Space Data Link Protocol ( - **Minimal footprint**: Small library size (stripped) - **Zero allocation**: Stack-based, no dynamic memory -- **Embedded-optimized**: Pure C11, no external dependencies -- **Portable**: Standard C11, big-endian network byte order +- **Embedded-optimized**: Pure C99, no external dependencies +- **Portable**: Standard C99, big-endian network byte order ## Project Structure @@ -59,6 +59,9 @@ EmbeddedSDLP/ ## Building +Warnings are treated as errors (`-Werror`). The build is checked with both `gcc` and +`clang`; select the compiler with `make CC=clang`. + ### Build Everything ```bash diff --git a/examples/example_crc.h b/examples/example_crc.h index 12d4300..e7cf8bf 100644 --- a/examples/example_crc.h +++ b/examples/example_crc.h @@ -14,8 +14,18 @@ #include #include +/** @brief CRC-16-CCITT generator polynomial: x^16 + x^12 + x^5 + 1. */ +#define EXAMPLE_CRC16_POLYNOMIAL 0x1021u + +/** @brief CRC-16-CCITT shift register preset: all ones. */ +#define EXAMPLE_CRC16_INITIAL_VALUE 0xFFFFu + +/** @brief Bits shifted through the register for each input octet. */ +#define EXAMPLE_CRC16_BITS_PER_OCTET 8 + /** - * @brief Compute a CRC-16-CCITT (polynomial 0x1021, initial value 0xFFFF). + * @brief Compute a CRC-16-CCITT (::EXAMPLE_CRC16_POLYNOMIAL, preset to + * ::EXAMPLE_CRC16_INITIAL_VALUE). * * @param[in] data Input octets. * @param[in] length Number of octets. @@ -23,21 +33,21 @@ */ static inline uint16_t example_crc16(const uint8_t *data, size_t length) { - uint16_t crc = 0xFFFFu; + uint16_t crc = EXAMPLE_CRC16_INITIAL_VALUE; for (size_t i = 0; i < length; i++) { - crc ^= (uint16_t)data[i] << 8; + crc = (uint16_t)(crc ^ ((unsigned)data[i] << 8)); - for (int j = 0; j < 8; j++) + for (int j = 0; j < EXAMPLE_CRC16_BITS_PER_OCTET; j++) { if (crc & 0x8000u) { - crc = (crc << 1) ^ 0x1021u; + crc = (uint16_t)(((unsigned)crc << 1) ^ EXAMPLE_CRC16_POLYNOMIAL); } else { - crc = crc << 1; + crc = (uint16_t)((unsigned)crc << 1); } } } diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index 6262e49..d29b3cd 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -21,7 +21,8 @@ */ static uint16_t tc_frame_length(const sdlp_tc_frame_t *frame) { - size_t frame_octets = TC_PRIMARY_HEADER_SIZE + frame->data_length + TC_FRAME_ERROR_CONTROL_SIZE; + size_t frame_octets = + (size_t)TC_PRIMARY_HEADER_SIZE + frame->data_length + TC_FRAME_ERROR_CONTROL_SIZE; #ifdef TC_SEGMENT_HEADER_ENABLED if (!frame->header.control_command_flag) { @@ -85,7 +86,7 @@ sdlp_status_t sdlp_tc_create_frame(sdlp_tc_frame_t *frame, /* sdlp_tc_encode_frame recomputes the Frame Length from the bytes it actually * emits; it is set here so the struct is self-consistent. */ - frame->header.frame_length = tc_frame_length(frame); + frame->header.frame_length = (uint16_t)(tc_frame_length(frame) & 0x03FFu); return SDLP_SUCCESS; } @@ -117,7 +118,7 @@ sdlp_status_t sdlp_tc_set_frame_type(sdlp_tc_frame_t *frame, sdlp_tc_frame_type_ /* The Segment Header is absent from Type-BC frames, so the frame type affects * the total frame size when segment headers are compiled in. */ - frame->header.frame_length = tc_frame_length(frame); + frame->header.frame_length = (uint16_t)(tc_frame_length(frame) & 0x03FFu); return SDLP_SUCCESS; } @@ -180,7 +181,7 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, } size_t required_size = - TC_PRIMARY_HEADER_SIZE + frame->data_length + TC_FRAME_ERROR_CONTROL_SIZE; + (size_t)TC_PRIMARY_HEADER_SIZE + frame->data_length + TC_FRAME_ERROR_CONTROL_SIZE; #ifdef TC_SEGMENT_HEADER_ENABLED if (!frame->header.control_command_flag) @@ -208,7 +209,7 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, size_t offset = 0; - buffer[offset++] = (uint8_t)((frame->header.transfer_frame_version << 6) | + buffer[offset++] = (uint8_t)(((frame->header.transfer_frame_version & 0x03u) << 6) | ((frame->header.bypass_flag & 0x01u) << 5) | ((frame->header.control_command_flag & 0x01u) << 4) | ((frame->header.reserved & 0x03u) << 2) | diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index b96921e..f4c8c62 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -144,7 +144,7 @@ static void sdlp_tm_decode_secondary_header(const uint8_t *wire, */ static size_t sdlp_tm_encoded_size(const sdlp_tm_frame_t *frame) { - size_t size = TM_PRIMARY_HEADER_SIZE + frame->data_length + TM_FRAME_ERROR_CONTROL_SIZE; + size_t size = (size_t)TM_PRIMARY_HEADER_SIZE + frame->data_length + TM_FRAME_ERROR_CONTROL_SIZE; /* A data_length beyond the Data Field array would make the encoder read past it. */ if (frame->data_length > TM_MAX_DATA_SIZE) @@ -214,12 +214,9 @@ sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, return SDLP_ERROR_INVALID_PARAM; } - const uint16_t scid = (uint16_t)(spacecraft_id & 0x3FFu); - const uint8_t vcid = (uint8_t)(virtual_channel_id & 0x07u); - /* The lookup is the last check and claims a table slot only when it succeeds, so a * rejected call leaves the frame and every frame count as they were. */ - tm_master_channel_t *mc = tm_get_master_channel(scid); + tm_master_channel_t *mc = tm_get_master_channel((uint16_t)(spacecraft_id & 0x3FFu)); if (!mc) { return SDLP_ERROR_NO_RESOURCE; @@ -228,11 +225,12 @@ sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, memset(frame, 0, sizeof(sdlp_tm_frame_t)); frame->header.transfer_frame_version = SDLP_VERSION; - frame->header.spacecraft_id = scid; - frame->header.virtual_channel_id = vcid; + frame->header.spacecraft_id = (uint16_t)(spacecraft_id & 0x3FFu); + frame->header.virtual_channel_id = (uint16_t)(virtual_channel_id & 0x07u); frame->header.ocf_flag = 0; frame->header.master_channel_frame_count = mc->mc_frame_count++; - frame->header.virtual_channel_frame_count = mc->vc_frame_count[vcid]++; + frame->header.virtual_channel_frame_count = + mc->vc_frame_count[frame->header.virtual_channel_id]++; /* Default to a valid "Packets, no segmentation" Data Field Status: Sync Flag = 0 * requires the Segment Length Identifier to be '11' (CCSDS 132.0-B-3, 4.1.2.7.5.2), @@ -261,7 +259,7 @@ sdlp_status_t sdlp_tm_set_secondary_header(sdlp_tm_frame_t *frame, frame->header.transfer_frame_data_field_status.secondary_header_flag = 1; frame->secondary_header.version = 0; /* CCSDS 132.0-B-3, 4.1.3.2.2.2 */ - frame->secondary_header.length = length; + frame->secondary_header.length = (uint8_t)(length & 0x3Fu); memcpy(frame->secondary_header.data, data, length); return SDLP_SUCCESS; @@ -303,7 +301,7 @@ sdlp_status_t sdlp_tm_encode_frame(const sdlp_tm_frame_t *frame, size_t offset = 0; - buffer[offset++] = (uint8_t)((frame->header.transfer_frame_version << 6) | + buffer[offset++] = (uint8_t)(((frame->header.transfer_frame_version & 0x03u) << 6) | ((frame->header.spacecraft_id >> 4) & 0x3Fu)); buffer[offset++] = (uint8_t)(((frame->header.spacecraft_id & 0x0Fu) << 4) | ((frame->header.virtual_channel_id & 0x07u) << 1) | diff --git a/tests/test_tc.c b/tests/test_tc.c index 92c3741..3db0d2a 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -14,7 +14,7 @@ /* The TC unit tests always exercise the segment-header configuration. */ #ifndef TC_SEGMENT_HEADER_ENABLED -#error "test_tc.c must be built with -DTC_SEGMENT_HEADER_ENABLED" +# error "test_tc.c must be built with -DTC_SEGMENT_HEADER_ENABLED" #endif /** @brief Scratch buffer size for rejected-encode checks: holds a frame just over the limit. */ From 23462d451586e26056631c486ba5cca4483492b5 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:36:47 +0200 Subject: [PATCH 06/21] add sanitize --- Makefile | 34 +++++++++++++++++++++++++++++++--- README.md | 9 +++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 2015f65..d40ea05 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,10 @@ CC ?= cc +# Optimisation / instrumentation flags; overridden by the sanitize target +OPT ?= -O2 +SANITIZE_OPT = -O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined \ + -fno-sanitize-recover=all # Stronger warnings for code quality; any warning fails the build -CFLAGS ?= -O2 -Iinclude -Werror -Wall -Wextra -Wpedantic -Wconversion -Wshadow \ +CFLAGS ?= $(OPT) -Iinclude -Werror -Wall -Wextra -Wpedantic -Wconversion -Wshadow \ -Wcast-align -Wcast-qual -Wpointer-arith -Wformat=2 \ -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wundef \ -std=c99 @@ -13,6 +17,7 @@ TEST_DIR = tests BUILD_DIR = build OBJ_DIR = $(BUILD_DIR)/obj BIN_DIR = $(BUILD_DIR)/bin +SANITIZE_DIR = $(BUILD_DIR)/sanitize SRCS = $(wildcard $(SRC_DIR)/*.c) OBJS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS)) @@ -24,7 +29,7 @@ TEST_BIN = $(BIN_DIR)/unit_tests LIB = $(BUILD_DIR)/libsdlp.a -.PHONY: all clean examples lib unit-tests test coverage-html +.PHONY: all clean examples lib unit-tests test coverage-html sanitize all: lib examples @@ -59,11 +64,34 @@ $(BIN_DIR): | $(BUILD_DIR) mkdir -p $(BIN_DIR) clean: - rm -rf $(BUILD_DIR) obj bin libsdlp.a + rm -rf $(BUILD_DIR) coverage-html: bash tools/coverage_html.sh +# Rebuild everything with ASan + UBSan and run the unit tests and the examples. +# Program output is shown only on failure; sanitizer reports go to stderr and are always +# visible. The instrumented build is removed afterwards, on success and on failure. +sanitize: + @$(MAKE) --no-print-directory clean >/dev/null + @$(MAKE) --no-print-directory lib examples unit-tests OPT="$(SANITIZE_OPT)" >/dev/null \ + || { $(MAKE) --no-print-directory clean >/dev/null; exit 1; } + @mkdir -p $(SANITIZE_DIR) + @echo "Sanitizers (ASan + UBSan):" + @./$(TEST_BIN) >$(SANITIZE_DIR)/unit_tests.log \ + && echo " library via unit tests : no errors detected" \ + || { cat $(SANITIZE_DIR)/unit_tests.log; echo " library via unit tests : FAILED"; \ + $(MAKE) --no-print-directory clean >/dev/null; exit 1; } + @for example in $(EXAMPLE_BINS); do \ + name=$$(basename $$example); \ + ./$$example >$(SANITIZE_DIR)/$$name.log \ + && echo " library via $$name : no errors detected" \ + || { cat $(SANITIZE_DIR)/$$name.log; echo " library via $$name : FAILED"; \ + $(MAKE) --no-print-directory clean >/dev/null; exit 1; }; \ + done + @$(MAKE) --no-print-directory clean >/dev/null + @echo "Result: PASS" + test: unit-tests @echo "Running unit tests (TC_SEGMENT_HEADER_ENABLED)..." @./$(TEST_BIN) diff --git a/README.md b/README.md index 6b37b21..ee664cc 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,15 @@ Output report: build/coverage/index.html ``` +### Sanitizers (ASan + UBSan) + +```bash +make sanitize # rebuild with ASan + UBSan, run tests and examples, then clean up +``` + +The target starts from a clean build and removes `build/` again when it finishes, so a +coverage report generated earlier is deleted with it. + ### Clean ```bash From dacff2aa3318c159a8e2eb15f84b0ef603f3785c Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:45:33 +0200 Subject: [PATCH 07/21] update coverage --- Makefile | 3 ++- README.md | 3 +++ tools/coverage_html.sh | 45 +++++++++++++++++++----------------------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index d40ea05..66db566 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ CC ?= cc -# Optimisation / instrumentation flags; overridden by the sanitize target +# Optimisation / instrumentation flags; overridden by the sanitize target and by +# tools/coverage_html.sh OPT ?= -O2 SANITIZE_OPT = -O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined \ -fno-sanitize-recover=all diff --git a/README.md b/README.md index ee664cc..7ff61f7 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,9 @@ Generate coverage report: make coverage-html ``` +The command fails unless line and branch coverage of `src/` are both 100%. It rebuilds the +unit tests from scratch with the Makefile's own flags plus coverage instrumentation. + Output report: ```text diff --git a/tools/coverage_html.sh b/tools/coverage_html.sh index 6755c00..2c7b378 100644 --- a/tools/coverage_html.sh +++ b/tools/coverage_html.sh @@ -8,10 +8,10 @@ if [[ "${OUT_FILE}" != /* ]]; then OUT_FILE="${ROOT_DIR}/${OUT_FILE}" fi -COVERAGE_CFLAGS='-O0 -g --coverage -Iinclude -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wcast-qual -Wpointer-arith -Wformat=2 -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wundef -std=c11' - -SRCS="src/sdlp_tm.c src/sdlp_tc.c" -TESTS="tests/test_tm.c tests/test_tc.c tests/unit_tests.c" +# Instrumentation is the ONLY thing that differs from the normal build; the C standard, +# include paths, warning set and the list of sources all come from the Makefile so they +# cannot drift apart. +COVERAGE_OPT='-O0 -g --coverage' cd "${ROOT_DIR}" @@ -21,32 +21,27 @@ if ! command -v gcovr >/dev/null 2>&1; then exit 1 fi -COV_DIR="${ROOT_DIR}/build/coverage" -rm -rf "${COV_DIR}" -mkdir -p "$(dirname "${OUT_FILE}")" "${COV_DIR}" - -# Build the unit tests with coverage instrumentation. Sources and tests are compiled -# together with TC_SEGMENT_HEADER_ENABLED so the segment-header code paths are built -# and exercised (matching how `make test` runs them). -objs="" -for f in ${SRCS} ${TESTS}; do - obj="${COV_DIR}/$(basename "${f%.c}").o" - # shellcheck disable=SC2086 - gcc ${COVERAGE_CFLAGS} -DTC_SEGMENT_HEADER_ENABLED -c "${f}" -o "${obj}" - objs="${objs} ${obj}" -done -# shellcheck disable=SC2086 -gcc --coverage ${objs} -o "${COV_DIR}/unit_tests" -"${COV_DIR}/unit_tests" >/dev/null +# gcovr reads gcov data, so the instrumented build uses gcc whatever CC is set to elsewhere. +# The unit tests compile the library sources with TC_SEGMENT_HEADER_ENABLED (see the +# Makefile), so the segment-header code paths are built and measured. +make clean >/dev/null +make unit-tests CC=gcc OPT="${COVERAGE_OPT}" >/dev/null +./build/bin/unit_tests >/dev/null + +mkdir -p "$(dirname "${OUT_FILE}")" # Emit the HTML report and a text summary (line + branch) in a single gcovr pass, so # the console output is not duplicated. gcovr's chatty "(INFO)" progress lines are # filtered from stderr; warnings and errors still pass through and preserve the exit code. echo "Coverage (TC_SEGMENT_HEADER_ENABLED):" -gcovr --root "${ROOT_DIR}" --filter "${ROOT_DIR}/src" \ - --gcov-object-directory "${COV_DIR}" \ - --html-details --output "${OUT_FILE}" \ - --txt - --txt-summary \ +gcovr -r "${ROOT_DIR}" \ + --filter "${ROOT_DIR}/src" \ + --html-details \ + --output "${OUT_FILE}" \ + --txt - \ + --txt-summary \ + --fail-under-line 100 \ + --fail-under-branch 100 \ 2> >(grep -v '^(INFO)' >&2) echo "Coverage HTML report written to: ${OUT_FILE}" From b84d804c4096963ba1ddc967e6283831ff0e4bcd Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:50:55 +0200 Subject: [PATCH 08/21] add CI --- .github/workflows/ci.yml | 56 ++++++++++++++++++++++++++++++++++++++++ .gitignore | 1 - README.md | 3 +++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3ecb5d2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,56 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + unit-tests: + name: Unit tests (${{ matrix.cc }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + cc: [gcc, clang] + steps: + - uses: actions/checkout@v4 + - name: Build library, examples and run unit tests + run: make all test CC=${{ matrix.cc }} + - name: Run examples + run: | + ./build/bin/tm_example + ./build/bin/tc_example + + coverage: + name: Coverage (100% line and branch) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install gcovr + run: sudo apt-get update && sudo apt-get install -y gcovr + - name: Build instrumented tests and generate report + run: make coverage-html + - name: Enforce 100% line and branch coverage + run: > + gcovr -r . --filter src + --fail-under-line 100 + --fail-under-branch 100 + - name: Upload HTML report + if: always() + uses: actions/upload-artifact@v4 + with: + name: coverage-html + path: build/coverage/ + if-no-files-found: ignore + + sanitizers: + name: ASan + UBSan + runs-on: ubuntu-latest + env: + ASAN_OPTIONS: detect_leaks=1:abort_on_error=1 + UBSAN_OPTIONS: print_stacktrace=1 + steps: + - uses: actions/checkout@v4 + - name: Build and run unit tests and examples under ASan and UBSan + run: make sanitize diff --git a/.gitignore b/.gitignore index 71f35d7..e9d4071 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,5 @@ dkms.conf build/ obj/ bin/ -.github/ .vscode/ TODO.md \ No newline at end of file diff --git a/README.md b/README.md index 7ff61f7..5b5023d 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,9 @@ Minimal, embedded-optimized implementation of **CCSDS Space Data Link Protocol ( ``` EmbeddedSDLP/ +├── .github/ +│ └── workflows/ +│ └── ci.yml # CI: unit tests, coverage gate, sanitizers ├── include/ │ ├── sdlp_common.h # Common definitions and error codes │ ├── sdlp_tm.h # TM frame definitions From 38f99ac381c41ea52f1ba9b9b6f15d7fb17ac3d0 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 17:59:46 +0200 Subject: [PATCH 09/21] split UT execution for: with segment hdr enabled and without --- Makefile | 38 +++++++++++++++++++++++++++++--------- README.md | 8 ++++++-- tests/test_tc.c | 32 ++++++++++++++++++++++++-------- tools/coverage_html.sh | 38 ++++++++++++++++++++++++++++---------- 4 files changed, 87 insertions(+), 29 deletions(-) diff --git a/Makefile b/Makefile index 66db566..24dff55 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,10 @@ EXAMPLES = $(wildcard $(EXAMPLES_DIR)/*.c) EXAMPLE_BINS = $(patsubst $(EXAMPLES_DIR)/%.c,$(BIN_DIR)/%,$(EXAMPLES)) TEST_SRCS = $(wildcard $(TEST_DIR)/*.c) TEST_BIN = $(BIN_DIR)/unit_tests +# The unit tests are built a second time with the optional TC Segment Header compiled in. +# That build has its own directory, so its coverage data stays apart from the default one. +SEGMENT_TEST_DIR = $(BUILD_DIR)/segment_header +SEGMENT_TEST_BIN = $(SEGMENT_TEST_DIR)/unit_tests LIB = $(BUILD_DIR)/libsdlp.a @@ -44,14 +48,18 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) examples: $(EXAMPLE_BINS) -unit-tests: $(TEST_BIN) +unit-tests: $(TEST_BIN) $(SEGMENT_TEST_BIN) $(BIN_DIR)/%: $(EXAMPLES_DIR)/%.c $(LIB) | $(BIN_DIR) $(CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) -# Compile the sources and tests together with TC_SEGMENT_HEADER_ENABLED so the -# segment-header code paths are built and exercised. -$(TEST_BIN): $(SRCS) $(TEST_SRCS) | $(BIN_DIR) +# Default configuration: the tests link the library exactly as `make lib` builds it. +$(TEST_BIN): $(TEST_SRCS) $(LIB) | $(BIN_DIR) + $(CC) $(CFLAGS) $(TEST_SRCS) $(LIB) -o $@ $(LDFLAGS) + +# Segment-header configuration: the library is built without it, so the sources are +# compiled together with the tests, all with TC_SEGMENT_HEADER_ENABLED. +$(SEGMENT_TEST_BIN): $(SRCS) $(TEST_SRCS) | $(SEGMENT_TEST_DIR) $(CC) $(CFLAGS) -DTC_SEGMENT_HEADER_ENABLED $(SRCS) $(TEST_SRCS) -o $@ $(LDFLAGS) $(BUILD_DIR): @@ -64,6 +72,9 @@ $(OBJ_DIR): | $(BUILD_DIR) $(BIN_DIR): | $(BUILD_DIR) mkdir -p $(BIN_DIR) +$(SEGMENT_TEST_DIR): | $(BUILD_DIR) + mkdir -p $(SEGMENT_TEST_DIR) + clean: rm -rf $(BUILD_DIR) @@ -80,19 +91,28 @@ sanitize: @mkdir -p $(SANITIZE_DIR) @echo "Sanitizers (ASan + UBSan):" @./$(TEST_BIN) >$(SANITIZE_DIR)/unit_tests.log \ - && echo " library via unit tests : no errors detected" \ - || { cat $(SANITIZE_DIR)/unit_tests.log; echo " library via unit tests : FAILED"; \ + && echo " library via unit tests : no errors detected" \ + || { cat $(SANITIZE_DIR)/unit_tests.log; \ + echo " library via unit tests : FAILED"; \ + $(MAKE) --no-print-directory clean >/dev/null; exit 1; } + @./$(SEGMENT_TEST_BIN) >$(SANITIZE_DIR)/unit_tests_segment_header.log \ + && echo " library via unit tests (segment header) : no errors detected" \ + || { cat $(SANITIZE_DIR)/unit_tests_segment_header.log; \ + echo " library via unit tests (segment header) : FAILED"; \ $(MAKE) --no-print-directory clean >/dev/null; exit 1; } @for example in $(EXAMPLE_BINS); do \ name=$$(basename $$example); \ ./$$example >$(SANITIZE_DIR)/$$name.log \ - && echo " library via $$name : no errors detected" \ - || { cat $(SANITIZE_DIR)/$$name.log; echo " library via $$name : FAILED"; \ + && printf " library via %-27s : no errors detected\n" "$$name" \ + || { cat $(SANITIZE_DIR)/$$name.log; \ + printf " library via %-27s : FAILED\n" "$$name"; \ $(MAKE) --no-print-directory clean >/dev/null; exit 1; }; \ done @$(MAKE) --no-print-directory clean >/dev/null @echo "Result: PASS" test: unit-tests - @echo "Running unit tests (TC_SEGMENT_HEADER_ENABLED)..." + @echo "Running unit tests (default configuration)..." @./$(TEST_BIN) + @echo "Running unit tests (TC_SEGMENT_HEADER_ENABLED)..." + @./$(SEGMENT_TEST_BIN) diff --git a/README.md b/README.md index 5b5023d..2b3aba4 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,9 @@ make examples make test ``` +The unit tests are built and run twice: against the library as `make lib` builds it, and +again with the optional TC Segment Header compiled in (`TC_SEGMENT_HEADER_ENABLED`). + ### Coverage (HTML) Requires `gcovr` installed in your system: @@ -109,8 +112,9 @@ Generate coverage report: make coverage-html ``` -The command fails unless line and branch coverage of `src/` are both 100%. It rebuilds the -unit tests from scratch with the Makefile's own flags plus coverage instrumentation. +The command fails unless line and branch coverage of `src/` are both 100% in each of the +two build configurations (without and with the TC Segment Header). It rebuilds the unit +tests from scratch with the Makefile's own flags plus coverage instrumentation. Output report: diff --git a/tests/test_tc.c b/tests/test_tc.c index 3db0d2a..325762f 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -12,9 +12,16 @@ #include #include -/* The TC unit tests always exercise the segment-header configuration. */ -#ifndef TC_SEGMENT_HEADER_ENABLED -# error "test_tc.c must be built with -DTC_SEGMENT_HEADER_ENABLED" +/** + * @brief Octets the Segment Header adds to a Type-D frame in this build configuration. + * + * The suite is built twice, without and with TC_SEGMENT_HEADER_ENABLED, so every size that + * depends on the Segment Header is written in terms of this value. + */ +#ifdef TC_SEGMENT_HEADER_ENABLED +# define TEST_TC_SEGMENT_OCTETS TC_SEGMENT_HEADER_SIZE +#else +# define TEST_TC_SEGMENT_OCTETS 0 #endif /** @brief Scratch buffer size for rejected-encode checks: holds a frame just over the limit. */ @@ -41,7 +48,7 @@ static int test_tc_encode_decode_roundtrip(void) const uint8_t payload[] = {0x01u, 0x23u, 0x45u, 0x67u}; uint8_t encoded[TC_PRIMARY_HEADER_SIZE + TC_MAX_DATA_SIZE + TC_FRAME_ERROR_CONTROL_SIZE]; size_t encoded_size = 0; - const int seg = TC_SEGMENT_HEADER_SIZE; /* a Type-D frame carries a Segment Header */ + const int seg = TEST_TC_SEGMENT_OCTETS; ASSERT_EQ_INT( SDLP_SUCCESS, @@ -292,6 +299,7 @@ static int test_tc_null_params(void) return 0; } +#ifdef TC_SEGMENT_HEADER_ENABLED static int test_tc_segment_header_roundtrip(void) { sdlp_tc_frame_t frame; @@ -339,6 +347,7 @@ static int test_tc_decode_segment_too_small(void) return 0; } +#endif /* TC_SEGMENT_HEADER_ENABLED */ /** * @brief Decode a buffer the decoder must reject and check the output frame is untouched. @@ -374,8 +383,10 @@ static int test_tc_decode_failure_leaves_frame_unchanged(void) const uint8_t reserved_type[8] = {0x10u, 0, 0, 7}; /* Frame Length = 6 announces 7 octets, but 8 are present. */ const uint8_t wrong_length[8] = {0, 0, 0, 6}; +#ifdef TC_SEGMENT_HEADER_ENABLED /* A consistent 7-octet Type-D frame has no room for the Segment Header and the FECF. */ const uint8_t no_segment_room[7] = {0, 0, 0, 6}; +#endif ASSERT_EQ_INT( 0, @@ -391,10 +402,12 @@ static int test_tc_decode_failure_leaves_frame_unchanged(void) test_tc_expect_decode_rejected(wrong_length, sizeof(wrong_length), SDLP_ERROR_INVALID_FRAME)); +#ifdef TC_SEGMENT_HEADER_ENABLED ASSERT_EQ_INT(0, test_tc_expect_decode_rejected(no_segment_room, sizeof(no_segment_room), SDLP_ERROR_INVALID_FRAME)); +#endif return 0; } @@ -438,7 +451,7 @@ static int test_tc_check_max_frame_roundtrip(uint8_t *encoded) { sdlp_tc_frame_t frame; sdlp_tc_frame_t decoded; - uint8_t payload[TC_MAX_DATA_SIZE - TC_SEGMENT_HEADER_SIZE]; + uint8_t payload[TC_MAX_DATA_SIZE - TEST_TC_SEGMENT_OCTETS]; size_t encoded_size = 0; for (size_t i = 0; i < sizeof(payload); i++) @@ -489,9 +502,10 @@ static int test_tc_encode_rejects_oversized_frame(void) ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 1)); - /* Type-D: the Segment Header takes one octet, so a full Data Field array makes a - * 1025-octet frame, one more than the 10-bit Frame Length can express. */ - frame.data_length = TC_MAX_DATA_SIZE; + /* Type-D: one octet more than the largest Data Field, which is the array less the + * Segment Header octet when that is compiled in. The frame would be 1025 octets, one + * more than the 10-bit Frame Length can express. */ + frame.data_length = TC_MAX_DATA_SIZE - TEST_TC_SEGMENT_OCTETS + 1; ASSERT_EQ_INT( 0, test_tc_expect_encode_rejected(&frame, TEST_TC_SCRATCH_SIZE, SDLP_ERROR_INVALID_PARAM)); @@ -533,8 +547,10 @@ test_result_t test_tc_run_all(void) RUN_TEST(test_tc_unlock_command); RUN_TEST(test_tc_set_vr_command); RUN_TEST(test_tc_decode_reserved_frame_type); +#ifdef TC_SEGMENT_HEADER_ENABLED RUN_TEST(test_tc_segment_header_roundtrip); RUN_TEST(test_tc_decode_segment_too_small); +#endif RUN_TEST(test_tc_decode_failure_leaves_frame_unchanged); RUN_TEST(test_tc_encode_max_frame_exact_buffer); RUN_TEST(test_tc_encode_rejects_oversized_frame); diff --git a/tools/coverage_html.sh b/tools/coverage_html.sh index 2c7b378..f597022 100644 --- a/tools/coverage_html.sh +++ b/tools/coverage_html.sh @@ -22,26 +22,44 @@ if ! command -v gcovr >/dev/null 2>&1; then fi # gcovr reads gcov data, so the instrumented build uses gcc whatever CC is set to elsewhere. -# The unit tests compile the library sources with TC_SEGMENT_HEADER_ENABLED (see the -# Makefile), so the segment-header code paths are built and measured. +# The unit tests are built and run once per build configuration (see the Makefile): the +# default one, and one with the TC Segment Header compiled in. make clean >/dev/null make unit-tests CC=gcc OPT="${COVERAGE_OPT}" >/dev/null ./build/bin/unit_tests >/dev/null +./build/segment_header/unit_tests >/dev/null mkdir -p "$(dirname "${OUT_FILE}")" -# Emit the HTML report and a text summary (line + branch) in a single gcovr pass, so -# the console output is not duplicated. gcovr's chatty "(INFO)" progress lines are -# filtered from stderr; warnings and errors still pass through and preserve the exit code. -echo "Coverage (TC_SEGMENT_HEADER_ENABLED):" +# Print the text summary (line + branch) of one build configuration and require 100% of +# both. Each configuration is gated on its own, so code that only one of them compiles +# cannot hide behind the other's tests. gcovr's chatty "(INFO)" progress lines are filtered +# from stderr; warnings and errors still pass through. +# $1 label printed above the summary +# $2 directory holding that configuration's coverage data +status=0 +check_configuration() { + echo "Coverage ($1):" + gcovr -r "${ROOT_DIR}" \ + --filter "${ROOT_DIR}/src" \ + --txt - \ + --txt-summary \ + --fail-under-line 100 \ + --fail-under-branch 100 \ + "$2" \ + 2> >(grep -v '^(INFO)' >&2) || status=1 +} + +check_configuration "default configuration" "${ROOT_DIR}/build/obj" +check_configuration "TC_SEGMENT_HEADER_ENABLED" "${ROOT_DIR}/build/segment_header" + +# One HTML report for both configurations together, so it also shows the lines that only +# the segment-header build compiles. gcovr -r "${ROOT_DIR}" \ --filter "${ROOT_DIR}/src" \ --html-details \ --output "${OUT_FILE}" \ - --txt - \ - --txt-summary \ - --fail-under-line 100 \ - --fail-under-branch 100 \ 2> >(grep -v '^(INFO)' >&2) echo "Coverage HTML report written to: ${OUT_FILE}" +exit "${status}" From 604a5bbc45bb2920ea4da3e24c27d0db859982a0 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 18:43:12 +0200 Subject: [PATCH 10/21] build examples with segment hdr --- .github/workflows/ci.yml | 2 ++ Makefile | 32 ++++++++++++++++++++------------ README.md | 2 ++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ecb5d2..0ef9e20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,8 @@ jobs: run: | ./build/bin/tm_example ./build/bin/tc_example + ./build/segment_header/tm_example + ./build/segment_header/tc_example coverage: name: Coverage (100% line and branch) diff --git a/Makefile b/Makefile index 24dff55..7217336 100644 --- a/Makefile +++ b/Makefile @@ -27,10 +27,12 @@ EXAMPLES = $(wildcard $(EXAMPLES_DIR)/*.c) EXAMPLE_BINS = $(patsubst $(EXAMPLES_DIR)/%.c,$(BIN_DIR)/%,$(EXAMPLES)) TEST_SRCS = $(wildcard $(TEST_DIR)/*.c) TEST_BIN = $(BIN_DIR)/unit_tests -# The unit tests are built a second time with the optional TC Segment Header compiled in. -# That build has its own directory, so its coverage data stays apart from the default one. -SEGMENT_TEST_DIR = $(BUILD_DIR)/segment_header -SEGMENT_TEST_BIN = $(SEGMENT_TEST_DIR)/unit_tests +# The unit tests and the examples are built a second time with the optional TC Segment +# Header compiled in. That build has its own directory, so its coverage data stays apart +# from the default one. +SEGMENT_DIR = $(BUILD_DIR)/segment_header +SEGMENT_TEST_BIN = $(SEGMENT_DIR)/unit_tests +SEGMENT_EXAMPLE_BINS = $(patsubst $(EXAMPLES_DIR)/%.c,$(SEGMENT_DIR)/%,$(EXAMPLES)) LIB = $(BUILD_DIR)/libsdlp.a @@ -46,20 +48,25 @@ $(LIB): $(OBJS) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ -examples: $(EXAMPLE_BINS) +examples: $(EXAMPLE_BINS) $(SEGMENT_EXAMPLE_BINS) unit-tests: $(TEST_BIN) $(SEGMENT_TEST_BIN) $(BIN_DIR)/%: $(EXAMPLES_DIR)/%.c $(LIB) | $(BIN_DIR) $(CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) +# Segment-header configuration: the library is built without it, so its sources are +# compiled together with each example, all with TC_SEGMENT_HEADER_ENABLED. +$(SEGMENT_DIR)/%: $(EXAMPLES_DIR)/%.c $(SRCS) | $(SEGMENT_DIR) + $(CC) $(CFLAGS) -DTC_SEGMENT_HEADER_ENABLED $< $(SRCS) -o $@ $(LDFLAGS) + # Default configuration: the tests link the library exactly as `make lib` builds it. $(TEST_BIN): $(TEST_SRCS) $(LIB) | $(BIN_DIR) $(CC) $(CFLAGS) $(TEST_SRCS) $(LIB) -o $@ $(LDFLAGS) # Segment-header configuration: the library is built without it, so the sources are # compiled together with the tests, all with TC_SEGMENT_HEADER_ENABLED. -$(SEGMENT_TEST_BIN): $(SRCS) $(TEST_SRCS) | $(SEGMENT_TEST_DIR) +$(SEGMENT_TEST_BIN): $(SRCS) $(TEST_SRCS) | $(SEGMENT_DIR) $(CC) $(CFLAGS) -DTC_SEGMENT_HEADER_ENABLED $(SRCS) $(TEST_SRCS) -o $@ $(LDFLAGS) $(BUILD_DIR): @@ -72,8 +79,8 @@ $(OBJ_DIR): | $(BUILD_DIR) $(BIN_DIR): | $(BUILD_DIR) mkdir -p $(BIN_DIR) -$(SEGMENT_TEST_DIR): | $(BUILD_DIR) - mkdir -p $(SEGMENT_TEST_DIR) +$(SEGMENT_DIR): | $(BUILD_DIR) + mkdir -p $(SEGMENT_DIR) clean: rm -rf $(BUILD_DIR) @@ -100,12 +107,13 @@ sanitize: || { cat $(SANITIZE_DIR)/unit_tests_segment_header.log; \ echo " library via unit tests (segment header) : FAILED"; \ $(MAKE) --no-print-directory clean >/dev/null; exit 1; } - @for example in $(EXAMPLE_BINS); do \ + @for example in $(EXAMPLE_BINS) $(SEGMENT_EXAMPLE_BINS); do \ name=$$(basename $$example); \ - ./$$example >$(SANITIZE_DIR)/$$name.log \ + case $$example in $(SEGMENT_DIR)/*) name="$$name (segment header)";; esac; \ + log=$(SANITIZE_DIR)/$$(echo $$example | tr '/' '_').log; \ + ./$$example >$$log \ && printf " library via %-27s : no errors detected\n" "$$name" \ - || { cat $(SANITIZE_DIR)/$$name.log; \ - printf " library via %-27s : FAILED\n" "$$name"; \ + || { cat $$log; printf " library via %-27s : FAILED\n" "$$name"; \ $(MAKE) --no-print-directory clean >/dev/null; exit 1; }; \ done @$(MAKE) --no-print-directory clean >/dev/null diff --git a/README.md b/README.md index 2b3aba4..71e777c 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,8 @@ This will create: - `build/libsdlp.a` - Static library - `build/bin/tm_example` - TM frame example - `build/bin/tc_example` - TC frame example +- `build/segment_header/tm_example` and `build/segment_header/tc_example` - the same + examples built with the optional TC Segment Header (`TC_SEGMENT_HEADER_ENABLED`) ### Build Library Only From ce0385a050953a331013dc337d5bb0fa524a59b7 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 18:45:40 +0200 Subject: [PATCH 11/21] headers dependency --- Makefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 7217336..b0fd734 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,12 @@ SANITIZE_DIR = $(BUILD_DIR)/sanitize SRCS = $(wildcard $(SRC_DIR)/*.c) OBJS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS)) +# Headers are prerequisites of everything that includes them, so editing one rebuilds +# the objects, examples and tests that depend on it. +PUBLIC_HEADERS = $(wildcard $(INC_DIR)/*.h) +EXAMPLE_HEADERS = $(wildcard $(EXAMPLES_DIR)/*.h) +TEST_HEADERS = $(wildcard $(TEST_DIR)/*.h) + EXAMPLES = $(wildcard $(EXAMPLES_DIR)/*.c) EXAMPLE_BINS = $(patsubst $(EXAMPLES_DIR)/%.c,$(BIN_DIR)/%,$(EXAMPLES)) TEST_SRCS = $(wildcard $(TEST_DIR)/*.c) @@ -45,28 +51,28 @@ lib: $(LIB) $(LIB): $(OBJS) ar rcs $@ $^ -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(PUBLIC_HEADERS) | $(OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ examples: $(EXAMPLE_BINS) $(SEGMENT_EXAMPLE_BINS) unit-tests: $(TEST_BIN) $(SEGMENT_TEST_BIN) -$(BIN_DIR)/%: $(EXAMPLES_DIR)/%.c $(LIB) | $(BIN_DIR) +$(BIN_DIR)/%: $(EXAMPLES_DIR)/%.c $(EXAMPLE_HEADERS) $(PUBLIC_HEADERS) $(LIB) | $(BIN_DIR) $(CC) $(CFLAGS) $< $(LIB) -o $@ $(LDFLAGS) # Segment-header configuration: the library is built without it, so its sources are # compiled together with each example, all with TC_SEGMENT_HEADER_ENABLED. -$(SEGMENT_DIR)/%: $(EXAMPLES_DIR)/%.c $(SRCS) | $(SEGMENT_DIR) +$(SEGMENT_DIR)/%: $(EXAMPLES_DIR)/%.c $(EXAMPLE_HEADERS) $(PUBLIC_HEADERS) $(SRCS) | $(SEGMENT_DIR) $(CC) $(CFLAGS) -DTC_SEGMENT_HEADER_ENABLED $< $(SRCS) -o $@ $(LDFLAGS) # Default configuration: the tests link the library exactly as `make lib` builds it. -$(TEST_BIN): $(TEST_SRCS) $(LIB) | $(BIN_DIR) +$(TEST_BIN): $(TEST_SRCS) $(TEST_HEADERS) $(PUBLIC_HEADERS) $(LIB) | $(BIN_DIR) $(CC) $(CFLAGS) $(TEST_SRCS) $(LIB) -o $@ $(LDFLAGS) # Segment-header configuration: the library is built without it, so the sources are # compiled together with the tests, all with TC_SEGMENT_HEADER_ENABLED. -$(SEGMENT_TEST_BIN): $(SRCS) $(TEST_SRCS) | $(SEGMENT_DIR) +$(SEGMENT_TEST_BIN): $(SRCS) $(TEST_SRCS) $(TEST_HEADERS) $(PUBLIC_HEADERS) | $(SEGMENT_DIR) $(CC) $(CFLAGS) -DTC_SEGMENT_HEADER_ENABLED $(SRCS) $(TEST_SRCS) -o $@ $(LDFLAGS) $(BUILD_DIR): From 91634baf6091cbc8a5202f40db90d31d0a2e3d32 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 18:50:44 +0200 Subject: [PATCH 12/21] clang-format update --- .clang-format | 4 ++-- include/sdlp_tc.h | 2 +- include/sdlp_tm.h | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.clang-format b/.clang-format index 0e49e25..57a2da2 100644 --- a/.clang-format +++ b/.clang-format @@ -1,5 +1,5 @@ --- -Language: C +Language: Cpp BasedOnStyle: LLVM # Indentation @@ -13,7 +13,7 @@ ColumnLimit: 100 # Braces BreakBeforeBraces: Allman -InsertBraces: false +InsertBraces: true # Spaces SpaceAfterCStyleCast: false diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 080e201..0fad651 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -51,7 +51,7 @@ typedef enum * @brief Control Commands carried by Type-BC frames (CCSDS 232.0-B-4 §4.1.3.3). * @{ */ -#define TC_CONTROL_CMD_UNLOCK 0x00u /**< Unlock: a single 'all zeroes' octet (§4.1.3.3.2). */ +#define TC_CONTROL_CMD_UNLOCK 0x00u /**< Unlock: one 'all zeroes' octet (§4.1.3.3.2). */ #define TC_CONTROL_CMD_UNLOCK_LENGTH 1u /**< Unlock command length in octets. */ #define TC_CONTROL_CMD_SET_VR_OCTET0 0x82u /**< Set V(R) octet 0: '10000010' (§4.1.3.3.3). */ #define TC_CONTROL_CMD_SET_VR_OCTET1 0x00u /**< Set V(R) octet 1: '00000000'. */ diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 81d6779..6d766ba 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -76,8 +76,7 @@ typedef struct uint16_t sync_flag : 1; /**< 0 = Packets/Idle Data, 1 = VCA_SDU. */ uint16_t packet_order_flag : 1; /**< Reserved ('0') when sync_flag = 0. */ uint16_t segment_length_id : 2; /**< 2 bits; '11' when sync_flag = 0. */ - uint16_t first_header_pointer - : 11; /**< 11 bits; offset of the first Packet or a special value. */ + uint16_t first_header_pointer : 11; /**< Offset of the first Packet, or a special value. */ } sdlp_tm_data_field_status_t; /** From f2c346849d00608d70f7aeac8c5c9062f8c2562e Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:03:39 +0200 Subject: [PATCH 13/21] add missing parantheses and braces --- examples/tc_example.c | 2 +- examples/tm_example.c | 2 +- src/sdlp_tc.c | 4 ++-- src/sdlp_tm.c | 7 ++++--- tests/cunit.h | 2 ++ 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/examples/tc_example.c b/examples/tc_example.c index 649317e..17b217a 100644 --- a/examples/tc_example.c +++ b/examples/tc_example.c @@ -78,7 +78,7 @@ int main(void) printf("Encoded frame size: %zu bytes\n", encoded_size); printf("Frame bytes: "); - for (size_t i = 0; i < encoded_size && i < 20; i++) + for (size_t i = 0; (i < encoded_size) && (i < 20); i++) { printf("%02X ", buffer[i]); } diff --git a/examples/tm_example.c b/examples/tm_example.c index d48f87d..6328b07 100644 --- a/examples/tm_example.c +++ b/examples/tm_example.c @@ -60,7 +60,7 @@ int main(void) printf("Encoded frame size: %zu bytes\n", encoded_size); printf("Frame bytes: "); - for (size_t i = 0; i < encoded_size && i < 20; i++) + for (size_t i = 0; (i < encoded_size) && (i < 20); i++) { printf("%02X ", buffer[i]); } diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index d29b3cd..24c3832 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -66,7 +66,7 @@ sdlp_status_t sdlp_tc_create_frame(sdlp_tc_frame_t *frame, max_data -= TC_SEGMENT_HEADER_SIZE; #endif - if (!frame || !data || data_length == 0u || data_length > max_data) + if ((!frame) || (!data) || (data_length == 0u) || (data_length > max_data)) { return SDLP_ERROR_INVALID_PARAM; } @@ -175,7 +175,7 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, size_t buffer_size, size_t *encoded_size) { - if (!frame || !buffer || !encoded_size) + if ((!frame) || (!buffer) || (!encoded_size)) { return SDLP_ERROR_INVALID_PARAM; } diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index f4c8c62..04e8008 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -41,7 +41,8 @@ static tm_master_channel_t *tm_get_master_channel(uint16_t spacecraft_id) { for (size_t i = 0; i < TM_MAX_MASTER_CHANNELS; i++) { - if (tm_master_channels[i].in_use && tm_master_channels[i].spacecraft_id == spacecraft_id) + if ((tm_master_channels[i].in_use) && + (tm_master_channels[i].spacecraft_id == spacecraft_id)) { return &tm_master_channels[i]; } @@ -252,7 +253,7 @@ sdlp_status_t sdlp_tm_set_secondary_header(sdlp_tm_frame_t *frame, const uint8_t *data, uint8_t length) { - if (!frame || !data || length == 0u || length > TM_SECONDARY_HEADER_MAX_DATA) + if ((!frame) || (!data) || (length == 0u) || (length > TM_SECONDARY_HEADER_MAX_DATA)) { return SDLP_ERROR_INVALID_PARAM; } @@ -267,7 +268,7 @@ sdlp_status_t sdlp_tm_set_secondary_header(sdlp_tm_frame_t *frame, sdlp_status_t sdlp_tm_set_ocf(sdlp_tm_frame_t *frame, const uint8_t ocf[TM_OCF_SIZE]) { - if (!frame || !ocf) + if ((!frame) || (!ocf)) { return SDLP_ERROR_INVALID_PARAM; } diff --git a/tests/cunit.h b/tests/cunit.h index 76fcac3..ca2aba1 100644 --- a/tests/cunit.h +++ b/tests/cunit.h @@ -52,7 +52,9 @@ static int cunit_total_tests = 0; cunit_total_tests++; \ int r = fn(); \ if (r == 0) \ + { \ printf("PASS %s\n", #fn); \ + } \ else \ { \ printf("FAIL %s\n", #fn); \ From 2f3bc4921293ebab5a53e1d4bac291dc238d9859 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:18:53 +0200 Subject: [PATCH 14/21] refactor: update frame size calculations and constants in TC and TM examples --- examples/tc_example.c | 21 +++++++++++++-------- examples/tm_example.c | 29 +++++++++++++++++------------ include/sdlp_tc.h | 3 +++ include/sdlp_tm.h | 1 + src/sdlp_tc.c | 6 +++--- src/sdlp_tm.c | 4 ++-- 6 files changed, 39 insertions(+), 25 deletions(-) diff --git a/examples/tc_example.c b/examples/tc_example.c index 17b217a..886fbcf 100644 --- a/examples/tc_example.c +++ b/examples/tc_example.c @@ -14,10 +14,13 @@ /* Example telecommand identifiers */ #define TC_CMD_SET_MODE_SAFE 0x01U +/** @brief Number of leading frame octets shown in the hex dump. */ +#define EXAMPLE_HEX_DUMP_OCTETS 20u + int main(void) { sdlp_tc_frame_t frame; - uint8_t buffer[1500]; + uint8_t buffer[TC_MAX_FRAME_SIZE]; size_t encoded_size; sdlp_status_t result; @@ -72,13 +75,14 @@ int main(void) /* The library leaves the Frame Error Control Field to the application. * Compute a CRC-16-CCITT over the encoded frame (excluding the trailing * 2-byte FECF) and write it into the FECF, mirroring CCSDS error control. */ - uint16_t fecf = example_crc16(buffer, encoded_size - TC_FRAME_ERROR_CONTROL_SIZE); - buffer[encoded_size - 2] = (uint8_t)((fecf >> 8) & 0xFFu); - buffer[encoded_size - 1] = (uint8_t)(fecf & 0xFFu); + size_t fecf_offset = encoded_size - TC_FRAME_ERROR_CONTROL_SIZE; + uint16_t fecf = example_crc16(buffer, fecf_offset); + buffer[fecf_offset] = (uint8_t)((fecf >> 8) & 0xFFu); + buffer[fecf_offset + 1] = (uint8_t)(fecf & 0xFFu); printf("Encoded frame size: %zu bytes\n", encoded_size); printf("Frame bytes: "); - for (size_t i = 0; (i < encoded_size) && (i < 20); i++) + for (size_t i = 0; (i < encoded_size) && (i < EXAMPLE_HEX_DUMP_OCTETS); i++) { printf("%02X ", buffer[i]); } @@ -130,9 +134,10 @@ int main(void) return 1; } - uint16_t unlock_fecf = example_crc16(buffer, encoded_size - TC_FRAME_ERROR_CONTROL_SIZE); - buffer[encoded_size - 2] = (uint8_t)((unlock_fecf >> 8) & 0xFFu); - buffer[encoded_size - 1] = (uint8_t)(unlock_fecf & 0xFFu); + fecf_offset = encoded_size - TC_FRAME_ERROR_CONTROL_SIZE; + uint16_t unlock_fecf = example_crc16(buffer, fecf_offset); + buffer[fecf_offset] = (uint8_t)((unlock_fecf >> 8) & 0xFFu); + buffer[fecf_offset + 1] = (uint8_t)(unlock_fecf & 0xFFu); printf("Encoded frame size: %zu bytes\n", encoded_size); diff --git a/examples/tm_example.c b/examples/tm_example.c index 6328b07..b4e9e69 100644 --- a/examples/tm_example.c +++ b/examples/tm_example.c @@ -12,10 +12,14 @@ #include #include +/** @brief Number of leading frame octets shown in the hex dump. */ +#define EXAMPLE_HEX_DUMP_OCTETS 20u + int main(void) { sdlp_tm_frame_t frame; - uint8_t buffer[1500]; + uint8_t buffer[TM_PRIMARY_HEADER_SIZE + TM_MAX_DATA_SIZE + TM_OCF_SIZE + + TM_FRAME_ERROR_CONTROL_SIZE]; size_t encoded_size; sdlp_status_t result; @@ -54,13 +58,14 @@ int main(void) /* The library leaves the Frame Error Control Field to the application. * Compute a CRC-16-CCITT over the encoded frame (excluding the trailing * 2-byte FECF) and write it into the FECF, mirroring CCSDS error control. */ - uint16_t fecf = example_crc16(buffer, encoded_size - TM_FRAME_ERROR_CONTROL_SIZE); - buffer[encoded_size - 2] = (uint8_t)((fecf >> 8) & 0xFFu); - buffer[encoded_size - 1] = (uint8_t)(fecf & 0xFFu); + size_t fecf_offset = encoded_size - TM_FRAME_ERROR_CONTROL_SIZE; + uint16_t fecf = example_crc16(buffer, fecf_offset); + buffer[fecf_offset] = (uint8_t)((fecf >> 8) & 0xFFu); + buffer[fecf_offset + 1] = (uint8_t)(fecf & 0xFFu); printf("Encoded frame size: %zu bytes\n", encoded_size); printf("Frame bytes: "); - for (size_t i = 0; (i < encoded_size) && (i < 20); i++) + for (size_t i = 0; (i < encoded_size) && (i < EXAMPLE_HEX_DUMP_OCTETS); i++) { printf("%02X ", buffer[i]); } @@ -92,7 +97,7 @@ int main(void) * Its content is mission-specific (e.g. a CLCW); here it is opaque. Setting it * raises the OCF Flag; leaving it unset emits a frame with no OCF. */ printf("\nEncoding the same frame with an Operational Control Field...\n"); - const uint8_t clcw[4] = {0x00u, 0x00u, 0x00u, 0x00u}; + const uint8_t clcw[TM_OCF_SIZE] = {0}; result = sdlp_tm_set_ocf(&frame, clcw); if (result != SDLP_SUCCESS) { @@ -115,12 +120,12 @@ int main(void) } printf("Encoded frame size: %zu bytes\n", encoded_size); - printf("OCF Flag: %d, OCF: %02X %02X %02X %02X\n", - decoded_frame.header.ocf_flag, - decoded_frame.ocf[0], - decoded_frame.ocf[1], - decoded_frame.ocf[2], - decoded_frame.ocf[3]); + printf("OCF Flag: %d, OCF:", decoded_frame.header.ocf_flag); + for (size_t i = 0; i < TM_OCF_SIZE; i++) + { + printf(" %02X", decoded_frame.ocf[i]); + } + printf("\n"); printf("\n=== TM Frame Example Complete ===\n"); diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 0fad651..8cd1d86 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -34,6 +34,9 @@ extern "C" */ #define TC_MAX_DATA_SIZE (TC_MAX_FRAME_SIZE - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE) +/** @brief Frame Length field = octets in the Transfer Frame minus this (§4.1.2.7.2). */ +#define TC_FRAME_LENGTH_OFFSET 1u + /** * @brief TC Transfer Frame types — Bypass/Control Command Flag combinations (§table 4-1). * diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 6d766ba..8121bcf 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -31,6 +31,7 @@ extern "C" * @{ */ #define TM_SECONDARY_HEADER_ID_SIZE 1 /**< Identification Field size in octets. */ +#define TM_SECONDARY_HEADER_MIN_DATA 1 /**< Minimum Secondary Header Data Field length. */ #define TM_SECONDARY_HEADER_MAX_DATA 63 /**< Maximum Secondary Header Data Field length. */ /** @} */ diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index 24c3832..abf8c2b 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -29,7 +29,7 @@ static uint16_t tc_frame_length(const sdlp_tc_frame_t *frame) frame_octets += TC_SEGMENT_HEADER_SIZE; } #endif - return (uint16_t)(frame_octets - 1u); + return (uint16_t)(frame_octets - TC_FRAME_LENGTH_OFFSET); } /** @@ -205,7 +205,7 @@ sdlp_status_t sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, /* Frame Length = total octets in the emitted Transfer Frame - 1 (CCSDS 232.0-B-4, * 4.1.2.7.2), derived from the actual encoded size so it always matches the wire. */ - uint16_t frame_length = (uint16_t)(required_size - 1u); + uint16_t frame_length = (uint16_t)(required_size - TC_FRAME_LENGTH_OFFSET); size_t offset = 0; @@ -263,7 +263,7 @@ sdlp_status_t sdlp_tc_decode_frame(const uint8_t *buffer, /* Frame Validation: the Frame Length must equal the actual octet count minus one * (CCSDS 232.0-B-4, 4.1.2.7.2). */ - if (((size_t)header.frame_length + 1u) != buffer_size) + if (((size_t)header.frame_length + TC_FRAME_LENGTH_OFFSET) != buffer_size) { return SDLP_ERROR_INVALID_FRAME; } diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 04e8008..1b01b3f 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -98,8 +98,8 @@ static void sdlp_tm_decode_primary_header(const uint8_t *buffer, sdlp_tm_header_ static size_t sdlp_tm_secondary_header_wire_size(const uint8_t *buffer, size_t buffer_size) { /* Need the Identification Field plus at least one Data Field octet (4.1.3.1.3). */ - if (buffer_size < - (TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + 1u + TM_FRAME_ERROR_CONTROL_SIZE)) + if (buffer_size < (TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + + TM_SECONDARY_HEADER_MIN_DATA + TM_FRAME_ERROR_CONTROL_SIZE)) { return 0; } From cdaf6f330724872e1d67089990dbe4abb11d4282 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:23:09 +0200 Subject: [PATCH 15/21] add missing prefixes --- src/sdlp_tc.c | 6 +++--- src/sdlp_tm.c | 30 +++++++++++++++--------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index abf8c2b..d8caec9 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -19,7 +19,7 @@ * @param[in] frame Frame whose current fields determine the emitted size. * @return The 10-bit Frame Length value. */ -static uint16_t tc_frame_length(const sdlp_tc_frame_t *frame) +static uint16_t sdlp_tc_frame_length(const sdlp_tc_frame_t *frame) { size_t frame_octets = (size_t)TC_PRIMARY_HEADER_SIZE + frame->data_length + TC_FRAME_ERROR_CONTROL_SIZE; @@ -86,7 +86,7 @@ sdlp_status_t sdlp_tc_create_frame(sdlp_tc_frame_t *frame, /* sdlp_tc_encode_frame recomputes the Frame Length from the bytes it actually * emits; it is set here so the struct is self-consistent. */ - frame->header.frame_length = (uint16_t)(tc_frame_length(frame) & 0x03FFu); + frame->header.frame_length = (uint16_t)(sdlp_tc_frame_length(frame) & 0x03FFu); return SDLP_SUCCESS; } @@ -118,7 +118,7 @@ sdlp_status_t sdlp_tc_set_frame_type(sdlp_tc_frame_t *frame, sdlp_tc_frame_type_ /* The Segment Header is absent from Type-BC frames, so the frame type affects * the total frame size when segment headers are compiled in. */ - frame->header.frame_length = (uint16_t)(tc_frame_length(frame) & 0x03FFu); + frame->header.frame_length = (uint16_t)(sdlp_tc_frame_length(frame) & 0x03FFu); return SDLP_SUCCESS; } diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 1b01b3f..0eb9646 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -21,14 +21,14 @@ typedef struct uint16_t spacecraft_id; /**< Master Channel ID (Spacecraft Identifier). */ uint8_t mc_frame_count; /**< Master Channel Frame Count (modulo-256). */ uint8_t vc_frame_count[TM_VC_PER_MC]; /**< Virtual Channel Frame Counts, indexed by VCID. */ -} tm_master_channel_t; +} sdlp_tm_master_channel_t; /** * @brief Fixed-size table of per-Master-Channel counter state (see ::TM_MAX_MASTER_CHANNELS). * * Both counts are free-running modulo-256. Not thread-safe. */ -static tm_master_channel_t tm_master_channels[TM_MAX_MASTER_CHANNELS]; +static sdlp_tm_master_channel_t sdlp_tm_master_channels[TM_MAX_MASTER_CHANNELS]; /** * @brief Return the counter state for a Master Channel, allocating a slot on first use. @@ -37,27 +37,27 @@ static tm_master_channel_t tm_master_channels[TM_MAX_MASTER_CHANNELS]; * @return Pointer to the channel's counters, or NULL if the table is already full of * other Master Channels. */ -static tm_master_channel_t *tm_get_master_channel(uint16_t spacecraft_id) +static sdlp_tm_master_channel_t *sdlp_tm_get_master_channel(uint16_t spacecraft_id) { for (size_t i = 0; i < TM_MAX_MASTER_CHANNELS; i++) { - if ((tm_master_channels[i].in_use) && - (tm_master_channels[i].spacecraft_id == spacecraft_id)) + if ((sdlp_tm_master_channels[i].in_use) && + (sdlp_tm_master_channels[i].spacecraft_id == spacecraft_id)) { - return &tm_master_channels[i]; + return &sdlp_tm_master_channels[i]; } } for (size_t i = 0; i < TM_MAX_MASTER_CHANNELS; i++) { - if (!tm_master_channels[i].in_use) + if (!sdlp_tm_master_channels[i].in_use) { - tm_master_channels[i].in_use = 1; - tm_master_channels[i].spacecraft_id = spacecraft_id; - tm_master_channels[i].mc_frame_count = 0; - memset(tm_master_channels[i].vc_frame_count, + sdlp_tm_master_channels[i].in_use = 1; + sdlp_tm_master_channels[i].spacecraft_id = spacecraft_id; + sdlp_tm_master_channels[i].mc_frame_count = 0; + memset(sdlp_tm_master_channels[i].vc_frame_count, 0, - sizeof(tm_master_channels[i].vc_frame_count)); - return &tm_master_channels[i]; + sizeof(sdlp_tm_master_channels[i].vc_frame_count)); + return &sdlp_tm_master_channels[i]; } } return NULL; @@ -201,7 +201,7 @@ void sdlp_tm_unpack_data_field_status(uint16_t raw, sdlp_tm_data_field_status_t void sdlp_tm_reset_frame_counts(void) { - memset(tm_master_channels, 0, sizeof(tm_master_channels)); + memset(sdlp_tm_master_channels, 0, sizeof(sdlp_tm_master_channels)); } sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, @@ -217,7 +217,7 @@ sdlp_status_t sdlp_tm_create_frame(sdlp_tm_frame_t *frame, /* The lookup is the last check and claims a table slot only when it succeeds, so a * rejected call leaves the frame and every frame count as they were. */ - tm_master_channel_t *mc = tm_get_master_channel((uint16_t)(spacecraft_id & 0x3FFu)); + sdlp_tm_master_channel_t *mc = sdlp_tm_get_master_channel((uint16_t)(spacecraft_id & 0x3FFu)); if (!mc) { return SDLP_ERROR_NO_RESOURCE; From b3e6fb929db9ec19d48ac96f6f06e3907aa1ddbd Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:35:30 +0200 Subject: [PATCH 16/21] update make example --- Makefile | 6 +++++- README.md | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b0fd734..7b1d7a6 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ SEGMENT_EXAMPLE_BINS = $(patsubst $(EXAMPLES_DIR)/%.c,$(SEGMENT_DIR)/%,$(EXAMPLE LIB = $(BUILD_DIR)/libsdlp.a -.PHONY: all clean examples lib unit-tests test coverage-html sanitize +.PHONY: all clean example examples lib unit-tests test coverage-html sanitize all: lib examples @@ -56,6 +56,10 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(PUBLIC_HEADERS) | $(OBJ_DIR) examples: $(EXAMPLE_BINS) $(SEGMENT_EXAMPLE_BINS) +# Build the examples and run the ones linked against the library as `make lib` builds it. +example: examples + @for example in $(EXAMPLE_BINS); do ./$$example || exit 1; done + unit-tests: $(TEST_BIN) $(SEGMENT_TEST_BIN) $(BIN_DIR)/%: $(EXAMPLES_DIR)/%.c $(EXAMPLE_HEADERS) $(PUBLIC_HEADERS) $(LIB) | $(BIN_DIR) diff --git a/README.md b/README.md index 71e777c..ee48939 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,8 @@ make lib ### Build Examples ```bash -make examples +make examples # build only +make example # build, then run tm_example and tc_example ``` ### Run Tests From 786eb2e7293116c4fc80e52a64d1739f0d417f30 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:36:18 +0200 Subject: [PATCH 17/21] update UT with edge cases --- tests/cunit.h | 8 +- tests/test_tc.c | 241 ++++++++++++++++++++++++++++++++++++++++++++++-- tests/test_tm.c | 230 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 458 insertions(+), 21 deletions(-) diff --git a/tests/cunit.h b/tests/cunit.h index ca2aba1..8634b45 100644 --- a/tests/cunit.h +++ b/tests/cunit.h @@ -14,13 +14,15 @@ static int cunit_total_tests = 0; #define ASSERT_EQ_INT(expected, actual) \ do \ { \ - if ((int)(expected) != (int)(actual)) \ + const int cunit_expected = (int)(expected); \ + const int cunit_actual = (int)(actual); \ + if (cunit_expected != cunit_actual) \ { \ printf("ASSERT_EQ_INT failed: %s:%d: expected %d got %d\n", \ __FILE__, \ __LINE__, \ - (int)(expected), \ - (int)(actual)); \ + cunit_expected, \ + cunit_actual); \ return 1; \ } \ } while (0) diff --git a/tests/test_tc.c b/tests/test_tc.c index 325762f..23b65f6 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -27,16 +27,41 @@ /** @brief Scratch buffer size for rejected-encode checks: holds a frame just over the limit. */ #define TEST_TC_SCRATCH_SIZE (2 * TC_MAX_FRAME_SIZE) -static int test_tc_create_frame_invalid_params(void) +/** + * @brief Build a frame the library must reject and check the output frame is untouched. + * + * @param[in] data Data Field content (may be NULL). + * @param[in] data_length Data Field length in octets. + * @return 0 if sdlp_tc_create_frame() returned ::SDLP_ERROR_INVALID_PARAM and left the frame + * unchanged, 1 otherwise. + */ +static int test_tc_expect_create_rejected(const uint8_t *data, uint16_t data_length) { sdlp_tc_frame_t frame; - uint8_t payload[1] = {0x55u}; + sdlp_tc_frame_t untouched; + + memset(&frame, 0xA5, sizeof(frame)); + memset(&untouched, 0xA5, sizeof(untouched)); - ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_create_frame(NULL, 1, 1, 1, payload, 1)); - ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_create_frame(&frame, 1, 1, 1, NULL, 1)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, - sdlp_tc_create_frame(&frame, 1, 1, 1, payload, TC_MAX_DATA_SIZE + 1)); - ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 0)); + sdlp_tc_create_frame(&frame, 1, 1, 1, data, data_length)); + ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); + + return 0; +} + +static int test_tc_create_frame_invalid_params(void) +{ + static const uint8_t payload[TC_MAX_DATA_SIZE + 1] = {0x55u}; + /* The largest Data Field is the array, less the Segment Header octet when compiled in. */ + const uint16_t max_data = TC_MAX_DATA_SIZE - TEST_TC_SEGMENT_OCTETS; + + ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_create_frame(NULL, 1, 1, 1, payload, 1)); + ASSERT_EQ_INT(0, test_tc_expect_create_rejected(NULL, 1)); + ASSERT_EQ_INT(0, test_tc_expect_create_rejected(payload, 0)); + /* The first rejected length is one octet past the largest Data Field. */ + ASSERT_EQ_INT(0, test_tc_expect_create_rejected(payload, (uint16_t)(max_data + 1))); + ASSERT_EQ_INT(0, test_tc_expect_create_rejected(payload, TC_MAX_DATA_SIZE + 1)); return 0; } @@ -78,7 +103,9 @@ static int test_tc_encode_buffer_too_small(void) { sdlp_tc_frame_t frame; const uint8_t payload[] = {0xABu, 0xCDu, 0xEFu}; - uint8_t encoded[TC_PRIMARY_HEADER_SIZE + 2 + TC_FRAME_ERROR_CONTROL_SIZE]; + /* One octet short of the encoded frame. */ + uint8_t encoded[TC_PRIMARY_HEADER_SIZE + TEST_TC_SEGMENT_OCTETS + sizeof(payload) - 1 + + TC_FRAME_ERROR_CONTROL_SIZE]; size_t encoded_size = 0; ASSERT_EQ_INT(SDLP_SUCCESS, @@ -108,8 +135,7 @@ static int test_tc_fecf_passthrough(void) ASSERT_EQ_INT(0x12u, encoded[encoded_size - 2]); ASSERT_EQ_INT(0x34u, encoded[encoded_size - 1]); - /* Decode no longer validates the FECF: it always succeeds and surfaces the - * field as-is. */ + /* Decode does not validate the FECF: it surfaces the field as-is. */ ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_decode_frame(encoded, encoded_size, &decoded)); ASSERT_EQ_INT(0x1234u, decoded.fecf); @@ -175,12 +201,16 @@ static int test_tc_frame_type_bd_roundtrip(void) static int test_tc_set_frame_type_invalid(void) { sdlp_tc_frame_t frame; + sdlp_tc_frame_t before; const uint8_t payload[1] = {0x01u}; ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 1)); + memcpy(&before, &frame, sizeof(frame)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_set_frame_type(NULL, SDLP_TC_FRAME_TYPE_BD)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tc_set_frame_type(&frame, (sdlp_tc_frame_type_t)99)); + /* A rejected type leaves the whole frame as it was, flags and Frame Length included. */ + ASSERT_EQ_MEM(&before, &frame, sizeof(frame)); return 0; } @@ -321,6 +351,8 @@ static int test_tc_segment_header_roundtrip(void) ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + /* On the wire: Sequence Flags '01' in the top two bits, then the MAP ID. */ + ASSERT_EQ_INT(0x6Fu, encoded[TC_PRIMARY_HEADER_SIZE]); /* primary(5) + segment(1) + payload(2) + FECF(2) */ ASSERT_EQ_INT(TC_PRIMARY_HEADER_SIZE + TC_SEGMENT_HEADER_SIZE + (int)sizeof(payload) + TC_FRAME_ERROR_CONTROL_SIZE, @@ -366,11 +398,24 @@ static int test_tc_expect_decode_rejected(const uint8_t *buffer, { sdlp_tc_frame_t frame; sdlp_tc_frame_t untouched; + uint8_t *exact = NULL; + sdlp_status_t status; memset(&frame, 0xA5, sizeof(frame)); memset(&untouched, 0xA5, sizeof(untouched)); - ASSERT_EQ_INT(expected, sdlp_tc_decode_frame(buffer, buffer_size, &frame)); + /* The decoder reads a heap copy of exactly buffer_size octets, so ASan reports any + * read past the end of the input. */ + if (buffer) + { + exact = malloc((buffer_size > 0u) ? buffer_size : 1u); + ASSERT_TRUE(exact); + memcpy(exact, buffer, buffer_size); + } + status = sdlp_tc_decode_frame(exact, buffer_size, &frame); + free(exact); + + ASSERT_EQ_INT(expected, status); ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); return 0; @@ -532,6 +577,175 @@ static int test_tc_encode_rejects_oversized_frame(void) return 0; } +/** + * @brief A complete Type-BD frame with a distinct value in every field, as sent on the wire. + */ +static const uint8_t test_tc_golden[] = { + 0x22u, /* Version 00, Bypass 1, Control Command 0, Reserved 00, Spacecraft ID bits 9-8 */ + 0xA5u, /* Spacecraft ID bits 7-0: the ID is 0x2A5 */ + 0x54u, /* Virtual Channel ID 0x15, Frame Length bits 9-8 */ + TC_PRIMARY_HEADER_SIZE + TEST_TC_SEGMENT_OCTETS + 2 + TC_FRAME_ERROR_CONTROL_SIZE - 1, + 0x9Cu, /* Frame Sequence Number */ +#ifdef TC_SEGMENT_HEADER_ENABLED + 0xAFu, /* Sequence Flags '10' (last portion), MAP ID 0x2F */ +#endif + 0xD1u, + 0xD2u, /* Data Field */ + 0xFEu, + 0xC5u /* FECF */ +}; + +static int test_tc_golden_frame_encode(void) +{ + sdlp_tc_frame_t frame; + const uint8_t payload[] = {0xD1u, 0xD2u}; + uint8_t encoded[sizeof(test_tc_golden)]; + size_t encoded_size = 0; + + ASSERT_EQ_INT( + SDLP_SUCCESS, + sdlp_tc_create_frame(&frame, 0x2A5u, 0x15u, 0x9Cu, payload, (uint16_t)sizeof(payload))); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_frame_type(&frame, SDLP_TC_FRAME_TYPE_BD)); +#ifdef TC_SEGMENT_HEADER_ENABLED + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_segment_header(&frame, TC_SEQ_FLAG_LAST, 0x2Fu)); +#endif + frame.fecf = 0xFEC5u; + + /* The buffer is exactly as long as the frame, and every octet is compared. */ + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT((int)sizeof(test_tc_golden), (int)encoded_size); + ASSERT_EQ_MEM(test_tc_golden, encoded, sizeof(test_tc_golden)); + + return 0; +} + +static int test_tc_golden_frame_decode(void) +{ + sdlp_tc_frame_t decoded; + const uint8_t payload[] = {0xD1u, 0xD2u}; + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_decode_frame(test_tc_golden, sizeof(test_tc_golden), &decoded)); + ASSERT_EQ_INT(0, decoded.header.transfer_frame_version); + ASSERT_EQ_INT(1, decoded.header.bypass_flag); + ASSERT_EQ_INT(0, decoded.header.control_command_flag); + ASSERT_EQ_INT(0, decoded.header.reserved); + ASSERT_EQ_INT(0x2A5u, decoded.header.spacecraft_id); + ASSERT_EQ_INT(0x15u, decoded.header.virtual_channel_id); + ASSERT_EQ_INT((int)sizeof(test_tc_golden) - 1, decoded.header.frame_length); + ASSERT_EQ_INT(0x9Cu, decoded.header.frame_sequence_number); +#ifdef TC_SEGMENT_HEADER_ENABLED + ASSERT_EQ_INT(TC_SEQ_FLAG_LAST, decoded.segment_header.sequence_flags); + ASSERT_EQ_INT(0x2Fu, decoded.segment_header.map_id); +#endif + ASSERT_EQ_INT((int)sizeof(payload), decoded.data_length); + ASSERT_EQ_MEM(payload, decoded.data, sizeof(payload)); + ASSERT_EQ_INT(0xFEC5u, decoded.fecf); + + return 0; +} + +static int test_tc_primary_header_wire_limits(void) +{ + sdlp_tc_frame_t frame; + sdlp_tc_frame_t decoded; + const uint8_t payload[1] = {0x00u}; + uint8_t encoded[TC_MAX_FRAME_SIZE]; + size_t encoded_size = 0; + /* Every field the caller sets is zero; only the Frame Length (total octets - 1) is not. */ + const uint8_t all_zero[TC_PRIMARY_HEADER_SIZE] = { + 0x00u, + 0x00u, + 0x00u, + TC_PRIMARY_HEADER_SIZE + TEST_TC_SEGMENT_OCTETS + 1 + TC_FRAME_ERROR_CONTROL_SIZE - 1, + 0x00u}; + const uint8_t all_max[TC_PRIMARY_HEADER_SIZE] = {0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu}; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 0, 0, 0, payload, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_MEM(all_zero, encoded, sizeof(all_zero)); + + /* Every field at its maximum. A Type-BC frame carries no Segment Header, so a full Data + * Field array makes the largest frame and the Frame Length reaches 1023 as well. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 0x3FFu, 0x3Fu, 0xFFu, payload, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_frame_type(&frame, SDLP_TC_FRAME_TYPE_BC)); + frame.header.transfer_frame_version = 0x03u; + frame.header.reserved = 0x03u; + frame.data_length = TC_MAX_DATA_SIZE; + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_MEM(all_max, encoded, sizeof(all_max)); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_decode_frame(encoded, encoded_size, &decoded)); + ASSERT_EQ_INT(0x03u, decoded.header.transfer_frame_version); + ASSERT_EQ_INT(1, decoded.header.bypass_flag); + ASSERT_EQ_INT(1, decoded.header.control_command_flag); + ASSERT_EQ_INT(0x03u, decoded.header.reserved); + ASSERT_EQ_INT(0x3FFu, decoded.header.spacecraft_id); + ASSERT_EQ_INT(0x3Fu, decoded.header.virtual_channel_id); + ASSERT_EQ_INT(TC_MAX_FRAME_SIZE - 1, decoded.header.frame_length); + ASSERT_EQ_INT(0xFFu, decoded.header.frame_sequence_number); + + return 0; +} + +#ifdef TC_SEGMENT_HEADER_ENABLED +static int test_tc_segment_header_wire_limits(void) +{ + sdlp_tc_frame_t frame; + const uint8_t payload[1] = {0x00u}; + uint8_t + encoded[TC_PRIMARY_HEADER_SIZE + TC_SEGMENT_HEADER_SIZE + 1 + TC_FRAME_ERROR_CONTROL_SIZE]; + size_t encoded_size = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 1)); + + /* Both fields zero, then both at their maximum: the octet right after the primary header. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_segment_header(&frame, TC_SEQ_FLAG_CONTINUE, 0)); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT(0x00u, encoded[TC_PRIMARY_HEADER_SIZE]); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_segment_header(&frame, TC_SEQ_FLAG_NO_SEG, 0x3Fu)); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tc_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT(0xFFu, encoded[TC_PRIMARY_HEADER_SIZE]); + + return 0; +} +#endif /* TC_SEGMENT_HEADER_ENABLED */ + +static int test_tc_decode_short_inputs(void) +{ + static const uint8_t zeros[TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE] = {0}; + /* The shortest frame: a Type-BC header (so no Segment Header), no data, and the FECF. */ + const uint8_t shortest[TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE] = + {0x30u, 0x00u, 0x00u, TC_PRIMARY_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE - 1}; + sdlp_tc_frame_t decoded; + uint8_t *exact; + sdlp_status_t status; + + /* Every length below a primary header plus the FECF is rejected. */ + for (size_t length = 0; length < sizeof(zeros); length++) + { + ASSERT_EQ_INT(0, test_tc_expect_decode_rejected(zeros, length, SDLP_ERROR_INVALID_PARAM)); + } + + /* Exactly that length is the first one accepted, read from an exact-size heap buffer. */ + exact = malloc(sizeof(shortest)); + ASSERT_TRUE(exact); + memcpy(exact, shortest, sizeof(shortest)); + status = sdlp_tc_decode_frame(exact, sizeof(shortest), &decoded); + free(exact); + ASSERT_EQ_INT(SDLP_SUCCESS, status); + ASSERT_EQ_INT(1, decoded.header.control_command_flag); + ASSERT_EQ_INT(0, decoded.data_length); + + return 0; +} + test_result_t test_tc_run_all(void) { test_result_t result; @@ -554,6 +768,13 @@ test_result_t test_tc_run_all(void) RUN_TEST(test_tc_decode_failure_leaves_frame_unchanged); RUN_TEST(test_tc_encode_max_frame_exact_buffer); RUN_TEST(test_tc_encode_rejects_oversized_frame); + RUN_TEST(test_tc_golden_frame_encode); + RUN_TEST(test_tc_golden_frame_decode); + RUN_TEST(test_tc_primary_header_wire_limits); +#ifdef TC_SEGMENT_HEADER_ENABLED + RUN_TEST(test_tc_segment_header_wire_limits); +#endif + RUN_TEST(test_tc_decode_short_inputs); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ diff --git a/tests/test_tm.c b/tests/test_tm.c index 9206b31..b8e1e2f 100644 --- a/tests/test_tm.c +++ b/tests/test_tm.c @@ -135,8 +135,7 @@ static int test_tm_fecf_passthrough(void) ASSERT_EQ_INT(0xABu, encoded[encoded_size - 2]); ASSERT_EQ_INT(0xCDu, encoded[encoded_size - 1]); - /* Decode no longer validates the FECF: it always succeeds and surfaces the - * field as-is. */ + /* Decode does not validate the FECF: it surfaces the field as-is. */ ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_decode_frame(encoded, encoded_size, &decoded)); ASSERT_EQ_INT(0xABCDu, decoded.fecf); @@ -211,17 +210,19 @@ static int test_tm_secondary_header_roundtrip(void) static int test_tm_set_secondary_header_invalid(void) { sdlp_tm_frame_t frame; + sdlp_tm_frame_t before; const uint8_t payload[1] = {0x01u}; - const uint8_t sh_data[1] = {0xFFu}; + const uint8_t sh_data[TM_SECONDARY_HEADER_MAX_DATA + 1] = {0xFFu}; ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, payload, 1)); + memcpy(&before, &frame, sizeof(frame)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_secondary_header(NULL, sh_data, 1)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_secondary_header(&frame, NULL, 1)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_secondary_header(&frame, sh_data, 0)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_secondary_header(&frame, sh_data, TM_SECONDARY_HEADER_MAX_DATA + 1)); - /* A rejected call must leave the Secondary Header Flag clear. */ - ASSERT_EQ_INT(0, frame.header.transfer_frame_data_field_status.secondary_header_flag); + /* A rejected call leaves the whole frame as it was, the Secondary Header Flag included. */ + ASSERT_EQ_MEM(&before, &frame, sizeof(frame)); return 0; } @@ -300,14 +301,16 @@ static int test_tm_secondary_header_and_ocf_roundtrip(void) static int test_tm_set_ocf_invalid(void) { sdlp_tm_frame_t frame; + sdlp_tm_frame_t before; const uint8_t payload[1] = {0x01u}; const uint8_t ocf[TM_OCF_SIZE] = {0}; ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, payload, 1)); + memcpy(&before, &frame, sizeof(frame)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_ocf(NULL, ocf)); ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, sdlp_tm_set_ocf(&frame, NULL)); - /* A rejected call must leave the OCF Flag clear. */ - ASSERT_EQ_INT(0, frame.header.ocf_flag); + /* A rejected call leaves the whole frame as it was, the OCF Flag included. */ + ASSERT_EQ_MEM(&before, &frame, sizeof(frame)); return 0; } @@ -397,11 +400,24 @@ static int test_tm_expect_decode_rejected(const uint8_t *buffer, { sdlp_tm_frame_t frame; sdlp_tm_frame_t untouched; + uint8_t *exact = NULL; + sdlp_status_t status; memset(&frame, 0xA5, sizeof(frame)); memset(&untouched, 0xA5, sizeof(untouched)); - ASSERT_EQ_INT(expected, sdlp_tm_decode_frame(buffer, buffer_size, &frame)); + /* The decoder reads a heap copy of exactly buffer_size octets, so ASan reports any + * read past the end of the input. */ + if (buffer) + { + exact = malloc((buffer_size > 0u) ? buffer_size : 1u); + ASSERT_TRUE(exact); + memcpy(exact, buffer, buffer_size); + } + status = sdlp_tm_decode_frame(exact, buffer_size, &frame); + free(exact); + + ASSERT_EQ_INT(expected, status); ASSERT_EQ_MEM(&untouched, &frame, sizeof(frame)); return 0; @@ -790,6 +806,198 @@ static int test_tm_frame_counts_wrap(void) return 0; } +/** + * @brief A complete TM frame with a distinct value in every field, as sent on the wire. + */ +static const uint8_t test_tm_golden[] = { + 0x2Au, /* Version 00, Spacecraft ID bits 9-4: the ID is 0x2A5 */ + 0x5Bu, /* Spacecraft ID bits 3-0, Virtual Channel ID 5, OCF Flag 1 */ + 0x12u, /* Master Channel Frame Count */ + 0x34u, /* Virtual Channel Frame Count */ + 0x99u, /* Secondary Header Flag 1, Segment Length ID '11', First Header Pointer bits 10-8 */ + 0x23u, /* First Header Pointer bits 7-0: the pointer is 0x123 */ + 0x02u, /* Secondary Header: Version 00, Length 2 */ + 0x51u, + 0x52u, /* Secondary Header Data Field */ + 0xD1u, + 0xD2u, /* Data Field */ + 0xC1u, + 0xC2u, + 0xC3u, + 0xC4u, /* Operational Control Field */ + 0xFEu, + 0xC5u /* FECF */ +}; + +static int test_tm_golden_frame_encode(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[] = {0xD1u, 0xD2u}; + const uint8_t sh_data[] = {0x51u, 0x52u}; + const uint8_t ocf[TM_OCF_SIZE] = {0xC1u, 0xC2u, 0xC3u, 0xC4u}; + uint8_t encoded[sizeof(test_tm_golden)]; + size_t encoded_size = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_create_frame(&frame, 0x2A5u, 5, payload, (uint16_t)sizeof(payload))); + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_set_secondary_header(&frame, sh_data, (uint8_t)sizeof(sh_data))); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_set_ocf(&frame, ocf)); + frame.header.master_channel_frame_count = 0x12u; + frame.header.virtual_channel_frame_count = 0x34u; + frame.header.transfer_frame_data_field_status.first_header_pointer = 0x123u; + frame.fecf = 0xFEC5u; + + /* The buffer is exactly as long as the frame, and every octet is compared. */ + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT((int)sizeof(test_tm_golden), (int)encoded_size); + ASSERT_EQ_MEM(test_tm_golden, encoded, sizeof(test_tm_golden)); + + return 0; +} + +static int test_tm_golden_frame_decode(void) +{ + sdlp_tm_frame_t decoded; + const sdlp_tm_data_field_status_t *status = &decoded.header.transfer_frame_data_field_status; + const uint8_t payload[] = {0xD1u, 0xD2u}; + const uint8_t sh_data[] = {0x51u, 0x52u}; + const uint8_t ocf[TM_OCF_SIZE] = {0xC1u, 0xC2u, 0xC3u, 0xC4u}; + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_decode_frame(test_tm_golden, sizeof(test_tm_golden), &decoded)); + ASSERT_EQ_INT(0, decoded.header.transfer_frame_version); + ASSERT_EQ_INT(0x2A5u, decoded.header.spacecraft_id); + ASSERT_EQ_INT(5, decoded.header.virtual_channel_id); + ASSERT_EQ_INT(1, decoded.header.ocf_flag); + ASSERT_EQ_INT(0x12u, decoded.header.master_channel_frame_count); + ASSERT_EQ_INT(0x34u, decoded.header.virtual_channel_frame_count); + ASSERT_EQ_INT(1, status->secondary_header_flag); + ASSERT_EQ_INT(0, status->sync_flag); + ASSERT_EQ_INT(0, status->packet_order_flag); + ASSERT_EQ_INT(TM_SEGMENT_LENGTH_ID_NO_SEGMENTATION, status->segment_length_id); + ASSERT_EQ_INT(0x123u, status->first_header_pointer); + ASSERT_EQ_INT((int)sizeof(sh_data), decoded.secondary_header.length); + ASSERT_EQ_MEM(sh_data, decoded.secondary_header.data, sizeof(sh_data)); + ASSERT_EQ_INT((int)sizeof(payload), decoded.data_length); + ASSERT_EQ_MEM(payload, decoded.data, sizeof(payload)); + ASSERT_EQ_MEM(ocf, decoded.ocf, sizeof(ocf)); + ASSERT_EQ_INT(0xFEC5u, decoded.fecf); + + return 0; +} + +static int test_tm_primary_header_all_zero(void) +{ + sdlp_tm_frame_t frame; + const uint8_t payload[1] = {0x00u}; + const uint8_t all_zero[TM_PRIMARY_HEADER_SIZE] = {0}; + uint8_t encoded[TM_PRIMARY_HEADER_SIZE + 1 + TM_FRAME_ERROR_CONTROL_SIZE]; + size_t encoded_size = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 0, 0, payload, 1)); + /* The default Segment Length Identifier is '11'; it is cleared to put every bit at zero. */ + frame.header.transfer_frame_data_field_status.segment_length_id = 0; + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_MEM(all_zero, encoded, sizeof(all_zero)); + + return 0; +} + +static int test_tm_primary_header_all_max(void) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t decoded; + sdlp_tm_data_field_status_t *status = &frame.header.transfer_frame_data_field_status; + const uint8_t octets[TM_OCF_SIZE] = {0}; + const uint8_t all_max[TM_PRIMARY_HEADER_SIZE] = {0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu}; + uint8_t encoded[TM_PRIMARY_HEADER_SIZE + TM_SECONDARY_HEADER_ID_SIZE + 1 + 1 + TM_OCF_SIZE + + TM_FRAME_ERROR_CONTROL_SIZE]; + size_t encoded_size = 0; + + /* Both optional fields are attached, which raises their flags; the rest is set by hand. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 0x3FFu, 7, octets, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_set_secondary_header(&frame, octets, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_set_ocf(&frame, octets)); + frame.header.transfer_frame_version = 0x03u; + frame.header.master_channel_frame_count = 0xFFu; + frame.header.virtual_channel_frame_count = 0xFFu; + status->sync_flag = 1; + status->packet_order_flag = 1; + status->first_header_pointer = 0x7FFu; + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT((int)sizeof(encoded), (int)encoded_size); + ASSERT_EQ_MEM(all_max, encoded, sizeof(all_max)); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_decode_frame(encoded, encoded_size, &decoded)); + status = &decoded.header.transfer_frame_data_field_status; + ASSERT_EQ_INT(0x03u, decoded.header.transfer_frame_version); + ASSERT_EQ_INT(0x3FFu, decoded.header.spacecraft_id); + ASSERT_EQ_INT(7, decoded.header.virtual_channel_id); + ASSERT_EQ_INT(1, decoded.header.ocf_flag); + ASSERT_EQ_INT(0xFFu, decoded.header.master_channel_frame_count); + ASSERT_EQ_INT(0xFFu, decoded.header.virtual_channel_frame_count); + ASSERT_EQ_INT(1, status->secondary_header_flag); + ASSERT_EQ_INT(1, status->sync_flag); + ASSERT_EQ_INT(1, status->packet_order_flag); + ASSERT_EQ_INT(0x03u, status->segment_length_id); + ASSERT_EQ_INT(0x7FFu, status->first_header_pointer); + + return 0; +} + +static int test_tm_empty_data_field_roundtrip(void) +{ + sdlp_tm_frame_t frame; + sdlp_tm_frame_t decoded; + const uint8_t unused[1] = {0x00u}; + uint8_t encoded[TM_PRIMARY_HEADER_SIZE + TM_FRAME_ERROR_CONTROL_SIZE]; + size_t encoded_size = 0; + + /* A Data Field of zero octets is the smallest length sdlp_tm_create_frame() accepts. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_create_frame(&frame, 1, 0, unused, 0)); + ASSERT_EQ_INT(0, frame.data_length); + + ASSERT_EQ_INT(SDLP_SUCCESS, + sdlp_tm_encode_frame(&frame, encoded, sizeof(encoded), &encoded_size)); + ASSERT_EQ_INT((int)sizeof(encoded), (int)encoded_size); + + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tm_decode_frame(encoded, encoded_size, &decoded)); + ASSERT_EQ_INT(0, decoded.data_length); + + return 0; +} + +static int test_tm_decode_short_inputs(void) +{ + static const uint8_t zeros[TM_PRIMARY_HEADER_SIZE + TM_FRAME_ERROR_CONTROL_SIZE] = {0}; + sdlp_tm_frame_t decoded; + uint8_t *exact; + sdlp_status_t status; + + /* Every length below a primary header plus the FECF is rejected. */ + for (size_t length = 0; length < sizeof(zeros); length++) + { + ASSERT_EQ_INT(0, test_tm_expect_decode_rejected(zeros, length, SDLP_ERROR_INVALID_PARAM)); + } + + /* Exactly that length is the first one accepted, read from an exact-size heap buffer. */ + exact = malloc(sizeof(zeros)); + ASSERT_TRUE(exact); + memcpy(exact, zeros, sizeof(zeros)); + status = sdlp_tm_decode_frame(exact, sizeof(zeros), &decoded); + free(exact); + ASSERT_EQ_INT(SDLP_SUCCESS, status); + ASSERT_EQ_INT(0, decoded.data_length); + + return 0; +} + test_result_t test_tm_run_all(void) { test_result_t result; @@ -816,6 +1024,12 @@ test_result_t test_tm_run_all(void) RUN_TM_TEST(test_tm_create_failure_leaves_state_unchanged); RUN_TM_TEST(test_tm_master_channel_table_full); RUN_TM_TEST(test_tm_frame_counts_wrap); + RUN_TM_TEST(test_tm_golden_frame_encode); + RUN_TM_TEST(test_tm_golden_frame_decode); + RUN_TM_TEST(test_tm_primary_header_all_zero); + RUN_TM_TEST(test_tm_primary_header_all_max); + RUN_TM_TEST(test_tm_empty_data_field_roundtrip); + RUN_TM_TEST(test_tm_decode_short_inputs); /* cunit's counters have internal linkage, so this translation unit tallies * only its own tests. */ From 17c3e47e9fc16ebe97f7f1984f80f7dc0f1632b4 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:40:17 +0200 Subject: [PATCH 18/21] update macros doxygen --- examples/tc_example.c | 2 +- include/sdlp_common.h | 3 ++- include/sdlp_tc.h | 27 ++++++++++++++++++--------- include/sdlp_tm.h | 29 +++++++++++++++++++---------- src/sdlp_tm.c | 3 ++- 5 files changed, 42 insertions(+), 22 deletions(-) diff --git a/examples/tc_example.c b/examples/tc_example.c index 886fbcf..2fb6e6d 100644 --- a/examples/tc_example.c +++ b/examples/tc_example.c @@ -11,7 +11,7 @@ #include -/* Example telecommand identifiers */ +/** @brief Example telecommand identifier: switch to safe mode. */ #define TC_CMD_SET_MODE_SAFE 0x01U /** @brief Number of leading frame octets shown in the hex dump. */ diff --git a/include/sdlp_common.h b/include/sdlp_common.h index 11052c8..798d9ae 100644 --- a/include/sdlp_common.h +++ b/include/sdlp_common.h @@ -17,7 +17,8 @@ extern "C" { #endif -#define SDLP_VERSION 0 /**< Transfer Frame Version Number — '00' for both TM and TC. */ +/** @brief Transfer Frame Version Number: '00' for both TM and TC. */ +#define SDLP_VERSION 0 /** * @brief Library-wide return codes for the TM and TC frame handlers. diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 8cd1d86..5faf5e0 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -19,10 +19,13 @@ extern "C" { #endif -#define TC_PRIMARY_HEADER_SIZE 5 /**< Transfer Frame Primary Header size (§4.1.2). */ -#define TC_FRAME_ERROR_CONTROL_SIZE 2 /**< Frame Error Control Field size (§4.1.4). */ +/** @brief Transfer Frame Primary Header size in octets (§4.1.2). */ +#define TC_PRIMARY_HEADER_SIZE 5 -/** Maximum whole Transfer Frame size in octets (CCSDS 232.0-B-4 §4.1.2.7.2). */ +/** @brief Frame Error Control Field size in octets (§4.1.4). */ +#define TC_FRAME_ERROR_CONTROL_SIZE 2 + +/** @brief Maximum Transfer Frame size in octets (§4.1.2.7). */ #define TC_MAX_FRAME_SIZE 1024 /** @@ -54,16 +57,22 @@ typedef enum * @brief Control Commands carried by Type-BC frames (CCSDS 232.0-B-4 §4.1.3.3). * @{ */ -#define TC_CONTROL_CMD_UNLOCK 0x00u /**< Unlock: one 'all zeroes' octet (§4.1.3.3.2). */ -#define TC_CONTROL_CMD_UNLOCK_LENGTH 1u /**< Unlock command length in octets. */ -#define TC_CONTROL_CMD_SET_VR_OCTET0 0x82u /**< Set V(R) octet 0: '10000010' (§4.1.3.3.3). */ -#define TC_CONTROL_CMD_SET_VR_OCTET1 0x00u /**< Set V(R) octet 1: '00000000'. */ -#define TC_CONTROL_CMD_SET_VR_LENGTH 3u /**< Set V(R) command length in octets. */ +/** @brief Unlock: one 'all zeroes' octet (§4.1.3.3.2). */ +#define TC_CONTROL_CMD_UNLOCK 0x00u +/** @brief Unlock command length in octets. */ +#define TC_CONTROL_CMD_UNLOCK_LENGTH 1u +/** @brief Set V(R) octet 0: '10000010' (§4.1.3.3.3). */ +#define TC_CONTROL_CMD_SET_VR_OCTET0 0x82u +/** @brief Set V(R) octet 1: '00000000'. */ +#define TC_CONTROL_CMD_SET_VR_OCTET1 0x00u +/** @brief Set V(R) command length in octets. */ +#define TC_CONTROL_CMD_SET_VR_LENGTH 3u /** @} */ #ifdef TC_SEGMENT_HEADER_ENABLED -# define TC_SEGMENT_HEADER_SIZE 1 /**< Segment Header size in octets (§4.1.3.2.2). */ +/** @brief Segment Header size in octets (§4.1.3.2.2). */ +# define TC_SEGMENT_HEADER_SIZE 1 /** * @brief TC Segment Header Sequence Flags (CCSDS 232.0-B-4 §table 4-2). diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 8121bcf..4c128de 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -19,9 +19,14 @@ extern "C" { #endif -#define TM_PRIMARY_HEADER_SIZE 6 /**< Transfer Frame Primary Header size (§4.1.2). */ -#define TM_FRAME_ERROR_CONTROL_SIZE 2 /**< Frame Error Control Field size (§4.1.6). */ -#define TM_MAX_DATA_SIZE 1024 /**< Maximum Transfer Frame Data Field carried. */ +/** @brief Transfer Frame Primary Header size in octets (§4.1.2). */ +#define TM_PRIMARY_HEADER_SIZE 6 + +/** @brief Frame Error Control Field size in octets (§4.1.6). */ +#define TM_FRAME_ERROR_CONTROL_SIZE 2 + +/** @brief Maximum Transfer Frame Data Field length the library carries, in octets. */ +#define TM_MAX_DATA_SIZE 1024 /** * @brief Transfer Frame Secondary Header sizing (CCSDS 132.0-B-3 §4.1.3). @@ -30,12 +35,16 @@ extern "C" * i.e. up to 64 octets in total. * @{ */ -#define TM_SECONDARY_HEADER_ID_SIZE 1 /**< Identification Field size in octets. */ -#define TM_SECONDARY_HEADER_MIN_DATA 1 /**< Minimum Secondary Header Data Field length. */ -#define TM_SECONDARY_HEADER_MAX_DATA 63 /**< Maximum Secondary Header Data Field length. */ +/** @brief Identification Field size in octets. */ +#define TM_SECONDARY_HEADER_ID_SIZE 1 +/** @brief Minimum Secondary Header Data Field length in octets. */ +#define TM_SECONDARY_HEADER_MIN_DATA 1 +/** @brief Maximum Secondary Header Data Field length in octets. */ +#define TM_SECONDARY_HEADER_MAX_DATA 63 /** @} */ -#define TM_OCF_SIZE 4 /**< Operational Control Field size in octets (§4.1.5). */ +/** @brief Operational Control Field size in octets (§4.1.5). */ +#define TM_OCF_SIZE 4 /** * @brief Number of distinct Master Channels whose frame counts are tracked concurrently. @@ -55,11 +64,11 @@ extern "C" * @brief Transfer Frame Data Field Status sub-field values (CCSDS 132.0-B-3 §4.1.2.7). * @{ */ -/** '11'; mandatory Segment Length Identifier when Sync Flag = 0 (§4.1.2.7.5.2). */ +/** @brief Segment Length Identifier '11', mandatory when Sync Flag = 0 (§4.1.2.7.5.2). */ #define TM_SEGMENT_LENGTH_ID_NO_SEGMENTATION 0x03u -/** First Header Pointer: no Packet starts in the Data Field (§4.1.2.7.6.4). */ +/** @brief First Header Pointer: no Packet starts in the Data Field (§4.1.2.7.6.4). */ #define TM_FIRST_HEADER_POINTER_NO_PACKET 0x07FFu -/** First Header Pointer: Only Idle Data (OID) Transfer Frame (§4.1.2.7.6.5). */ +/** @brief First Header Pointer: Only Idle Data (OID) Transfer Frame (§4.1.2.7.6.5). */ #define TM_FIRST_HEADER_POINTER_ONLY_IDLE 0x07FEu /** @} */ diff --git a/src/sdlp_tm.c b/src/sdlp_tm.c index 0eb9646..5647330 100644 --- a/src/sdlp_tm.c +++ b/src/sdlp_tm.c @@ -10,7 +10,8 @@ #include -#define TM_VC_PER_MC 8 /**< TM Virtual Channels per Master Channel (VCID is 3 bits). */ +/** @brief Virtual Channels per Master Channel: the VCID is 3 bits. */ +#define TM_VC_PER_MC 8 /** * @brief Per-Master-Channel frame-count state. From f8d466f90be155149f23a2158223dc256f572588 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:42:46 +0200 Subject: [PATCH 19/21] update doxygen params indicators --- include/sdlp_tc.h | 10 +++++----- include/sdlp_tm.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 5faf5e0..29d372a 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -156,8 +156,8 @@ sdlp_status_t sdlp_tc_create_frame(sdlp_tc_frame_t *frame, * Also recomputes the Frame Length, since Type-BC frames carry no Segment Header * (§4.1.3.2.2.1.3). sdlp_tc_create_frame() produces a Type-AD frame. * - * @param[out] frame Target frame. - * @param[in] type Desired frame type. + * @param[in,out] frame Target frame. + * @param[in] type Desired frame type. * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on a NULL frame or unknown type. */ sdlp_status_t sdlp_tc_set_frame_type(sdlp_tc_frame_t *frame, sdlp_tc_frame_type_t type); @@ -233,9 +233,9 @@ sdlp_status_t sdlp_tc_decode_frame(const uint8_t *buffer, * * Must not be used on frames with the Control Command Flag set (§4.1.3.2.2.1.3). * - * @param[out] frame Target frame. - * @param[in] sequence_flags One of the ::sdlp_tc_seq_flag_t values. - * @param[in] map_id Multiplexer Access Point Identifier (0-63). + * @param[in,out] frame Target frame. + * @param[in] sequence_flags One of the ::sdlp_tc_seq_flag_t values. + * @param[in] map_id Multiplexer Access Point Identifier (0-63). * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on a NULL frame. */ sdlp_status_t sdlp_tc_set_segment_header(sdlp_tc_frame_t *frame, diff --git a/include/sdlp_tm.h b/include/sdlp_tm.h index 4c128de..2950ad9 100644 --- a/include/sdlp_tm.h +++ b/include/sdlp_tm.h @@ -189,9 +189,9 @@ void sdlp_tm_reset_frame_counts(void); * Raises the Secondary Header Flag and copies @p length octets of Data Field * content; the Version Number is set to '00'. * - * @param[out] frame Target frame. - * @param[in] data Secondary Header Data Field content (copied). - * @param[in] length Data Field length (1..::TM_SECONDARY_HEADER_MAX_DATA). + * @param[in,out] frame Target frame. + * @param[in] data Secondary Header Data Field content (copied). + * @param[in] length Data Field length (1..::TM_SECONDARY_HEADER_MAX_DATA). * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on NULL args or bad length. */ sdlp_status_t sdlp_tm_set_secondary_header(sdlp_tm_frame_t *frame, @@ -205,8 +205,8 @@ sdlp_status_t sdlp_tm_set_secondary_header(sdlp_tm_frame_t *frame, * CLCW or an SDLS report) is mission-specific. Leave this unset to emit a frame * with no OCF. * - * @param[out] frame Target frame. - * @param[in] ocf Four octets of OCF content (copied). + * @param[in,out] frame Target frame. + * @param[in] ocf Four octets of OCF content (copied). * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on NULL args. */ sdlp_status_t sdlp_tm_set_ocf(sdlp_tm_frame_t *frame, const uint8_t ocf[TM_OCF_SIZE]); From ad542a2603b7817faad551476c8154741ee5dda1 Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 19:50:36 +0200 Subject: [PATCH 20/21] update segment header handling for Control Command frames and add corresponding test --- include/sdlp_tc.h | 7 +++++-- src/sdlp_tc.c | 4 +++- tests/test_tc.c | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/include/sdlp_tc.h b/include/sdlp_tc.h index 29d372a..7f3d737 100644 --- a/include/sdlp_tc.h +++ b/include/sdlp_tc.h @@ -231,12 +231,15 @@ sdlp_status_t sdlp_tc_decode_frame(const uint8_t *buffer, /** * @brief Set the Segment Header fields on a TC frame (CCSDS 232.0-B-4 §4.1.3.2.2). * - * Must not be used on frames with the Control Command Flag set (§4.1.3.2.2.1.3). + * The Segment Header must not be present in frames carrying Control Commands + * (§4.1.3.2.2.1.3), so a frame with the Control Command Flag set is rejected. On failure, + * @p frame is left unchanged. * * @param[in,out] frame Target frame. * @param[in] sequence_flags One of the ::sdlp_tc_seq_flag_t values. * @param[in] map_id Multiplexer Access Point Identifier (0-63). - * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on a NULL frame. + * @return ::SDLP_SUCCESS, or ::SDLP_ERROR_INVALID_PARAM on a NULL frame or a frame with the + * Control Command Flag set. */ sdlp_status_t sdlp_tc_set_segment_header(sdlp_tc_frame_t *frame, sdlp_tc_seq_flag_t sequence_flags, diff --git a/src/sdlp_tc.c b/src/sdlp_tc.c index d8caec9..8c11b81 100644 --- a/src/sdlp_tc.c +++ b/src/sdlp_tc.c @@ -312,7 +312,9 @@ sdlp_status_t sdlp_tc_set_segment_header(sdlp_tc_frame_t *frame, sdlp_tc_seq_flag_t sequence_flags, uint8_t map_id) { - if (!frame) + /* The Segment Header must not be present in Transfer Frames carrying Control Commands + * (CCSDS 232.0-B-4, 4.1.3.2.2.1.3). */ + if ((!frame) || (frame->header.control_command_flag)) { return SDLP_ERROR_INVALID_PARAM; } diff --git a/tests/test_tc.c b/tests/test_tc.c index 23b65f6..bf6a2c0 100644 --- a/tests/test_tc.c +++ b/tests/test_tc.c @@ -715,6 +715,29 @@ static int test_tc_segment_header_wire_limits(void) return 0; } + +static int test_tc_segment_header_rejected_on_control_command(void) +{ + sdlp_tc_frame_t frame; + sdlp_tc_frame_t before; + const uint8_t payload[1] = {0x01u}; + + /* A frame carrying a Control Command must not have a Segment Header (4.1.3.2.2.1.3): + * the call is refused and the frame is left as it was. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_unlock_frame(&frame, 1, 1)); + memcpy(&before, &frame, sizeof(frame)); + ASSERT_EQ_INT(SDLP_ERROR_INVALID_PARAM, + sdlp_tc_set_segment_header(&frame, TC_SEQ_FLAG_NO_SEG, 0x2Fu)); + ASSERT_EQ_MEM(&before, &frame, sizeof(frame)); + + /* The other Bypass frame type, Type-BD, carries data and still accepts one. */ + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_create_frame(&frame, 1, 1, 1, payload, 1)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_frame_type(&frame, SDLP_TC_FRAME_TYPE_BD)); + ASSERT_EQ_INT(SDLP_SUCCESS, sdlp_tc_set_segment_header(&frame, TC_SEQ_FLAG_NO_SEG, 0x2Fu)); + ASSERT_EQ_INT(0x2Fu, frame.segment_header.map_id); + + return 0; +} #endif /* TC_SEGMENT_HEADER_ENABLED */ static int test_tc_decode_short_inputs(void) @@ -773,6 +796,7 @@ test_result_t test_tc_run_all(void) RUN_TEST(test_tc_primary_header_wire_limits); #ifdef TC_SEGMENT_HEADER_ENABLED RUN_TEST(test_tc_segment_header_wire_limits); + RUN_TEST(test_tc_segment_header_rejected_on_control_command); #endif RUN_TEST(test_tc_decode_short_inputs); From 49fca1823a9481d83a130b9073857711f2c5622e Mon Sep 17 00:00:00 2001 From: Michal Pogorzelec Date: Wed, 7 Oct 2026 20:46:03 +0200 Subject: [PATCH 21/21] remove docs/ --- README.md | 7 ++----- docs/132x0b3_TM_SDLP.pdf | Bin 893096 -> 0 bytes docs/232x0b4e1c1_TC_SDLP.pdf | Bin 1044397 -> 0 bytes 3 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 docs/132x0b3_TM_SDLP.pdf delete mode 100644 docs/232x0b4e1c1_TC_SDLP.pdf diff --git a/README.md b/README.md index ee48939..06438b8 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,6 @@ EmbeddedSDLP/ │ └── unit_tests.c # Test entry point (aggregates per-module results) ├── tools/ │ └── coverage_html.sh # Coverage (HTML) report generator -├── docs/ -│ ├── 132x0b3_TM_SDLP.pdf # CCSDS 132.0-B-3 standard -│ └── 232x0b4e1c1_TC_SDLP.pdf # CCSDS 232.0-B-4 standard ├── Makefile └── README.md ``` @@ -167,8 +164,8 @@ These can be extended as needed for specific mission requirements. ## References -- CCSDS 132.0-B-3: TM Space Data Link Protocol ([docs/132x0b3_TM_SDLP.pdf](docs/132x0b3_TM_SDLP.pdf)) -- CCSDS 232.0-B-4: TC Space Data Link Protocol ([docs/232x0b4e1c1_TC_SDLP.pdf](docs/232x0b4e1c1_TC_SDLP.pdf)) +- [CCSDS 132.0-B-3: TM Space Data Link Protocol](https://public.ccsds.org/Pubs/132x0b3.pdf) +- [CCSDS 232.0-B-4: TC Space Data Link Protocol](https://public.ccsds.org/Pubs/232x0b4e1c1.pdf) ## License diff --git a/docs/132x0b3_TM_SDLP.pdf b/docs/132x0b3_TM_SDLP.pdf deleted file mode 100644 index b59c09d7f60e85557e12549f6ba6ef1aadcae36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893096 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

p2E{f|;;xJD`a95-+)=(=)@booH{;4RJO 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�cxV@V6AhX5fFkU6Lj;x;EN5!P%fvTvDe*Xq6EkG1Nf-*FzG5eo{B{P|t{1A(L zw#-7LQ^K{$aP)3Yx-b}o)YpF^fHOP4?}~@SxrFrb>s%<&n0Cwt9rn1LUv0Qs!_E1H zYlZUxji^W?*H><*fWfT2e}rICV0!m7;~X?ZkbR~pRS&ZR&QM}FdvMez=P6|>Sr zXU`&xb=&&0`~lgug&m>kAgn|j>2|1EJ~-?+IB%b*G`_9j0?P+l$-gZjQ({eH$S^{# z(!Z#_ig2GSFksCPVMme37BX}vf9JEwS||MP6V#AT^4>5i_oeR}f&kCHfDf=uojCUg znb>&eKxT3w?=29R-YZ!K?LJ6sC^$J=nsEU&6dSG00hT6Pz%m+TLv=XbLDVZpnNW#F zpI^fiF(4&F3nVQ*4_)9AiTy*rM?LO2#DciAZ}bQsu)&Uo$&(CfcpYjU5d(EtHIs68 zx_;y22A42UfypYTI*h-YLfneOPz=0|~O9f^YC=V1c%7`T(FuZu;tw-(E1<6q6RM%f4DfXOHkJLgvy!`DTlxg%bnL9Ou+B`<-T_FCUr}d z3Ov(Q@y`QPRmLA{(McYHV7uck@O0BnnGAOrRs!+B5IKVOb{x{i&* z``O4oLUd|pbyZ}v{$`>1bWwZc?|JkHHE;jfH=BR;Lk3~kgVb`3w(3rD7PDLaW(4^w za-={=epuBi=I=TX#<1P)zDb1pLUu-aAKOt=XoI%gO;E1L(i>=D86dB07pI;#gi@cBcJp?<^1s1+r$t-HM%2BCKg5tXKCxfj9{R+;lR!j4<8_{ zQ+E#{(dVMEVWLRTDy`DJC>_b*)RFL31;-Ne&m_TM&64z7w89XZ^-#DQMC7m`pZKvr z31u`P^e8B(UP_L>8S!UC$d~kXud>1!rU!|MgGL?#toWZAe?8(6W+H0*Y8KguBA31@ zLPu>*x_PpF8(s6W{O5C5U|OEL$VXQ8;#D3M5c_9AG14X&7bB-}IBltvwlhA;l#}Sn zVr%p7qm>Io55Y(F6J;e0>yTn32UT?*HPI@K0as0P=`0t%qY-Ew!#N3J9W6b@&knp- zkb1T~OV#$Ν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

uj=W%ZK4-+ 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