Astro~/0.4
** Conformance
** Astro * Conformance
** /conformance/epp

Encapsulation Packet Protocol

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

Conformance Statement for pkg/epp, CCSDS 133.1-B-3


A2.1 GENERAL INFORMATION

A2.1.1 Identification of PICS

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

A2.1.2 Identification of Implementation Under Test (IUT)

FieldValue
Implementation Nameastro/pkg/epp
Implementation VersionSee go.mod / latest commit on main
Special ConfigurationNone
Other InformationGo library implementing CCSDS Encapsulation Packet Protocol encoding, decoding, validation, and service-layer I/O for all four header sizes. Wire layout pinned by spec-derived golden vectors (e.g. 1-octet idle packet = 0xE0).

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

A2.1.4 Identification of Specification

FieldValue
SpecificationCCSDS 133.1-B-3 (Encapsulation Packet Protocol, Blue Book, Issue 3, May 2020)
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: Encapsulation Packet Structure

ItemDescriptionReferenceStatusSupportNotes
EPP-1Encapsulation Packet4.1.1MYes
EPP-2Packet Version Number4.1.2.2MYes
EPP-3Encapsulation Protocol ID4.1.2.3MYes
EPP-4Length of Length4.1.2.4MYes
EPP-5User Defined Field4.1.2.5MYes
EPP-6Encapsulation Protocol ID Extension4.1.2.6MYes
EPP-7CCSDS Defined Field4.1.2.7MYes
EPP-8Packet Length Field4.1.2.8MYes
EPP-9Encapsulated Data Field4.1.3MYes

Table A-2: Header Sizes (figure 4-2 / table 4-1)

ItemDescriptionReferenceStatusSupportNotes
EPP-101-octet header (LoL '00')4.1.2MYes
EPP-112-octet header (LoL '01')4.1.2MYes
EPP-124-octet header (LoL '10')4.1.2MYes
EPP-138-octet header (LoL '11')4.1.2MYes
EPP-14Receive fixed- or variable-length headers4.1.2.1.2MYes

Table A-3: Protocol ID Values (SANA registry)

ItemDescriptionReferenceStatusSupportNotes
EPP-15Idle Packet (PID 0)4.1.2.3 NOTE 1MYes
EPP-16LTP (PID 1)SANA registryOYes
EPP-17Internet Protocol Extension (PID 2)SANA registryOYes
EPP-18Protocol ID Extension (PID 6, '110')4.1.2.3 NOTE 2MYes
EPP-19Mission-specific data (PID 7, '111')4.1.2.3 NOTE 3OYes
EPP-20Reserved Protocol IDs (3, 4, 5)SANA registry-Partial

Table A-4: Service Interface

ItemDescriptionReferenceStatusSupportNotes
EPP-21ENCAPSULATION.request3.3MYes
EPP-22ENCAPSULATION.indication3.3MYes
EPP-23Packet Sizing--Yes

Table A-5: Management Parameters

ItemDescriptionReferenceStatusValues AllowedSupportNotes
EPP-24Maximum Packet Length5MIntegerYes
EPP-25Packet Multiplexing-OMission specificNo

A2.3 CONFORMANCE SUMMARY

Overall Statistics

CategoryTotal ItemsSupportedPartialNot Supported
Mandatory (M)171700
Optional (O)4301
Unclassified (, )2110
Total232111

Non-Conformances (Optional Items Not Supported)

ItemDescriptionReason
EPP-25Packet MultiplexingNo multiplexing, scheduling, or interleaving logic.

Partial Conformances (Items Requiring Attention)

ItemDescriptionReason
EPP-20Reserved Protocol IDsReserved PIDs (3, 4, 5) can be constructed and decoded, but no named constants are provided.

Verification Notes

  • Octet 0 layout (PVN '111' | Protocol ID | 2-bit Length of Length), the pure-LoL header sizing, the octet-1 UDF/PIE split, and the total-length-including-header Packet Length semantics were verified against the fetched CCSDS 133.1-B-3 (May 2020) text and are pinned by golden wire vectors in header_test.go and packet_test.go (e.g. the 1-octet idle packet 0xE0).
  • Protocol ID names follow the SANA Encapsulation Protocol ID registry (1 = LTP, 2 = IPE, 6 = extension, 7 = mission-specific).

Wire test vectors

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

File
epp/header.json16 vectors

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.