Astro~/0.4
** Conformance
** Astro * Conformance
** /conformance/tmdl

TM Space Data Link Protocol

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

Conformance Statement for pkg/tmdl, CCSDS 132.0-B-3


A2.1 GENERAL INFORMATION

A2.1.1 Identification of PICS

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

A2.1.2 Identification of Implementation Under Test (IUT)

FieldValue
Implementation Nameastro/pkg/tmdl
Implementation VersionSee go.mod / latest commit on main
Special ConfigurationNone
Other InformationGo library implementing CCSDS TM Space Data Link Protocol. Full pipeline: PhysicalChannel (MC mux/demux) -> MasterChannel (VC mux, MC_FSH/MC_OCF insertion, frame gap detection) -> VirtualChannel (single frame buffer) -> Services (VCP with native multi-packet packing via FHP and PacketSizer-based reassembly with loss resync, VCA with user-set status fields, VC_FSH and VC_OCF suppliers, VCF). Fixed frame length enforcement and conformant OID idle frames (mandatory PN fill, packet-carrying VCID). The sync layer (ASM, CCSDS pseudo-randomization, CADU wrapping/unwrapping) is handled by the separate pkg/tmsc package.

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

A2.1.4 Identification of Specification

FieldValue
SpecificationCCSDS 132.0-B-3 (TM Space Data Link Protocol, Blue Book, Issue 3, October 2021)
Have any exceptions been required?Yes [ ] No [X]

NOTE. Every mandatory item is supported: the frame codec, all seven transfer services (VCP, VCA, VC_FSH, VC_OCF, VCF, MC_FSH, MC_OCF, MCF), and the protocol procedures at both ends. Optional items not supported: TM-9 (Packet Quality Indicator), TM-89 (SDLS Protocol).


A2.2 REQUIREMENTS LIST

Table A-1: TM Service Data Units

ItemDescriptionReferenceStatusSupportNotes
TM-1Packet SDU3.2.2MYes
TM-2VCA_SDU3.2.3MYes
TM-3FSH_SDU3.2.4MYes
TM-4OCF_SDU3.2.5MYes
TM-5TM Transfer Frame3.2.6MYes

Table A-2: Service Parameters

ItemDescriptionReferenceStatusValues AllowedSupportNotes
VCP Packet Service Parameters
TM-6Packet3.3.2.2M-Yes
TM-7GVCID3.3.2.3M-Yes
TM-8Packet Version Number3.3.2.4M-Yes
TM-9Packet Quality Indicator3.3.2.5O-No
TM-10Verification Status Code3.3.2.6C2(see reference [10])N/A
VCA SDU Service Parameters
TM-11VCA SDU3.4.2.2M-Yes
TM-12VCA Status Fields3.4.2.3M-Yes
TM-13GVCID3.4.2.4M-Yes
TM-14VCA SDU Loss Flag3.4.2.5O-Yes
TM-15Verification Status Code3.4.2.6C2(see reference [10])N/A
VC FSH SDU Service Parameters
TM-16FSH SDU3.5.2.2M-Yes
TM-17GVCID3.5.2.3M-Yes
TM-18FSH_SDU Loss Flag3.5.2.4O-Yes
OCF SDU Service Parameters
TM-19OCF SDU3.6.2.2M-Yes
TM-20GVCID3.6.2.3M-Yes
TM-21OCF SDU Frame Loss Flag3.6.2.4O-Yes
VC Frame Service Parameters
TM-22TM Frame3.7.2.2M-Yes
TM-23GVCID3.7.2.3M-Yes
TM-24Frame Loss Flag3.7.2.4O-Yes
MC FSH Service Parameters
TM-25FSH SDU3.8.2.2M-Yes
TM-26MCID3.8.2.3M-Yes
TM-27FSH_SDU Loss Flag3.8.2.4O-Yes
MC OCF Service Parameters
TM-28OCF SDU3.9.2.2M-Yes
TM-29MCID3.9.2.3M-Yes
TM-30OCF_SDU Loss Flag3.9.2.4O-Yes
MC Frame Service Parameters
TM-31TM Frame3.10.2.2M-Yes
TM-32MCID3.10.2.3M-Yes
TM-33Frame Loss Flag3.10.2.4O-Yes

C2: O if SDLS Option else N/A.

Table A-3: Service Primitives

ItemDescriptionReferenceStatusSupportNotes
VCP Service Primitives
TM-34VCP.request3.3.3.2MYes
TM-35VCP.indication3.3.3.3MYes
VCA Service Primitives
TM-36VCA.request3.4.3.2MYes
TM-37VCA.indication3.4.3.3MYes
VC FSH Service Primitives
TM-38VC_FSH.request3.5.3.2MYes
TM-39VC_FSH.indication3.5.3.3MYes
VC OCF Service Primitives
TM-40VC_OCF.request3.6.3.2MYes
TM-41VC_OCF.indication3.6.3.3MYes
VC Frame Service Primitives
TM-42VCF.request3.7.3.2MYes
TM-43VCF.indication3.7.3.3MYes
MC FSH Service Primitives
TM-44MC_FSH.request3.8.3.2MYes
TM-45MC_FSH.indication3.8.3.3MYes
MC OCF Service Primitives
TM-46MC_OCF.request3.9.3.2MYes
TM-47MC_OCF.indication3.9.3.3MYes
MC Frame Service Primitives
TM-48MCF.request3.10.3.2MYes
TM-49MCF.indication3.10.3.3MYes

Table A-4: TM Protocol Data Unit

ItemDescriptionReferenceStatusSupportNotes
TM-50TM Transfer Frame4.1.1MYes
TM-51Transfer Frame Primary Header4.1.2MYes
TM-52Transfer Frame Secondary Header4.1.3MYes
TM-53Transfer Frame Data Field4.1.4MYes
TM-54Operational Control Field4.1.5MYes
TM-55Frame Error Control Field4.1.6MYes

Table A-5: Protocol Procedures

ItemDescriptionReferenceStatusSupportNotes
TM-56Packet Processing Function4.2.2MYes
TM-57VC Generation Function4.2.3MYes
TM-58VC Multiplexing Function4.2.4MYes
TM-59MC Generation Function4.2.5MYes
TM-60MC Multiplexing Function4.2.6MYes
TM-61All Frames Generation Function4.2.7MYes
TM-62Packet Extraction Function4.3.2MYes
TM-63VC Reception Function4.3.3MYes
TM-64VC Demultiplexing Function4.3.4MYes
TM-65MC Reception Function4.3.5MYes
TM-66MC Demultiplexing Function4.3.6MYes
TM-67All Frames Reception Function4.3.7MYes

Table A-6: Management Parameters

ItemDescriptionReferenceStatusValues AllowedSupportNotes
Managed Parameters for a Physical Channel
TM-68Physical Channel NameTable 5-1MCharacter StringYes
TM-69Transfer Frame Length (octets)Table 5-1MIntegerYes
TM-70Transfer Frame Version Number (TFVN)Table 5-1M'00' binaryYes
TM-71Valid Spacecraft IDsTable 5-1MIntegersYes
TM-72MC Multiplexing SchemeTable 5-1MMission SpecificYes
TM-73Presence of Frame Error ControlTable 5-1MPresent ('1') / Absent ('0')Yes
Managed Parameters for a Master Channel
TM-74SCIDTable 5-2MIntegerYes
TM-75Valid VCIDsTable 5-2MSelectable set of integers (0-7)Yes
TM-76VC Multiplexing SchemeTable 5-2MMission SpecificYes
TM-77Presence of MC_FSHTable 5-2MPresent ('1') / Absent ('0')Yes
TM-78MC_FSH Length (if present) (octets)Table 5-2MInteger (2-64)Yes
TM-79Presence of MC_OCFTable 5-2MPresent ('1') / Absent ('0')Yes
Managed Parameters for a Virtual Channel
TM-80SCIDTable 5-3MIntegerYes
TM-81VCIDTable 5-3M0 to 7Yes
TM-82Data Field ContentTable 5-3MPackets, VCA_SDUYes
TM-83Presence of VC_FSHTable 5-3MPresent ('1') / Absent ('0')Yes
TM-84VC_FSH Length (if present) (octets)Table 5-3MIntegerYes
TM-85Presence of VC_OCFTable 5-3MPresent ('1') / Absent ('0')Yes
Managed Parameters for Packet Transfer
TM-86Valid PVNsTable 5-4MSet of IntegersYes
TM-87Maximum Packet Length (octets)Table 5-4MIntegerYes
TM-88Whether incomplete Packets are required to be delivered to the user at the receiving endTable 5-4MRequired, not requiredYes

Table A-7: Protocol Specification with SDLS Option

ItemDescriptionReferenceStatusSupportNotes
TM-89SDLS Protocol(see ref. [10])ONoSDLS Option not implemented.
TM-90Security Header6.3.4C3N/ASDLS Option not implemented.
TM-91Transfer Frame Data Field in a TM Frame with SDLS6.3.5C3N/ASDLS Option not implemented.
TM-92Security Trailer6.3.6C4N/ASDLS Option not implemented.
TM-93Operational Control Field in a TM Frame with SDLS6.3.7.2C3N/ASDLS Option not implemented.
TM-94Frame Error Control Field in a TM Frame with SDLS6.3.8.2C3N/ASDLS Option not implemented.
TM-95Packet Processing Function with SDLS6.4.2.2C3N/ASDLS Option not implemented.
TM-96Virtual Channel Generation Function with SDLS6.4.3.2, 6.4.3.3C3N/ASDLS Option not implemented.
TM-97Virtual Channel Multiplexing Function with SDLS6.4.4.2C3N/ASDLS Option not implemented.
TM-98Master Channel Multiplexing Function with SDLS6.4.6.2C3N/ASDLS Option not implemented.
TM-99Error reporting6.5.2.2C4N/ASDLS Option not implemented.
TM-100Packet Extraction Function with SDLS6.5.3.2C3N/ASDLS Option not implemented.
TM-101Virtual Channel Reception Function with SDLS6.5.4.2, 6.5.4.3C3N/ASDLS Option not implemented.
TM-102Virtual Channel Demultiplexing Function with SDLS6.5.5.2C3N/ASDLS Option not implemented.

C3: M if SDLS Option else N/A. C4: O if SDLS Option else N/A.

Table A-8: Additional Managed Parameters with SDLS Option

ItemDescriptionReferenceStatusValues AllowedSupportNotes
TM-103Presence of Space Data Link Security HeaderTable 6-1C5Present ('1') / Absent ('0')N/ASDLS Option not implemented.
TM-104Presence of Space Data Link Security TrailerTable 6-1C5Present ('1') / Absent ('0')N/ASDLS Option not implemented.
TM-105Length of Space Data Link Security Header (octets)Table 6-1C5Integer (see ref. [10])N/ASDLS Option not implemented.
TM-106Length of Space Data Link Security Trailer (octets)Table 6-1C5Integer (see ref. [10])N/ASDLS Option not implemented.

C5: M if SDLS Option else N/A.


A2.3 CONFORMANCE SUMMARY

Overall Statistics

CategoryTotal ItemsSupportedPartialNot Supported
Mandatory (M)787800
Optional (O)9702
Conditional (C2)2000 (N/A)
Conditional (C3)11000 (N/A)
Conditional (C4)2000 (N/A)
Conditional (C5)4000 (N/A)
Total1068502 + 19 N/A

Partially Supported Mandatory Items

None. Every mandatory item is fully supported.

The MC_FSH and MC_OCF services were the last gap. They are now master-channel level services: MasterChannel.SetFSHSupplier() and SetOCFSupplier() insert their service data units into every frame the master channel releases (the Master Channel Generation Function of clause 4.2.5), and LastFSH() / LastOCF() deliver what arrives (clause 4.3.5.2). The virtual-channel counterparts VC_FSH and VC_OCF have per-service suppliers of the same shape.

Non-Supported Optional Items

ItemDescriptionReason
TM-9Packet Quality IndicatorNot implemented. No packet quality/confidence reporting.
TM-89SDLS ProtocolSDLS Option not implemented. Planned for future phase.

Supported Optional Items

ItemDescriptionImplementation
TM-14VCA SDU Loss FlagFrameGapDetector via MasterChannel.VCFrameGap().
TM-18FSH_SDU Loss FlagFrameGapDetector via MasterChannel.MCFrameGap() / VCFrameGap().
TM-21OCF SDU Frame Loss FlagFrameGapDetector via MasterChannel.MCFrameGap() / VCFrameGap().
TM-24Frame Loss Flag (VC Frame)FrameGapDetector via MasterChannel.VCFrameGap().
TM-27FSH_SDU Loss Flag (MC)MasterChannel.MCFrameGap(), read alongside LastFSH().
TM-30OCF_SDU Loss Flag (MC)MasterChannel.MCFrameGap(), read alongside LastOCF().
TM-33Frame Loss Flag (MC Frame)FrameGapDetector via MasterChannel.MCFrameGap() / VCFrameGap().

Fully Supported Mandatory Items

All 78 mandatory items are fully supported. Key implementations:

AreaItemsImplementation
Service Data UnitsTM-1-5
VCP ServiceTM-6-8, TM-34-35
VCA ServiceTM-11-13, TM-36-37
VCF ServiceTM-22-23, TM-42-43
VC FSH/OCF ServicesTM-16-21, TM-38-41
MC Frame ServiceTM-31-33, TM-48-49
Protocol Data UnitTM-50-55
Packet ProcessingTM-56, TM-62
VC FunctionsTM-57-58, TM-63-64
MC FunctionsTM-59-60, TM-65-66
Physical ChannelTM-61, TM-67-69, TM-72
Management ParamsTM-70-88

Wire test vectors

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

File
tmdl/header.json21 vectors
tmdl/interop.json8 vectors, captured from spacepackets 0.32.0

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.