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
(CCSDS A02.1-Y-4), and the record of Agency participation in the authorization of this document can be obtained from the CCSDS Secretariat at the e-mail address below.
The Consultative Committee for Space Data Systems (CCSDS) is an organization officially established by the management of its members. The Committee meets periodically to address data systems problems that are common to all participants, and to formulate sound technical solutions to these problems. Inasmuch as participation in the CCSDS is completely voluntary, the results of Committee actions are termed Recommendations and are not in themselves considered binding on any Agency.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. CCSDS has processes for identifying patent issues and for securing from the patent holder agreement that all licensing policies are reasonable and non-discriminatory. However, CCSDS does not have a patent law staff, and CCSDS shall not be held responsible for identifying any or all such patent rights.
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 Organization and Processes for the Consultative Committee for Space Data Systems (CCSDS A02.1-Y-4). Current versions of CCSDS documents are maintained at the CCSDS Web site:
Questions relating to the contents or status of this document should be sent to the CCSDS Secretariat at the e-mail address indicated on page i.
At time of publication, the active Member and Observer Agencies of the CCSDS were:
NOTE – Substantive changes from the previous issue are marked with change bars in the inside margin.
1 Introduction lxxvi
1.1 Purpose of this Recommended PRACTICE lxxvi
1.2 Scope lxxvi
1.2.1 Items covered by this Recommended Practice lxxvi
1.2.2 Conformance to CCSDS Recommended Standards lxxvii
1.3 Applicability lxxvii
1.4 Rationale lxxviii
1.5 Document Structure lxxix
1.5.1 Overview lxxix
1.5.1.1 Part I—The Descriptive Part lxxix
1.5.1.2 Part II—The Prescriptive Part lxxix
1.5.1.3 Annexes lxxix
1.5.2 Documentation Tree for SLE Services and SLE API lxxx
1.6 Definitions lxxxii
1.6.1 Definition of Terms used in this Document lxxxii
1.6.1.1 Definitions from the SLE Reference Model lxxxii
1.6.1.2 Definitions from the ISO Abstract Service Definitions and Conventions lxxxiii
1.6.1.3 Definitions from SLE Transfer Service Specifications lxxxiii
1.6.1.4 Additional Definitions lxxxiii
1.6.1.4.1 General lxxxiii
1.6.1.4.2 Component lxxxiii
1.6.1.4.3 Component Interface lxxxiv
1.6.1.4.4 Component Object lxxxiv
1.6.1.4.5 Client lxxxiv
1.6.1.4.6 Interface lxxxiv
1.6.2 Nomenclature lxxxiv
1.6.2.1 Normative Text lxxxiv
1.6.2.2 Informative Text lxxxv
1.6.2.3 Use of the Term ‘Client’ lxxxv
1.6.2.4 Use of the Term ‘Release’ lxxxv
1.7 References lxxxv
2 Description of the SLE API lxxxviii
2.1 Introduction lxxxviii
2.1.1 Scope of the Model lxxxviii
2.1.2 Presentation of the Model lxxxix
2.2 Specification Method and Notation lxxxix
2.2.1 Introduction lxxxix
2.2.2 Interface xci
2.2.3 Component Class xci
2.2.4 Component Internal Class xcii
2.2.5 Entity xcii
2.2.6 Naming Conventions xciii
2.2.6.1 Component Classes xciii
2.2.6.2 Interfaces xciii
2.2.6.3 Entities and Component Internal Classes xciii
2.2.7 Dynamic Modeling xciii
2.3 Logical View xciv
2.3.1 Structure xciv
2.3.2 Package API Proxy xcv
2.3.2.1 Overview xcv
2.3.2.2 Component Class API Proxy xcvii
2.3.2.2.1 General xcvii
2.3.2.2.2 Responsibilities xcvii
2.3.2.2.2.1 Configuration and Initialization of the Proxy Component xcvii
2.3.2.2.2.2 Dynamic Port Registration and De-registration xcviii
2.3.2.2.2.3 Management of Initiating Associations xcviii
2.3.2.2.2.4 Management of Responding Associations xcviii
2.3.2.2.2.5 Logging and Notification xcviii
2.3.2.2.2.6 Diagnostic Traces xcix
2.3.2.2.3 Attributes xcix
2.3.2.2.3.1 Protocol ID xcix
2.3.2.2.3.2 Bind Roles Supported xcix
2.3.2.2.4 Behavior and Use xcix
2.3.2.2.5 Exported Interfaces c
2.3.2.2.6 Dependencies c
2.3.2.3 Component Class Association c
2.3.2.3.1 General c
2.3.2.3.2 Responsibilities ci
2.3.2.3.2.1 Mapping of Port Identifiers ci
2.3.2.3.2.2 Processing of SLE Protocol Data Units ci
2.3.2.3.2.3 Basic SLE Protocol Execution ci
2.3.2.3.2.4 Authentication ci
2.3.2.3.2.5 Monitoring of the State of the Data Communication Connection ci
2.3.2.3.2.6 Queuing of Outbound PDUs cii
2.3.2.3.2.7 Removal of Transfer Buffer PDUs cii
2.3.2.3.2.8 Limiting Inbound Data Traffic cii
2.3.2.3.2.9 Logging and Notification cii
2.3.2.3.2.10 Diagnostic Traces cii
2.3.2.3.3 Exported Interfaces ciii
2.3.2.3.4 Dependencies ciii
2.3.2.4 Internal Class Initiating Association ciii
2.3.2.4.1 General ciii
2.3.2.4.2 Responsibilities ciii
2.3.2.4.2.1 Association Establishment ciii
2.3.2.4.2.2 Association Release civ
2.3.2.4.2.3 Access Control civ
2.3.2.5 Internal Class Responding Association civ
2.3.2.5.1 General civ
2.3.2.5.2 Responsibilities civ
2.3.2.5.2.1 Association Establishment civ
2.3.2.5.2.2 Association Release cv
2.3.2.5.2.3 Access Control cv
2.3.2.5.2.4 Handling of Service Types and Version Numbers cv
2.3.2.5.3 Dependencies cv
2.3.2.6 Internal Class PDU Translator cvi
2.3.2.6.1 General cvi
2.3.2.6.2 Responsibilities cvi
2.3.2.6.2.1 Association of Returns with Invocations cvi
2.3.2.6.2.2 Encoding of PDUs cvi
2.3.2.6.2.3 Decoding of PDUs cvi
2.3.2.7 Internal Class PDU Translator cvii
2.3.2.8 Proxy Configuration Database cvii
2.3.2.8.1 General cvii
2.3.2.8.2 Local Application cviii
2.3.2.8.3 Peer Application cviii
2.3.2.8.4 Port cviii
2.3.2.8.5 Supported Services cviii
2.3.2.8.6 Interfaces Defined by the Package cviii
2.3.3 Package API Service Element cix
2.3.3.1 Overview cix
2.3.3.2 Component Class API Service Element cxii
2.3.3.2.1 General cxii
2.3.3.2.2 Responsibilities cxii
2.3.3.2.2.1 Configuration and Initialization of the API Service Element Component cxii
2.3.3.2.2.2 Control of Proxies cxii
2.3.3.2.2.3 Management of Service Instances cxii
2.3.3.2.2.4 Location of Service Instances cxiii
2.3.3.2.2.5 Access Control cxiii
2.3.3.2.2.6 Logging and Notification cxiii
2.3.3.2.2.7 Diagnostic Traces cxiii
2.3.3.2.3 Attributes cxiv
2.3.3.2.3.1 Roles Supported cxiv
2.3.3.2.3.2 Provider Initiated Bind Supported cxiv
2.3.3.2.4 Behavior and Use cxiv
2.3.3.2.5 Exported Interfaces cxv
2.3.3.2.6 Dependencies cxv
2.3.3.3 Component Class API Service Instance cxvi
2.3.3.3.1 General cxvi
2.3.3.3.2 Responsibilities cxvi
2.3.3.3.2.1 Configuration of the Service Instance cxvi
2.3.3.3.2.2 Control of Initiating Associations cxvi
2.3.3.3.2.3 Processing of SLE Protocol Data Units cxvi
2.3.3.3.2.4 SLE Protocol Execution cxvii
2.3.3.3.2.5 Management of Invocation Identifiers cxvii
2.3.3.3.2.6 Timeout Monitoring for Operation Returns cxvii
2.3.3.3.2.7 Pre-setting of Operation Object Parameters cxvii
2.3.3.3.2.8 Logging and Notification cxvii
2.3.3.3.2.9 Diagnostic Traces cxvii
2.3.3.3.3 Behavior cxviii
2.3.3.3.4 Exported Interfaces cxviii
2.3.3.3.5 Dependencies cxix
2.3.3.4 Internal Class SI User cxix
2.3.3.4.1 General cxix
2.3.3.4.2 Responsibilities cxix
2.3.3.4.2.1 Processing of SLE Protocol Data Units cxix
2.3.3.4.2.2 Buffering for Return Services cxix
2.3.3.4.2.3 Flow Control for Forward Services cxix
2.3.3.5 Internal Class SI Provider cxx
2.3.3.5.1 General cxx
2.3.3.5.2 Responsibilities cxx
2.3.3.5.2.1 Processing of SLE Protocol Data Units cxx
2.3.3.5.2.2 Buffering for Return Services cxx
2.3.3.5.2.3 Buffering in the Delivery Modes Timely Online and Complete Online cxx
2.3.3.5.2.4 Buffering in the Delivery Mode Timely Online cxx
2.3.3.5.2.5 Flow Control for Complete Online and Offline Delivery Modes cxxi
2.3.3.5.2.6 GET-PARAMETER Operation cxxi
2.3.3.5.2.7 Status Reporting cxxi
2.3.3.5.2.8 Service Provisioning Period cxxi
2.3.3.6 Internal Class SI User cxxii
2.3.3.7 Component Class SI Provider cxxii
2.3.3.7.1 General cxxii
2.3.3.7.2 Responsibilities cxxii
2.3.3.7.2.1 Processing of SLE Protocol Data Units cxxii
2.3.3.7.2.2 Service Specific Configuration cxxii
2.3.3.7.2.3 Update of Service Parameters cxxii
2.3.3.7.2.4 GET PARAMETER and Status Reporting cxxii
2.3.3.7.2.5 Handling of Service Parameters after UNBIND or Abort cxxii
2.3.3.7.3 Exported Interfaces cxxii
2.3.3.8 Service Element Configuration Database cxxiii
2.3.3.9 Interfaces Defined by the Package cxxiii
2.3.4 Package Common Control Interfaces cxxiv
2.3.4.1 Overview cxxiv
2.3.4.2 Sequential Behavior cxxv
2.3.4.2.1 Definitions cxxv
2.3.4.2.2 Sequential Control Interface cxxv
2.3.4.2.2.1 General cxxv
2.3.4.2.2.2 Exported Interfaces cxxvii
2.3.4.2.2.3 Dependencies cxxvii
2.3.4.2.3 Component Class Event Monitor cxxvii
2.3.4.2.3.1 General cxxvii
2.3.4.2.3.2 Exported Interfaces cxxvii
2.3.4.2.3.3 Dependencies cxxvii
2.3.4.2.4 Component Class Event Processor cxxviii
2.3.4.2.4.1 General cxxviii
2.3.4.2.4.2 Exported Interfaces cxxviii
2.3.4.2.5 Component Class Timer Handler cxxviii
2.3.4.2.5.1 General cxxviii
2.3.4.2.5.2 Exported Interfaces cxxviii
2.3.4.2.5.3 Dependencies cxxviii
2.3.4.2.6 Component Class Timeout Processor cxxix
2.3.4.2.6.1 General cxxix
2.3.4.2.6.2 Exported Interfaces cxxix
2.3.4.3 Concurrent Behavior cxxix
2.3.4.3.1 Definitions cxxix
2.3.4.3.2 Concurrent Control Interface cxxx
2.3.4.4 Trace Control Interface cxxx
2.3.4.5 Interfaces Defined by the Package cxxx
2.3.5 Package SLE Application cxxxi
2.3.5.1 Overview cxxxi
2.3.5.2 Component Class SLE Application Instance cxxxiii
2.3.5.2.1 General cxxxiii
2.3.5.2.2 Exported Interfaces cxxxiii
2.3.5.2.3 Dependencies cxxxiii
2.3.5.3 Internal Class User Application cxxxiii
2.3.5.4 Internal Class Provider Application cxxxiii
2.3.5.4.1 General cxxxiii
2.3.5.4.2 Dependencies cxxxiv
2.3.5.5 Component Class Reporter cxxxiv
2.3.5.5.1 General cxxxiv
2.3.5.5.2 Exported Interfaces cxxxiv
2.3.5.6 Component Class Trace cxxxiv
2.3.5.6.1 General cxxxiv
2.3.5.6.2 Exported Interfaces cxxxiv
2.3.5.7 Component Class Time Source cxxxv
2.3.5.7.1 General cxxxv
2.3.5.7.2 Exported Interfaces cxxxv
2.3.5.8 Interfaces Defined by the Package cxxxv
2.3.6 Package SLE Operations cxxxv
2.3.6.1 Overview cxxxv
2.3.6.2 Component Class Operation Factory cxxxvii
2.3.6.2.1 General cxxxvii
2.3.6.2.2 Exported Interfaces cxxxvii
2.3.6.3 Component Class Operation cxxxvii
2.3.6.3.1 General cxxxvii
2.3.6.3.2 Attributes cxxxvii
2.3.6.3.2.1 Common Attributes cxxxvii
2.3.6.3.2.2 Service Type and Operation Type cxxxvii
2.3.6.3.2.3 Version Number cxxxvii
2.3.6.3.2.4 Confirmed Operation cxxxvii
2.3.6.3.2.5 Invoker Credentials cxxxvii
2.3.6.3.3 Behavior and Use cxxxviii
2.3.6.3.3.1 Checking of Invocation Parameters cxxxviii
2.3.6.3.3.2 Support for Concurrent Flows of Control cxxxviii
2.3.6.3.4 Exported Interfaces cxxxviii
2.3.6.4 Component Class Confirmed Operation cxxxviii
2.3.6.4.1 General cxxxviii
2.3.6.4.2 Attributes cxxxviii
2.3.6.4.2.1 Common Attributes cxxxviii
2.3.6.4.2.2 Operation Result cxxxviii
2.3.6.4.2.3 Diagnostic Type cxxxix
2.3.6.4.2.4 Common Diagnostics cxxxix
2.3.6.4.2.5 Invocation Identifier cxxxix
2.3.6.4.2.6 Performer Credentials cxxxix
2.3.6.4.3 Behavior and Use cxxxix
2.3.6.4.3.1 Checking of Return Parameters cxxxix
2.3.6.4.3.2 Exported Interfaces cxxxix
2.3.6.5 Component Class cxxxix
2.3.6.6 Component Class cxl
2.3.6.7 Operations for Common Association Management cxl
2.3.6.7.1 General cxl
2.3.6.7.2 Exported Interfaces cxli
2.3.6.8 Other Common SLE Operations cxli
2.3.6.8.1 General cxli
2.3.6.8.2 Exported Interfaces cxlii
2.3.6.9 Interfaces Defined by the Package cxlii
2.3.7 Package SLE Utilities cxliii
2.3.7.1 Overview cxliii
2.3.7.2 Component Class Utility Factory cxliv
2.3.7.3 Component Class Time cxliv
2.3.7.4 Component Class Service Instance Identifier cxliv
2.3.7.5 Component Class Credentials cxliv
2.3.7.6 Component Class Security Attributes cxliv
2.3.7.7 Component Class Memory Manager cxliv
2.3.7.8 Interfaces Defined by the Package cxlv
2.4 Security aspects of Core SLE API Capabilities cxlv