140 likes | 253 Views
How Updated CCSDS Protocols can Simplify Data Formatting for the Constellation Project. Ed Greenberg Greg Kazz. Organization of this Presentation. What’s New in proposed CCSDS Link Layer Protocols Brief overview of new capabilities
E N D
How Updated CCSDS Protocols can Simplify Data Formatting for the Constellation Project Ed Greenberg Greg Kazz
Organization of this Presentation • What’s New in proposed CCSDS Link Layer Protocols • Brief overview of new capabilities • Why Constellation should consider utilizing the newly proposed AOS protocol services • Simplicities achievable by using the new services • How these newly proposed protocols can be implemented within Constellation to unify and simplify the production of all Telemetry and Command services between Mission Systems and Orion, et al. • Detail description of how all the data formats can be accommodated by a single implementation approach
What’s New in proposed Link Layer Protocols • Link Layer Security Methodology • Provides Authenticated Encryption service • Added and removed by the User • Transparent to the supporting link layer services • Secondary Header Data Service • Provides a new pathway to support delay intolerant data • Dynamic Service to elastically support the various instantaneous need • i.e. range safety and operational voice
Link Layer Security Methodology • Security Block Description • An integrated data block that is inserted into the AOS frame containing the fields necessary to identify and accommodate the Authentication and/or the Encryption of the frame’s data contents • Can be structured to provide identical security for all Virtual Channels (VC) or individually for each VC • Contains the following Fields: • A Security Protocol Identifier(SPI-identifies the current key and parameter usage) • An optional counter field(for use in the AES_GCM security process) • The ICV to hold the created Authentication Tag • Optional Initialization and Pad fields (not used in AES_GCM process)
Secondary Header Data Service • An optional data block whose inclusion in the frame is announced by a flag in the AOS primary header • The use of the Secondary Header Data Service is applied on an individual VC basis • The data block is self delimited (includes a length field) and self identifying (includes a type/identification field) • The data block will only appear within the frame when its service is required • The size of the data block can elastically adjust to the instantaneous need of the VC
Secondary Header Data Unit Insert Zone Security Header ASM Primary MPDU Header SPI-CTR-ICV Header-Type-Data Header- Packets 4-Bytes 6-Bytes (1+X+8 - Bytes) [2+(Y) – Bytes] (2+Z - Bytes) AOS Services and Frame Organization • Primary Header • Master Channel ID, VC ID, VC Counter, Secondary Header Flag • Insert Zone (Security Data Unit) • Managed field that is present in all VC on a Master Channel • SPI (Key ID #), Counter LSBs (1 Fwd/3 Rtn), ICV • Secondary Header Data Unit (carries delay intolerant data) • Unique to a VC and is announced by a flag and delimited by length • Header, Multiple self-identified data sets (header, size, data) • MPDU • Encapsulation Packets (all CCSDS packet types allowed)
Why Constellation should consider utilizing the proposed AOS protocol services • The newly proposed AOS service provides capabilities that Constellation requires (i.e. link layer security) • These services offer a capability that can unify and simplify the implementation of all AOS frames for both Telemetry and Command • Offers a single method for including operation voice in all operational modes with minimum overhead • also provides an automated way for correlating dissimilar voice when delivered via different physical paths • A single AOS Frame Construction technique is utilized
Operational, Dissimilar and EmergencyAOS Frame Formats all use the same Process Secondary Header MPDU Data Field Secondary Header-Data MPDU Header Primary Header Insert Zone • Security Header for CMD has 1 byte SPI, 1 byte Counter Field and 8 byte ICV • Security Header for TLM is 1 byte SPI, 4 byte Counter Field and 4+ byte ICV • Secondary Header Service- supports Range Safety and Ops Voice • Header is 2 bytes: version, Header Type/Contents ID, length of header +data (10 bits) • Range Safety: contains pre-specified DEM/Command • Pre-defined size and included only when necessary • Voice data is aggregated from a variable # of 10 byte voice blocks • 1/2 chip may be required for 10.24 kbps rate • 1k frame @ 24 kbps number of voice blocks per frame varies between 4 and 5 (40 or 50 bytes) • This data is only included when necessary • MPDU is standard CCSDS data field carrying CCSDS Packet types CMD Range Safety Commands Voice Security Header 10 bytes Encapsulation Packets Variable 6 bytes 2 bytes Optional & Variable 2 bytes Secondary Header MPDU Data Field Secondary Header-Data MPDU Header Primary Header Insert Zone TLM Range Safety TLM DEM Voice Security Header 8 bytes Encapsulation Packets Variable 6 bytes 2 bytes Optional & Variable 2 bytes
AOS Frame Construction Framing Time Line Request SHDU Request SHDU Request SHDU Request SHDU Release Frame Release Frame Release Frame Request MPDU Request MPDU Release Frame Request MPDU Request MPDU Release Frame • AOS Framing Process (time driven) • Frames are constructed on a periodic basis • If no data is available no frame is created, an idle frame will be supplied by the Link Transmission Process • The initial frame construction reserves space where the Primary Header will be placed later • A few ms before the rate defined Frame Release instant a request is issued to the Secondary Header Data Unit (SHDU) Constructor requesting a Secondary Header Data Unit • A few ms later the SHDU, if one is available, is received and placed into the Frame • Then a request is issued to the MPU Constructor (containing the sizeof the MPDU required) • A Primary Header is constructed and set in place (If a SHDU was received the SH Flag Bit is set) • The MPDU Constructor returns an MPDU of the requested size that is then added to the frame • Secondary Header Data Unit Constructor(Range Safety-Voice) • When a request is received it builds the SHDU with the data it had received and passes it to the Framing Process • MPDU Constructor • Buffers packets received via the designated port • Once receiving the allowable MPDU length in the data request the MPDU is built and transferred to the Framing Process
Example Approach for Security • The security could be provided by a single crypto unit for every frame transmitted on a link. • The Security Block would be placed in the AOS Frame Insert Zone • AES-GCM shall be used for command • An eight byte counter would be used but only a portion need be sent • For Command only a single byte need be transmitted within the Block • For Telemetry only four bytes need be transmitted within the Block • The SDI will increment when the counter overflows providing automated key changes • The minimum of eight bytes of ICV is required for authentication • Its usage need for telemetry is questionable • Counter for Command could be up to 8 bytes in length
Secondary Header Data Unit Construction • Launch/Range Safety Data • A defined DEM is created by the launch vehicle and forwarded for inclusion in the Secondary Header Data Unit. • Voice • Receives and buffers 10 byte Voice Chips from the voice codec • Builds a Voice Group containing a Label and the received Voice Chips • Label contains a Master Chip Counter and a count of the number of chips included in this SHDU • Master Chip Counter is a sequential count chips transmitted prior to this frame (modulo 4096) • No Voice Group is created if less than 2 chips are available • Secondary Header Data Unit • The SHDU Header contains the SH version ID, the Type ID and Length of the SHDU • Example Type ID 1) Voice only with label 2)- Voice with label and fixed Range Safety • 3) Selective Engineering DEMs with header • If an SHDU is created it is passed to Frame Constructor Note: SHDU can include fill to eliminate the inclusion of an MPDU Label Voice Chips SHDU Fill # of Chips Chip Counter Variable (20-125 bytes) 12 bits 4 bits Range Safety DEM Label Voice Chips Secondary Header Optional M Counter # of Chips 10 bytes/Chip Version Type ID Length Fixed if present Optional 2 bits 3 bits 11 bits Optional
CxP Rates Frame Size Voice Chips/frame Uncoded CC-RS CC-RS LDPC LDPC LDPC LDPC LDPC 10.6 10 or 10.5 10 or 10.5 10 or 10.5 5 or 6 4 or 5 2 or 3 0 or 2 0 or 2 LDPC 9.7 21.2 9.7 21.2 @ 10.24 kspsuncoded 4+6+10+2+2+100/105 =120/125 bytes use 1024 bits/frame w/ 103ms period @ 10.6 kspsuncoded 4+6+10+2+2+100+8=Sync+128 byte frame w/ 100ms period Note the follow is in symbols (rate ½), ASM=8, PH=12, Security=20*, SH=4, Voice Label=4 * Security for Command is 10 bytes and for Telemetry can be 9 bytes @ 20.48 ksps CC-RS 8 +12+20+4+4+200/210+ ???? Doesn’t work- Frame size is limited to 192 bytes @ 20.48 ksps LDPC 8 +12+20+4+4+200/210 + 16/6=2048 symbols w/ 103 ms period @ 21.2 ksps CC only 8 +12+20+4+4+200+8+8 (CRC) =2048 symbols w/ 100 ms period @ 21.2 ksps LDPC 8 +12+20+4+4+200+16 =2048 symbols with a 100 ms period @ 36 ksps LDPC 8+12+20+4+4+100/120+4+112/92 =2048 symbols = 58.7 ms/frame @ 72 ksps LDPC 8+12+20+4+4+40/60+4+172/152 = 2048 symbols = 29.3 ms/frame @ 144 ksps LDPC 8+12+20+-----+0/48+4+220/172 = 2048 symbols = 14.66 ms/frame @ 384 ksps LDPC 8+12+20+-----+0/40+4+220/172 = 2048 symbols = 7.33 ms/frame @ Higher rates do not need to contain a Secondary Header Data Unit to satisfy latency issues Blue is proposed replacement
Secondary Header Service Version Type Length Data • This service is dynamic, self identifying & self delimiting • Type field identify contents • Up to 8 content definitions can be identified • i.e. Voice only, Voice and Range Safety DEM, other • Data field can fill frame eliminating a MPDU when desired • For Launch: Range Safety and Operational Voice delivery • For Dissimilar service: Voice and/or Engineering data • Data field can be empty allowing the MPDU to fill frame Variable up to a maximum of 2046 bytes 2 bits 3 bits 11 bits
Voice Backup ?? • This is my assumption—Please advise on its correctness • The Codec creates a 10 byte chip for 10 ms of voice • The Codec is connected to the operation’s voice net • The Codec data chip is sent via ??? • Let’s say via IP to the designated Port(s) within an address • Port A is Secondary Constructor • Port B is ENCAP Constructor (could include header compression or not) • Port C is the Dissimilar Link constructor • If a counter is incremented for each chip and sent with the chip then that counter could be included in the secondary and the Dissimilar voice frames allowing the receiving system to synchronize the chips eliminating manual syncing and reducing the offset to near nothing.