Astro~/0.4
** Conformance
** Astro * Conformance
** /conformance/tcdl

TC Space Data Link Protocol

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

Conformance Statement for pkg/tcdl, CCSDS 232.0-B-4


A2.1 GENERAL INFORMATION

A2.1.1 Identification of PICS

FieldValue
Date of Statement (DD/MM/YYYY)23/08/2026
PICS Serial NumberASTRO-TCDL-PICS-001
System Conformance Statement Cross-ReferenceThis document

A2.1.2 Identification of Implementation Under Test (IUT)

FieldValue
Implementation Nameastro/pkg/tcdl
Implementation VersionSee go.mod / latest commit on main
Special ConfigurationNone
Other InformationGo library implementing CCSDS TC Space Data Link Protocol. Full pipeline: PhysicalChannel (MC mux/demux) -> MasterChannel (VC mux, frame gap detection) -> VirtualChannel (frame buffer) -> Services (MAP Packet with segmentation/reassembly, MAP Access, VC Frame). Variable frame length (up to 1024 bytes). Segment Header (MAP sublayer) support for large packet segmentation. Frame Sequence Number N(S) for COP-1 integration.

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/tcdl (Go package)
System Name(s)Astro

A2.1.4 Identification of Specification

FieldValue
SpecificationCCSDS 232.0-B-4 (TC Space Data Link Protocol, Blue Book, Issue 4, October 2019)
Have any exceptions been required?Yes [X] No [ ]

NOTE, Non-supported optional capabilities are identified in section A2.2 with explanations.


A2.2 REQUIREMENTS LIST

Table A-1: TC Service Data Units

ItemDescriptionReferenceStatusSupportNotes
TC-1MAP Packet SDU3.2.2MYes
TC-2MAP Access SDU3.2.3MYes
TC-3VC Frame SDU3.2.4MYes
TC-4TC Transfer Frame3.2.5MYes

Table A-2: Service Parameters

ItemDescriptionReferenceStatusValues AllowedSupportNotes
MAP Packet Service Parameters
TC-5MAP Packet3.3.2.2M-YesPacket data passed as []byte to MAPPacketService.Send(). Segmented if larger than frame capacity.
TC-6GVCID3.3.2.3M-YesDerived from PrimaryHeader.GVCID() (TFVN + SCID + VCID). VCID/SCID configured at service construction.
TC-7MAP ID3.3.2.4M0-63YesSegmentHeader.MAPID, 6 bits. Configured per service instance.
MAP Access Service Parameters
TC-8MAP Access SDU3.4.2.2M-YesRaw data passed to MAPAccessService.Send(). Wrapped in single unsegmented frame.
TC-9GVCID3.4.2.3M-YesDerived from PrimaryHeader.GVCID().
TC-10MAP ID3.4.2.4M0-63YesSegmentHeader.MAPID.
VC Frame Service Parameters
TC-11TC Frame3.5.2.2M-YesVCFrameService accepts complete []byte frame data via Send() / Receive().
TC-12GVCID3.5.2.3M-YesDerived from PrimaryHeader.GVCID().

Table A-3: Service Primitives

ItemDescriptionReferenceStatusSupportNotes
MAP Packet Service Primitives
TC-13MAP_PACKET.request3.3.3.2MYes
TC-14MAP_PACKET.indication3.3.3.3MYes
MAP Access Service Primitives
TC-15MAP_ACCESS.request3.4.3.2MYes
TC-16MAP_ACCESS.indication3.4.3.3MYes
VC Frame Service Primitives
TC-17VCF.request3.5.3.2MYes
TC-18VCF.indication3.5.3.3MYes

Table A-4: TC Protocol Data Unit

ItemDescriptionReferenceStatusSupportNotes
TC-19TC Transfer Frame4.1.1MYes
TC-20Transfer Frame Primary Header4.1.2MYes
TC-20aBC Frame Contents (Unlock, Set V(R))4.1.3.3MYes
TC-21Segment Header4.1.4.1MYes
TC-22Transfer Frame Data Field4.1.4.2MYes
TC-23Frame Error Control Field4.1.5MYes

Table A-5: Protocol Procedures

ItemDescriptionReferenceStatusSupportNotes
TC-24MAP Packet Processing Function4.2.2MYes
TC-25MAP Access Processing Function4.2.3MYes
TC-26VC Generation Function4.2.4MYes
TC-27VC Multiplexing Function4.2.5MYes
TC-28MC Generation Function4.2.6MYes
TC-29MC Multiplexing Function4.2.7MYes
TC-30MAP Packet Extraction Function4.3.2MYes
TC-31MAP Access Extraction Function4.3.3MYes
TC-32VC Reception Function4.3.4MYes
TC-33VC Demultiplexing Function4.3.5MYes
TC-34MC Reception Function4.3.6MYes
TC-35MC Demultiplexing Function4.3.7MYes

Table A-6: Management Parameters

ItemDescriptionReferenceStatusValues AllowedSupportNotes
Managed Parameters for a Physical Channel
TC-36Physical Channel NameTable 5-1MCharacter StringYes
TC-37Maximum Frame Length (octets)Table 5-1MInteger (up to 1024)Yes
TC-38Transfer Frame Version Number (TFVN)Table 5-1M'00' binaryYes
TC-39Valid Spacecraft IDsTable 5-1MIntegersYes
TC-40MC Multiplexing SchemeTable 5-1MMission SpecificYes
TC-41Presence of Frame Error ControlTable 5-1MPresent ('1')Yes
Managed Parameters for a Master Channel
TC-42SCIDTable 5-2MIntegerYes
TC-43Valid VCIDsTable 5-2MSelectable set of integers (0-63)Yes
TC-44VC Multiplexing SchemeTable 5-2MMission SpecificYes
Managed Parameters for a Virtual Channel
TC-45SCIDTable 5-3MIntegerYes
TC-46VCIDTable 5-3M0 to 63Yes
TC-47Presence of Segment HeaderTable 5-3MPresent ('1') / Absent ('0')Yes
TC-48Service TypeTable 5-3MMAP Packet, MAP Access, or VC FrameYes

Table A-7: Protocol Specification with SDLS Option

ItemDescriptionReferenceStatusSupportNotes
TC-49SDLS Protocol(see ref. [8])ONoSDLS Option not implemented.

A2.3 CONFORMANCE SUMMARY

Overall Statistics

CategoryTotal ItemsSupportedNot Supported
Mandatory (M)49490
Optional (O)101
Total50491

Non-Conformances (Mandatory Items Not Supported)

None. All 49 mandatory items (including the BC frame contents, TC-20a) are supported.

Declared Simplifications

AreaDeviation
Blocking sendSend() never blocks; a full virtual channel buffer returns ErrBufferFull. The optional blocking behavior of 4.2.2 is left to the caller.

Non-Supported Optional Items

ItemDescriptionReason
TC-49SDLS ProtocolSDLS Option not implemented.

Fully Supported Mandatory Items

Key implementations:

AreaItemsImplementation
Service Data UnitsTC-1-4
MAP Packet ServiceTC-5-7, TC-13-14
MAP Access ServiceTC-8-10, TC-15-16
VC Frame ServiceTC-11-12, TC-17-18
Protocol Data UnitTC-19-23
Packet ProcessingTC-24-25, TC-30-31
VC FunctionsTC-26-27, TC-32-33
MC FunctionsTC-28-29, TC-34-35
Management ParamsTC-36-48

Wire test vectors

None. pkg/tcdl has no golden wire literals to extract: its test values are inputs rather than pinned expected octets.

See how this is verified for what the corpus covers and what it does not.