Draft Recommendation for Space Data System Standards MISSION OPERATIONS MESSAGE ABSTRACTION LAYER—SPACE PACKET BINDING DRAFT RECOMMENDED STANDARD CCSDS 524.1-R-0 RED BOOK November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding AUTHORITY Issue: Red Book, Issue 0 Date: November 2012 Location: Not Applicable (WHEN THIS RECOMMENDED STANDARD IS FINALIZED, IT WILL CONTAIN THE FOLLOWING STATEMENT OF AUTHORITY: ) This document has been approved for publication by the Management Council of the Consultative Committee for Space Data Systems (CCSDS) and represents the consensus technical agreement of the participating CCSDS Member Agencies. The procedure for review and authorization of CCSDS documents is detailed in Organization and Processes for the Consultative Committee for Space Data Systems (CCSDS A02.1-Y-3), and the record of Agency participation in the authorization of this document can be obtained from the CCSDS Secretariat at the address below. This document is published and maintained by: CCSDS Secretariat Space Communications and Navigation Office, 7L70 Space Operations Mission Directorate NASA Headquarters Washington, DC 20546-0001, USA CCSDS 524.1-R-0 Page 1-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding FOREWORD The intended use for this document is to allow the implementation of a protocol layer that binds the Mission Operations (MO) service framework to the space packet protocol. This document assumes that the reader is familiar with the Mission Operations concepts, especially the Message Abstraction Layer (MAL). Through the process of normal evolution, it is expected that expansion, deletion, or modification of this document may occur. This Recommended Standard is therefore subject to CCSDS document management and change control procedures, which are defined in the Procedures Manual for the Consultative Committee for Space Data Systems. Current versions of CCSDS documents are maintained at the CCSDS Web site: http: //www.ccsds.org/ Questions relating to the contents or status of this document should be addressed to the CCSDS Secretariat at the address indicated on page i. CCSDS 524.1-R-0 Page 1-2 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding At time of publication, the active Member and Observer Agencies of the CCSDS were: Member Agencies – – – – – – – – – – – AgenziaSpazialeItaliana (ASI)/Italy. Canadian Space Agency (CSA)/Canada. Centre National d’EtudesSpatiales (CNES)/France. China National Space Administration (CNSA)/People’s Republic of China. DeutschesZentrumfür Luft- und Raumfahrte.V. (DLR)/Germany. European Space Agency (ESA)/Europe. InstitutoNacional de PesquisasEspaciais (INPE)/Brazil. Japan Aerospace Exploration Agency (JAXA)/Japan. National Aeronautics and Space Administration (NASA)/USA. Federal Space Agency (FSA)/Russian Federation. UK Space Agency/United Kingdom. Observer Agencies – Austrian Space Agency (ASA)/Austria. – Belgian Federal Science Policy Office (BFSPO)/Belgium. – Central Research Institute of Machine Building (TsNIIMash)/Russian Federation. – China Satellite Launch and Tracking Control General, Beijing Institute of Tracking and Telecommunications Technology (CLTC/BITTT)/China. – Chinese Academy of Sciences (CAS)/China. – Chinese Academy of Space Technology (CAST)/China. – Commonwealth Scientific and Industrial Research Organization (CSIRO)/Australia. – CSIR Satellite Applications Centre (CSIR)/Republic of South Africa. – Danish National Space Center (DNSC)/Denmark. – Departamento de Ciência e Tecnologia Aeroespacial (DCTA)/Brazil. – European Organization for the Exploitation of Meteorological Satellites (EUMETSAT)/Europe. – European Telecommunications Satellite Organization (EUTELSAT)/Europe. – Geo-Informatics and Space Technology Development Agency (GISTDA)/Thailand. – Hellenic National Space Committee (HNSC)/Greece. – Indian Space Research Organization (ISRO)/India. – Institute of Space Research (IKI)/Russian Federation. – KFKI Research Institute for Particle & Nuclear Physics (KFKI)/Hungary. – Korea Aerospace Research Institute (KARI)/Korea. – Ministry of Communications (MOC)/Israel. – National Institute of Information and Communications Technology (NICT)/Japan. – National Oceanic and Atmospheric Administration (NOAA)/USA. – National Space Agency of the Republic of Kazakhstan (NSARK)/Kazakhstan. – National Space Organization (NSPO)/Chinese Taipei. – Naval Center for Space Technology (NCST)/USA. – Scientific and Technological Research Council of Turkey (TUBITAK)/Turkey. – Space and Upper Atmosphere Research Commission (SUPARCO)/Pakistan. – Swedish Space Corporation (SSC)/Sweden. CCSDS 524.1-R-0 Page 1-3 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding – United States Geological Survey (USGS)/USA. CCSDS 524.1-R-0 Page 1-4 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding PREFACE This document is a draft CCSDS Recommended Standard. Its ‘Red Book’ status indicates that the CCSDS believes the document to be technically mature and has released it for formal review by appropriate technical organizations. As such, its technical contents are not stable, and several iterations of it may occur in response to comments received during the review process. Implementers are cautioned not to fabricate any final equipment in accordance with this document’s technical content. CCSDS 524.1-R-0 Page 1-5 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding DOCUMENT CONTROL Document Title and Issue Date Status CCSDS 524.1-R-0 Mission Operations Message Abstraction Layer—Space Packet Binding, Draft Recommended Standard, Issue 0 November 2012 Current draft CCSDS 524.1-R-0 Page 1-6 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding CONTENTS 1 INTRODUCTION.......................................................................................................... 1-9 1.1 PURPOSE ............................................................................................................... 1-9 1.2 SCOPE .................................................................................................................... 1-9 1.3 APPLICABILITY ................................................................................................... 1-9 1.4 RATIONALE .......................................................................................................... 1-9 1.5 DOCUMENT STRUCTURE ................................................................................. 1-9 1.6 DEFINITIONS AND CONVENTIONS ............................................................... 1-10 1.7 NORMATIVE REFERENCES ............................................................................ 1-12 1.8 PATENTED TECHNOLOGIES........................................................................... 1-13 2 OVERVIEW ................................................................................................................... 2-1 2.1 GENERAL .............................................................................................................. 2-1 2.2 MO SERVICE FRAMEWORK ABOVE SPACE PACKET PROTOCOL........... 2-2 3 INTERFACE SPECIFICATION ................................................................................. 3-1 3.1 PROVIDED INTERFACE ..................................................................................... 3-1 3.2 REQUIRED INTERFACE ..................................................................................... 3-3 4 PROTOCOL SPECIFICATION .................................................................................. 4-1 4.1 OVERVIEW ........................................................................................................... 4-1 4.2 PRIMARY HEADER ENCODING ..................................................................... 4-15 4.3 SECONDARY HEADER ENCODING ............................................................... 4-16 4.4 USER DATA FIELD ENCODING ...................................................................... 4-17 4.5 MAL HEADER MAPPING ................................................................................. 4-17 4.6 ENCODING PATTERNS .................................................................................... 4-22 ANNEX A PROTOCOL IMPLEMENTATION CONFORMANCE STATEMENT (NORMATIVE) ............................................................................................... A-1 ANNEX B ACRONYMS (INFORMATIVE) ...................................................................B-1 ANNEX C INFORMATIVE REFERENCES (INFORMATIVE) ................................ C-1 ANNEX D SECURITY, SANA, AND PATENT CONSIDERATIONS (INFORMATIVE) ........................................................................................... D-1 Figure 1-1 1-2 2-1 2-2 2-3 Bit Numbering Convention ......................................................................................... 1-11 Octet Convention ........................................................................................................ 1-12 Mission Operations Services Concept Document Set .................................................. 2-1 Overview of the MO Service Framework ..................................................................... 2-3 MO Service Framework above Space Packet Protocol ................................................ 2-4 Table 3-1 4-1 4-2 4-3 Packet Interface Primitives ........................................................................................... 3-3 Variable Signed Integer Bit Shifting ............................................................................. 4-9 Space Packet Fields .................................................................................................... 4-10 Secondary Header Format ........................................................................................... 4-11 CCSDS 524.1-R-0 Page 1-7 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4-4 4-5 4-6 4-7 4-8 4-9 User Data Field Format ............................................................................................... 4-14 Space Packet Type ...................................................................................................... 4-15 Telecommand SDU Types .......................................................................................... 4-20 Telemetry SDU Types ................................................................................................ 4-21 Encoding Patterns and Their Grammar Notation........................................................ 4-23 Body Element Pattern Choice ..................................................................................... 4-24 CCSDS 524.1-R-0 Page 1-8 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 1 1.1 INTRODUCTION PURPOSE This Recommended Standard defines a protocol that maps the Mission Operations (MO) Message Abstraction Layer (MAL) specified in reference [5] to the space packet protocol specified in reference [3]. 1.2 SCOPE The scope of this Recommended Standard is the specification of a MAL transport layer in terms of: a) the interface provided to the MAL layer; b) the interface required from the space packet protocol layer; c) the Protocol Data Unit (PDU) that results from the mapping of the MAL message model to the space packet protocol. This Recommended Standard does not specify: a) individual implementations or products; b) the implementation of entities or interfaces within real systems. The MAL space packet binding is intended to provide full interoperability of implemented services defined in terms of the MAL. 1.3 APPLICABILITY This Recommended Standard specifies a protocol that enables different implementations of the MO service framework to interoperate through the space packet protocol. 1.4 RATIONALE The goal of this Recommended Standard is to specify how to translate the MAL message model in an unambiguous way into a specific protocol tied to a specific PDU above the space packet protocol. 1.5 DOCUMENT STRUCTURE This Recommended Standard is organised as follows: a) section 1 provides purpose, scope, applicability and rationale, and lists definitions, conventions, and references used throughout this Recommended Standard; b) section 2 presents an overview of the MAL space packet binding in relation with the MAL and the MO service framework; CCSDS 524.1-R-0 Page 1-9 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding c) section 3 specifies the provided and required interfaces; d) section 4 is a formal specification of the protocol. 1.6 DEFINITIONS AND CONVENTIONS 1.6.1 TERMS 1.6.1.1 Open Systems Interconnection Terms This Recommended Standard makes use of a number of terms defined in the Open Systems Interconnection (OSI) references [6] and [2].The use of those terms in this Recommended Standard shall be understood in a generic sense, i.e., in the sense that those terms are generally applicable to any of a variety of technologies that provide for the exchange of information between real systems. 1.6.1.1.1 Definitions from the OSI Basic Reference Model protocol: a set of rules and formats (semantic and syntactic) which determine the communication behavior of entities in the performance of functions at the level of this protocol layer (N). protocol data unit (PDU): a unit of data specified in a protocol consisting of protocol control information and possibly user data. service data unit (SDU): an amount of information whose identity is preserved when transferred between the upper layer (N+1) peer entities and which is not interpreted by the supporting entities of this layer (N). 1.6.1.1.2 Definitions from OSI Service Definition Conventions service: the capability of a service provider which is provided to service users at the boundary between the provider and the users. primitive: an abstract, atomic, implementation-independent representation of an interaction between a service user and its service provider. request: a submit primitive issued by a requestor. indication: a deliver primitive received by an acceptor. response: a submit primitive issued by an acceptor. 1.6.1.2 Terms Defined in This Recommended Standard For the purposes of this Recommended Standard, the following definitions also apply. Many other terms that pertain to specific items are defined in the appropriate sections. CCSDS 524.1-R-0 Page 1-10 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding binding: the mechanism required to access a service interface. The binding is the link between the service interface and a particular messaging technology. abstract interface: an interface defined as a set of interaction patterns. An abstract interface can be specified by a service or provided by a protocol layer. technology mapping: the mapping from the MAL abstract interfaces, including the MAL data types specification, to a particular technology. messaging technology: a technology enabling to send and receive messages through a particular protocol. message model: an abstract message format specified in terms of message header fields and a message body. interaction pattern: a message exchange protocol. 1.6.2 NOMENCLATURE The following conventions apply throughout this Recommended Standard: a) the words ‘shall’ and ‘must’ imply a binding and verifiable specification; b) the word ‘should’ implies an optional, but desirable, specification; c) the word ‘may’ implies an optional specification; d) the words ‘is’, ‘are’, and ‘will’ imply statements of fact. NOTE – These conventions do not imply constraints on diction in text that is clearly informative in nature. 1.6.3 BIT NUMBERING CONVENTION In this document, the following convention is used to identify each bit in an N-bit field. The first bit in the field to be transmitted (i.e., the most left justified when drawing a figure) is defined to be ‘Bit 0’; the bit following is defined to be ‘Bit 1’, and so on up to ‘Bit N– 1’.When the field is used to express a binary value (such as a counter), the Most Significant Bit (MSB) shall be the first transmitted bit of the field, i.e., ‘Bit 0’. BIT 0 BIT N–1 N-BIT DATA FIELD FIRST BIT TRANSFERRED = MSB Figure 1-1: Bit Numbering Convention CCSDS 524.1-R-0 Page 1-11 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding In accordance with modern data communications practice, spacecraft data fields are often grouped into eight-bit ‘words’ which conform to the above convention. Throughout this Recommended Standard, the following nomenclature is used to describe this grouping: 8-BIT WORD = ‘OCTET’ Figure 1-2: Octet Convention By CCSDS convention, all ‘spare’ or ‘unused’ bits shall be permanently set to value ‘zero’. 1.7 NORMATIVE REFERENCES The following publications contain provisions which, through reference in this text, constitute provisions of this document. At the time of publication, the editions indicated were valid. All publications are subject to revision, and users of this document are encouraged to investigate the possibility of applying the most recent editions of the publications indicated below. The CCSDS Secretariat maintains a register of currently valid CCSDS publications. [1] Information Technology—Open Systems Interconnection—Basic Reference Model: The Basic Model. International Standard, ISO/IEC 7498-1: 1994. 2nd ed. Geneva: ISO, 1994. [2] Information Technology—Open Systems Interconnection—Basic Reference Model— Conventions for the Definition of OSI Services. International Standard, ISO/IEC 10731: 1994.Geneva: ISO, 1994. [3] Space Packet Protocol. Recommendation for Space Data System Standards, CCSDS 133.0-B-1. Blue Book. Issue 1. Washington, D.C.: CCSDS, September 2003. [4] Telecommand Part 3 Data Management Service Architectural Specification. CCSDS. Blue Book Issue 2. June 2001. CCSDS 203.0-B-2 [5] Mission Operations Message Abstraction Layer. Recommendation for Space Data System Standards, CCSDS 521.0-B-1.Blue Book. Issue 1.Washington, D.C.: CCSDS, October 2010. [6] Information Technology—Open Systems Interconnection—Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1). International Standard, ISO/IEC 8825: 1990.Geneva: ISO, 1990. [7] IEEE Standard for Floating-Point Arithmetic, IEEE Standard 754-2008, IEEE Computer Society Document 2008. [8] ANSI X3.4, Information Systems—Coded Character Sets—7-Bit American National Standard Code for Information Interchange (7-bit ASCII), American National Standards Institute, 1986. CCSDS 524.1-R-0 Page 1-12 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding [9] Time Code Formats. Recommendation for Space Data System Standards, CCSDS 301.0-B-4. Blue Book. Issue 4. Washington, D.C.: CCSDS, November 2010. 1.8 PATENTED TECHNOLOGIES No patents are known to apply to this Recommended Standard. CCSDS 524.1-R-0 Page 1-13 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 2 2.1 OVERVIEW GENERAL This Recommended Standard provides a technology mapping from the MAL transport interface and the MAL data types specification to the space packet protocol messaging technology [3]. The MAL Blue Book [5] defines an abstract transport interface as a set of request and indication primitives. A technology mapping specifies how these primitives are provided according to the messaging technology. In particular, a technology mapping translates the MAL message model into one or several specific Protocol Data Units (PDUs) in compliance with the protocol used by the messaging technology. Moreover, a technology mapping casts the MAL data types into a specific binary encoding format. Full interoperability of services is achieved only once a binding has been created to a specific messaging technology. Because all service specifications are defined in terms of the MAL using a formal service description language, the technology mapping can be used, without modification, to bind the service specifications to the messaging technology protocol. The diagram shown in figure 2-1 presents the set of standards documentation in support of the Mission Operations Services Concept. This MO MAL Space Packet Binding book belongs to the technology mappings documentation. Mission Operations Services Specifications MO Concept Service Specifications Reference Model Common Object Model Message Abstraction Layer (MAL) Green Book Magenta Book Technology Mappings Language Mappings Service Specific Encoding (optional) Java MAL API MAL Space Packet Binding Application Profile Blue Book Figure 2-1: Mission Operations Services Concept Document Set CCSDS 524.1-R-0 Page 2-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding This Recommended Standard defines a mapping from the abstract notation of the MAL to an unambiguous wire-level protocol. More specifically, it specifies: a) how the specific technology shall be used; b) how any transmission errors or issues shall be communicated to higher layers; c) how all link level issues shall be defined; d) the physical representation of the abstract MAL messages necessary to constitute the operation templates; e) the mapping of the message structure rules for that technology; f) the physical representation of the abstract MAL data types. It does not specify: a) individual application services, implementations or products; b) the implementation of entities or interfaces within real systems; c) the methods or technologies required to acquire data; d) the management activities required to schedule a service; e) the representation of any service-specific PDUs (this is derived from the encoding rules defined in this document). 2.2 MO SERVICE FRAMEWORK ABOVE SPACE PACKET PROTOCOL The CCSDS Spacecraft Monitoring & Control (SM&C) working group has developed a concept for a mission operations service framework, which follows the principles of serviceoriented architectures. The framework defines two important aspects: the first is a protocol for interaction between two separate entities; the second is a framework of common services providing functionality common to most uses of the service framework. An overview of this framework is presented in figure 2-2. CCSDS 524.1-R-0 Page 2-2 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Figure 2-2: Overview of the MO Service Framework This Recommended Standard defines how the MO service framework is bound to the space packet protocol. The layer diagram displayed in figure 2-3 presents the MAL space packet binding layer in the MO service framework stack. It also gives the name of the main interfaces used and implemented by each layer. CCSDS 524.1-R-0 Page 2-3 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Figure 2-3: MO Service Framework above Space Packet Protocol CCSDS 524.1-R-0 Page 2-4 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 3 3.1 INTERFACE SPECIFICATION PROVIDED INTERFACE 3.1.1 GENERAL The MAL specification [5] (‘Transport Interface’ section)defines the interface to be provided by the space packet binding layer. The following primitives are defined: a) SUPPORTEDQOS Request; b) SUPPORTEDIP Request; c) TRANSMIT Request; d) TRANSMITMULTIPLE Request; e) RECEIVE Indication; f) RECEIVEMULTIPLE Indication. 3.1.2 SUPPORTED QOSREQUEST 3.1.2.1 All the Quality of Service (QoS) levels defined by the MAL may not be supported depending on the underneath transport layer used to convey the space packets. 3.1.3 SUPPORTED IPREQUEST All the interaction patterns defined by the MAL shall be supported. 3.1.4 TRANSMIT REQUEST 3.1.4.1 The TRANSMIT Request primitive shall be provided in order to translate a MAL message into a space packet and send the packet. 3.1.4.2 The MAL message header fields shall be mapped to the space packet primary header fields, the secondary header fields, and some parameters in the user data field. 3.1.4.3 The MAL message body elements shall be encoded and transmitted in the space packet user data field. 3.1.4.4 The QoS properties may be interpreted depending on the transport used to convey the space packets. 3.1.4.5 If an error is returned by the space packet sending request, then the error MAL::INTERNAL shall be raised as a response. CCSDS 524.1-R-0 Page 3-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 3.1.5 TRANSMIT MULTIPLEREQUEST 3.1.5.1 Multiple MAL messages shall be transmitted into a single space packet only if the following conditions are fulfilled: – the interaction type of each message is PUBLISH-SUBSCRIBE; – the stage of each message is Publish or Notify; – the MAL header fields, except the Timestamp field, are assigned with the same values in every message. 3.1.5.2 The multiple MAL messages transmitted into a single space packet shall be encoded as follows: – the MAL header of the first message shall be mapped to the space packet; – each MAL message body shall be encoded in the user data field. 3.1.6 RECEIVE INDICATION 3.1.6.1 The RECEIVE Indication primitive shall be provided in order to receive a space packet and translate the packet into a MAL message. – The MAL message header fields shall be generated from the space packet primary header fields, the secondary header fields, and some parameters from the user data field. – The MAL message body elements shall be decoded from the space packet user data field. – Some QoS properties may be passed in the RECEIVE Indication depending on the transport used to convey the space packets. – If the field ‘URI To’ is unknown, then the error MAL::DESTINATION_UNKNOWN shall be returned if the interaction pattern enables to return a MAL message. 3.1.7 RECEIVE MULTIPLE INDICATION 3.1.7.1 The RECEIVE MULTIPLE Indication primitive shall be provided in order to receive a space packet that contains multiple MAL messages and translate the packet into those multiple MAL messages. 3.1.7.2 The multiple MAL messages received from a single space packet shall be decoded as follows: – the MAL header shall be decoded from the space packet; – each MAL message body shall be decoded from the user data field and a MAL message shall be created for each body; CCSDS 524.1-R-0 Page 3-2 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding – 3.2 the decoded MAL header shall be assigned to each created MAL message. REQUIRED INTERFACE 3.2.1 GENERAL The interface required by the space packet protocol binding layer is defined by the space packet protocol specification [3]. The following primitives are provided: a) packet request; b) packet indication. The parameters are listed in table 3-1. Table 3-1: Packet Interface Primitives Primitive Packet request Packet indication Parameters Space Packet Application Process Identifier (APID) APID Qualifier (optional) QoS Requirement (optional) Space Packet APID APID Qualifier (optional) 3.2.2 PACKET REQUEST 3.2.2.1 The space packet shall be generated from a single MAL message. 3.2.2.2 A MAL message shall not be fragmented into several space packets. 3.2.2.3 The APID shall be resolved from the MAL message source and destination Universal Resource Identifiers (URIs). 3.2.2.4 The APID qualifier of the spacecraft shall be a mission constant. 3.2.2.5 The QoS requirement may be specified by the MAL QoS properties. 3.2.3 PACKET INDICATION 3.2.3.1 The space packet shall contain a single MAL message. 3.2.3.2 The APID shall be included in the MAL message source and destination URIs. CCSDS 524.1-R-0 Page 3-3 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4 PROTOCOL SPECIFICATION 4.1 OVERVIEW This section specifies the way the MAL message header is mapped to a space packet and how the MAL message body elements are encoded and transmitted into the packet. Each field in a space packet is either a parameter field containing a parameter value or a structured field containing several parameter fields. A simple tabular notation is used to describe the packet structures. The tabular notation shows the names and order of appearance of the fields in the packet and the type of each field. 4.1.1 ENCODING FORMATS OF PARAMETER TYPES The parameter type defines the abstract class to which the parameter values belong. For a given parameter type there can be variations in the format and length of the values. Each combination of a parameter type and encoding format has an associated parameter code, which identifies completely a simple type and how it is physically encoded in a packet. The parameter code shall be used whenever an explicit definition of a parameter field is requested. When contained in a packet, the parameter code should consist of two consecutive parameter fields with type ‘Enumerated’ (as defined later in this section): PTC Enumerated PFC Enumerated Where: – PTC = Parameter Type Code – PFC = Parameter Format Code The only parameter types are those defined in this section. For each type of parameter, a list of standard parameter formats is defined in this Recommended Standard. Missions shall adopt these standard parameter formats, but other mission-specific parameter formats can also be defined with new parameter format codes. NOTE – Some simple types have variable-length physical formats (e.g., a variable-length bit string). The actual length is encoded as a variable unsigned integer field which physically precedes the variable-length value. Thus, the complete definition of the physical format of a variable-length parameter field also includes the parameter code of the field containing the actual length of the parameter value. CCSDS 524.1-R-0 Page 4-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.2 SIMPLE PARAMETER TYPES 4.1.2.1 Boolean Parameter (PTC = 1) PFC = 0 This is a one-bit parameter, with two distinguished values only, involved in logical operations where: – value 1 denotes ‘TRUE’; – value 0 denotes ‘FALSE’. 4.1.2.2 Enumerated Parameter(PTC = 2) PFC = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24, or 32: length in bits of the parameter values This is a parameter, with discrete integer values only, involved in logical and comparative expressions (but not in numeric and relational expressions). The values that such a parameter can take are discrete and unordered. Each value has a meaning which is interpreted as a character-string value. An error code is a typical example (e.g., 0 means ‘unchecked’; 3 means ‘invalid’). 4.1.2.3 Unsigned Integer Parameter(PTC = 3) The values that this parameter can take are positive and can be involved in arithmetical, relational, and comparative expressions. An unsigned integer shall be encoded, with Bit-0 being the most significant bit (MSB) and Bit-N-1 the least significant bit (LSB). 4.1.2.3.1 The formats of an unsigned integer shall be: 4.1.2.4 Format Code 0 ≤ PFC ≤ 12 Format Definition PFC + 4 bits, unsigned Lowest Value 0 PFC = 13 3 octets, unsigned 0 PFC = 14 4 octets, unsigned 0 PFC = 15 6 octets, unsigned 0 PFC = 16 8 octets, unsigned 0 Highest Value 2^(PFC + 4) -1 (15 to 65535) 2^24 -1 (16277215) 2^32 -1 (~ 4,3 10^9) 2^48 -1 (~ 2,8 10^14) 2^64 -1 (~ 18,5 10^18) Signed Integer Parameter(PTC = 4) The values that a signed integer parameter can take are positive or negative and can be involved in arithmetical, relational, and comparative expressions. CCSDS 524.1-R-0 Page 4-2 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.2.4.1 If Bit-0 = 0, the value shall be positive following the unsigned integer convention. 4.1.2.4.2 If Bit-0 = 1, the value shall be negative and the field is the ‘2’s complement’ of the positive value. 4.1.2.4.3 The formats of a signed integer shall be: 4.1.2.5 Format Code 0 ≤ PFC ≤ 12 Format Definition PFC + 4 bits, signed PFC = 13 3 octets, signed PFC = 14 4 octets, signed PFC = 15 6 octets, signed PFC = 16 8 octets, signed Lowest Value -2^(PFC + 3) (-8 to -32768) -2^23 (-8388608) -2^31 (~ -2,15*10^9) -2 ^47 (~ -1,4*10^14) -2^63 (~ -9,2*10^18) Highest Value 2^(PFC + 3) -1 (7 to 32767) 2^23 -1 (8388607) 2^31 -1 (~ 2,15*10^9) 2^47 -1 (~ 1,4*10^14) 2^63 -1 (~ 9,2*10^18) Real Parameter (PTC = 5) PFC = 1: 4 octets simple-precision format (IEEE standard). PFC = 2: 8 octets double-precision format (IEEE standard). The simple-precision format and the double-precision format are defined in IEEE 754 Standard for Binary Floating-Point Arithmetic [7]. The important features of their definitions are repeated here. Each format permits the representation of the numerical values of the form: (-1)^S*2^E*(b0,b1,b2…bp-1) where: – b0,b1,b2…bp-1 means b0 / 2^0 + b1 / 2^1 + b2 / 2^2 + … + bp-1/ 2^(p-1); – S =0 or 1; – E = any integer between Emin and Emax, inclusive; – bi = 0 or 1; – p = number of significant bits (precision). Each format also permits the representation of two infinities, ‘∞’ and ‘-∞’, and special values which are not numbers. CCSDS 524.1-R-0 Page 4-3 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Real numbers in both formats are composed of three subfields: a) sign unsigned integer, contains the value S; b) exponent unsigned integer, contains the value E+127 on 8 bits (single precision) or E+1023 (double precision); c) fraction bit string, contains the value b0,b1,b2…bp-1 with p = 24 (single precision) or p = 53 (double precision). 4.1.2.5.1 The encoded value of a single-precision real parameter shall be constituted as follows: Sign 1 bit Exponent 8 bits Fraction 23 bits 4.1.2.5.2 The value of a single-precision parameter shall be: Value Not a Number (-1)^sign * ∞ (-1)^sign * 2^(exponent -127) * (1, fraction) (-1)^sign * 2^(-126) * (0, fraction) 0 If exponent = 255 and fraction <> 0 If exponent = 255 and fraction = 0 If 0 < exponent < 255 If exponent = 0 and fraction <> 0 If exponent = 0 and fraction = 0 4.1.2.5.3 The encoded value of a double-precision real parameter shall be constituted as follows: Sign 1 bit Exponent 11 bits Fraction 52 bits 4.1.2.5.4 The value of a double-precision parameter shall be: If exponent = 2047 and fraction <> 0 If exponent = 2047 and fraction = 0 If 0 < exponent < 2047 If exponent = 0 and fraction <> 0 If exponent = 0 and fraction = 0 Value Not a Number (-1)^sign * ∞ (-1)^sign * 2^(exponent -1023) * (1, fraction) (-1)^sign * 2^(-1022) * (0, fraction) 0 In the cases where exponent = 0 and fraction <> 0, the values are called denormalized. The range of possible values and precision for a real parameter are as follows: – Simple precision: 1,12*10-38 ≤ | value | ≤ 3,40*1038 (precision 1,15*10-7) CCSDS 524.1-R-0 Page 4-4 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding – Double precision: 2,22*10-308 ≤ | value | ≤ 1,79*10308 (precision 2,22*10-16) 4.1.2.6 Bit-string Parameter(PTC = 6) PFC = 0: A variable-length bit string. PFC > 0: A fixed-length bit string with a number of bits equal to PFC. The values that such a parameter can take are variable-length or fixed-length sequences of bits, each with a value 1 or 0. The meaning and interpretation of a value is applicationprocess specific. 4.1.2.6.1 A variable-length bit-string parameter shall be of the form: n Variable unsigned integer B1…Bn n bits Where: – B1…Bn are bits; – n indicates the number of bits which follows. 4.1.2.6.2 A fixed-length bit-string parameter shall be of the form: B1…Bn n bits Where: – B1…Bn are bits; – n 4.1.2.7 indicates the number of bits and is equal to PFC. Octet-string Parameter(PTC = 7) PFC = 0: A variable-length octet string. PFC > 0: A fixed-length octet string with a number of octets equal to PFC. The values that such a parameter can take are variable-length or fixed-length sequences of octets, each octet being an ordered sequence of eight bits. The meaning and interpretation of a value shall be application-process specific. CCSDS 524.1-R-0 Page 4-5 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.2.7.1 A variable-length octet-string parameter shall be of the form: n Variable unsigned integer O1 octet O2 octet … On octet Where: – O1 … On are octets; – n indicates the number of octets which follow. 4.1.2.7.2 A fixed-length octet-string parameter shall be of the form: O1 octet … O2 octet On octet Where: – O1 … On are octets; – n 4.1.2.8 indicates the number of octets and is equal to PFC. Character-string Parameter(PTC = 8) PFC = 0: A variable-length character string. PFC > 0: A fixed-length character string with a number of characters equal to PFC. The values that such a parameter can take are variable-length or fixed-length sequences of visible characters (visible characters are defined in ANSI X3.4 reference [8]). A visible character shall be represented by its ASCII code on one octet. The meaning and interpretation of a value is application-process specific. 4.1.2.8.1 A variable-length character-string parameter shall be of the form: n Variable unsigned integer C1 ASCII C2 ASCII … Cn ASCII Where: – C1 … Cn are ASCII character codes on 8 bits; – n indicates the number of ASCII character codes which follow. 4.1.2.8.2 A fixed-length octet-string parameter is of the form: C1 ASCII CCSDS 524.1-R-0 C2 ASCII … Page 4-6 Cn ASCII November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Where: – C1 … Cn are ASCII character codes on 8 bits; – n 4.1.2.9 indicates the number of ASCII character codes and is equal to PFC. Absolute Time Parameter(PTC = 9) PFC = 0: Explicit definition of time format (CUC or CDS), i.e., including the P-field. PFC = 1: 2 octets day CDS format without a µs field (parameter field is 6 octets). PFC = 2: 2 octets day CDS format with a µs field (parameter field is 8 octets). 3 ≤ PFC ≤ 18: CUC format with ((PFC + 1)÷4, rounded down) octets of coarse time and ((PFC + 1)modulo 4) octets of fine time. PFC values in this range do not include the P-field (the value of the implicit P-field can be derived from the PFC). NOTE – The CUC and CDS time formats are defined in CCSDS 301.0-B-2 [C2]. 4.1.2.9.1 The value of an Absolute Time parameter field shall be a number of seconds and fractions of second from a given agency epoch. It shall be a positive time offset. 4.1.2.9.2 CDS format The CDS format with µs (PFC = 2) shall be as follows: Day 2 octets msec of day 4 octets µsec of msec 2 octets The value of Day is an unsigned integer in the range 0 to 216-1. 4.1.2.9.3 CUC format The CUC format consists of 1 to 4 octets of coarse time (seconds) and 0 to 3 octets of fine time (sub-seconds). The coarse time code elements are a count of the number of seconds elapsed from the epoch. Four octets of coarse time results in a maximum ambiguity period of approximately 136 years. This allows a time code representation of time through the year 2094 for those which are referenced to the TAI epoch of 1958 January 1. Zero to three octets of fine time code elements result in a resolution of, respectively: 1 second; 2-8 second (about 4 ms); 2-16 second (about 15 µs); or 2-24 second (about 60 ns). The full CUC format(PFC = 18) shall be as follows: CCSDS 524.1-R-0 Page 4-7 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding C1 1 octet C2 1 octet C3 1 octet C4 1 octet F1 1 octet F2 1 octet F3 1 octet The time in seconds from the given agency epoch is given by: t = C1*2563+ C2*2562+ C3*256 + C4+ F1*256-1+ F2*256-2+ F3*256-3. Where: – C1 … C4 are octets of coarse time, i.e., the number of seconds elapsed from the epoch; – F1 … F3 are octets of fine time, i.e., the number of 2-24 seconds. 4.1.2.10 Relative Time Parameter(PTC = 10) PFC = 0: Explicit definition of CUC time format, i.e., including the P-field. 1 ≤ PFC ≤ 16: CUC format with ((PFC + 3)÷4, rounded down) octets of coarse time and ((PFC + 3)modulo 4) octets of fine time. PFC values in this range do not include the P-field (the value of the implicit P-field can be derived from the PFC). The value of a Relative Time parameter field shall be a number of seconds and fractions of a second from the occurrence time of an event whose identification can be derived from other parameters in the packet (e.g., identifying a type of onboard event) or a number of seconds and fractions of a second between two absolute times. It can be a positive or negative time offset. 4.1.2.10.1 The full CUC format (PFC = 16) shall be as follows: C1 1 octet C2 1 octet C3 1 octet C4 1 octet F1 1 octet F2 1 octet F3 1 octet The positive time offset is given by: t = C1*2563+ C2*2562+ C3*256 + C4+ F1*256-1+ F2*256-2+ F3*256-3 where Ci and Fi are in the range 0 to 127. NOTE – A negative time offset is expressed as the ‘2’s complement’ of the corresponding positive time offset. 4.1.2.11 Variable Unsigned Integer Parameter (PTC = 11) PFC = 1: 2 octets unsigned integer. CCSDS 524.1-R-0 Page 4-8 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding PFC = 2: 4 octets unsigned integer. PFC = 3: 8 octets unsigned integer. The ‘2’s complement’ representation of the integer is divided in groups of 7 bits. The least significant group is encoded first. It is encoded in a byte as shown below: MSB 1 bit Least significant group of 7 bits 7 bits The MSB indicates whether there are further bytes to come or not: – MSB = ‘0’: there are no further bytes to come; – MSB = ‘1’: there are further bytes to come. The other groups of 7 bits are encoded in the same way, the least significant group being encoded first. 4.1.2.12 Variable Signed Integer Parameter(PTC = 12) PFC = 1: 2 octets signed integer. PFC = 2: 4 octets signed integer. PFC = 3: 8 octets signed integer. Signed integers are mapped to unsigned integers in order that numbers with a small absolute value, for example -1,can be encoded as a small unsigned variable integer parameter. The mapping is done by moving the sign bit from the left-most position to the right-most position. Using bit shift operators, the mapping is done according to the PFC as defined in table 4-1. Table 4-1: Variable Signed Integer Bit Shifting PFC 1 2 3 CCSDS 524.1-R-0 Bit Shifting (n << 1) ^ (n >> 15) (n << 1) ^ (n >> 31) (n << 1) ^ (n >> 63) Page 4-9 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.3 SPACE PACKET STRUCTURE All packets are conform to the structure defined in CCSDS 203.0-B-2 [4] and shown in table 4-2. Standardization of the shaded part of the packet structure is a primary purpose of this Recommended Standard. Table 4-2: Space Packet Fields Packet Header (48 bits) Packet ID Packet Data Field (variable) Packet Sequence Control Packet Packet Length Secondary User Data Field Spare Variable Variable Header (see Note) Packet Packet Data Field Version Type Header Flag 1 1 APID Sequence Sequence Flags Count Number 3 11 16 2 14 16 16 Variable NOTE – This Recommended Standard specifies the inclusion of the secondary header for all packets. 4.1.4 SECONDARY HEADER The secondary header follows the primary header of a space packet. Its format is described by table 4-3. CCSDS 524.1-R-0 Page 4-10 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Table 4-3: Secondary Header Format CCSDS Secondary Version Header Flag Number Boolean Enumerated (1 bit) (PFC = 3) (3 bits) CCSDS 524.1-R-0 SDU Type Enumerated (PFC = 4) (4 bits) Area Unsigned integer (PFC = 4) (8 bits) Service Unsigned integer (PFC = 4) (8 bits) Operation Unsigned integer (PFC = 4) (8 bits) Source Identifier Unsigned integer (PFC = 4) (8 bits) Page 4-11 Destination Identifier Unsigned integer (PFC = 4) (8 bits) Transaction Identifier Signed integer (PFC = 16) (64 bits) Not encoded if the SDU type is Send Timestamp Absolute time (variable) Optional Service Version Enumerated Is Error Boolean Spare (PFC = 4) (4 bits) (1 bit) (variable) November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.4.1 CCSDS Secondary Header Flag At present, CCSDS has not developed recommendations for the internal format of the secondary header; therefore, local conventions may be used as required. However, in order to permit future standardization of this data structure, the MSB(Bit 0) of the leading octet within the secondary header shall be reserved and assigned as follows whenever the secondary header flag is set to value ‘1’ (see section 5.2.2 of [4]): – Bit 0 = ‘0’: non-CCSDS-defined secondary header follows; – Bit 0 = ‘1’: CCSDS-defined secondary header follows. 4.1.4.2 Version Number The field ‘Version Number’ gives the secondary header version number. 4.1.4.3 SDU Type The field ‘SDU Type’ gives the type of the SDU. 4.1.4.4 Area The field ‘Area’ gives the area number of the MAL message. 4.1.4.5 Service The field ‘Service’ gives the service number of the MAL message. 4.1.4.6 Operation The field ‘Operation’ gives the operation number of the MAL message. 4.1.4.7 Source Identifier The field ‘Source Identifier’ gives the identifier of the source (consumer or provider) of the MAL message. 4.1.4.8 Destination Identifier The field ‘Destination Identifier’ gives the identifier of the destination (consumer or provider) of the MAL message. 4.1.4.9 Transaction Identifier The field ‘Transaction Identifier’ gives the transaction identifier of the MAL message. CCSDS 524.1-R-0 Page 4-12 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.1.4.10 Timestamp The field ‘Timestamp’ gives the timestamp of the MAL message. 4.1.4.11 Service Version The field ‘Service Version’ gives the service version number of the MAL message. 4.1.4.12 Is Error The field ‘Is Error’ indicates whether the MAL message contains an error or not. 4.1.4.13 Spare The field ‘Spare’ is the bits to be added in order that the length of the secondary header is an integral number of octets. 4.1.5 USER DATA FIELD The user data field format is shown in table 4-4. CCSDS 524.1-R-0 Page 4-13 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Table 4-4: User Data Field Format QoS Session Enumerated Enumerated (PFC = 2) (2 bits) Spare Priority Variable unsigned integer Network Zone CharacterString Session Name CharacterString (PFC = 2) (2 bits) (4 bits) If QoS property ‘COMPACT_MAL_HEADER’ is FALSE CCSDS 524.1-R-0 Domain Identifier Pattern List Authentication Identifier Octet String Transmit Multiple Variable unsigned integer If QoS property If the interaction type is ‘MAL_AUTHENTICATION’ PUBLISH-SUBSCRIBE and is TRUE the stage is Publish or Notify Page 4-14 Body Pattern Body Repeated if multiple messages are transmitted November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.2 PRIMARY HEADER ENCODING 4.2.1 GENERAL This section specifies the values to be assigned to the space packet primary header fields. 4.2.2 VERSION NUMBER The field ‘Version Number’ shall be assigned with the value ‘0’. 4.2.3 TYPE 4.2.3.1 The field ‘Type’ shall be assigned according to the MAL header fields ‘Interaction Type’ and ‘Interaction Stage’ as defined by table 4-5. Table 4-5: Space Packet Type IP SEND SUBMIT REQUEST INVOKE PROGRESS CCSDS 524.1-R-0 Stage Send Submit SubmitAck SubmitError Request RequestResponse RequestError Invoke InvokeAck InvokeResponse InvokeAckError InvokeResponseError Progress ProgressAck ProgressUpdate ProgressResponse ProgressAckError ProgressUpdateError ProgressResponseError Page 4-15 Space Packet Type Telecommand Telecommand Telemetry Telemetry Telecommand Telemetry Telemetry Telecommand Telemetry Telemetry Telemetry Telemetry Telecommand Telemetry Telemetry Telemetry Telemetry Telemetry Telemetry November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding IP PUBSUB Stage Register Deregister Publish Register Publish Deregister Register Ack Deregister Ack Publish Register Ack Publish Deregister Ack Publish Publish Error Notify Space Packet Type Telecommand Telecommand Telecommand Telecommand Telemetry Telemetry Telemetry Telemetry Telemetry Telemetry Telemetry 4.2.3.2 If a message is not allowed to be transmitted because of the space packet type, then the error MAL::INTERNAL shall be raised. 4.2.4 DATA FIELD HEADER FLAG The field ‘Data Field Header Flag’ shall be assigned with the value 1. 4.2.5 APPLICATION PROCESS ID The field ‘APID’ shall be assigned according to the space packet protocol specification [3]. 4.2.6 SEQUENCE FLAGS The field ‘Sequence Flags’ shall be assigned by the space packet protocol layer. 4.2.7 SEQUENCE COUNT The field ‘Sequence Count’ shall be assigned by the space packet protocol layer. 4.2.8 PACKET LENGTH 4.2.8.1 The field ‘Packet Length’ shall be assigned by the space packet protocol layer. 4.2.8.2 If the number of octets in the packet data field is greater than 65542 octets, then the error MAL::INTERNAL shall be raised. 4.3 SECONDARY HEADER ENCODING 4.3.1 GENERAL This section specifies the values to be assigned to the space packet secondary header fields. CCSDS 524.1-R-0 Page 4-16 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.3.2 CCSDS SECONDARY HEADER FLAG The field ‘CCSDS Secondary Header Flag’ shall be assigned with the value ‘1’. 4.3.3 VERSION NUMBER The field ‘Version Number’ shall be assigned with the value ‘0’. 4.3.4 OTHER FIELDS The other fields shall be assigned according to the MAL header mapping. 4.4 USER DATA FIELD ENCODING 4.4.1 GENERAL This section specifies the values to be assigned to the space packet user data field parameters. 4.4.2 MAL HEADER PARAMETERS The parameters ‘QoS’, ‘Session’, ‘Priority’, ‘Network Zone’, ‘Session Name’, ‘Domain Identifier’, and ‘Authentication Identifier’ shall be assigned according to the MAL header mapping. 4.4.3 TRANSMIT MULTIPLE If the interaction stage is PUBLISH-SUBSCRIBE, and if the stage is Publish or Notify, then the parameter ‘Transmit Multiple’ shall be assigned with the number of multiple messages to be transmitted in the same space packet. 4.4.4 USER DATA 4.4.4.1 If a single MAL message is transmitted, then the parameter ‘Body’ shall be assigned with the encoded message body. 4.4.4.2 If multiple MAL messages are transmitted, then the parameter ‘Body’ shall be repeated and assigned with the body of each message in the same order as the transmitted multiple messages. 4.5 MAL HEADER MAPPING 4.5.1 GENERAL This section specifies how the MAL header fields [5] are mapped to a space packet. 4.5.2 URI FROM 4.5.2.1 The field ‘URI From’ shall be encoded in the following fields: CCSDS 524.1-R-0 Page 4-17 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding a) the field ‘APID’ of the primary header; b) the field ‘Source Identifier’ of the secondary header. 4.5.2.2 The value of ‘URI From’ shall be a URI built from the fields according to the following format: malspp: <APID>/<Source Identifier> 4.5.2.3 raised. If the ‘URI From’ is not well-formed, then the error MAL::INTERNAL shall be 4.5.3 AUTHENTICATION ID 4.5.3.1 If the QoS property ‘MAL_AUTHENTICATION’ is FALSE, then the MAL header field ‘Authentication Id’ shall not be encoded. 4.5.3.2 If the QoS property ‘MAL_AUTHENTICATION’ is TRUE, then the MAL header field ‘Authentication Id’ shall be encoded in the parameter ‘Authentication Identifier’ of the user data field. 4.5.4 URI TO 4.5.4.1 The field ‘URI To’ shall be encoded in the following fields: a) the field ‘APID’ of the primary header; b) the field ‘Destination Identifier’ of the secondary header. 4.5.4.2 The value of ‘URI To’ shall be a URI built from the fields according to the following format: malspp: <APID>/<Destination Identifier> 4.5.4.3 If the field ‘URI To’ does not contain the same APID as the field ‘URI From’, then the error MAL::INTERNAL shall be raised. 4.5.4.4 raised. If the ‘URI To’ is not well-formed, then the error MAL::INTERNAL shall be 4.5.5 TIMESTAMP 4.5.5.1 The field ‘timestamp’ shall be encoded according to the format given by the QoS property ‘APPL_TIME_CODE’. 4.5.5.2 If the QoS property ‘APPL_TIME_CODE’ is not specified, then the field ‘timestamp’ shall not be encoded. CCSDS 524.1-R-0 Page 4-18 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding NOTE – The reference time of the packet, expressed in either the CUC or CDS format (as defined in CCSDS 301.0-B-4, see [9]). The choice between CUC and CDS formats and the resolution of the timestamp field can vary from mission to mission and even between different application processes. For some missions or application processes, this time field may not even be present. The presence or absence of the field and its encoding are explicitly defined by the QoS property APPL_TIME_CODE. 4.5.5.3 If the CDS format is used, then the standard CCSDS epoch of 1958 January 1 shall be applicable. See [9]. 4.5.6 QOSLEVEL 4.5.6.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘QoSlevel’ shall not be encoded. 4.5.6.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘QoSlevel’ shall be encoded in the parameter ‘QoS’ of the user data field. 4.5.7 PRIORITY 4.5.7.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘Priority’ shall not be encoded. 4.5.7.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘Priority’ shall be encoded in the parameter ‘Priority’ of the user data field. 4.5.8 DOMAIN 4.5.8.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘Domain’ shall not be encoded. 4.5.8.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘Domain’ shall be encoded in the parameter ‘Domain Identifier’ of the user data field. 4.5.9 NETWORK ZONE 4.5.9.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘Network Zone’ shall not be encoded. 4.5.9.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘Network Zone’ shall be encoded in the parameter ‘Network Zone’ of the user data field. CCSDS 524.1-R-0 Page 4-19 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.5.10 SESSION 4.5.10.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘Session’ shall not be encoded. 4.5.10.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘Session’ shall be encoded in the parameter ‘Session’ of the user data field. 4.5.11 SESSION NAME 4.5.11.1 If the QoS property ‘COMPACT_MAL_HEADER’ is TRUE, then the MAL header field ‘Session Name’ shall not be encoded. 4.5.11.2 If the QoS property ‘COMPACT_MAL_HEADER’ is FALSE, then the MAL header field ‘Session Name’ shall be encoded in the parameter ‘Session Name’ of the user data field. 4.5.12 INTERACTION TYPE AND INTERACTION STAGE 4.5.12.1 If the space packet is a telecommand, then the MAL header fields ‘Interaction Type’ and ‘InteractionStage’ shall be encoded in the secondary header field ‘SDU Type’ according to table 4-6. Table 4-6: Telecommand SDU Types IP Send Submit Request Invoke Progress Pub/Sub Pub/Sub Pub/Sub Pub/Sub Stage Initial Initial Initial Initial Initial Register Deregister Publish Register Publish Deregister SDU type 0 1 2 3 4 5 6 7 8 4.5.12.2 If the space packet is a telemetry, then the MAL header fields ‘Interaction Type’ and ‘Interaction Stage’ shall be encoded in the secondary header field ‘SDU type’ according to table 4-7. CCSDS 524.1-R-0 Page 4-20 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Table 4-7: Telemetry SDU Types IP Submit Request Invoke Invoke Progress Progress Progress Pub/Sub Pub/Sub Pub/Sub Pub/Sub Pub/Sub Pub/Sub Pub/Sub Stage Ack Response Ack Response Ack Update Response Register Ack Deregister Ack Publish Register Ack Publish Deregister Ack Publish Publish Error Notify SDU type 0 1 2 3 4 5 6 7 8 9 10 11 12 13 4.5.12.3 If the space packet type does not allow the translation of the MAL header fields ‘Interaction Type’ and ‘Interaction Stage’ into an ‘SDU Type’, then the error MAL::INTERNAL shall be raised. 4.5.13 TRANSACTION IDENTIFIER If the interaction type is not SEND, then the MAL header field ‘Transaction Id’ shall be encoded in the field ‘Transaction Identifier’ of the secondary header. 4.5.14 SERVICE AREA The MAL header field ‘Service Area’ shall be encoded in the field ‘Service Area’ of the secondary header. 4.5.15 SERVICE The MAL header field ‘Service’ shall be encoded in the field ‘Service’ of the secondary header. 4.5.16 OPERATION The MAL header field ‘Operation’ shall be encoded in the field ‘Operation’ of the secondary header. 4.5.17 SERVICE VERSION The MAL header field ‘Service Version’ shall be encoded in the field ‘Service Version’ of the secondary header. CCSDS 524.1-R-0 Page 4-21 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.5.18 ISERROR MESSAGE The MAL header field ‘Is Error Message’ shall be encoded in the field ‘Is Error’ of the secondary header. 4.6 ENCODING PATTERNS 4.6.1 GENERAL An encoding pattern is a function that translates a MAL::Element into a sequence of encoded parameters. This translation is defined in a generic and modular way: a) ‘generic’ means that the encoding format is not specifically defined for every data structure and every usage context; it is generated by applying the generic patterns to the data structure to be encoded in a specific usage context; b) ‘modular’ means that the encoding patterns are defined by isolating every MAL data type pattern and specifying the encoding format for each of them. An encoding pattern can delegate to another pattern the generation of a part of the encoding format: a pattern is a graph of patterns with potential cycles. Two different notations are used to define the encoding patterns: a) a grammar similar to Backus-Naur Form (BNF) with textual comments indicating how the grammar is to be applied. Each encoding pattern is described by a rule; it is necessary to specify how options and choices shall be made for each rule; b) a tabular notation as usually employed for describing encoding formats. This tabular notation is comprised of three levels: 1) the name of an encoded parameter; 2) the encoding type (PTC/PFC or the name of the pattern to apply); 3) the condition the parameter is encoded in, or for lists, the number of times the encoded parameter appears. The grammar notation enables easy expression of the whole generic encoding algorithm, but it is less adapted for describing more static encoding format. The tabular notation is then clearer and easier to use. The following notation has been chosen for the grammar rules: a) rule names appear in <angle brackets>; b) terminal values appear in bold. The whole grammar is shown in table 4-8. CCSDS 524.1-R-0 Page 4-22 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Table 4-8: Encoding Patterns and Their Grammar Notation Pattern Name Grammar Body <body>::= (<nullable-element> | <element>)* Nullable Element <nullable-element>::= null-tag [<element>] Element <element>::= <abstract-attribute> | <abstract> | <final> Abstract <abstract>::= short-form<final> Abstract Attribute <abstract-attribute>::= attribute-tag<attribute> Final <final>::= <attribute> | <enumeration> | <list> | <composite> Enumeration <enumeration>::= unsigned-integer-4 | unsigned-variableinteger-1 |unsigned-variable-integer-2 Composite <composite>::= (<field>)* Field <field>::= <nullable-element > | <element> List <list>::= list-length (<nullable-element>)* Attribute <attribute>::= <blob> | <boolean> | <duration> | <float> | <double> | <identifier> | <octet> | <uoctet> | <short> | <ushort> | <integer> | <uinteger> | <long> | <ulong> | <string> | <time> |<fine-time> | <uri> Blob <blob>::= variable-length-octet-string Boolean <boolean>::= boolean Duration <duration>::= relative-time Float <float>::= real-1 Double <double>::= real-2 Identifier <identifier>::= character-string Octet <octet>::= signed-integer-4 UOctet <uoctet>::= unsigned-integer-4 Short <short>::= signed-variable-integer-1 UShort <ushort>::= unsigned-variable-integer-1 Integer <integer>::= signed-variable-integer-2 UInteger <uinteger>::= unsigned-variable-integer-2 Long <long>::= signed-variable-integer-3 ULong <ulong>::= unsigned-variable-integer-3 String <string>::= character-string Time <time>::= absolute-time FineTime <fine-time>::= absolute-time URI <uri>::= character-string The patterns are defined in the following sections. 4.6.2 BODY 4.6.2.1 This pattern shall be applied to encode a MAL message body. CCSDS 524.1-R-0 Page 4-23 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.2.2 The following grammar rule shall be applied: <body>::= (<nullable-element> | <element>)* 4.6.2.3 If the body declared by the operation is empty, then nothing shall be encoded. 4.6.2.4 The choice between the patterns Nullable Element and Element shall be done for every element in the body according to the interaction type and the flag ‘Is Error’ as shown by table4-9. Table 4-9: Body Element Pattern Choice Interaction Type Pub/Sub Not Pub/Sub * Is Error False True Body Element Pattern Element Nullable Element Element 4.6.3 NULLABLE ELEMENT 4.6.3.1 This pattern shall be applied to encode a MAL::Element that can be assigned with the value NULL. 4.6.3.2 The following grammar rule shall be applied: <nullable-element>::= null-tag [<element>] 4.6.3.3 The NULL tag shall be encoded as a Boolean (PTC = 1). 4.6.3.4 If the element is NULL, then the Boolean TRUE shall be encoded. 4.6.3.5 If the element is not NULL, then the encoded parameters shall be: a) the Boolean FALSE; b) the element encoded through the pattern Element. 4.6.3.6 The encoding format shall be: Null Tag Boolean (PTC = 1) Element Pattern Element If the Null tag is assigned with the value FALSE NOTE – The NULL value could be encoded in a specific way depending on the element type, but it would break the modularity of the encoding format. The modularity may be useful when encoding data using already encoded data. CCSDS 524.1-R-0 Page 4-24 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.4 ELEMENT 4.6.4.1 This pattern can be applied to encode any MAL::Element. 4.6.4.2 The following grammar rule shall be applied: <element>::= <abstract-attribute> | <abstract> | <final> 4.6.4.3 If the declared type of the element is MAL::Attribute, then the pattern Abstract Attribute shall be applied. 4.6.4.4 If the declared type of the element is MAL::Element, MAL::Composite, or an abstract composite, then the pattern Abstract shall be applied. 4.6.4.5 If the declared type of the element is final, then the pattern Final shall be applied. NOTE – Only the last message body element is allowed to be typed MAL::Element, MAL::Composite or an abstract composite type. So the pattern Abstract can only be applied to the last element of a message body. 4.6.5 ABSTRACT 4.6.5.1 This pattern shall be applied to encode an element whose declared type is abstract. 4.6.5.2 The following grammar rule shall be applied: <abstract>::= short-form<final> 4.6.5.3 The short form value shall be assigned with the short form of the element. 4.6.5.4 The short form of the element shall be computed as follows: a) the absolute short form shall be a long integer; b) the area number shall be shifted to the left-most position of the absolute short form: bits 48 to 63; c) the service number shall be shifted to the left of the absolute short form after the area number: bits 32 to 47; d) the relative type shall be assigned to the right-most position of the absolute short form: bits 0 to 31. 4.6.5.5 The short form shall be encoded as an unsigned integer (PTC = 3, PFC = 16). 4.6.5.6 The encoding format shall be: Short Form Unsigned integer (PTC = 3, PFC = 16) CCSDS 524.1-R-0 Element Pattern Final Page 4-25 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.6 ABSTRACT ATTRIBUTE 4.6.6.1 This pattern shall be applied to encode an abstract attribute. 4.6.6.2 The following grammar rule shall be applied: <abstract-attribute>::= attribute-tag<attribute> 4.6.6.3 The attribute tag shall be encoded as an unsigned 8 bits integer (PTC = 4, PFC = 4). 4.6.6.4 The attribute tag value shall be assigned with the relative short form of the attribute minus 1 in order that the tag starts from zero. 4.6.7 FINAL 4.6.7.1 This pattern shall be applied to encode: a) an element whose declared type is not abstract; b) an element whose declared type is abstract, and whose type has been resolved from its short form. 4.6.7.2 The following grammar rule shall be applied: <final>::= <attribute> | <enumeration> | <list> | <composite> 4.6.7.3 The choice shall be made according to the type of the element: a) if the type is a MAL attribute, then the pattern Attribute shall be applied; b) if the type is a MAL enumeration, then the pattern Enumeration shall be applied; c) if the type is a MAL list, then the pattern List shall be applied; d) if the type is a MAL composite, then the pattern Composite shall be applied. 4.6.8 ENUMERATION 4.6.8.1 This pattern shall be applied to encode an element whose declared type is MAL::Enumeration. 4.6.8.2 The following grammar rule shall be applied: <enumeration>::= unsigned-integer-4 | unsigned-variable-integer-1 |unsigned-variable-integer-2 4.6.8.3 The encoded value shall start at zero and be incremented by 1 for each element of the enumeration. CCSDS 524.1-R-0 Page 4-26 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.8.4 If the enumeration size is smaller or equal to 256, then the encoding format shall be an unsigned integer (PTC = 3) with a PFC equal to 4 (8 bits). 4.6.8.5 If the enumeration size is greater than 256 and smaller or equal to 65536, then the encoding format shall be an unsigned variable integer (PTC = 11) with a PFC equal to 1. 4.6.8.6 If the enumeration size is greater than 65536, then the encoding format shall be an unsigned variable integer (PTC = 11) with a PFC equal to 2. 4.6.9 COMPOSITE 4.6.9.1 This pattern shall be applied to encode a MAL composite. 4.6.9.2 The following grammar rule shall be applied: <composite>::= (<field>)* 4.6.9.3 The composite shall be encoded by applying the pattern Field to every field declared in the composite type definition. 4.6.9.4 The fields shall be encoded in the same order as they are declared. 4.6.9.5 If the composite inherits from another composite structure, the Composite pattern shall be applied first to the inherited composite and then to the composite. 4.6.10 FIELD 4.6.10.1 The following grammar rule shall be applied: <field>::= <nullable-element> | <element> 4.6.10.2 If the value of the attribute ‘canBeNull’ in the field declaration is TRUE, then the pattern Nullable Element shall be applied. 4.6.10.3 If the value of the attribute ‘canBeNull’ in the field declaration is FALSE, then the pattern Element shall be applied. 4.6.11 LIST 4.6.11.1 This pattern shall be applied to encode an element whose declared type is a MAL list. 4.6.11.2 The following grammar rule shall be applied: <list>::= list-length (<nullable-element>)* 4.6.11.3 The list-length value shall be assigned with the length of the list. CCSDS 524.1-R-0 Page 4-27 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.11.4 The pattern Nullable Element shall be applied to every element contained in the list. 4.6.11.5 The encoding format shall be: List Length Unsigned variable integer (PTC = 11, PFC = 2) Element Pattern Nullable Element Repeated for every element in the list 4.6.12 ATTRIBUTE 4.6.12.1 This pattern shall be applied to encode an element whose declared type is a MAL attribute. 4.6.12.2 The following grammar rule shall be applied: <attribute>::= <blob> | <boolean> | <duration> | <float> | <double> | <identifier> | <octet> | <uoctet> | <short> | <ushort> | <integer> | <uinteger> | <long> | <ulong> | <string> | <time> | <fine-time> | <uri> 4.6.12.3 The choice shall be made according to the type of the attribute. 4.6.13 BLOB 4.6.13.1 This pattern shall be applied to encode an element whose declared type is MAL::Blob. 4.6.13.2 The following grammar rule shall be applied: <blob>::= variable-length-octet-string 4.6.13.3 The terminal value shall be a variable length octet-string (PTC = 7, PFC = 0). 4.6.14 BOOLEAN 4.6.14.1 This pattern shall be applied to encode an element whose declared type is MAL::Boolean. 4.6.14.2 The following grammar rule shall be applied: <boolean>::= boolean 4.6.14.3 The terminal value shall be a Boolean (PTC = 1). 4.6.15 DURATION 4.6.15.1 This pattern shall be applied to encode an element whose declared type is MAL::Duration. CCSDS 524.1-R-0 Page 4-28 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.15.2 The following grammar rule shall be applied: <duration>::= relative-time 4.6.15.3 The terminal value shall be a Relative Time (PFC = 10) with a PFC given by the QoS property DURATION_FORMAT CODE. 4.6.16 FLOAT 4.6.16.1 This pattern shall be applied to encode an element whose declared type is MAL::Float. 4.6.16.2 The following grammar rule shall be applied: <float>::= real-1 4.6.16.3 The terminal value shall be a real (PTC = 5, PFC = 1, 32 bits). 4.6.17 DOUBLE 4.6.17.1 This pattern shall be applied to encode an element whose declared type is MAL::Double. 4.6.17.2 The following grammar rule shall be applied: <double>::= real-2 4.6.17.3 The terminal value shall be a real (PTC = 5, PFC = 2, 64 bits); 4.6.18 IDENTIFIER 4.6.18.1 This pattern shall be applied to encode an element whose declared type is MAL::Identifier. 4.6.18.2 The following grammar rule shall be applied: <identifier>::= character-string 4.6.18.3 The terminal value shall be a character-string (PTC = 8). 4.6.19 OCTET 4.6.19.1 This pattern shall be applied to encode an element whose declared type is MAL::Octet. 4.6.19.2 The following grammar rule shall be applied: <octet>::= signed-integer-4 CCSDS 524.1-R-0 Page 4-29 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.19.3 The terminal value shall be a signed integer (PTC = 4) with a PFC equal to 4 (8 bits). 4.6.20 UOCTET 4.6.20.1 This pattern shall be applied to encode an element whose declared type is MAL::UOctet. 4.6.20.2 The following grammar rule shall be applied: <uoctet>::= unsigned-integer-4 4.6.20.3 The terminal value shall be an unsigned integer (PTC = 3) with a PFC equal to 4 (8 bits). 4.6.21 SHORT 4.6.21.1 This pattern shall be applied to encode an element whose declared type is MAL::Short. 4.6.21.2 The following grammar rule shall be applied: <short>::= signed-variable-integer-1 4.6.21.3 The terminal value shall be a signed variable integer (PTC = 12) with a PFC equal to 1. 4.6.22 USHORT 4.6.22.1 This pattern shall be applied to encode an element whose declared type is MAL::UShort. 4.6.22.2 The following grammar rule shall be applied: <ushort>::= unsigned-variable-integer-1 4.6.22.3 The terminal value shall be an unsigned variable integer (PTC = 11) with a PFC equal to 1. 4.6.23 INTEGER 4.6.23.1 This pattern shall be applied to encode an element whose declared type is MAL::Integer. 4.6.23.2 The following grammar rule shall be applied: <integer>::= signed-variable-integer-2 CCSDS 524.1-R-0 Page 4-30 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.23.3 The terminal value shall be a signed variable integer (PTC = 12) with a PFC equal to 2. 4.6.24 UINTEGER 4.6.24.1 This pattern shall be applied to encode an element whose declared type is MAL::UInteger. 4.6.24.2 The following grammar rule shall be applied: <uinteger>::= unsigned-variable-integer-2 4.6.24.3 The terminal value shall be an unsigned variable integer (PTC = 11) with a PFC equal to 2. 4.6.25 LONG 4.6.25.1 This pattern shall be applied to encode an element whose declared type is MAL::Long. 4.6.25.2 The following grammar rule shall be applied: <long>::= signed-variable-integer-3 4.6.25.3 The terminal value shall be a signed variable integer (PTC = 12) with a PFC equal to 3. 4.6.26 ULONG 4.6.26.1 This pattern shall be applied to encode an element whose declared type is MAL::ULong. 4.6.26.2 The following grammar rule shall be applied: <ulong>::= unsigned-variable-integer-3 4.6.26.3 The terminal value shall be an unsigned variable integer (PTC = 11) with a PFC equal to 3. 4.6.27 STRING 4.6.27.1 This pattern shall be applied to encode an element whose declared type is MAL::String. 4.6.27.2 The following grammar rule shall be applied: <string>::= character-string 4.6.27.3 The terminal value shall be a character-string parameter (PTC = 8). CCSDS 524.1-R-0 Page 4-31 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding 4.6.28 TIME 4.6.28.1 This pattern shall be applied to encode an element whose declared type is MAL::Time. 4.6.28.2 The following grammar rule shall be applied: <time>::= absolute-time 4.6.28.3 The terminal value shall be an absolute time (PTC = 9) with a PFC given by the QoS property TIME_FORMAT_CODE. 4.6.29 FINETIME 4.6.29.1 This pattern shall be applied to encode an element whose declared type is MAL::FineTime. 4.6.29.2 The following grammar rule shall be applied: <fine-time>::= absolute-time 4.6.29.3 The terminal value shall be an absolute time (PTC = 9) with a PFC given by the QoS property FINE_TIME_FORMAT_CODE. 4.6.30 URI 4.6.30.1 This pattern shall be applied to encode an element which declared type is MAL::URI. 4.6.30.2 The following grammar rule shall be applied: <uri>::= character-string 4.6.30.3 The terminal value shall be a character-string parameter (PTC = 8). CCSDS 524.1-R-0 Page 4-32 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding ANNEX A PROTOCOL IMPLEMENTATION CONFORMANCE STATEMENT (NORMATIVE) A1 INTRODUCTION This annex provides the Protocol Implementation Conformance Statement (PICS) Requirements List (PRL) for implementations of the MAL space packet binding standard. The PICS for an implementation is generated by completing the PRL in accordance with the instructions below. An implementation’s completed PRL is called the PICS. The PICS states which protocol features have been implemented. The following entities can use the PICS: – the protocol implementer, as a checklist to reduce the risk of failure to conform to the standard through oversight; – the supplier and acquirer or potential acquirer of the implementation, as a detailed indication of the capabilities of the implementation, stated relative to the common basis for understanding provided by the standard PICS proforma; – the user or potential user of the implementation, as a basis for initially checking the possibility of interworking with another implementation (note that, while interworking can never be guaranteed, failure to interwork can often be predicted from incompatible PICSes); – a protocol tester, as the basis for selecting appropriate tests against which to assess the claim for conformance of the implementation. A1.1 A1.1.1 NOTATION Status Column Symbols The following are used in the PRL to indicate the status of features: Symbol M O A1.1.2 Meaning Mandatory Optional Support Column Symbols The support of every item as claimed by the implementer is stated by entering the appropriate answer (Y, N, or N/A) in the support column. CCSDS 524.1-R-0 Page A-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding Symbol Y N N/A A2 A2.1 Ref 1 2 3 A2.2 Ref 1 2 3 4 5 6 7 8 A2.3 Meaning Yes, supported by the implementation No, not supported by the implementation Not applicable GENERAL INFORMATION IDENTIFICATION OF PICS Question Date of Statement (DD/MM/YYYY) CCSDS document number containing the PICS Date of CCSDS document containing the PICS Response IDENTIFICATION OF IMPLEMENTATION UNDER TEST (IUT) Question Implementation name Implementation version Machine name Machine version Operating System name Operating System version Special Configuration Other Information Response USER IDENTIFICATION Supplier Contact Point for Queries Implementation name(s) and Versions Other Information Necessary for full identification —e.g., name(s) and version(s) for machines and/or operating systems; System Name(s) A2.4 INSTRUCTIONS FOR COMPLETING THE PRL An implementer shows the extent of compliance to the protocol by completing the PRL; the resulting completed PRL is called a PICS. CCSDS 524.1-R-0 Page A-2 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding A3 MO MAL SPACE PACKET BINDING PICS A3.1 Item 1-1 A3.2 Item 2-1 2-2 A3.3 GENERAL REQUIREMENTS Protocol Feature Bit Numbering Convention Reference 1.6.3 Status M Support Reference 3.1 3.2 Status M M Support Reference 4.2 4.3, 4.5 4.5.5 4.4, 4.5 4.5.6, 4.5.7, 4.5.8, 4.5.9, 4.5.10, 4.5.11 4.5.3 4.6 Status M M O M O Support INTERFACE SPECIFICATION Protocol Feature Provided Interface Required Interface PROTOCOL SPECIFICATION Item 3-1 3-2 3-3 3-4 3-5 Protocol Feature Primary Header Encoding Secondary Header Encoding Field ‘Timestamp’ User Data Field Encoding Fields ‘QoS’, ‘Session’, ‘Priority’, ‘Network Zone’, ‘Session Name’, ‘Domain Identifier’ 3-6 3-7 Field ‘Authentication Identifier’ Encoding Patterns CCSDS 524.1-R-0 Page A-3 O M November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding ANNEX B ACRONYMS (INFORMATIVE) APID Application Process Identifier BNF Backus-Naur Form IP Interaction Pattern LSB Least Significant Bit MAL Message Abstract/Abstraction Layer MSB Most Significant Bit (MSB) PDU Protocol Data Unit PFC Parameter Format Code PTC Parameter Type Code QoS Quality of Service SDU Service Data Unit SM&C CCSDS Spacecraft Monitoring and Control SP Space Packet SPP space packet protocol TC Telecommand TM Telemetry URI Universal Resource Identifier CCSDS 524.1-R-0 Page B-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding ANNEX C INFORMATIVE REFERENCES (INFORMATIVE) [C1] Mission Operations Services Concept. Report Concerning Space Data System Standards, CCSDS 520.0-G-3. Green Book. Issue 3. Washington, D.C.: CCSDS, December 2010. [C2] Time Code Formats. Recommendation for Space Data Systems Standards, CCSDS 301.0-B-2. Blue Book. Issue 2. London, England.: CCSDS, April 1990. CCSDS 524.1-R-0 Page C-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding ANNEX D SECURITY, SANA, AND PATENT CONSIDERATIONS (INFORMATIVE) D1 SECURITY CONSIDERATIONS This annex subsection discusses various aspects of security with respect to the MAL space packet binding protocol. D1.1 SECURITY BACKGROUND The following security aspects are typically separated: a) data and data origin authentication: corroboration of the source of information that is contained in a message; b) authorization: conveyance, to another entity, of official sanction to do or be something; c) confidentiality: keeping information secret from all but those who are authorized to see it; d) integrity: detecting that information has not been altered by unauthorized or unknown means. The MAL space packet binding protocol is not responsible for ensuring all these security aspects; however, it has to fulfill the security criteria expected by the MAL layer from every transport binding. These criteria are: a) the transport layer is responsible for the transmission of the authentication identifier assigned by the MAL layer to every consumer; b) the transport layer has to provide authentication, confidentiality, and integrity of the transmitted messages. D1.2 SECURITY CONCERNS Authentication of the consumers is done above the MAL layer through a specific service that enables a consumer to get an authentication identifier. The meaning of that authentication identifier is dependent on the security system used for the deployment. This identifier must allow the MAL access control implementation to perform a lookup for authorization purposes. CCSDS 524.1-R-0 Page D-1 November 2012 DRAFT CCSDS RECOMMENDED STANDARD FOR Mission Operations Message Abstraction Layer—Space Packet Binding The authentication identifier is conveyed by the space packet binding in the parameter ‘Authentication Identifier’ of the space packet user data field; however, this parameter may be omitted as it is optional. Authorization is done by the MAL access control that performs any required authorization checks and converts the consumer identifier into technology dependent security credentials. It is assumed that message authentication and confidentiality are provided beneath the space packet protocol layer and are transparent to the space packet binding and above. As a consequence, once a message rises above the space packet protocol layer, the message has been authenticated and all encryption has been removed. Integrity is ensured by the protocol that conveys the space packets. D1.3 POTENTIAL THREATS AND ATTACK SCENARIOS Potential threats and attack scenarios depend on the layer that is beneath the space packet protocol because this is the layer that defines the security algorithms ensuring authentication, confidentiality and integrity. D1.4 CONSEQUENCES OF NOT APPLYING SECURITY The only security aspect that may not be applied is the transmission of the authentication identifier in the space packet user data field. If the authentication identifier is not transmitted by the space packet binding, then delivered messages may be rejected by the MAL access control. D2 SANA CONSIDERATIONS The recommendations of this document request SANA to add the name ‘malspp’ in the registry dedicated to the protocol names used by MAL technology bindings. D3 PATENT CONSIDERATIONS No patents are known to apply to this Recommended Standard. CCSDS 524.1-R-0 Page D-2 November 2012