Repository navigation
Conversation
…reopen MCU audit gate
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Full pre-tag review of CCSDSPack v2.1.0
developat85e90eca475129773bd270e755b185b5f5d4276d, covering public C++17 and C11 API contracts, MCU/host boundaries, sources, examples, configuration parser behavior, package/CI surfaces, current standards statements and historical release records.Confirmed MCU public-API defect (release blocker)
inc/CCSDSUtils.hadvertisedprint*,writeBinaryFile(),readBinaryFile(), andfileExists()onCCSDS_MCU, butsrc/CCSDSUtils.cppexcludes their definitions on MCU. Guard only the truly hosted declarations; keep cross-platform CRC and formatting helpers available.ccsds::Manager::read()andwrite()were similarly advertised/compiled on MCU and referenced excluded binary I/O routines. Align both their public declarations and definitions with the existingCCSDS_MCUguard on hosted template-file APIs. Packet/Manager in-memory buffer APIs are unchanged.ccsds_secondary_header_flagexample config key is ignored; remove it. The derived flag is governed by the installed secondary header.Documentation claims verified/corrected
Packet::setCrcConfig()and C11 CRC config exist.sync_pattern_enable,sync_pattern, and decodervalidation_enablekeys are implemented but missing from the configuration reference. Document them and the fact that unknown typed keys may be accepted yet unused.DataField::getApplicationDataView()and its lifetime.3c93e6b...; remove redundant status table and avoid treating prior target PASS as automatically qualifying these later MCU API guard changes.Qualification and controls
Base:
developonly; do not merge tomain, tag, or publish before tests.The changes affect public MCU headers and the MCU Manager archive, so the final source SHA is different from physically validated
3c93e6b.... Run full hosted CI and rebuild MCU packages. After acceptance ondevelop, renew native Pi 5 and physical H755 qualification according to the project's release policy; record final hashes on the accepted commit. Do not treat historical tests as new target evidence.No wire-format codec algorithms, C11 core, or hardware test harness source are changed.
Additional full-audit findings
getBinaryString(uint32_t, int32_t)helper previously allowed a shift >=32 and signed overflow for excessivebits; bounded to [1, 32] with empty output for non-positive bits.getBitsSpaces()similarly handles non-positive widths safely. Added one hosted C++ regression case, so the corrected candidate targets 135/135 native tests, whereas the completed October 11 physical Pi evidence retains its historically accurate 134/134 count.ccsds_secondary_header_flagconfig key as the example; removed.Packet::serialize(uint8_t *, size_t)was under-documented; added to raw-buffer documentation.developeven though its CubeIDE source tree was removed for v2.1. It now directs reproduction to tagv1.2.0and links to the current DAS/OpenOCD instructions.docs/V2_HARDWARE_VALIDATION.md. Kept independently valuable conformance matrices and historical performance snapshots rather than deleting traceability.Final audit scope and limitations
src/cmodule pairs and found definitions for 63 publicccsds_*functions (excluding intentionally inline helpers).Not a wire-format change: corrections touch C++ MCU API boundaries and an ancillary diagnostic formatter, not the C11 Space Packet/PUS/CUC codecs. Do not tag or promote to main until the new SHA is CI/target-qualified and the acceptance list is updated.