Astro~/0.4
** Conformance
** Astro * Conformance
** /conformance/tcsc

TC Sync and Channel Coding

PICS proforma: what this package implements, clause by clause.

Conformance Statement for pkg/tcsc, CCSDS 231.0-B-4


A2.1 GENERAL INFORMATION

A2.1.1 Identification of PICS

FieldValue
Date of Statement (DD/MM/YYYY)25/08/2026
PICS Serial NumberASTRO-TCSC-PICS-002
System Conformance Statement Cross-ReferenceThis document

A2.1.2 Identification of Implementation Under Test (IUT)

FieldValue
Implementation Nameastro/pkg/tcsc
Implementation VersionSee go.mod / latest commit on main
Special ConfigurationNone
Other InformationGo library implementing CCSDS TC Synchronization and Channel Coding sublayer. Provides CLTU wrapping/unwrapping with BCH(63,56) forward error correction per codeblock (SEC and TED decoding modes), CCSDS pseudo-randomization, configurable start/tail sequences, and PLOP-1/PLOP-2 acquisition and idle sequence assembly.

A2.1.3 Identification of Supplier

FieldValue
SupplierRavi Suhag
Contact Point for QueriesGitHub, github.com/ravisuhag/astro
Implementation Name(s) and Version(s)astro/pkg/tcsc (Go package)
System Name(s)Astro

A2.1.4 Identification of Specification

FieldValue
SpecificationCCSDS 231.0-B-4 (TC Synchronization and Channel Coding, Blue Book, Issue 4, November 2019)
Have any exceptions been required?Yes [X] No [ ]

NOTE, Non-supported optional capabilities (LDPC and convolutional coding) are identified in section A2.2. Clause references follow the Issue 4 numbering: section 3 (BCH coding), section 4 (LDPC coding), section 5 (CLTU), section 6 (randomizer), section 7 (physical layer operations procedures), section 8 (managed parameters).

NOTE: CCSDS 231.0-B-4 publishes no PICS proforma; its annex A is the service definition. This document is therefore a coverage matrix written against the clauses above, not a filled-in proforma, and the item numbers (TCSC-n) are local to this repository.


A2.2 REQUIREMENTS LIST

Table A-1: BCH(63,56) Coding (section 3)

ItemDescriptionReferenceStatusSupportNotes
TCSC-1BCH Generator Polynomial3.3MYes
TCSC-2BCH Codeblock Structure3.2MYes
TCSC-3BCH Systematic Encoding with Complemented Parity3.3MYes
TCSC-4BCH Filler Bit3.3.2MYes
TCSC-5BCH Syndrome Computation3.5MYes
TCSC-6SEC Decoding Mode3.5MYes
TCSC-7TED Decoding Mode3.5MYes
TCSC-8BCH Uncorrectable Detection3.5MYes
TCSC-9BCH Error-Free Pass-Through3.5MYes

Table A-2: Pseudo-Randomization (section 6)

ItemDescriptionReferenceStatusSupportNotes
TCSC-10PN Sequence Generation6.2MYes
TCSC-11Randomization (Send)6.3MYes
TCSC-12De-Randomization (Receive)6.3MYes
TCSC-13Randomization Coverage in the CLTU6.3MYes

Table A-3: CLTU (section 5)

ItemDescriptionReferenceStatusSupportNotes
TCSC-14CLTU Start Sequence5.2.2MYes
TCSC-15CLTU Tail Sequence5.2.4MYes
TCSC-16CLTU Assembly (Send)5.2MYes
TCSC-17CLTU Data Padding3.4, 5.2MYes
TCSC-18CLTU Reception and Termination5.3MYes
TCSC-19Start Sequence Validation5.3MYes
TCSC-20Minimum Length Validation5.3MYes

Table A-4: Acquisition, Idle, and PLOP (section 7)

ItemDescriptionReferenceStatusSupportNotes
TCSC-21Acquisition Sequence7.2.2MYes
TCSC-22Idle Sequence7.2.4MYes
TCSC-23PLOP-17.4MYes
TCSC-24PLOP-27.5MYes
TCSC-25Carrier Modulation Modes (CMM state machine)7MNo

Table A-5: Optional Coding Schemes

ItemDescriptionReferenceStatusSupportNotes
TCSC-26LDPC Coding4ONoNot implemented.
TCSC-27Concatenated BCH + Convolutional-ONoConvolutional inner code not implemented. BCH outer code is available.

A2.3 CONFORMANCE SUMMARY

Overall Statistics

CategoryTotal ItemsSupportedNot Supported
Mandatory (M)25241
Optional (O)202
Total27243

Non-Conformances (Mandatory Items Not Supported)

ItemDescriptionReason
TCSC-25CMM state machine

Non-Supported Optional Items

ItemDescriptionReason
TCSC-26LDPC CodingNot implemented. Specialized application for high-data-rate TC links.
TCSC-27Concatenated BCH + ConvolutionalConvolutional inner code not implemented.

Key Implementations

AreaItemsImplementation
BCH(63,56) CodingTCSC-1-9
Pseudo-RandomizationTCSC-10-13
CLTUTCSC-14-20
Acquisition/Idle/PLOPTCSC-21-24

Wire test vectors

The octets backing this statement live in the vector corpus — 13 vectors. Each vector names the clause it comes from and carries the derivation that produced it.

File
tcsc/bch.json7 vectors
tcsc/interop.json6 vectors, captured from Yamcs 5.13.5

These are data files, so any implementation can check itself against the same octets. See CONTRACT.md for how, and how this is verified for what rests on a published vector versus a reading of the clause.