Packet Structure
SRSPP builds on top of CCSDS Space Packets (SPP), reusing fields from the SPP primary header rather than adding its own:
Packet Layout
All SRSPP packets share the same header stack. The payload varies by type.
SRSPP Packet (13 bytes + payload)
SPP Primary Header (6 bytes)
Version3 bitsPacket version (0)
Type1 bit1 = Telecommand
Sec Hdr Flag1 bit1 = Present
APID11 bitsDestination (0–2047)
Seq Flags2 bitsFIRST / CONT / LAST / UNSEG
Seq Count14 bitsSequence (0–16383)
Data Length16 bitsRemaining length − 1
cFE Secondary Header (2 bytes)
Function Code8 bitsCommand code
Checksum8 bitsXOR of entire packet
ISL Routing Header (2 bytes)
Target Address16 bitsDestination (orb, sat)
SRSPP Header (3 bytes)
Source Address16 bitsSender (orb, sat)
Version2 bitsProtocol version (0)
Packet Type2 bits0 = DATA, 1 = ACK, 2 = EOS
Spare4 bitsReserved (0)
Payload (varies by type — see below)
Payload by Type
DATA
Application data (variable length)
ACK
ACK Payload (4 bytes)
Cumulative ACK16 bitsHighest in-order seq received
Selective Bitmap16 bitsOut-of-order packet bits
EOS
No payload (header only)
Field Descriptions
The first three headers are shared with all ISL packets — see SPP, cFE headers, and ISL routing. SRSPP adds:
- Source Address — the sending satellite's grid position (orbital plane, satellite index) or ground station. Together with the APID from the SPP header, this forms the stream key that identifies a unique sender-receiver pair.
- Version — 2 bits identifying the protocol version (currently 0). A receiver that sees an unrecognized version discards the packet silently.
- Packet Type — 2 bits:
0= DATA (carries application payload),1= ACK (carries acknowledgment),2= EOS (end of stream, no payload). The remaining 4 bits of the byte are reserved. - Cumulative ACK (ACK only) — the highest sequence number received in-order. All packets up to and including this number are acknowledged. The sender can free them.
- Selective ACK Bitmap (ACK only) — a 16-bit bitmap indicating which out-of-order packets have been received. Bit N indicates receipt of packet
cumulative_ack + 1 + N. The sender knows not to retransmit these.