CAUTION - This text file is provided for the sole purpose of allowing text-string searching. It is NOT a faithful reproduction of the published document: figures, equations, special characters, and character attributes used to convey information are not reproduced in this text file; tables, which may be reproduced as text, may have lost crucial row or column alignment. A Portable Document Format (PDF) version of this document is available in the main document listing. The PDF file contains all elements of the document as published by the CCSDS. The PDF file should be used in all cases where there is a need for faithful reproduction of the information contained in the published document.
CONSULTATIVE COMMITTEE FOR SPACE DATA SYSTEMS RECOMMENDATION FOR SPACE DATA SYSTEM STANDARDS +----------------------------------+ | | | ADVANCED ORBITING SYSTEMS, | | NETWORKS AND DATA LINKS: | | | | ARCHITECTURAL SPECIFICATION | | | +----------------------------------+ CCSDS 701.0-B-2 BLUE BOOK November 1992 AUTHORITY ******************************************* * Issue: Blue Book, Issue 2 * * Date: November 1992 * * Location: Annapolis, Maryland, USA * ******************************************* This Recommendation reflects the consensus technical agreement of the following member Agencies of the Consultative Committee for Space Data Systems (CCSDS): o British National Space Centre (BNSC)/United Kingdom. o Canadian Space Agency (CSA)/Canada. o Central Research Institute of Machine Building (TsNIIMash)/ Russian Federation. o Centre National D'Etudes Spatiales (CNES)/France. o Deutsche Forschungsanstalt fuer Luft- und Raumfahrt e.V.(DLR)/Germany. o European Space Agency (ESA)/Europe. o Instituto de Pesquisas Espaciais (INPE)/Brazil. o National Aeronautics and Space Administration (NASA)/USA. o National Space Development Agency of Japan (NASDA)/Japan. The following observer Agencies also concur with this Recommendation: o Chinese Academy of Space Technology (CAST)/People's Republic of China. o Central Research Institute of Physics (CRIP)/Hungary. o Department of Communications, Communications Research Centre (DOC- CRC)/Canada. o Institute of Space and Astronautical Science (ISAS)/Japan. This Recommendation is published and maintained by: CCSDS Secretariat Program Integration Division (Code-OI) National Aeronautics and Space Administration Washington, DC 20546, USA STATEMENT OF INTENT The Consultative Committee for Space Data Systems (CCSDS) is an organization officially established by the management of member space Agencies. 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 considered binding on any Agency. This RECOMMENDATION is issued by, and represents the consensus of, the CCSDS Plenary body. Agency endorsement of this RECOMMENDATION is entirely voluntary. Endorsement, however, indicates the following understandings: o Whenever an Agency establishes a CCSDS-related STANDARD, this STANDARD will be in accord with the relevant RECOMMENDATION. Establishing such a STANDARD does not preclude other provisions which an Agency may develop. o Whenever an Agency establishes a CCSDS-related STANDARD, the Agency will provide other CCSDS member Agencies with the following information: -- The STANDARD itself. -- The anticipated date of initial operational capability. -- The anticipated duration of operational service. o Specific service arrangements shall be made via memoranda of agreement. Neither this RECOMMENDATION nor any ensuing STANDARD is a substitute for a memorandum of agreement. No later than five years from its date of issuance, this Recommendation will be reviewed by the CCSDS to determine whether it should: (1) remain in effect without change; (2) be changed to reflect the impact of new technologies, new requirements, or new directions; or, (3) be retired or cancelled. In those instances when a new version of a RECOMMENDATION is issued, existing CCSDS-related Agency standards and implementations are not negated or deemed to be non-CCSDS compatible. It is the responsibility of each Agency to determine when such standards or implementations are to be modified. Each Agency is, however, strongly encouraged to direct planning for its new standards and implementations towards the later version of the Recommendation. FOREWORD This document, which is a technical Recommendation prepared by the Consultative Committee for Space Data Systems (CCSDS), is intended for use by participating space Agencies in their development of "Advanced Orbiting Systems". The CCSDS has previously developed a set of layered Telemetry and Telecommand Recommendations which meet the common requirements of conventional missions, as characterized by the bidirectional (but asymmetric) transfer of data between moderately complex space and ground systems, serving a moderate number of users, at low-to-medium data rates. This document extends the previous set of CCSDS Recommendations for conventional missions, to accommodate extra services needed by Advanced Orbiting Systems. Target Advanced Orbiting Systems include manned and man- tended space stations, unmanned space platforms, free-flying spacecraft, and new space transportation systems, many of which require a richer repertoire of data handling services than are provided by the conventional Recommendations. This Recommendation allows the implementing organizations within each Agency to proceed coherently with the development of compatible Standards for the flight and ground elements associated with Advanced Orbiting Systems that are within their cognizance. Agency Standards derived from this Recommendation may implement only a subset of the optional features allowed herein, or may incorporate features not addressed by the Recommendation. Through the process of normal evolution, it is expected that expansion, deletion, or modification of this document may occur. This Recommendation is therefore subject to CCSDS document management and change control procedures which are defined in Reference [1]. DOCUMENT CONTROL Document/Title Date Status and Substantive Changes CCSDS 701.0-B-1, October 1989 Original Issue Recommendation for Space Data Systems Standards: Advanced Orbiting Systems, Networks and Data Links: Architectural November 1992 1.Supersedes Issue-1 Specification, Issue 1 2.No substantive technical changes - primarily CCSDS 701.0-B-2, incorporates numerous small Recommendation for clarifications resulting from Space Data Systems formal protocol validation and Standards: Advanced early implementation Orbiting Systems, experience: Networks and Data a.refines Insert service Links: Architectural addressing by introducing a Specification, Issue 2 "LinkID"; b.adds the APID as a mandatory parameter for Path service; c.adds the PCID as a mandatory parameter for Multiplexing service; d.adds the VCDU Loss Flag as a mandatory parameter for the VCA service; e.describes operation of the Bitstream Data Loss Flag; f.corrects editorial errors in Figures 5-9 and 5-15; g.provides clearer discussion of the Bit Transition Generator; h.defines SCID naming domain conventions. 3.Adds a more complete specification of the VCDU Header Error Control. 4.Adds a new Annex on Packet Timetagging. 5.Deletes references to undeveloped documentation (SLAP, Management and Signalling). NOTE: All text changes from the previous issue are flagged with change bars in the margin. Deleted text is indicated by a single short dash ("-") in the margin. CONTENTS Sections Page REFERENCES viii 1 INTRODUCTION 1-1 1.1 PURPOSE OF THIS DOCUMENT 1-1 1.2 SCOPE OF THIS DOCUMENT 1-1 1.3 APPLICABILITY OF THIS DOCUMENT 1-2 1.4 INTERFACES WITH CONVENTIONAL SYSTEMS 1-2 1.5 ORGANIZATION AND STATUS OF THIS DOCUMENT 1-3 1.6 BIT NUMBERING CONVENTION AND NOMENCLATURE 1-4 2 SYSTEM OVERVIEW 2-1 2.1 SCOPE OF THE CCSDS PRINCIPAL NETWORK 2-1 2.2 CROSS SUPPORT 2-2 2.3 OVERVIEW OF SERVICES WITHIN THE CCSDS PRINCIPAL NETWORK 2-3 2.4 ARCHITECTURE OF THE SPACE LINK SUBNET 2-11 2.5 ARCHITECTURE OF THE CCSDS PATH SERVICE 2-17 2.6 ARCHITECTURE OF THE CCSDS INTERNET SERVICE 2-20 2.7 MANAGEMENT OF THE CCSDS PRINCIPAL NETWORK 2-21 3 PATH SERVICE AND PROTOCOL SPECIFICATION 3-1 3.1 INTRODUCTION 3-1 3.2 SERVICE INTERFACE SPECIFICATION 3-6 3.3 PATH PROTOCOL SPECIFICATION 3-11 3.4 MANAGEMENT OF THE PATH SERVICE 3-14 4 CCSDS INTERNET SERVICE AND PROTOCOL SPECIFICATION 4-1 4.1 INTERNET SERVICE DEFINITION 4-1 4.2 INTERNET PROTOCOL SPECIFICATION 4-1 4.3 INTERNET PROTOCOL CONFORMANCE STATEMENT 4-1 5 SPACE LINK SUBNETWORK SERVICE AND PROTOCOL SPECIFICATION 5-1 5.1 INTRODUCTION 5-1 5.2 SPACE LINK SUBNETWORK PERFORMANCE REQUIREMENTS 5-10 5.3 VIRTUAL CHANNEL LINK CONTROL SUBLAYER 5-12 5.4 VIRTUAL CHANNEL ACCESS SUBLAYER 5-32 5.5 MANAGEMENT OF THE SPACE LINK SUBNETWORK 5-69 6 SPACE LINK ARQ PROCEDURE: SERVICE DEFINITION 6-1 6.1 INTRODUCTION 6-1 6.2 OPERATIONAL CONCEPT AND ORGANIZATION OF THE SLAP 6-1 6.3 SLAP SERVICE INTERFACE SPECIFICATION 6-4 6.4 REQUIREMENTS FOR THE SLAP PROTOCOL 6-9 7 CROSS SUPPORT OPTIONS 7-1 7.1 CROSS SUPPORT CONCEPTS 7-1 7.2 CPN SERVICE OPTIONS 7-2 7.3 CROSS SUPPORT PROTOCOL OPTIONS MATRIX 7-14 ANNEX A ADDENDUM ON CCSDS PACKET TIMETAGGING A-1 ANNEX B ACRONYMS AND TERMINOLOGY B-1 INDEX I-1 Figures Page 2-1 CCSDS Principal Network Elements 2-1 2-2 CCSDS Principal Network Service Model 2-5 2-3 Simplified CCSDS Principal Network Service Model 2-6 2-4 Space Link Subnet Data Flow 2-13 2-5 CCSDS Path Service Architecture 2-18 3-1 Path Service Architecture 3-1 3-2 Path Layer Organization 3-3 3-3 Example of a Logical Data Path 3-4 3-4 CP_PDU (CCSDS Packet) Structure 3-12 5-1 Space Link Sublayering Relationships 5-1 5-2 Space Link Subnet Architecture 5-2 5-3 Internal Organization of the VCLC Sublayer 5-13 5-4 Encapsulation Protocol Data Unit 5-26 5-5 Multiplexing Protocol Data Unit, M_PDU 5-28 5-6 Bitstream Protocol Data Unit, B_PDU 5-31 5-7 Internal Organization of the VCA Sublayer 5-33 5-8 Internal VCA Interfaces with the Slap 5-41 5-9 VCA Internal Functional Organization 5-44 5-10 VCDU/CVCDU Structural Components 5-52 5-11 Virtual Channel Data Unit Format 5-53 5-12 VCDU Fields over Which Parity Is Generated 5-60 5-13 Slap Protocol Data Unit 5-61 5-14 Physical Channel Access Protocol Data Unit 5-61 5-15 Relationship Between the VCDU, CVCDU, CADU and PCA_PDU 5-62 6-1 Symmetric Slap Operation 6-2 6-2 Organization of the Slap Sending/Acceptance Functions 6-5 7-1 Cross Support Configurations 7-2 7-2 Generic CPN Service Options Profile 7-4 7-3 Path Service Options Profile 7-5 7-4 Internet Service Options Profile 7-6 7-5 Encapsulation Service Options Profile 7-7 7-6 Multiplexing Service Options Profile 7-9 7-7 Bitstream Service Options Profile 7-10 7-8 Virtual Channel Access Service Options Profile 7-11 7-9 Virtual Channel Data Unit Service Options Profile 7-12 7-10 Insert Service Options Profile 7-13 A-1 Secondary Header Format A-3 Tables Page 5-1 Allowed Concurrent VCLC Service Combinations 5-4 5-2 Error Protection Requirements of SLS Grades of Service 5-6 5-3 Allowable Types and Grades of Service 5-7 5-4 Packet Channel/Application Process Identifier Allocations 5-9 5-5 VCLC_SAP Address Parameters 5-9 5-6 Minimum Required Performance of SLS Grades of Service 5-12 7-1 Cross Support Options Matrix 7-15 REFERENCES [1] "Procedures Manual for the Consultative Committee for Space Data Systems", CCSDS A00.0-Y-5, Yellow Book, Issue 5 (Washington, D.C.: CCSDS, May 1992 or later issue). [2] "Packet Telemetry", Recommendation for Space Data Systems Standards, CCSDS 102.0-B-3, Blue Book, Issue 3 (Washington, D.C.: CCSDS, November 1992 or later issue). [3] "Telemetry Channel Coding", Recommendation for Space Data Systems Standards, CCSDS 101.0-B-3, Blue Book, Issue 3 (Washington, D.C.: CCSDS, May 1992 or later issue). [4] "Telecommand Part 3--Data Management Service", Recommendation for Space Data Systems Standards, CCSDS 203.0-B-1, Blue Book, Issue 1 (Washington, D.C.: CCSDS, January 1987 or later issue). [5] "Telecommand Part 2--Data Routing Service", Recommendation for Space Data Systems Standards, CCSDS 202.0-B-2, Blue Book, Issue 2 (Washington, D.C.: CCSDS, November 1992 or later issue). [6] "Telecommand Part 1--Channel Service", Recommendation for Space Data Systems Standards, CCSDS 201.0-B-1, Blue Book, Issue 1 (Washington, D.C.: CCSDS, January 1987 or later issue). [7] "Audio, Video and Still-Image Communications Services", Recommendation for Space Data Systems Standards, CCSDS 704.0-R-2, Red Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [8] "Advanced Orbiting Systems, Networks and Data Links: Summary of Concept, Rationale and Performance", Report Concerning Space Data Systems Standards, CCSDS 700.0-G-3, Green Book, Issue 3 (Washington, D.C.: CCSDS, November 1992 or later issue). [9] "Advanced Orbiting Systems, Networks and Data Links: Formal Definition of CPN Protocols, Methodology and Approach", Report Concerning Space Data Systems Standards, CCSDS 705.0-G-2, Green Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [10] "Advanced Orbiting Systems, Networks and Data Links: Abstract Data Type Library", Recommendation for Space Data Systems Standards, CCSDS 705.1-R-2, Red Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [11] "Advanced Orbiting Systems, Networks and Data Links: Formal Specification of the Path Service and Protocol", Recommendation for Space Data Systems Standards, CCSDS 705.2-R-2, Red Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [12] "Advanced Orbiting Systems, Networks and Data Links: Formal Specification of the VCLC Service and Protocol", Recommendation for Space Data Systems Standards, CCSDS 705.3-R-2, Red Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [13] "Advanced Orbiting Systems, Networks and Data Links: Formal Specification of the VCA Service and Protocol", Recommendation for Space Data Systems Standards, CCSDS 705.4-R-2, Red Book, Issue 2 (Washington, D.C.: CCSDS, May 1993 or later issue). [14] "Radio Frequency and Modulation Systems; Part 1: Earth Stations and Spacecraft", Recommendation for Space Data Systems Standards, CCSDS 401.0-B, Blue Book (Washington, D.C.: CCSDS, September 1989 or later issue). Note: Since this Reference does not currently cover data relay satellites, the following document shall be substituted for Reference [14]: STDN 101.2, "Space Network (SN) Users' Guide" [formerly titled "Tracking and Data Relay Satellite System (TDRSS) Users' Guide"], Revision 6, (Greenbelt, Maryland: NASA Goddard Space Flight Center, September 1988 or later issue). [15] "Information Processing Systems--Open Systems Interconnection-- Basic Reference Model", ISO 7498 (Geneva: ISO, 1984). [16] "Information Processing Systems--Data Communications--Protocol for Providing the Connectionless-Mode Network Service", ISO 8473 (Geneva: ISO, 1988). [17] "Information Technology--Telecommunications and Information Exchange Between Systems--Network Service Definition for Open Systems Interconnection", ISO 8348 (Geneva: ISO, 1992). [18] "Information Processing Systems--Data Communications--Network Service Definition--Addendum 1: Connectionless Mode Transmission", ISO 8348 ADI (Geneva: ISO, 1987). [19] "Information Processing Systems--Data Communications--Protocol for Providing the Connectionless-Mode Network Service--Addendum 3: Provision of the Underlying Service Assumed by ISO 8473 over Subnetworks which Provide the OSI Data Link Service", ISO 8473 AD3 (Geneva: ISO, 1989). [20] "Time Code Formats", Recommendation for Space Data Systems Standards, CCSDS 301.0-B-2, Blue Book, Issue 2 (Washington, D.C.: CCSDS, April 1990 or later issue). 1 INTRODUCTION 1.a This document is a Recommendation of the Consultative Committee for Space Data Systems (CCSDS). The CCSDS is an international standardization body which is chartered with developing standard solutions to data handling problems that are common to many types of space missions; its operating principles and procedures are defined in Reference [1]. 1.1 PURPOSE OF THIS DOCUMENT 1.1.a The purpose of this document is to establish a CCSDS Recommendation for the architecture of the space/ground and space/space data handling systems which are embedded within a category of complex, networked space missions called "Advanced Orbiting Systems". 1.1.b This document specifies an architectural framework within which the Agencies participating in the CCSDS may implement compatible space mission data handling systems, so that opportunities for inter- Agency cross support and cooperation are maximized. It defines the top-level characteristics of the systems architecture, but not necessarily all of the detailed specifications that would be required to implement a concrete system. Where appropriate, the CCSDS may extend or supplement this document with more detailed specifications as the need is identified. 1.1.c This Recommendation primarily addresses those data handling operations which are unique to space missions. It therefore focuses on data transmission through special-purpose space data links, and their associated interface networks. Wherever possible and technically appropriate, interfaces with the commercial networking environment are provided so that the emerging infrastructure of commercial Open Systems Interconnection (OSI) may be exploited. 1.2 SCOPE OF THIS DOCUMENT 1.2.a Between 1982 and 1986, in response to the mission requirements of that era, CCSDS developed a series of technical Recommendations (References [2] through [6]) for the standardization of common data- system functions across a spectrum of "Conventional" missions. 1.2.b To meet the needs of the "Advanced Orbiting Systems" of the 1990s and beyond, CCSDS is extending its previous Recommendations to provide a more diverse and flexible set of data handling services. Advanced Orbiting Systems include manned and man-tended space stations, unmanned space platforms, free-flying spacecraft and new space transportation systems, many of which need services to concurrently transmit multiple digital data types (including audio and video) through space/ground and ground/space data channels. 1.2.c This Recommendation specifies the architecture, services and protocols to be used within a "CCSDS Principal Network" (CPN) that supports CCSDS Advanced Orbiting Systems. The scope of the CPN is addressed in section 2. 1.3 APPLICABILITY OF THIS DOCUMENT 1.3.a This Recommendation serves as a guideline for the development of compatible internal Agency standards for advanced orbiting data systems. Systems embraced by this Recommendation are foreseen to enter development during the 1990s and include: manned and man- tended space stations; unmanned space platforms; free-flying spacecraft; and new space transportation systems. 1.3.b This Recommendation is not retroactive, nor does it commit any Agency to implement the recommended concepts at any future time. Nevertheless, all CCSDS Agencies accept the principle that all future implementations of advanced orbiting data systems which are used in inter-Agency cross support situations will be based on this Recommendation. 1.3.c The recommendations in this document are to be invoked through the normal standards programs of each member Agency, and are applicable to those missions for which cross support based on capabilities described in this Recommendation is anticipated. Where mandatory capabilities are clearly indicated in sections of the Recommendation, they must be implemented when this document is used as a basis for cross support. Where options are allowed or implied, implementation of these options is subject to specific bilateral cross support agreements between the Agencies involved. 1.4 INTERFACES WITH CONVENTIONAL SYSTEMS 1.4.a This Recommendation draws heavily upon previous CCSDS Recommendations for the asymmetric flow of Telemetry and Telecommand data within Conventional space systems, as defined in References [2] through [6]. Where feasible, appropriate elements of the previous Recommendations are used directly. In other cases, upward- compatible extensions of the previous Recommendations are defined to satisfy new requirements, such as the integration of digitized audio and video (Reference [7]) into space data streams. 1.4.b By virtue of this upward compatibility, it should be noted that this Recommendation does not preclude "mixed" mission configurations whereby Conventional space systems are operated in conjunction with Advanced Orbiting Systems. For example: 1.4.c the space-located elements of CCSDS Advanced Orbiting Systems may interface with independent free-flying spacecraft whose data- communications systems conform to Conventional CCSDS Recommendations. These interfaces are technically supported via the various Service Access Points identified in Section 2, but may not be specifically addressed within this Recommendation; 1.4.d some missions may wish to operate hybrid configurations; e.g., a Conventional CCSDS Telecommand uplink as described in References [4], [5], and [6] may be paired with an Advanced Orbiting Systems downlink. (Note that this configuration would not satisfy the integration of digitized audio and video into the uplink data stream.) Such hybrid configurations are technically supported by the data structures defined in Section 5 of this Recommendation, but they are the subject of detailed negotiations between Projects and CCSDS cross support organizations. A discussion of hybrid Telecommand operations is contained in Reference [8]. 1.5 ORGANIZATION AND STATUS OF THIS DOCUMENT 1.5.a This document, which is the main Recommendation for CCSDS Advanced Orbiting Systems, contains a definition of the CCSDS Principal Network and specifications of its associated services and protocols. It is supplemented by CCSDS Reports (References [8] and [9]), which are not part of the Recommendation, and by implementation-oriented service and protocol definitions (References [10] through [13]), which are written in a formal specification language. 1.5.b The main Recommendation contains this introduction (Section 1) plus six technical sections and two Annexes as follows: 1.5.c Section 2 contains a description of the CCSDS Principal Network (CPN), including a broad definition of the services it provides. In case of conflict, the specifications contained in Sections 3 through 7 shall take precedence over the descriptive material in Section 2. 1.5.d Section 3 contains the controlling technical specification for a CCSDS "Path service", and its associated protocol, which supports one method for transferring user data through the CPN. A formal definition of the Path protocol is contained in Reference [11]. 1.5.e Section 4 contains the controlling technical specification for a CCSDS "Internet Service", and its associated protocol, which supports another method for transferring user data through the CPN. 1.5.f Section 5 contains the controlling technical specification for a CCSDS "Space Link Subnetwork", and its associated services and protocols, which supports a variety of methods for transferring data through space/space and space/ground channels. A formal definition of the Space Link Subnet protocol is contained in References [12] and [13]. 1.5.g Section 6 contains an architectural overview of a space link retransmission protocol, which supports the reliable transfer of data through space channels. (The CCSDS Secretariat should be consulted for information concerning the detailed service and protocol specifications for this "Space Link ARQ Procedure".) 1.5.h Section 7 contains a summary of the requirements which a Project must satisfy in order to be compatible with this Recommendation for the purpose of obtaining cross support from other organizations. 1.5.i Annex A contains a definition of the mechanisms to be used for CCSDS packet timetagging. 1.5.j Annex B contains a list of the acronyms and terminology used throughout the main Recommendation. First-time readers are strongly urged to become familiar with the contents of this Annex, which is augmented by the index. 1.5.k A supporting CCSDS Report, Reference [8], summarizes key operational concepts of the CCSDS Principal Network. It provides general rationale and tutorial information, and presents supporting analysis of space data channel performance implications. First-time readers are strongly urged to become familiar with the contents of this Report. 1.6 BIT NUMBERING CONVENTION AND NOMENCLATURE 1.6.a 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 following bit 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". 1.6.b In accordance with standard data-communications practice, data fields are often grouped into 8-bit "words" which conform to the above convention. Throughout this Recommendation, such an 8-bit word is called an "octet". 1.6.c By CCSDS convention, all "spare" bits shall be permanently set to value "zero". [IMAGE] 2 SYSTEM OVERVIEW 2.1 SCOPE OF THE CCSDS PRINCIPAL NETWORK 2.1.a This Recommendation defines a conceptual model for a CCSDS Principal Network (CPN). A CPN serves as, or is embedded within, the Project data handling networks which provide end-to-end data flow in support of space mission users. A CPN consists of an "Onboard Network" in an orbiting segment connected via a CCSDS "Space Link Subnetwork" either to a "Ground Network", or to an Onboard Network in another orbiting segment. The conceptual context of a CPN is shown in Figure 2-1 in both a space/ground and a space/space configuration. [IMAGE] Figure 2-1: CCSDS Principal Network Elements 2.1.b Recognizing the uniqueness of data transfer through special-purpose space data channels, this Recommendation specifies the full suite of services and protocols operating within the Space Link Subnetwork (SLS). It also specifies the end-to-end services and protocols required for the transfer of user data across the entire CPN. It does not make recommendations regarding the internal protocols operating within the Onboard and Ground Networks, nor does it define or make recommendations concerning extended services beyond the conceptual bounds of the CPN. 2.1.c Within the SLS, this Recommendation assumes the use of space/ground data channels as defined in Reference [14]. Although it is possible that many space/space data channels may also be embraced by this Recommendation, its applicability to general space/space communications has not been determined. 2.1.d Two end-to-end service options are offered to users for the packetized transfer of data across the CPN: "Path" service and "Internet" service. The CPN extends to the points at which the Path or Internet data-transfer protocols are terminated, and, as such, locations of the end points of the CPN are not explicitly defined by CCSDS. Note that this does not preclude the use of CCSDS data transfer protocols as extended end-to-end protocols outside the bounds of the CPN, in which case Project organizations may use them within "extended" Onboard or Ground Networks. 2.1.e As far as the scope of the CCSDS Onboard or Ground Networks is concerned, they may consist of: 2.1.f multiple interconnected subnetworks traversed by Internet and/or Path protocol data units; or 2.1.g a single subnetwork traversed by Internet and/or Path protocol data units; or 2.1.h a data link traversed by Internet and/or Path protocol data units; or 2.1.i an internal communication within a data system using Internet and/or Path protocol data units. 2.2 CROSS SUPPORT 2.2.a CCSDS seeks to provide a communication systems architecture that facilitates opportunities for inter-Agency "cross support", which is defined as the capability for one space Agency to bidirectionally transfer another Agency's data between ground and space systems, using its own transmission resources. Cross support takes place at the level of data structures that are created by one Agency and handed over to another Agency for transmission. This is achieved by exposing standard service interfaces to the (otherwise private) communications infrastructure which is provided by the cooperating Agencies. The addresses of such service interfaces on the CPN are called "Service Access Points" (SAPs). 2.2.b The cross support concept for CCSDS Advanced Orbiting Systems is based upon the following precepts: 2.2.c each Agency has its own private network implementation; 2.2.d the cross support services that are provided must be independent of the physical implementation of an Agency's network; 2.2.e the cross support services should be arranged so as to support the transfer of data structures created at different layers of the CPN protocol architecture; i.e., flexible service interfaces should be offered; 2.2.f incomplete data structures, or data structures containing detected but uncorrectable errors, are not required to be delivered in cross support situations (though in case of nondelivery, error reports may be provided using optional service parameters). 2.2.g To realize this concept, CCSDS specifies the exposed service interfaces at which the various services can be obtained, the corresponding interface primitives to be implemented to access them, and their associated data structures. 2.2.h The requirements which a Project organization must satisfy in order to be compatible with this Recommendation, and their cross support implications, are defined in Section 7. 2.2.i The service interfaces defined in this Recommendation are abstract service interfaces: a specific implementation is not intended, and therefore such an implementation is the subject of local Agency or Project agreements. 2.3 OVERVIEW OF SERVICES WITHIN THE CCSDS PRINCIPAL NETWORK 2.3.a A conceptual model of a typical space mission CPN data-flow configuration is shown in Figure 2-2. Here, examples of the various user services offered by the Onboard and Ground Networks, and the Space Link Subnetwork, are indicated. Note that data may flow in either direction (from space to ground, or from ground to space) in association with any of the services. Also note that, although Figure 2-2 does not depict the space-to-space configuration, the concept is identical. 2.3.b The CPN model is layered, showing its general correspondence to the Open Systems Interconnection (OSI) model which is maintained by the International Organization for Standardization (ISO), Reference [15]. The CPN model, in addition to clearly indicating the nature and number of services provided by the CPN, also allows the systems implementers to better understand the complexities involved in providing the services. 2.3.c Since the whole CPN is conceptually composed of two achitecturally symmetric halves, the services associated with the model may be made simpler to understand by concentrating on only one of the halves, as shown in Figure 2-3. It should be noted that in a physical implementation the two halves are not necessarily identical owing to operational factors which are discussed in more detail in Reference [8]; however, in this conceptual discussion the differences are put aside. 2.3.d Eight separate services are provided within a CPN. Two of these services ("Internet" and "Path") operate in an asynchronous mode across the entire CPN. The remaining six services ("Encapsulation", "Multiplexing", "Bitstream", "Virtual Channel Access", "Insert", and "Virtual Channel Data Unit") are provided in either an asynchronous or isochronous mode by the Space Link Subnetwork. 2.3.1 CCSDS PRINCIPAL NETWORK END-TO-END DATA TRANSFER SERVICES 2.3.1.a Two services, the Internet service and the Path service, operate end-to-end across a CPN. Project-defined "application services" may exist above these services to provide higher layer functions such as data-base access and file transfer, but CCSDS does not define their characteristics. For instance, while a Project- defined "stack" (OSI Layers 4-7) of protocols may exist above the CCSDS Internet service to support application services, these protocols are not specified by CCSDS: the shaded areas in Figure 2-2 and 2-3 specifically indicate the services which ARE NOT discussed within this Recommendation. 2.3.1.b Since both the Internet and Path services rely on underlying subnetworks which may not preserve sequence, end-to-end data transfer using these services is defined to be non-sequence preserving; the SLS, however, does preserve sequence. 2.3.1.1 INTERNET SERVICE 2.3.1.1.a The Internet service routes variable-length network service data units end-to-end across the CPN, from a sending Network layer SAP to a receiving Network layer SAP. Each network service data unit contains a delimited string of octets representing higher-layer user data. The transfer is asynchronous, non-sequence preserving, and with lifetime control. 2.3.1.1.b This service is expected to be used primarily for intermittently transferring, at relatively low data rates, low to moderate volumes of structured, delimited data from a single source end point to a single destination end point. Such uses may require access to upper-layer ISO protocol services, or may require communication through space links with applications that are accessible through ISO ground networks. This service could be used to support, for example, realtime interactive command and control operations, file transfer, and interactive operations such as electronic mail and remote terminal access. [IMAGE] [IMAGE] 2.3.1.1.c The CCSDS Internet service conforms with the ISO 8473 Connectionless Network Protocol Specification, Reference [16]. To provide flexibility, the ISO 8473 packet features full addressing of the source and destination network SAPs, and the possibility of partial or full source routing, at the expense of a larger and more complex communications header than is provided within the Path service. 2.3.1.2 PATH SERVICE 2.3.1.2.a The Path service transfers variable-length application-layer service data units end-to-end across the CPN, from an application-accessible source SAP to one or more application- accessible destination SAPs. Each service data unit contains a delimited string of octets of user application data. The Path service is asynchronous and non-sequence preserving. 2.3.1.2.b The Path service is expected to be used primarily for transferring, at moderate to very-high data rates, large volumes of structured, delimited data units between fairly static source and destination associations. It is the service most likely to be used, for example, for the transfer of measurement data (i.e., telemetry) from payload instruments. 2.3.1.2.c The transfer is designed to use a lean and efficient protocol, by exploiting the fact that in many space mission operations the association between the source and destination of user messages is known a priori. These pre-established associations, known as CCSDS "Logical Data Paths" (LDPs), are configured by management. Instead of providing full endpoint addressing, the protocol data unit of the Path service contains a "Path Identifier" which identifies the LDP. 2.3.1.2.d The protocol data unit of the Path service is the Version-1 CCSDS Packet. The Path service offers two service options: 2.3.1.2.e a "Packet" service transfers CCSDS Packets, preformatted by the user, intact across the CPN; 2.3.1.2.f an "Octet String" service transfers delimited strings of user octets across the CPN, by building them into Version-1 CCSDS Packets on the user's behalf. 2.3.1.2.g The Path service does not have an underlying segmentation function and does not include a protocol mechanism for end-to- end flow control. 2.3.2 SPACE LINK SUBNETWORK DATA TRANSFER SERVICES 2.3.2.a The SLS, which forms the core of the CCSDS Principal Network, supports the bidirectional transmission of Path and Internet service data units through the space/ground and space/space channels that interconnect the distributed elements of the CCSDS Advanced Orbiting Systems. It also provides SLS data-transfer services which do not extend further through the CPN. Within the SLS, CCSDS defines the full protocol suite required to achieve cross support. 2.3.2.b A key feature of the CCSDS protocol provided for the SLS is the concept of "Virtual Channels". The Virtual Channel facility allows one physical space channel to be shared among multiple higher-layer traffic streams, each of which may have different service requirements. A single physical space channel may therefore be divided into several separate logical data channels, each known as a "Virtual Channel" (VC). Each VC is individually identified and supports a single "Grade of Service". 2.3.2.c To facilitate simple, reliable, and robust synchronization procedures, fixed-length protocol data units are used to transmit data through the weak-signal, noisy space channels: their length is established for a particular link during a particular mission phase by management, and they are delimited by placing Synchronization Markers between their boundaries. These protocol data units are each associated with one particular Virtual Channel, and are known as "Virtual Channel Data Units" or VCDUs. A service option internal to the VCDU can also produce a protocol data unit known as a "Coded Virtual Channel Data Unit", or CVCDU. Each VCDU and CVCDU contains a header and trailer which provide space link protocol control information, and a fixed-length data field within which higher-layer service data units are carried. 2.3.2.d The SLS supports six different types of services: Encapsulation; Multiplexing; Bitstream; Virtual Channel Access; Virtual Channel Data Unit; and Insert. 2.3.2.1 ENCAPSULATION SERVICE 2.3.2.1.a The Encapsulation service provides a facility whereby variable- length, octet-aligned service data units that are not formatted as CCSDS Packets may be transferred across the SLS. The transfer is asynchronous and sequence preserving. 2.3.2.1.b The service is accomplished by locally encapsulating the "foreign" data structure within a CCSDS controlled data structure that is part of the suite of cross supported protocols defined for the SLS. The Encapsulation service is provided using the Version-1 CCSDS Packet as its protocol data unit. 2.3.2.2 MULTIPLEXING SERVICE 2.3.2.2.a The Multiplexing service provides a facility whereby variable- length, delimited, octet-aligned service data units, which conform to the Version-1 CCSDS Packet format, may be multiplexed together for transfer across the SLS on the same Virtual Channel. The transfer is asynchronous and sequence preserving. 2.3.2.2.b The Multiplexing service concatenates different CCSDS Packets together and formats them into blocks which are sized to exactly load the fixed-length data field of one Virtual Channel Data Unit. The Multiplexing service is provided using the Version-1 CCSDS Packet as its service data unit. The Multiplexing service can therefore accept both Encapsulation service and Path service data units, and concatenate them within one Virtual Channel. 2.3.2.3 BITSTREAM SERVICE 2.3.2.3.a The Bitstream service provides a facility whereby serial strings of bits, whose internal structure and boundaries are unknown to the CPN, may be transferred across the SLS. The transfer is sequence preserving and may be either "asynchronous" or "isochronous". Isochronous transfer from service interface to service interface is provided with a specified maximum delay and a specified maximum jitter at the service interface. High-rate video data (Reference [7]) may use the isochronous Bitstream service. 2.3.2.3.b The Bitstream service breaks the stream of bits from each SLS user into blocks which are sized to exactly load the fixed- length data field of one dedicated Virtual Channel Data Unit. Fill data may be transparently added and removed as necessary to match the bitstream to the fixed-length data field. Bitstreams from different SLS users may not be multiplexed together within one Virtual Channel by the Bitstream service. 2.3.2.4 VIRTUAL CHANNEL ACCESS SERVICE 2.3.2.4.a The Virtual Channel Access service provides a facility whereby a Project organization may transfer private service data units (which are sized to exactly load the fixed-length data field of one dedicated Virtual Channel Data Unit and whose internal structure is unknown to the CPN) across the SLS. The transfer can be either asynchronous or isochronous, and is sequence preserving. 2.3.2.5 VIRTUAL CHANNEL DATA UNIT SERVICE 2.3.2.5.a The Virtual Channel Data Unit service provides a facility whereby a fixed-length, octet-aligned VCDU or CVCDU, created by an independent SLS entity, may be transferred across the SLS. The transfer is sequence preserving and is performed either asynchronously or isochronously and in accordance with a prespecified priority. 2.3.2.5.b Internal to the SLS, the Virtual Channel Data Unit service transfers the independently created VCDUs/CVCDUs through the space channel, together with VCDUs/CVCDUs created by the SLS itself. This service is made available to trusted users who are certified during the design process to ensure that the independently created protocol data units do not violate the operational integrity of the SLS. Necessarily, the independent VCDUs/CVCDUs must have the same length as those generated by the SLS. 2.3.2.6 INSERT SERVICE 2.3.2.6.a The Insert service provides a facility whereby private, octet- aligned service data units may be transferred isochronously across the SLS in a mode which efficiently utilizes the space channel transmission resources at relatively low data rates (Reference [8]). When activated, the Insert service is implemented by establishing an "Insert Zone" in every Virtual Channel Data Unit that is transmitted on a particular Physical Channel, and by placing the Insert service data units into this Zone. The Insert Zone shares the fixed-length data field of the VCDUs and/or CVCDUs with other types of service. 2.3.2.6.b As noted in Reference [8], when the aggregate transmitted data rate across the Physical Channel is less than 10Mb/s, the Insert Zone should be used for isochronous data transfer; however, at rates greater than 10Mb/s the isochronous data should be transmitted using the Bitstream service on a dedicated Virtual Channel. To avoid operational complexity, CCSDS recommends that the Insert service should not exist simultaneously with the Virtual Channel Data Unit service on one Physical Channel. 2.3.2.6.c The Insert service is sequence preserving and is provided with a specified maximum delay and a specified maximum jitter at the service interface. Typical isochronous applications using the Insert service include moderate-rate processes such as audio (Reference [7]) and teleoperations control, operating in low- bandwidth environments where the overall transmitted data rate on the Physical Channel is constrained. The size of the Insert Zone and the sample rate of the Insert service data units must be carefully tuned in concert with the available data transmission resources. Note that it is unlikely that the aggregate Insert service data rate will exactly match the generated data rate of the user source; provision must therefore be made to compensate for any difference by the Insert service user. 2.3.2.6.d When the Insert service is used, the Insert Zone must be present in all Virtual Channels that share the same Physical Channel, and its length is established by management. 2.3.3 SLS GRADES OF SERVICE 2.3.3.a Three "Grades of Service" are offered within the Space Link Subnet. A Project organization must implement at least one of these Grades of Service in order to be compatible with this Recommendation. 2.3.3.b Grade-1 service: SLS service data units are delivered through the SLS complete, with their sequence preserved, and with a very high probability of containing no errors induced by the SLS. 2.3.3.c Grade-2 service: SLS service data units are delivered through the SLS possibly incomplete, but with their sequence preserved and with a very high probability of containing no errors induced by the SLS. 2.3.3.d Grade-3 service: SLS service data units are delivered through the SLS possibly incomplete and with a moderate probability that they contain errors induced by the SLS, but with their sequence preserved. 2.3.3.e It should be noted that: 2.3.3.f not all Grades of Service are offered for each SLS service; 2.3.3.g the Grades of Service are only offered during periods when space/ground or space/space data channels are scheduled and available. Higher-layer CPN processes are required to reconstitute and deliver service data units which are buffered during periodic space channel outages; 2.3.3.h the Grades of Service are ONLY defined by CCSDS across the Space Link Subnet; it is necessarily a Project responsibility to extend them into end-to-end Grades of Service, if desired; 2.3.3.i the Grades of Service are not explicitly signalled by protocol, but are set up by management; 2.3.3.j service data units which contain detected SLS-induced errors are not required to be delivered in CCSDS cross support configurations. 2.4 ARCHITECTURE OF THE SPACE LINK SUBNET 2.4.a The purpose of this section is to present a top level overview of the key functions and data structures which support the operation and services of the SLS. All of the operations which are described must be understood to be independent of the direction of data flow through the SLS. The controlling specification for the SLS service and protocol is contained in Section 5 of this Recommendation. 2.4.1 FUNCTIONS PERFORMED BY THE SLS 2.4.1.a Figure 2-4 shows all possible data flows through the SLS: data flow from top to bottom of the figure on the sending side, and from bottom to top on the receiving side. The physical space medium (a space/ground or space/space data-transmission path) interconnects the sending and receiving sides of the SLS. The figure identifies the data-handling and formatting functions that are involved. These functions are discussed in the following paragraphs. 2.4.1.1 PHYSICAL CHANNEL FUNCTION 2.4.1.1.a The Physical Channel function creates one dedicated space data transmission path. A continuous stream of data bits is accepted at the sending side, modulated, serially transmitted through the physical space medium, demodulated, bit synchronized, and delivered through the receiving interface. The CCSDS Recommendation for the Physical Channel function is contained in Reference [14] and is not specified herein. While direct access to the Physical Channel is permissible, definition of such a service is not within the scope of this Recommendation. 2.4.1.2 VIRTUAL CHANNEL FUNCTION 2.4.1.2.a At the sending side, the Virtual Channel function accepts service data units from higher-layer functions, builds them into the space link protocol data units (VCDUs or CVCDUs) that are required to identify and operate the Virtual Channels, applies the error control required by different Grades of Service, commutates the VCDUs/CVCDUs into an appropriate sequence, and submits them as a serial stream to the Physical Channel function for transmission through one Physical Channel. At the receiving side the serial stream is synchronized to find the boundaries between VCDUs/CVCDUs, which are then passed through error control procedures and decommutated. The higher- layer service data units are then extracted and passed back through the receiving service interface. 2.4.1.2.b During transmission through the Physical Channel, each VCDU or CVCDU is carried synchronously within one "Channel Access Data Unit" (CADU). The CADUs provide fixed-length "channel access slots" which occur at precise time intervals that are synchronized with the transmitted bit rate, and whose boundaries are delimited using "Synchronization Markers". The commutated sequence of VCDUs/CVCDUs is transmitted so that all of the synchronous channel access slots are occupied. In situations where no valid higher-layer data are ready for release, a VCDU/CVCDU containing "Fill" data is commutated into the transmitted sequence. The continuous and contiguous stream of CADUs, known as a "Physical Channel Access Protocol Data Unit", is transferred through the Physical Channel. [IMAGE] Figure 2-4: Space Link Subnet Data Flow 2.4.1.2.c Service data units associated with the Encapsulation, Multiplexing, Bitstream or Virtual Channel Access services are placed into a "Data Unit Zone" within the data field of the VCDU or CVCDU. At low transmitted data rates, the Insert Zone facility may be activated to allow isochronous data samples associated with the Insert service to share the VCDU/CVCDU data field with the other types of service data units. 2.4.1.2.d The Grades of Service are supported as follows: 2.4.1.2.e Grade-3 service is provided by constructing VCDUs for direct transmission through the underlying dedicated Physical Channel; 2.4.1.2.f Grade-2 service is provided by adding an error-correcting code to the constructed VCDUs to form CVCDUs. The recommended code appends a block of error-correcting Reed-Solomon check symbols to the VCDU in order to provide virtually "error-free" transmission; 2.4.1.2.g Grade-1 service is provided within CVCDUs on certain Virtual Channels by a "Space Link ARQ" function that supports the transfer of asynchronous Multiplexing, Bitstream or Virtual Channel Access service data units through the space link using a retransmission control ("ARQ") procedure to protect against momentary channel outages. The function is implemented by a "Space Link ARQ Procedure" (SLAP). Grade-1 service is defined only for full-duplex operation, i.e., two dedicated Virtual Channels, one in each direction, must be paired by management for Grade-1 service to be provided. 2.4.1.2.h (Note: some Projects may be constrained to operate only with a unidirectional retransmission procedure; i.e., full-duplex operation may not be possible. Such Projects have the option of implementing a hybrid configuration with a Conventional CCSDS "Command Operation Procedure" providing retransmission control for the uplink, as described in References [4], [5] and [6]. While technically supported, hybrid configurations are the subject of detailed Project implementations; such configurations are discussed in Reference [8].) 2.4.1.2.i If Grades-1/2 operate in conjunction with Grade-3 on the same Physical Channel, the stream of protocol data units observed at the receiving side of the Physical Channel may therefore contain VCDUs and CVCDUs which are serially interleaved in a nondeterministic order. 2.4.1.2.j The demultiplexing and delivery of VCDUs and CVCDUs is achieved by using a Spacecraft Identifier concatenated with a Virtual Channel Identifier, both of which are contained in the VCDU header. Error-control mechanisms are provided to protect these key header routing fields. 2.4.1.2.k Independently created VCDUs/CVCDUs associated with the Virtual Channel Data Unit service flow through the Virtual Channel function, potentially interfacing only with the error-control mechanisms. 2.4.1.3 ASYNCHRONOUS DATA TRANSFER 2.4.1.3.a The normal "asynchronous" mode of SLS data transfer associated with the Multiplexing, Encapsulation, Bitstream or Virtual Channel Access service is for incoming service data units to asynchronously fill up the Data Unit Zone of the VCDU or CVCDU before being released for transmission. The incoming service data units must be preformatted into fixed-length blocks in order to be placed within the Data Unit Zone. 2.4.1.4. ISOCHRONOUS DATA TRANSFER 2.4.1.4.a Some types of "isochronous" service data units require transfer through the SLS in a manner which preserves timing relationships that are important to users. This is achieved by defining a fixed time delay with specified jitter between transmissions. 2.4.1.4.b High-rate isochronous data streams (e.g., video data) may be blocked using Bitstream procedures and an entire Virtual Channel may be dedicated for their isochronous transmission. 2.4.1.4.c For low- or medium-rate user applications such as audio or teleoperations control data, situations may arise where the maximum transmitted data rate of the CADUs is constrained by channel bandwidth considerations. In this case, since the combination of maximum allowable time delay and CADU length lead to an inefficient utilization of the space channel if dedicated Virtual Channels are used, it may be necessary to share the VC with other data. The Insert Zone facility is provided within the VCDU/CVCDU data structures to carry the isochronous data samples; it is present in every transmitted CADU and hence provides a fixed, synchronous time slot for the isochronous data. 2.4.1.5 MULTIPLEXING FUNCTION 2.4.1.5.a To efficiently utilize the space channel, variable-length service data units must be packed together so that they fully occupy the fixed-length Data Unit Zone of the CVCDU. This is accomplished by a multiplexing, delimiting and blocking function. The Version-1 CCSDS Packet provides the only cross supported data structure that is recognized for use within this function. 2.4.1.5.b Individual CCSDS Packets from multiple sources are concatenated together into a contiguous string of Packets, which is then broken into blocks whose length is arranged such that they may be loaded exactly into the fixed-length CVCDU Data Unit Zone. Several individual "Packet Channels" may thus concurrently share one VC using the Multiplexing functions. Each Packet Channel is locally identified using the "Application Process ID" (APID) field contained in the CCSDS Packet header. 2.4.1.5.c The demultiplexing and delivery of CCSDS Packets on individual Packet Channels is achieved by examining the APID and "Packet Length" fields in the Packet header: since these fields are not protected against errors, the demultiplexing and delivery functions can only be reliably accomplished if the headers are known to be correct. Consequently, cross support can only be provided if the multiplexed data are placed within Reed-Solomon- protected CVCDUs. 2.4.1.5.d In the event that a CVCDU has to be released before its Data Unit Zone is full, an "idle" CCSDS Packet, containing Fill data, is inserted. 2.4.1.6 BITSTREAM FUNCTION 2.4.1.6.a The Bitstream function breaks each incoming stream of bits into blocks whose lengths are arranged so that they may be exactly loaded into the fixed-length Data Unit Zone of a VCDU on a dedicated VC. Reassembly of the contiguous stream of bits at the receiving service interface is performed. If fill data are inserted during the transfer, they are removed prior to delivery. The Bitstream data may be transferred either asynchronously or isochronously. 2.4.1.7 ENCAPSULATION FUNCTION 2.4.1.7.a Since the asynchronous Multiplexing function only recognizes the Version-1 CCSDS Packet data structure, an Encapsulation function is provided which wraps "other" delimited data units into Version-1 CCSDS Packets. 2.4.1.7.b The CCSDS Path service, by virtue of its use of Version-1 CCSDS Packets as its protocol data unit, is directly compatible with the Multiplexing function and therefore bypasses the Encapsulation function. However, the CCSDS Internet service uses the ISO 8473 packet format, and from an evolutionary viewpoint it is desirable to provide the flexibility to handle other delimited, octet-aligned data units should the future need arise to support different network layer services across the CPN. The Encapsulation function provides this flexibility. 2.4.1.7.c The Encapsulation function takes any delimited service data unit which is presented to the SLS at a requesting service interface in non-CCSDS Packet format (e.g., the 8473 Internet packet) and encapsulates it within a special CCSDS "carrier" Packet during its transfer through the SLS. The carrier Packet may then be multiplexed onto an appropriate Packet Channel within one VC, along with Packet Channels containing other carrier Packets or Path service data units. At the receiving service interface of the SLS, the carrier Packet is stripped and the original delimited service data unit is reconstituted to continue its passage through the CPN. 2.5 ARCHITECTURE OF THE CCSDS PATH SERVICE 2.5.a The CCSDS Path service, using the Version-1 CCSDS Packet, provides an optimized connectionless data transfer service between a single source user Application and one or more destination Applications. Since the Version-1 CCSDS Packet is a user data structure which is also standardized across CCSDS "Conventional" missions, the CCSDS "Advanced Orbiting Systems" Path service presents a compatible user interface across the entire spectrum of space applications. 2.5.b This section contains a descriptive overview and definition of the Path service; the full service and protocol specification is contained in Section 3. Reference [8] contains a more general discussion of Path service characteristics. 2.5.c The architecture of the CCSDS Path service is illustrated in Figure 2-5. The Path layer provides an enhanced performance service which exposes a Path SAP to the user Application at its upper side, and interfaces directly to the underlying local subnetwork on its lower side, thus bypassing all intermediate layers of protocol. 2.5.d Although the service may operate in either direction through the CPN, one major requirement for the Path service is the need to transfer high rates and volumes of telemetry data from space to ground. The Path service architecture is shown to be symmetrical in Figures 2-2, 2-3, and 2-5; however, at the ground end of a telemetry data transfer system, additional higher-layer processes may be provided to remove transmission artifacts induced by the SLS (such as filling data gaps when Path data are retrieved from onboard storage), and also to buffer the Path data for delivery on a user-convenient timescale. These services are discussed in Reference [8]. [IMAGE] Figure 2-5: CCSDS Path Service Architecture 2.5.1 LOGICAL DATA PATHS 2.5.1.a The Path service relies on the use of a managed association between two or more application end-points, i.e., a Logical Data Path (LDP). The LDP association is preconfigured by CPN management for subsequent use by the Path service. Each Logical Data Path is referenced by a "Path ID". 2.5.1.b As the CCSDS Packets traverse the local subnetworks of the CPN, they are carried and routed by subnet-specific mechanisms (e.g., local area networks). At relay points between different subnetwork routing mechanisms, the CCSDS Packet header itself may be used in a routing and relay role, in which case the LDP interpretation and mapping to the next subnetwork address is performed using tables that are configured through prior interaction between the relay points and management: in this case the "Application Process Identifier" (APID) field in the Version- 1 CCSDS Packet header is used to provide the reference to the Path ID. 2.5.2 PATH ID MANAGEMENT 2.5.2.a Reflecting the need to use a lean and compact protocol to achieve fast and efficient space communications, the APID field in the Version-1 CCSDS Packet is limited in length to eleven bits, thus giving the possibility to reference 2048 different LDPs. For complex international constellations of space vehicles, APIDs must be shared between space Agencies. To facilitate cross support, it is therefore necessary to identify a strategy for APID assignment which, while enabling the sharing of APIDs, avoids any APID ambiguity. 2.5.2.b Within the onboard systems of a CPN, it is the responsibility of individual Projects to define a local assignment strategy for the available APIDs. Within the ground systems of a CPN (which must support Path service associated with multiple spacecraft) it is necessary to globally identify each LDP. This may be accomplished by concatenating the APID in the CCSDS Packet with an "APID Qualifier" that is associated with the Packet throughout its ground transfer to and from user applications. A "Spacecraft Identifier" (SCID) may be used within the ground systems to provide this APID Qualifier. The SCID is carried as an 8-bit field within the header of the space link protocol data unit, i.e., the VCDU/CVCDU. Each of the 256 SCIDs associated with the VCDU Version Number "01" may potentially provide an individual naming domain for 2048 APIDs. 2.5.2.c The APID Qualifier may also be required in some space-to-space applications of the Path service. 2.5.3 PATH SERVICE INFORMATION FLOW 2.5.3.a The flow of information from the user application to the local subnetwork interface, for a typical Path service transmission, is as follows: 2.5.3.b the Path layer receives either a delimited string of user octets, together with the parameters necessary for the construction of the Path protocol data unit (CCSDS Packet), or a complete user- formatted CCSDS Packet; 2.5.3.c the Path layer either constructs a CCSDS Packet or validates a user-formatted Packet; 2.5.3.d the Path layer cooperates with locally supplied communication mechanisms to deliver the CCSDS Packet to its intended destination. 2.6 ARCHITECTURE OF THE CCSDS INTERNET SERVICE 2.6.a The CCSDS Internet service supports interactive operations (of the type represented by activities such as file transfer, electronic mail, and remote terminal access) between end systems located on the Onboard and Ground Networks of the CPN. The Internet service is associated with the Network layer of the ISO Reference Model of Open Systems Interconnection, Reference [15], and operates in connectionless mode. 2.6.b This section contains a descriptive overview and definition of the Internet service; the full service and protocol specification is contained in Section 4, which references the appropriate ISO documentation. Reference [8] contains a more general discussion of Internet service characteristics. 2.6.c The CPN comprises a series of interconnected, dissimilar subnetworks through which data are conveyed. Each subnetwork may have different ways of addressing the destination, different protocol data unit sizes, different time delays and bandwidths, and different status and monitoring capabilities. The CCSDS Internet service resolves these subnetwork differences by providing global inline protocol mechanisms, which are contained in the Internet protocol data unit and mapped down to the subnet layer as the Internet data unit is transported through the CPN. 2.6.d Since standard techniques already exist to solve problems of global internetworking, CCSDS has adopted existing international standards for both the Internet service definition and the protocol specification, i.e., the ISO connectionless mode network service (ISO 8348/AD1) and the associated protocol (ISO 8473) as defined in References [16] through [19] . 2.6.e The ISO 8473 Internet protocol data unit carries along in its packet header full endpoint addresses, security, priority, quality of service, and routing capabilities which minimize (but do not eliminate) network management responsibility. This generality comes at the expense of a large communications header. 2.6.f The Internet service differs from the Path service in several respects: 2.6.g the number and location of the application endpoints may change relatively rapidly; 2.6.h the data rates and volumes associated with this type of traffic are relatively low, and the duty cycle of individual users is more intermittent, so that the communications efficiency and throughput penalties of comprehensive inline protocol are not so important; 2.6.i the service may support a suite of higher-layer OSI-compatible services, for those users who need them; 2.6.j the service provides a richer Internet addressing capability which conforms to ISO international address partitioning standards, with a proportionally longer and more complex header to carry the address; 2.6.k the service provides for a set of additional options, such as segmenting and route reporting, which may be needed by specific Projects. 2.7 MANAGEMENT OF THE CCSDS PRINCIPAL NETWORK 2.7.a Many of the CPN protocols defined in this Recommendation have been designed to enable fast processing and to conserve bandwidth during space data transfer; therefore, some parameters associated with their operation are handled by management rather than by inline protocol. Management of the CPN consists of the set of functions and services which are provided to supervise, schedule and control the CPN resources. To perform their coordinating functions, management systems exchange information using signalling mechanisms. 2.7.b Insofar as these management functions are not associated with cross support, their implementation is a local matter which is not embraced by this CCSDS Recommendation. The management and signalling aspects of cross support configurations are the subject of separate CCSDS Recommendations; the CCSDS Secretariat should be consulted for information relative to their status. 3 PATH SERVICE AND PROTOCOL SPECIFICATION 3.1 INTRODUCTION 3.1.a The CCSDS Path service provides efficient, high throughput, unidirectional data transfer between a single source User Application and one or more destination User Applications. The organization of the Path service is reviewed in Figure 3-1. [IMAGE] Figure 3-1: Path Service Architecture 3.1.b A CCSDS "Path Entity" provides Path service to a User Application. The Path layer protocol transfers variable-length CCSDS Path Service Data Units (CP_SDUs) from end to end across the CPN, from a source Path Entity to one or more destination Path Entities. The Path layer interfaces with management services that configure and control the Path service, and draws upon local subnetwork services for the transfer of the CCSDS Path Protocol Data Units (CP_PDUs). The CP_PDU is the Version-1 CCSDS Packet. 3.1.c The route through the subnets of the CPN, known as a Logical Data Path (LDP), is established by Path layer management and is constant for the lifetime of the association between User Applications. The LDP is identified by a Path ID. At any point in the LDP, the CP_PDU may be routed from subnetwork to subnetwork by examining its Path ID. Alternatively, at any point in the LDP, routing may be accomplished between cooperating subnetworks by use of an agreed mapping between subnetwork addresses. (Note, however, that at the exiting gateway of the Space Link Subnet the Path ID must be employed for routing, since there is no alternative mechanism available in the SLS protocol stack.) 3.1.d The Path service is provided in two ways: 3.1.e a "Packet service" option transfers "Packet Service Data Units" (P_SDUs), which are preformatted by the user as Version-1 CCSDS Packets, intact across the CPN. Thus the user-formatted P_SDU is used as the CP_PDU, and can be transferred without further formatting by the Path procedures; or 3.1.f an "Octet String service" option transfers "Octet Service Data Units" (O_SDUs), which consist of delimited strings of user octets, across the CPN by formatting them into CP_PDUs. This service may reduce the complexity of data transfer for the users, since the CCSDS Packets are created by the service. 3.1.g Note that the O_SDU and the P_SDU are both instances of CCSDS Path Service Data Units (CP_SDUs). 3.1.h Each LDP terminating in a source end system of the CPN has an associated type of service, either Packet or Octet String. The service type need not be preserved from end to end of the LDP; i.e., asymmetric services may be provided. For instance, an invocation of the Octet String service at the source end system may (at the user's request) result in an instance of the Packet service at the destination end system(s). Once selected, the type of service (symmetric or asymmetric) provided at the ends of an LDP shall be fixed for its lifetime. 3.1.i The Path service does not provide inline protocol mechanisms for flow control or segmentation. 3.1.j The end-to-end Quality of Service provided to Path service users will vary according to the individual qualities of service provided by the various subnetworks along the Logical Data Path. The Path service does not provide any mechanisms for guaranteeing a particular quality of service; it is the responsibility of implementing organizations to ensure that the end-to-end performance of a particular instance of the Path service meets the requirements of its users. 3.1.1 ORGANIZATION OF THE PATH LAYER 3.1.1.a The composition and service interfaces of the Path layer are shown in Figure 3-2. [IMAGE] Figure 3-2: Path Layer Organization 3.1.1.b The parameters passed to the Octet String service by the Path service user (along with information supplied by Path layer management) are used by the "Packet Construction Procedures" to build the Primary Header of the CP_PDU (the CCSDS Packet). 3.1.1.c A Version-1 CCSDS Packet passed to the Packet service by the Path service user is used as the CP_PDU, so it is unchanged by the Path procedures. 3.1.2 PATH LAYER ADDRESSING 3.1.2.a The Path service relies on the use of a preconfigured route (the Logical Data Path) between a single source User Application and one or more destination User Applications. The LDPs are configured by Path layer management for subsequent use by the Path service. Every LDP is uniquely identified by a Path ID. 3.1.2.b Each LDP consists of the source end system, the destination end system(s), and the intermediate subnetworks on the LDP. An LDP need not include intermediate subnetworks if the source and destination end systems are on the same subnetwork. 3.1.2.c "Packet Transfer Procedures", used to forward the CP_PDU through the CPN, are performed by Path Entities located in either a source end system or an intermediate system. 3.1.2.d Figure 3-3 shows an example of a single LDP crossing an intermediate subnetwork to a single destination User Application. [IMAGE] Figure 3-3: Example of a Logical Data Path 3.1.2.e Note that multi-addressing may be performed at any of the intermediate system Path Entities or at the source end system Path Entity. Multi-addressing may be performed from a single source end system Path Entity to multiple destination end system Path Entities on the same subnetwork, or on several subnetworks. A "multidrop" architecture is permitted where the CP_SDU is delivered to a user in a data system and the CP_PDU is also forwarded to other data systems. 3.1.2.f In simple mission configurations, the Path ID of the LDP may be fully represented by the "Application Process ID" (APID) contained in the header of the Version-1 CCSDS Packet; up to 2048 different APIDs may be supported. 3.1.2.g Since complex Path service cross support configurations may exist and LDPs must be uniquely identified, an extension of the Path addressing mechanism (known as an APID Qualifier) may be required within some of the subnetworks traversed by the LDP. If needed, the APID Qualifier is locally associated with the APID in the CCSDS Packet but is not explicitly represented in the CP_PDU. In such configurations, the Path ID is represented by the APID plus the APID Qualifier. 3.1.2.h The APID Qualifier uniquely identifies a naming domain which "owns" an APID address space, and hence the 2048 Path IDs. The naming domain may be one spacecraft or, if a complex orbiting constellation of spacecraft elements exists, each of the individual elements may be its own naming domain. In this Recommendation it is assumed that (at least as far as the flight systems are concerned) all of the available APIDs are locally assigned by a Project organization across the communicating set of spacecraft elements which are under the control of that Project. 3.1.2.i However, within the ground system (which may have to concurrently support multiple spacecraft) the APID Qualifier may be needed to maintain global uniqueness of Path IDs. The 8-bit Spacecraft Identifier (SCID), contained within the headers of VCDU/CVCDUs and concatenated with the Version Number "01", provides the APID Qualifier within the SLS. The SCID may therefore be used at the ground gateways with the SLS to map into appropriate ground network addressing mechanisms, so that partitioning of APIDs from different naming domains is preserved. Within the ground networks local subnetwork addressing information (i.e., "SN_SAPs") may be used to represent the APID Qualifier. 3.1.2.j Note that some complex orbiting spacecraft may have multiple SCIDs assigned to them while implementing a common onboard APID address space. In this case all of the SCIDs are treated as a unified APID naming domain as far as the APID Qualifier is concerned. 3.1.2.k If a constellation of cooperating but separate spacecraft (each implementing its own internal APID naming domain without sharing APID address space across the orbiting systems) transmit their data through a common Physical Channel, then each of the SCIDs provides a separate APID Qualifier. 3.1.2.l The convention for the APID naming domains is as follows: 3.1.2.m for space-to-ground communication the naming domain is the source naming domain (the spacecraft or spacecraft element); 3.1.2.n for ground-to-space communication the naming domain is the destination naming domain (the spacecraft or spacecraft element); 3.1.2.o for space-to-space communication the naming domain is the source naming domain (the source spacecraft or spacecraft element). In this case, the destination spacecraft may need to use the APID Qualifier in a manner similar to the ground system. 3.1.3 SUBNETWORK SERVICES ASSUMED BY THE PATH LAYER 3.1.3.a It is intended that the Path layer be capable of operating over connectionless-mode services derived from a wide variety of real subnetworks and data links. Therefore, in order to simplify the specifications of the protocol, its operation is defined with respect to an abstract "underlying service" rather than any particular real subnetwork (SN) service. This underlying service consists of a single "SN_UNITDATA" primitive which conveys the source and destination subnetwork point of attachment addresses and a minimum number of octets of user data. 3.1.3.b The service primitives required are: SN_UNITDATA.request (SN_SDU, Source Address, Destination Address) SN_UNITDATA.indication (SN_SDU, Source Address, Destination Address) 3.1.3.c Real subnetworks and data links may not conform to the SN_UNITDATA service interface defined in 3.1.3.b. Use of the Path service over such a subnetwork or data link requires that a convergence function be performed between the SN_UNITDATA primitives specified for the Path protocol and the service primitives specified for that subnetwork or data link. 3.1.4 SERVICES ASSUMED FROM THE LOCAL ENVIRONMENT 3.1.4.a The services assumed by the Path layer from the local environment are unspecified. 3.2 SERVICE INTERFACE SPECIFICATION 3.2.a All of the service interface specifications in this Recommendation generally follow conventions used by ISO. Accordingly, the specifications are given in the form of primitives, which present an abstract model of the logical exchange of information between the Path layer and the user of the Path service. The primitives are specified to be independent of any particular implementation approach. 3.2.1 OVERVIEW OF INTERACTIONS 3.2.1.1 PACKET SERVICE 3.2.1.1.a The service primitives associated with the Packet service are: PACKET.request PACKET.indication 3.2.1.1.b The PACKET.request primitive is passed to the CCSDS Path layer to request that a P_SDU be sent. 3.2.1.1.c The PACKET.indication primitive is passed from the CCSDS Path layer to indicate the arrival of a P_SDU. 3.2.1.2 OCTET STRING SERVICE 3.2.1.2.a The service primitives associated with the Octet String service are: OCTET_STRING.request OCTET_STRING.indication 3.2.1.2.b The OCTET_STRING.request primitive is passed to the CCSDS Path layer to request that an O_SDU be sent. 3.2.1.2.c The OCTET_STRING.indication primitive is passed from the CCSDS Path layer to indicate the arrival of an O_SDU. 3.2.2 SERVICE PRIMITIVE PARAMETERS 3.2.2.a The parameters for the Path service primitives are: 3.2.2.b O_SDU The Octet Service Data Unit. The O_SDU is a delimited, octet-oriented data unit whose content and format are unknown to the Path layer. The maximum length of the O_SDU is defined by individual Project organizations, taking into account the maximum SDU size in all subnets traversed by the LDP. 3.2.2.c APID The APID is a mandatory parameter and is used in conjunction with the APID qualifier (if present) to uniquely identify the Logical Data Path to be used in conjunction with the PACKET.request and PACKET.indication primitives. 3.2.2.d P_SDU The Packet Service Data Unit. The P_SDU is a Version-1 CCSDS Packet that has been created by the service user. The maximum length of the P_SDU is defined by individual Project organizations, taking into account the maximum SDU size in all subnets traversed by the LDP. 3.2.2.e APID The APID Qualifier is an optional parameter which is Qualifier associated with the APID in the CCSDS Packet in order to maintain global uniqueness of APIDs. In this Recommendation, it is assumed that the APID Qualifier is only used within the ground network, and that the Spacecraft ID (SCID), concatenated with the Version Number "01", may be used to provide this parameter. 3.2.2.f Secondary The Secondary Header is a feature of the CCSDS Packet Header which allows additional types of information that may Indicator be useful to the User Application (e.g., a time code) to be included. The CP_PDU Primary Header contains a "Secondary Header Flag" which indicates the presence or absence of a Secondary Header. Within the Packet service, a user of the service in a source end system may signal the presence or absence of a Secondary Header by passing the Secondary Header Indicator parameter in the form of the Secondary Header Flag. Within the Octet String service, the Secondary Header Indicator parameter signals the presence of a Secondary Header at the start of the O_SDU. 3.2.2.g Path ID The Path ID, which uniquely identifies the LDP, consists of the APID plus the optional APID Qualifier. 3.2.2.h Data The Data Loss Indicator is used to alert the user of the Loss Octet String service in a destination end system that Indicator one or more O_SDUs have been lost during transmission, as evidenced by a discontinuity in the CP_PDU Sequence Count. This is an optional parameter, the presence or absence of which is implementation-specific. If Data Loss Indicators are to be generated by a particular implementation then they must be declared at design time and be used consistently by all parties involved in the implementation. 3.2.3 DETAILED PATH SERVICE SPECIFICATION 3.2.3.a This section describes in detail the primitives and parameters associated with the identified services. Note that the parameters, which specify the information to be made available to the receiving entity, are specified in an abstract sense: a specific implementation is not constrained in the method of making this information available. 3.2.3.1 PACKET.request 3.2.3.1.a Function This primitive is the service request primitive for the Packet service. 3.2.3.1.b Semantics The primitive shall provide parameters as follows: PACKET.request (P_SDU, APID, APID Qualifier [optional]) 3.2.3.1.c When Generated This primitive is passed from the User Application to the CCSDS Path layer to attempt to send the P_SDU. 3.2.3.1.d Effect on Receipt Receipt of this primitive causes the CCSDS Path layer to attempt to send the P_SDU. 3.2.3.2 PACKET.indication 3.2.3.2.a Function This primitive is the service indication primitive for the Packet service. 3.2.3.2.b Semantics The primitive shall provide parameters as follows: PACKET.indication (P_SDU, APID, APID Qualifier [optional] ) 3.2.3.2.c When Generated This primitive is passed from the CCSDS Path layer to the User Application to indicate the arrival of a P_SDU from the remote entity. 3.2.3.2.d Effect on Receipt The effect on receipt of this primitive by the User Application is unspecified. 3.2.3.3 OCTET_STRING.request 3.2.3.3.a Function This primitive is the service request primitive for the Octet String service. 3.2.3.3.b Semantics The primitive shall provide parameters as follows: OCTET_STRING.request (O_SDU, Path ID, Secondary Header Indicator) 3.2.3.3.c When Generated This primitive is passed from the User Application to the CCSDS Path layer to attempt to send the O_SDU. 3.2.3.3.d Effect on Receipt Receipt of this primitive causes the CCSDS Path layer to attempt to send the O_SDU. 3.2.3.4 OCTET_STRING.indication 3.2.3.4.a Function This primitive is the service indication primitive for the Octet String service. 3.2.3.4.b Semantics The primitive shall provide parameters as follows: OCTET_STRING.indication (O_SDU, Path ID, Secondary Header Indicator, Data Loss Indicator [opt.]) 3.2.3.4.c When Generated This primitive is passed from the CCSDS Path layer to the User Application to indicate the arrival of an O_SDU from the remote entity. 3.2.3.4.d Effect on Receipt The effect of receipt of this primitive by the User Application is unspecified. 3.3 PATH PROTOCOL SPECIFICATION 3.3.a The Path protocol procedures are composed of Packet Construction Procedures and Packet Transfer Procedures. The Packet Construction Procedures are associated only with the Octet String service and are active only in the end systems of an LDP. The Packet Transfer procedures are associated with both the Octet String service and the Packet service, and are active in both the end systems and the intermediate systems of an LDP. 3.3.1 PACKET CONSTRUCTION PROCEDURES 3.3.1.a The Packet Construction Procedures of the Octet String service consist of two functions: a "CCSDS Packet Assembly function" and a "CCSDS Packet Extraction function". 3.3.1.1 CCSDS PACKET ASSEMBLY FUNCTION 3.3.1.1.a The Packet Assembly function accepts the octet string SDU and the Path ID and builds the CP_PDU (i.e., a CCSDS Packet). The Packet APID is derived from the Path ID. The Secondary Header Indicator parameter is generated by the source end user to indicate the presence or absence of a Secondary Header data structure at the start of the O_SDU. The Packet Assembly function translates the parameter by setting the "Secondary Header Flag" in the CP_PDU to a corresponding value. A sequence counter is maintained, and is used to generate a "Packet Sequence Count" field in the CP_PDU. 3.3.1.2 CCSDS PACKET EXTRACTION FUNCTION 3.3.1.2.a The Packet Extraction function exists only in the destination end system. This function strips the protocol control information from the CP_PDU and delivers the O_SDU to the Path service user. The CP_SAP is identified by the Path ID. 3.3.1.2.b The Secondary Header Indicator parameter is generated by the Packet Extraction function to indicate the presence of a Secondary Header data structure at the start of the O_SDU. 3.3.1.2.c The Packet Extraction function will check the continuity of the Packet Sequence Count to determine if one or more CP_PDUs have been lost during transmission, and will generate the optional Data Loss Indicator parameter accordingly. 3.3.2 PACKET TRANSFER PROCEDURES 3.3.2.a The Packet Transfer Procedures consist of a "Transfer function" and a "Path Recovery function". 3.3.2.1 TRANSFER FUNCTION 3.3.2.1.a The Transfer function of the Path layer is active in the source end system of an LDP and in any intermediate system Path Entities which route CP_PDUs based on examination of their Path ID. The Transfer function uses the Path ID to identify the next Path Entity in the LDP. The Transfer function may submit the CP_PDU to a number of SN_SAPs (subnetwork addresses) which are not necessarily on the same subnetwork; i.e., it may perform a multicast function and thus provide a broadcast service. 3.3.2.1.b The Transfer function may be replaced in some intermediate systems by local agreements which relate SN_SAPs in one subnetwork to SN_SAPs in another subnetwork. 3.3.2.2 PATH RECOVERY FUNCTION 3.3.2.2.a The Path Recovery function is active in the destination end systems of an LDP. If the optional APID Qualifier is used within a destination end system, the APID Qualifier is represented by the SN_SAP address and the Path Recovery function may recover the APID Qualifier on the basis of that address and derive the Path ID. If the APID Qualifier is not used within the destination end system, the Path ID is derived directly from the APID of the CP_PDU. In the case of the Packet service, the CP_PDU is delivered intact to the user identified by the Path ID. CP_PDUs of LDPs terminating in the Octet String service are delivered to the CCSDS Packet Extraction function of the Packet Construction Procedures. 3.3.3 STRUCTURE AND ENCODING OF THE CCSDS PATH PROTOCOL DATA UNIT 3.3.3.a The CCSDS Path Protocol Data Unit is the Version-1 CCSDS Packet. The structure of the CP_PDU is shown in Figure 3-4. [IMAGE] Figure 3-4: CP_PDU (CCSDS Packet) Structure 3.3.3.b The utilization of the fields within the CP_PDU is as follows: 3.3.3.1 VERSION (Bits 0 through 2) 3.3.3.1.a The three Version bits shall be set to "000", signifying the Version-1 CCSDS Packet. 3.3.3.2 TYPE (Bit 3) 3.3.3.2.a The Type bit is not used within CCSDS Advanced Orbiting Systems. It may be set to either value "0" or "1". 3.3.3.3 SECONDARY HEADER FLAG (Bit 4) 3.3.3.3.a The Secondary Header flag indicates if a Secondary Header is present in the CP_PDU. If a Secondary Header is not present, the flag shall be set to value "0". If a Secondary Header is present, the flag shall be set to value "1". 3.3.3.4 APPLICATION PROCESS IDENTIFIER (Bits 5 through 15) 3.3.3.4.a The APID (possibly in conjunction with the optional external APID Qualifier) provides the naming mechanism for the LDP, i.e., the Path ID. The name of the LDP defines the source, the destination, and the route taken between them. 3.3.3.4.b Up to 2048 APIDs may be expressed by this 11-bit field. However, not all APIDs are available for LDP naming. A list of APIDs reserved for special purposes is contained in Table 5-4, from which it will be seen that only 2032 APIDs are available for LDP naming. 3.3.3.5 SEQUENCE FLAGS (Bits 16,17) 3.3.3.5.a These flags may be set by the user of the Packet service to indicate that the User Data contained within the P_SDU is a segment of a larger set of application data; the flags are not part of the Path protocol. The encoding of the Sequence Flags for the Packet service is as follows: 00 = P_SDU contains a continuation segment of User Data. 01 = P_SDU contains the first segment of User Data. 10 = P_SDU contains the last segment of User Data. 11 = P_SDU contains unsegmented User Data. 3.3.3.5.b Note that if the Octet String service is invoked at any point within the LDP the flags must be set to the "11" configuration, since segmentation is not allowed within the Path service. 3.3.3.6 PACKET SEQUENCE COUNT (Bits 18 through 31) 3.3.3.6.a The 14-bit Packet Sequence Count field shall contain a straight sequential count (modulo 16384) which numbers each CP_PDU generated on a particular LDP. 3.3.3.7 PACKET LENGTH (Bits 32 through 47) 3.3.3.7.a The 16-bit Packet Length field contains a sequential binary count "C" which expresses the length (in octets) of the remainder of the CP_PDU that follows this field. The value of "C" is the number of remaining octets minus one. 3.3.3.8 SECONDARY HEADER 3.3.3.8.a The contents of the Secondary Header are specified by the source end user. A definition of how the Secondary Header may be used to support timetagging of the CCSDS Packet is presented in Annex A. In any instance, the length of the Secondary Header must be an integral number of octets. 3.3.3.9 USER DATA 3.3.3.9.a This is the User Data field of the CP_PDU; it must be an integral number of octets in length. 3.4 MANAGEMENT OF THE PATH SERVICE 3.4.a Some of the parameters associated with the CCSDS Path service are configured using management techniques. Management, through the use of signalling mechanisms, conveys the required configuration information to the applicable Path layer entities. 3.4.b The following Path service configuration parameters are handled by management; these parameters are abstract and are independent of any particular management system implementation. 3.4.1 SERVICE OPTION 3.4.1.a Management configures the source and destination end systems of an LDP to support either Octet String or Packet service. The service on a particular LDP may be asymmetric; e.g., the source may support Octet String service and the destination may be configured to deliver unsegmented Packet service. 3.4.2 LDP ROUTING LIST 3.4.2.a Management establishes the route to be taken by each LDP and identifies the subnetworks which are components of the route. For each subnetwork, management supplies the following configuration information: 3.4.2.b the SAP through which the LDP enters the subnetwork; and 3.4.2.c the SAP(s) through which the LDP exits the subnetwork; and 3.4.2.d the (optional) APID Qualifier to be used to maintain uniqueness of the LDP within that subnetwork. 4 CCSDS INTERNET SERVICE AND PROTOCOL SPECIFICATION 4.a This Section specifies the services and protocol associated with the CCSDS Internet service. 4.1 INTERNET SERVICE DEFINITION 4.1.a The CCSDS Internet service shall conform to ISO 8348/AD1, "Information Processing Systems--Data Communications--Network Service Definition--Addendum-1: Connectionless Mode Transmission" (Reference [18]). 4.2 INTERNET PROTOCOL SPECIFICATION 4.2.a The protocol selected to provide the Internet service shall conform to ISO 8473, "Information Processing Systems--Data Communications-- Protocol for Providing the Connectionless-Mode Network Service" (Reference [16]). 4.3 INTERNET PROTOCOL CONFORMANCE STATEMENT 4.3.a The ISO 8473 protocol specification identifies three protocol options: 4.3.b the Full Protocol Set; 4.3.c the Non-Segmenting Subset; 4.3.d the Inactive Subset. 4.3.e In order to provide maximum flexibility in cross support and interworking situations, the Full Protocol Set has been selected by CCSDS. 4.3.f ISO 8473 also specifies mandatory and optional protocol functions. Except for error reporting, all mandatory options specified for the Full Protocol Set shall be provided. This does not preclude the provision of other, optional protocol functions, for Project-unique reasons; however, the availability of optional protocol functions cannot be guaranteed for cross support. 4.3.g Since the Internet service may be required to operate through unidirectional data links, mandatory error reporting may not be possible. 5 SPACE LINK SUBNETWORK SERVICE AND PROTOCOL SPECIFICATION 5.1 INTRODUCTION 5.1.a This section of the CCSDS Recommendation for Advanced Orbiting Systems defines the services and procedures for communicating between two spacecraft, or between a spacecraft and its associated ground system, within the Space Link Subnet (SLS). The relationship of the protocol specified in this section to the overall CCSDS Principal Network layering is described in Section 2. 5.1.b Figure 5-1 illustrates the relationship of SLS layers to the Data Link and Physical layers of the reference model of Open Systems Interconnection, Reference [15]. The "Space Link" (SL) layer is organized into two sublayers: a "Virtual Channel Link Control" (VCLC) sublayer and a "Virtual Channel Access" (VCA) sublayer. These reside upon a "Physical Channel Layer" that accesses the physical medium for space/space or space/ground communication. [IMAGE] Figure 5-1: Space Link Sublayering Relationships 5.1.c Within the SL layer, multiplexing provides multi-user access to the SLS; users of the SLS are defined as the entities which access the subnetwork at SL Service Access Points (SL_SAPs). The SL layer provides two levels of multiplexing: the VCA sublayer provides "Virtual Channels" (VCs), which allow several users to use the same Physical Channel concurrently; and the VCLC sublayer provides further multiplexing for packetized data by allowing separate communications between users (referred to as "Packet Channels") to be multiplexed onto the same VC. 5.1.d. Figure 5-2 illustrates the architecture and services of the Space Link Subnetwork. [IMAGE] Figure 5-2: Space Link Subnet Architecture 5.1.e The VCLC and VCA sublayers are defined in terms of: 5.1.f the services that each sublayer provides to its users; and 5.1.g the underlying services each requires from its lower layer or sublayer; and 5.1.h the internal protocol procedures of each sublayer; and 5.1.i the formats of the protocol data units associated with each; and 5.1.j the management interface each has with its sublayer management entity. 5.1.k The service specification for the VCLC/VCA interface occurs in the service specification of both sublayers: in the VCLC sublayer specification, the service required by the VCLC sublayer is described; in the VCA sublayer specification, the service provided by the VCA sublayer is described. 5.1.l The service specification for the interface between the VCA sublayer and the Physical Channel layer defines the services required from the Physical Channel layer. These services are defined to be independent of the nature of the transmission medium. 5.1.m The service specifications for the management interfaces define the services between each sublayer and its sublayer management entity. 5.1.n All of the service specifications are given in the form of primitives, which present an abstract model of the logical exchange of data structures and control information between the SL sublayers and the user of the sublayer services. The primitives are specified to be independent of specific implementation approaches. 5.1.o The VCLC and VCA peer-to-peer protocol specifications define the procedures for the transfer of information between peer VCLC and VCA sublayer entities. They are independent of the type of space channel transmission medium used, and relate to each VCLC or VCA entity separately and independently from any other VCLC or VCA entity that might exist at the same time. 5.1.1 VIRTUAL CHANNEL LINK CONTROL SUBLAYER SERVICES 5.1.1.a Virtual Channel Link Control sublayer services provide for the transfer of "VCLC Service Data Units" (VCLC_SDUs) across a VC within "VCLC Protocol Data Units" (VCLC_PDUs). The VCLC_SDU may be either variable-length, delimited and octet-aligned "packetized" data, or "Bitstream" Data. 5.1.1.b Variable-length delimited SDUs which are to be carried in the same VC are multiplexed together in the VCLC_PDU. Delimited SDUs associated with different SLS users are carried in different "Packet Channels"; in this way several SLS users may have access to the same VC. The multiplexing mechanism is the Version-1 CCSDS Packet, and the Packet Channels are identified by the Application Process Identifier (APID) in the CCSDS Packet header. 5.1.1.c Variable-length delimited SDUs which conform to the Version-1 CCSDS Packet format may be transferred through the Space Link Subnet via a "Multiplexing service". Alternatively, variable- length delimited SDUs which are not in CCSDS Packet format may be prepared for multiplexing and transfer via an "Encapsulation service". 5.1.1.d Bitstream Data are placed into VCLC_PDUs dedicated to individual users. The service is provided by a "Bitstream service". 5.1.1.e Table 5-1 shows the combination of VCLC services which are permitted (denoted by an "X") to be concurrently used within a VC. Table 5-1: Allowed Concurrent VCLC Service Combinations [IMAGE] 5.1.2 VIRTUAL CHANNEL ACCESS SUBLAYER SERVICES 5.1.2.a The Virtual Channel Access sublayer provides a VCA service for the transfer of "VCA Service Data Units" (VCA_SDUs) across the physical space channel within "Virtual Channel Protocol Data Units" (VC_PDUs). To facilitate synchronization procedures when transmitting the VC_PDUs through weak-signal, noisy space channels, the VC_PDUs (and therefore the VCA_SDUs) are of fixed length on any particular Physical Channel: their length is set by management. 5.1.2.b VC_PDUs are implemented using a CCSDS data structure known as a "Virtual Channel Data Unit" (VCDU). Within the VCA sublayer, a VCDU may be error protected by transforming it into a CCSDS data structure known as a "Coded Virtual Channel Data Unit" (CVCDU). The CVCDU is identical to the VCDU except that internally its data field is shortened and a block of error-correcting Reed-Solomon check symbols is included. The VCDUs and CVCDUs that are transmitted on a particular Physical Channel are all of the same length. 5.1.2.c Internal to a VC_PDU, two other VCA sublayer error protection options are provided in addition to the Reed-Solomon encoding. First, a few critical routing fields of the VCDU header may be protected by adding an optional "VCDU Header Error Control" field. Second, the entire VCDU may be appended with an optional "VCDU Error Control" field which uses a cyclic redundancy code to provide a capability to detect errors occurring anywhere within the VC_PDU. 5.1.2.d Each VC_PDU (i.e., each VCDU or CVCDU) carries precisely one VCA_SDU and is uniquely identified by means of a "VCDU-ID" field which consists of a "Spacecraft Identifier" concatenated with a "Virtual Channel Identifier". 5.1.2.e The VCA sublayer provides a "Virtual Channel Access" service whereby an SLS user may implement a private VCLC sublayer protocol and submit fixed-length private VCA_SDUs directly to the VCA sublayer for transfer through the SLS using one or more dedicated Virtual Channels. Since both the format and content of the private VCA_SDUs are unknown to the SLS, cross support is confined to their delivery using VC_PDU routing mechanisms. (Note: Project organizations that use the Virtual Channel Access service and wish to receive cross support of a private VCLC sublayer protocol may make proposals to CCSDS for its registration as a standard, in which case this Recommendation would be extended if the proposal is accepted.) 5.1.2.f The VCA sublayer provides an "Insert" service to support the isochronous transfer of samples of octet-aligned data (e.g., audio or teleoperations control information). This service is usually only invoked to support the isochronous transfer when the total transmitted data rate across the physical space channel is low (typically less than 10 Mb/s). An Insert Service Data Unit (IN_SDU) is placed into a special "Insert Zone" that exists in every transmitted VC_PDU on a particular Physical Channel, thus offering a fixed, synchronous time slot to the user. The presence or absence of the Insert Zone is established by management for each individual Physical Channel. 5.1.2.g The VCA sublayer provides a "Virtual Channel Data Unit" service whereby the service data units are themselves fully formed VC_PDUs (created by an independent VCA sublayer entity) that may be directly interleaved into the stream of VC_PDUs which are transmitted on a particular Physical Channel. The independently created VC_PDUs internally support SLS services provided by a separate VCA sublayer entity. 5.1.2.h Each fixed-length VC_PDU is prefixed and delimited by a Synchronization Marker for transfer across the Physical Channel. The resulting data unit is known as a "Channel Access Data Unit" (CADU). A serial stream of bits, representing a continuous and contiguous string of CADUs, forms the "Physical Channel Access Protocol Data Unit" (PCA_PDU) which is used by the VCA sublayer to access the Physical Channel layer. Each CADU therefore provides a fixed data transmission time slot within the synchronously transmitted PCA_PDU. 5.1.2.i A PCA_PDU transmitted through a Physical Channel is identified within the VCA sublayer by a Link Identifier or "LinkID". 5.1.2.j The LinkID is the naming mechanism for those VCA sublayer services (e.g., Insert) which are bound to every VC_PDU that is present in a particular PCA_PDU. It is also the mechanism for identifying the managed attributes of a particular PCA_PDU, including: the data transmission rate; the VCDU-IDs which may appear in a particular PCA_PDU, their Version Numbers and if applicable their multiplexing sequence; the length of the CADUs in that PCA_PDU; the presence and length of any Inserts; and the presence or absence of any techniques which provide adequate bit transitions in the PCA_PDU. 5.1.2.k The LinkID in any particular implementation is conveyed in an "out- of-band" fashion by local management associations, not by "in- band" protocol. It is therefore a logical mechanism for ascribing physical attributes to a PCA_PDU, rather than an element of essential inline protocol addressing information. 5.1.3 PHYSICAL CHANNEL SERVICE 5.1.3.a The Physical Channel layer, which provides a "Physical Channel Service" to the VCA sublayer, activates the physical space medium for transmission of the PCA_PDU between two spacecraft, or between a spacecraft and its supporting ground system. The CCSDS Recommendation for "Radio Frequency and Modulation", Reference [14], contains specifications for space/ground and ground/space physical channels. The applicability of this Recommendation to general space/space communications has not been determined. 5.1.4 SLS GRADES OF SERVICE 5.1.4.a User data which are carried within VCDUs receive "Grade-3" service; i.e., their transmission is dependent upon the performance of the Physical Channel and may not be error controlled. 5.1.4.b User data which are carried within CVCDUs receive "Grade-2" service; i.e., their transmission is error controlled using the Reed-Solomon coding. 5.1.4.c Link retransmission ("ARQ") procedures are provided within the Virtual Channel Access sublayer for some user data which require "Grade-1" service. These data are carried within CVCDUs which provide Reed-Solomon error control, augmented by the ARQ protocol to ensure their completeness. The ARQ procedures are described in Section 6. 5.1.4.d Table 5-2 shows the SLS Grades of Service as a function of the error-protection mechanisms available within the VCA sublayer. Those mechanisms listed as "M" are mandatory for that Grade of Service. Those mechanisms listed as "O" are optional for that Grade of Service. Those mechanisms listed as "O/M" are normally optional for that Grade of Service, but may be mandatory in certain situations (see paragraphs 5.4.9.1.2.3 and 5.4.9.1.2.10). Those mechanisms listed as "n/a" are not applicable to that Grade of Service, insofar as their presence would automatically change the Grade of Service to a higher grade. Table 5-2: Error Protection Requirements of SLS Grades of Service [IMAGE] 5.1.4.e Not all combinations of SLS services and Grades of Service are permitted. Table 5-3 summarizes the service options which are allowed (denoted by "X") within the SLS, in combination with the SLS Grades of Service and the Isochronous ("I") or Asynchronous ("A") data transfer. Table 5-3: Allowable Types and Grades of Service [IMAGE] 5.1.4.f Caution should be exercised when using Grade-3 service, since the service does not provide the low error rate required for reliable extraction of the type of asynchronous packetized data associated with the Multiplexing, Encapsulation, and (possibly) Virtual Channel Access services. 5.1.4.g Insert SDUs must be contained in every VC_PDU (VCDU and/or CVCDU) transmitted in a PCA_PDU which is authorized by management to support Insert service (see 5.1.2h-k), and their length must be constant so that the data-carrying space available for other types of SDUs is known. Although an Insert SDU may be carried in a VC_PDU for which Grade-1 service is provided, Grade-1 service (i.e., ARQ) will not be provided for the Insert SDU. 5.1.4.h Within the VCDU service, cross support of a particular Grade of Service is necessarily the subject of local agreements. 5.1.5 SPACE LINK ADDRESSING 5.1.5.a The Virtual Channel Access and Virtual Channel Link Control sublayers of the Space Link layer each have their own addressing mechanisms. 5.1.5.b The VCA sublayer uses the VCDU-ID to identify the VCA-SAPs for the Virtual Channel Data Unit service and the VCA service. The VCDU- ID also identifies the user of the Virtual Channel Data Unit service or VCA service and hence identifies the relationship between the VCA_SAPs and the users of these services. The VCA_SAPs are bound by management at the transmitting end of a data link to one or more PCA_PDUs. Although multicasting of a virtual channel through multiple PCA_PDUs is permitted if the VCDU size is the same for all of the relevant PCA_PDUs and Insert service is not present in any of those PCA_PDUs, multiplexing of a virtual channel across multiple PCA_PDUs is forbidden. 5.1.5.c The VCA sublayer uses the LinkID to identify the VCA_SAPs for the Insert service. 5.1.5.d The users of the VCLC services are identified by the VCLC_SAPs. The VCLC_SAP address, which is unique across all VCLC services, is composed of a number of parts which vary for each service: 5.1.5.e the VCLC_SAPs for the Bitstream service are identified by the VCDU-ID; and 5.1.5.f the VCLC_SAPs for the Multiplexing and Encapsulation services are identified by the VCDU-ID plus the Packet Channel Identifier (PCID). The PCID is represented by the 11-bit Application Process ID (APID) in the Version-1 CCSDS Packet. 5.1.5.g The PCIDs associated with the Multiplexing service do not overlap with those associated with the Encapsulation service. Certain PCID values are reserved by CCSDS for special uses such as for the encapsulation of the ISO 8473 Internet protocol data units (using the Encapsulation service) during their transfer through the SLS. There are 2048 possible PCIDs, some of which are reserved by CCSDS for special uses. Table 5-4 specifies how the PCIDs are allocated. 5.1.5.h The nonreserved PCID values (0-2031) are administered as "user domains" by Project organizations and are allocated to Multiplexing service users in conjunction with the CPN Path service. Each user domain is named by the Spacecraft ID component of the VCDU-ID concatenated with the Version Number "01". 5.1.5.i The VCLC_SAP addressing for the Encapsulation service (E-service), Multiplexing service (M-service) and Bitstream service (B-service) is summarized in Table 5-5. Table 5-4: Packet Channel/Application Process Identifier Allocations [IMAGE] Table 5-5: VCLC_SAP Address Parameters [IMAGE] 5.1.6 ISOCHRONOUS SERVICE 5.1.6.a The VCA sublayer provides isochronous data transfer across the SLS, with a jitter dependent on that of the CADUs. The CADUs each occupy a fixed time slot within the PCA_PDU which is transmitted serially on the Physical Channel. Therefore, for example, if the CADU-to-CADU "time slot jitter" is 1-nanosecond, then this same jitter will apply to the isochronous data. 5.1.6.b The isochronous data transfer can be achieved either: (1) by using a dedicated Virtual Channel which is timed to occur at a fixed interval (i.e., every nth CADU), thus providing a fixed time slot; or (2) by using the Insert service, which provides a fixed-length, time division multiplexed, synchronous data sample in every transmitted CADU via an "Insert Zone" in the VC_PDU. 5.1.6.c In both cases, the controlling clock is that of the SLS. Disregarding the SLS propagation delay, if the frequency of occurrence of CADUs on the physical channel is "F" then the SLS access delay for method (1) is therefore n/(F) and the SLS access delay for method (2) is 1/(F). 5.2 SPACE LINK SUBNETWORK PERFORMANCE REQUIREMENTS 5.2.a This section contains an overview of the performance required within the SLS. Some of the implications of these performance requirements are discussed more fully in Reference [8]. 5.2.1 PHYSICAL CHANNEL OPERATING POINTS 5.2.1.a In order to conserve bandwidth, the Space Link Subnet assumes that the stream of CADUs is modulated directly onto the space channel. However, in the event that an uncoded channel cannot provide the required performance, the stream of CADUs may as a Project option be coded before modulation. The design parameters for the standard CCSDS convolutional inner code are specified in Reference [3]. 5.2.2 PROBABILITY OF VCDU MISIDENTIFICATION 5.2.2.a The stream of CADUs delivered at the receiving end of the Space Channel layer may contain VCDUs and/or CVCDUs, inserted in a nondeterministic order, each labelled by the VCDU Identifier (VCDU- ID) field consisting of a Spacecraft ID concatenated with a Virtual Channel ID. Multiple Spacecraft ID and Virtual Channel ID fields, qualified by their Version Numbers, must potentially be examined in order to deliver the data units to the proper data handling process within the VCA sublayer. An error occurring in these fields will therefore cause misidentification of the data unit and consequent disruption in service. 5.2.2.b The baseline performance requirement for the VCA sublayer is that the probability of misidentifying a VCDU or CVCDU, owing to a channel-induced error occurring in the VCDU-ID field, shall be less than 1x10E-07. 5.2.2.c Recognizing that VCDUs (Grade-3) and CVCDUs (Grade-2) may be mixed on a Physical Channel, and that for some applications it may be desired to deliver data prior to the Reed-Solomon decoding process, a mechanism must therefore be provided to protect the VCDU-ID field against channel-induced error so that the minimum misidentification probability is guaranteed. A "VCDU Header Error Control" field is therefore provided as an option in the VCDU header to provide this protection. The probability of misidentifying a VCDU or CVCDU due to an error induced by the space channel may thus be governed by the performance of the VCDU Header Error Control mechanism. 5.2.3 PERFORMANCE OF THE GRADES OF SERVICE 5.2.3.a The performance of each of the various Grades of Service offered within the Space Link Subnet is governed by: 5.2.3.b the probability that a particular VCDU/CVCDU is missing in the sequence observed at the receiving end of the Physical Channel, as a result of rejection due to an uncorrectable channel- induced error; and 5.2.3.c the probability that an undetected channel-induced error exists somewhere within a particular accepted VCDU/CVCDU at the receiving end of the Physical Channel. 5.2.3.d The performance of each of the Grades of Service is a function of the particular physical space medium being used. In Reference [8], assuming the conditions of an additive white Gaussian noise channel, the performance of each of the Grades of Service is addressed parametrically. 5.2.3.e When operating a Virtual Channel in Grade-3 service the performance is established by the characteristics of the Physical Channel and the performance of the VCDU Header Error Control mechanism. Within Grade-2 service, the performance probabilities are improved by the error-correcting capabilities of the Reed- Solomon code. Within Grade-1 service, the probabilities are further improved by the provision of the link retransmission protocol. 5.2.3.f Under the Physical Channel operating conditions necessary to achieve the required 1x10E-07 probability of VCDU misidentification, the minimum required service provided by the Space Link Subnet within the three Grades of Service is as shown in Table 5-6. Reference [8] presents examples of achieved performance on a particular Physical Channel. Table 5-6: Minimum Required Performance of SLS Grades of Service [IMAGE] 5.3 VIRTUAL CHANNEL LINK CONTROL SUBLAYER 5.3.a This section contains the service and protocol specifications for the Virtual Channel Link Control sublayer. The VCLC sublayer provides services to transfer either delimited "packetized" or undelimited "Bitstream" service data units within user specified VCs. 5.3.1 VCLC FUNCTIONAL OVERVIEW 5.3.1.a Delimited service data units (i.e., packetized data) are transferred using fixed-length "Multiplexing Protocol Data Units" (M_PDUs). The M_PDUs are constructed by multiplexing together Version-1 CCSDS Packets that are to be delivered over the same VC, and breaking the resulting stream of Packets into fixed-length blocks which exactly fit the data space of the VC_PDU in the layer below. Non-CCSDS Packet delimited service data units are first encapsulated within a unique Version-1 CCSDS Packet prior to multiplexing. 5.3.1.b Bitstream Data are transferred using fixed-length "Bitstream Protocol Data Units" (B_PDUs) which are dedicated to a single user. 5.3.1.c The VCLC sublayer uses the VCA service of the VCA sublayer to transfer its PDUs (i.e., M_PDUs and B_PDUs). The VCDU-ID parameter is used by the VCLC sublayer to identify the VC for the transfer. It is passed with the M_PDU and the B_PDU to the VCA sublayer, which builds the VC_PDU. 5.3.2 INTERNAL ORGANIZATION OF THE VCLC SUBLAYER 5.3.2.a The VCLC sublayer provides three types of services and contains three procedures. The services, procedures, and their mandatory interface parameters are illustrated in Figure 5-3. [IMAGE] Figure 5-3: Internal Organization of the VCLC Sublayer 5.3.3 VCLC SERVICES PROVIDED 5.3.3.a The VCLC sublayer provides three services to its users: Encapsulation, Multiplexing, and Bitstream. 5.3.3.1 ENCAPSULATION SERVICE 5.3.3.1.a The Encapsulation service provides transfer of non-CCSDS structured delimited, octet-aligned data units across the Space Link Subnet. These data units are encapsulated within CCSDS Packets for multiplexing within a VC. 5.3.3.2 MULTIPLEXING SERVICE 5.3.3.2.a The Multiplexing service provides transfer of CCSDS Packets across the Space Link Subnet. CCSDS Packets (and other non-CCSDS delimited data units, encapsulated within CCSDS Packets) are multiplexed together for transfer within a VC. 5.3.3.3 BITSTREAM SERVICE 5.3.3.3.a The Bitstream service provides transfer of undelimited Bitstream Data across the Space Link Subnet. 5.3.4 SERVICES ASSUMED FROM THE VIRTUAL CHANNEL ACCESS SUBLAYER 5.3.4.a The service required by the VCLC sublayer to exchange VCLC_PDUs is the VCA service provided by the VCA sublayer. The service parameters, as used by the VCLC sublayer, are: 5.3.4.b VCA_SDU The VCA_SDU is the VCLC_PDU; 5.3.4.c VCDU-ID The VCDU-ID is the same as the VCDU-ID parameter used in the VCLC service primitives; 5.3.4.d VCDU The VCDU Loss Flag is used to notify the user at the Loss destination end of a VCA service that a sequence Flag discontinuity has been detected and that one or more VC_PDUs has been lost. The VCDU Loss Flag is mandatory (in contrast to similar flags provided by the Encapsulation and Bitstream services) in recognition of its importance in the Multiplexing and Bitstream procedures of the VCLC sublayer. 5.3.5 SERVICES ASSUMED FROM THE LOCAL ENVIRONMENT 5.3.5.a The services assumed from the local environment are unspecified. 5.3.6 VCLC SUBLAYER SERVICE INTERFACE SPECIFICATION 5.3.6.1 OVERVIEW OF INTERACTIONS 5.3.6.1.1 ENCAPSULATION SERVICE 5.3.6.1.1.a The Encapsulation service is used to transfer non-CCSDS structured delimited, octet-aligned Encapsulation SDUs (E_SDUs) by encapsulating them within Encapsulation Protocol Data Units (E_PDUs). The E_PDUs use the Version-1 CCSDS Packet structure. They are transferred according to the Grade of Service specified by management for the requested VC. The service permits E_SDUs to have any format and to be of any length which is an integral number of octets, up to 65,536 octets maximum; however, individual Project organizations shall establish the maximum and minimum sizes for the E_SDU, providing that the 65,536-octets maximum length is not exceeded. 5.3.6.1.1.b The service primitives associated with this service are: E_UNITDATA.request E_UNITDATA.indication 5.3.6.1.1.c The E_UNITDATA.request primitive is passed to the VCLC sublayer to request that an E_SDU be encapsulated and multiplexed into the specified Virtual Channel and sent. 5.3.6.1.1.d The E_UNITDATA.indication is passed from the VCLC sublayer to indicate the arrival of an E_SDU. 5.3.6.1.1.e When the Encapsulation service is used as the underlying subnetwork service for the CCSDS Internet service (see section 4), a convergence function must be performed to map between the SN_UNITDATA primitives specified for the ISO 8473 protocol and the E_UNITDATA primitives specified for the Encapsulation service. The mechanics of the convergence function depend on the implementation of the systems involved. They are therefore necessarily the subject of local cross support negotiations. 5.3.6.1.2 MULTIPLEXING SERVICE 5.3.6.1.2.a The Multiplexing service is used to transfer Multiplexing SDUs (M_SDUs) which are preformatted as Version-1 CCSDS Packets. They are transferred according to the Grade of Service specified by management for the requested VC. The CCSDS Packet structure allows the M_SDUs to be multiplexed along with other M_SDUs and E_PDUs using the specified VC. The service permits the M_SDU to be of any length which is an integral number of octets, up to 65,542 octets maximum; however, individual Project organizations shall establish the maximum and minimum sizes for the M_SDU, providing that the 65,542-octets maximum length is not exceeded. 5.3.6.1.2.b The service primitives associated with this service are: M_UNITDATA.request M_UNITDATA.indication 5.3.6.1.2.c The M_UNITDATA.request primitive is passed to the VCLC sublayer to request that an M_SDU structured as a Version-1 CCSDS Packet be multiplexed into the specified Virtual Channel, and sent. 5.3.6.1.2.d The M_UNITDATA.indication is passed from the VCLC sublayer to indicate the arrival of an M_SDU. 5.3.6.1.2.e When the Multiplexing service is used as the underlying subnetwork service for the CCSDS Path service (see section 3), a convergence function must be performed to map between the SN_UNITDATA primitives specified for the Path protocol and the M_UNITDATA primitives specified for the Multiplexing service. The mechanics of the convergence function depend on the implementation of the systems involved: they are therefore necessarily the subject of local cross support negotiations. 5.3.6.1.3 BITSTREAM SERVICE 5.3.6.1.3.a The Bitstream service is used to transfer Bitstream Data. Different Bitstreams are not multiplexed within a Virtual Channel; i.e., each VC is dedicated to one source of Bitstream Data. The service allows Bitstreams to be of any length. However, the length of data that implementations may support at the service interface may vary for any one use of the Bitstream service primitives. That is, the length of data accepted for transfer at the source in one Bitstream service request may not be equal in length to the data delivered at the destination in one Bitstream service indication, e.g., since "fill" may be inserted and its location indicated. 5.3.6.1.3.b There are two service primitives associated with this service: BITSTREAM.request BITSTREAM.indication 5.3.6.1.3.c The BITSTREAM.request primitive is passed to the VCLC sublayer to request that Bitstream Data be sent. 5.3.6.1.3.d The BITSTREAM.indication primitive is passed from the VCLC sublayer to indicate the arrival of Bitstream Data. 5.3.6.2 VCLC SERVICE PRIMITIVE PARAMETERS 5.3.6.2.a The parameters for the VCLC primitives are described below. Unique uses of these parameters by any primitive are described in the "Additional Comments" section in the detailed description of that primitive. 5.3.6.2.b E_SDU The Encapsulation Service Data Unit. An E_SDU is a delimited, octet-aligned data unit which, since it is not formatted as a Version-1 CCSDS Packet, has a format and content that are both unknown to the VCLC sublayer. 5.3.6.2.c M_SDU The Multiplexing Service Data Unit. An M_SDU is a delimited, octet-aligned data unit which is necessarily formatted as a Version-1 CCSDS Packet. The content and format of an M_SDU header is both known to and used by the VCLC sublayer. 5.3.6.2.d Bitstream Bitstream Data are undelimited strings of bits Data whose content and format are unknown to the VCLC sublayer. 5.3.6.2.e PCID The Packet Channel Identifier. The PCID identifies the VCLC_SAPs for M_SDUs and E_SDUs within a specific VC. The PCID is locally expressed by the Application Process ID field in the Version-1 CCSDS Packet header. A subset of the PCID (i.e., APID) values are reserved for assignment and administration by CCSDS, as specified in Table 5-4; the remaining values are available for administration by users. Reserved values are globally unique, while user values are unique only within their own administrative domain (which is named by the Spacecraft ID within the VCDU-ID). Within the ground network, user PCIDs may need to be qualified to achieve a unique VCLC_SAP address; the parameter which qualifies them is the Spacecraft ID, concatenated with the Version Number "01". 5.3.6.2.f VCDU-ID The Virtual Channel Data Unit Identifier, which consists of the Spacecraft Identifier (SCID) concatenated with the Virtual Channel Identifier (VCID). 5.3.6.2.g Bitstream The Bitstream Data Loss Flag is an optional Data Loss parameter which may be used to notify the user at Flag the destination end of the VCLC Bitstream service that a sequence discontinuity has been detected and that Bitstream data may have been lost. If implemented, the flag shall be derived from the VCDU Loss Flag received from the VCA sublayer. If this flag is generated by a particular implementation then it must be declared at design time and be used consistently by all parties involved in the implementation. 5.3.6.2.h E_SDU The E_SDU Loss Flag is an optional parameter which may Loss Flag be used to notify the user at the destination end of the VCLC Encapsulation service that a sequence discontinuity has been detected and that one or more E_SDUs have been lost. If implemented, the flag shall be derived by examining the Packet Sequence Count in the E_PDU. If this flag is generated by a particular implementation then it must be declared at design time and be used consistently by all parties involved in the implementation. 5.3.7 DETAILED VCLC SERVICE SPECIFICATION 5.3.7.a This section describes in detail the primitives and parameters associated with each VCLC service. The parameters are specified in an abstract sense and specify the information to be made available to the user of the primitive. A specific implementation is not constrained in the method of making this information available. 5.3.7.1 E_UNITDATA.request 5.3.7.1.a Function This primitive is the service request primitive for the Encapsulation service. 5.3.7.1.b Semantics The primitive shall provide parameters as follows: E_UNITDATA.request (E_SDU, VCDU-ID, PCID) 5.3.7.1.c When Generated This primitive is passed to the VCLC sublayer to request it to send the E_SDU. 5.3.7.1.d Effect on Receipt Receipt of this primitive causes the VCLC sublayer to attempt to send the E_SDU. 5.3.7.1.e Additional Comments None. 5.3.7.2 E_UNITDATA.indication 5.3.7.2.a Function This primitive is the service indication primitive for the Encapsulation service. 5.3.7.2.b Semantics The primitive shall provide parameters as follows: E_UNITDATA.indication(E_SDU, VCDU-ID, PCID, E_SDU Loss Flag [opt.]) 5.3.7.2.c When Generated This primitive is passed from the VCLC sublayer to the Encapsulation service user to indicate the arrival of an E_SDU. 5.3.7.2.d Effect on Receipt The effect of receipt of this primitive by the Encapsulation service user is unspecified. 5.3.7.2.e Additional Comments The optional E_SDU Loss Flag may be passed to the user of the Encapsulation service to signal a sequence discontinuity. 5.3.7.3 M_UNITDATA.request 5.3.7.3.a Function This primitive is the service request primitive for the Multiplexing service. 5.3.7.3.b Semantics The primitive shall provide parameters as follows: M_UNITDATA.request (M_SDU, PCID, VCDU-ID) 5.3.7.3.c When Generated This primitive is passed to the VCLC sublayer to request it to send the M_SDU. 5.3.7.3.d Effect on Receipt Receipt of this primitive causes the VCLC sublayer to attempt to send the M_SDU. 5.3.7.3.e Additional Comments This primitive is used to attempt to send CCSDS Packets across the SLS. 5.3.7.4 M_UNITDATA.indication 5.3.7.4.a Function This primitive is the service indication primitive for the Multiplexing service. 5.3.7.4.b Semantics The primitive shall provide parameters as follows: M_UNITDATA.indication (M_SDU, PCID, VCDU-ID) 5.3.7.4.c When Generated This primitive is passed from the VCLC sublayer to the Multiplexing service user to indicate the arrival of an M_SDU. 5.3.7.4.d Effect on Receipt The effect of receipt of this primitive by the Multiplexing service user is specified in the Path service specification, Section 3. 5.3.7.4.e Additional Comments This primitive is used to deliver CCSDS Packets to the user identified by the PCID (i.e., the Application Process ID field in the Version-1 CCSDS Packet header, as qualified by the VCDU-ID). The CCSDS Packet header is not stripped prior to delivery. The Multiplexing service does not provide a "data loss" parameter to its users; any discontinuities associated with the Multiplexing service that are detected by the VCA sublayer are handled by management. 5.3.7.5 BITSTREAM.request 5.3.7.5.a Function This primitive is the service request primitive for the Bitstream service. 5.3.7.5.b Semantics The primitive shall provide parameters as follows: BITSTREAM.request (Bitstream Data, VCDU-ID) 5.3.7.5.c When Generated This primitive is passed to the VCLC sublayer to request it to send the Bitstream Data. 5.3.7.5.d Effect on Receipt Receipt of this primitive causes the VCLC sublayer to attempt to send the Bitstream Data. 5.3.7.5.e Additional Comments Since the service interface specification is an abstract specification, the implementation of the Bitstream Data parameter is not constrained; i.e., it may be continuous Bitstream, delimited Bitstream, or individual bits. 5.3.7.6 BITSTREAM.indication 5.3.7.6.a Function This primitive is the service indication primitive for the Bitstream service. 5.3.7.6.b Semantics The primitive shall provide parameters as follows: BITSTREAM.indication (Bitstream Data, VCDU-ID, Bitstream Data Loss Flag [opt.]) 5.3.7.6.c When Generated This primitive is passed from the VCLC sublayer to the Bitstream service user to indicate the arrival of Bitstream Data. 5.3.7.6.d Effect on Receipt The effect of receipt of this primitive by the Bitstream service user is not specified. 5.3.7.6.e Additional Comments The quantity of user data delivered by an implementation of this service primitive is not defined. Therefore, it is not necessarily related to the quantity of data submitted to the Bitstream service by the sender using the BITSTREAM.request primitive. The optional Bitstream Data Loss Flag is derived from the VCDU Loss Flag parameter received from the VCA sublayer. 5.3.8 VCLC PROTOCOL SPECIFICATION 5.3.8.1 VCLC PROTOCOL PROCEDURES 5.3.8.1.a The VCLC Protocol Procedures are composed of Encapsulation Procedures, Multiplexing Procedures, and Bitstream Procedures. 5.3.8.1.1 ENCAPSULATION PROCEDURES 5.3.8.1.1.a The Encapsulation Procedures provide an "Encapsulation Function" for the E_UNITDATA.request service primitive, and a "De-Encapsulation Function" for the E_UNITDATA.indication service primitive. 5.3.8.1.1.1 ENCAPSULATION FUNCTION 5.3.8.1.1.1.a The Encapsulation Function is used to encapsulate delimited, octet-aligned E_SDUs, which are passed to the VCLC sublayer with the E_UNITDATA.request. Any E_SDUs which exceed 65,536 octets in length (or Project-specified maximum and minimum lengths that are less than 65,536 octets) are rejected by the Encapsulation Function. Each valid E_SDU is encapsulated in an E_PDU. The E_SDU is placed unchanged into the User Data field of the E_PDU (i.e., the CCSDS Packet). 5.3.8.1.1.1.b The Multiplexing Procedures transfer the E_PDU from the Encapsulation Function to the De-Encapsulation Function at the destination VCLC sublayer entity. The E_PDU and its VCDU- ID are submitted to the Multiplexing Procedures via an internal VCLC interface. E_PDU header fields in the CCSDS Packet, which are set by the Encapsulation Function, are the PCID (i.e., the APID), the Sequence Count, and the Packet Length. 5.3.8.1.1.2 DE-ENCAPSULATION FUNCTION 5.3.8.1.1.2.a The De-Encapsulation Function is used to deliver E_SDUs to the destination Encapsulation service user. The De- Encapsulation Function removes E_SDUs, unchanged, from E_PDUs received from the Multiplexing Procedures. The E_PDU PCID field is used, in conjunction with the VCDU-ID, to identify the destination VCLC_SAP. The De-Encapsulation Function utilizes the E_UNITDATA.indication primitive to deliver the E_SDUs to the Encapsulation service user located at the VCLC_SAP. As an option, the De-Encapsulation Function may check the Packet Sequence Count in the E_PDU and notify the user of missing data via the E_SDU Data Loss parameter. 5.3.8.1.2 MULTIPLEXING PROCEDURES 5.3.8.1.2.a The Multiplexing Procedures are composed of a "Multiplexing Function" and a "Demultiplexing Function". The Multiplexing Function provides an internal VCLC interface to the Encapsulation Function and an M_UNITDATA.request service primitive interface to the VCLC user. The Demultiplexing Function provides an internal VCLC interface to the De- Encapsulation Function and an M_UNITDATA.indication service primitive interface to the VCLC user. 5.3.8.1.2.1 MULTIPLEXING FUNCTION 5.3.8.1.2.1.a The Multiplexing Function is used to multiplex E_PDUs and M_SDUs together into an M_PDU for transfer. The E_PDUs are received from the Encapsulation Procedures. The M_SDUs are received in M_UNITDATA.request primitives. 5.3.8.1.2.1.b The Multiplexing Function constructs separate M_PDUs for each VC as identified by the VCDU-ID parameter. The M_PDU is fixed length for any VC. Its length is specified by management to match the data-carrying space of the VC_PDU. 5.3.8.1.2.1.c M_PDUs are constructed by concatenating E_PDUs and M_SDUs together until the maximum M_PDU length is exceeded. Any E_PDU or M_SDU which exceeds the maximum M_PDU length is split, filling the M_PDU completely, and starting a new M_PDU with the remainder. Construction of the next M_PDU continues with the concatenation of E_PDUs and M_SDUs until it overflows. 5.3.8.1.2.1.d An M_PDU "First Header Pointer" field is set by the Multiplexing Function to indicate the location of the first octet of the first E_PDU or M_SDU header occurring within the data field of the M_PDU. 5.3.8.1.2.1.e The Multiplexing Function may generate "fill" data in the absence of sufficient SDUs being supplied from the users above. The mechanism for generating fill is to create a Version-1 CCSDS Packet of appropriate length for insertion into the M_PDU which contains a PCID (i.e., APID) set to the reserved "Fill Packet" value of "all ones". The shortest Fill Packet is 7-octets long (i.e., a 6-octet header plus 1 octet of fill data). If the area to be filled in an M_PDU is less than 7-octets, then the Fill Packet will spill over into the beginning of the next M_PDU. 5.3.8.1.2.1.f The Multiplexing Function uses the VCA service of the VCA sublayer. The Grade of Service is defined by management for the VC being used. 5.3.8.1.2.2 DEMULTIPLEXING FUNCTION 5.3.8.1.2.2.a The Demultiplexing Function is used to extract E_PDUs and M_SDUs from M_PDUs, and to deliver them to either the De- Encapsulation Function or to the Multiplexing service users. 5.3.8.1.2.2.b The M_PDU First Header Pointer field is used in conjunction with the Length field of each data unit (i.e., CCSDS Packet) contained within the M_PDU to provide the delimiting information needed to extract the data unit. If the last data unit removed from the M_PDU is incomplete, the Demultiplexing Function retrieves its remainder from the beginning of the next M_PDU received on the same VC. The M_PDU First Header Pointer in the next M_PDU is used to determine the length of the remainder, and hence the beginning of the next data unit to be extracted. 5.3.8.1.2.2.c If the calculated location of the beginning of the first M_SDU or E_PDU is not consistent with the location indicated by the M_PDU First Header Pointer, the Demultiplexing Function shall assume that the First Header Pointer is correct, and shall continue the demultiplexing based on that assumption. 5.3.8.1.2.2.d Incomplete M_SDUs or E_PDUs are not required to be delivered in cross support situations. 5.3.8.1.2.2.e Extracted data units are delivered to the De-Encapsulation Procedures or to the Multiplexing service users on the basis of the PCID field in their header. 5.3.8.1.2.2.f Data units with PCIDs reserved for Encapsulation service users are delivered to the De-Encapsulation Procedures across a local VCLC interface. The Demultiplexing Function does not check the sequence of the E_PDUs prior to delivery. 5.3.8.1.2.2.g Data units which have user PCIDs are delivered, with a M_UNITDATA.indication, to the Multiplexing service user identified by the combination of the PCID and the VCDU-ID. The Demultiplexing Function does not check the sequence of the M_SDUs prior to delivery. 5.3.8.1.2.2.h Data units with the reserved PCIDs indicating a Fill Packet are discarded. 5.3.8.1.3 BITSTREAM PROCEDURES 5.3.8.1.3.a The Bitstream Procedures provide a "B_PDU Construction Function" for the Bitstream service request primitive, and a "Bitstream Extraction Function" for the Bitstream service indication primitive. 5.3.8.1.3.1 B_PDU CONSTRUCTION FUNCTION 5.3.8.1.3.1.a The B_PDU Construction Function is used to fill the data field of the B_PDU with the Bitstream Data supplied in BITSTREAM.request primitives. Each B_PDU contains data for only one VC, identified by the VCDU-ID parameter. Each bit is placed sequentially, and unchanged, into the B_PDU data field. 5.3.8.1.3.1.b The B_PDU is fixed length for any VC; its length is specified by management to match the data-carrying space of the VC_PDU. When the Bitstream Data have filled one particular B_PDU, the continuation of the Bitstream Data is placed in the next B_PDU on the same VC. 5.3.8.1.3.1.c If, due to the constraints of the PDU release algorithm, a B_PDU is not completely filled by Bitstream Data at release time, the B_PDU Construction Function will fill the remainder of the B_PDU with a locally specified fill pattern. The boundary between the end of the valid user data and the beginning of the fill data is indicated by setting a "Bitstream Data Pointer" in the B_PDU header. 5.3.8.1.3.1.d The B_PDU Construction Function uses the VCA service of the VCA sublayer for data transfer. The choice of the Grade of Service is defined by management for the VC being used. 5.3.8.1.3.2 BITSTREAM EXTRACTION FUNCTION 5.3.8.1.3.2.a The Bitstream Extraction Function is used to extract Bitstream Data from B_PDUs. The B_PDU is the SDU parameter received from the VCA sublayer. The extracted Bitstream Data are delivered to the Bitstream service user identified by the VCDU-ID parameter. Any fill data inserted by the B_PDU Construction Function are removed and discarded prior to delivery, using the Bitstream Data Pointer information. 5.3.8.1.3.2.b The Bitstream Extraction Function may optionally pass a Bitstream Data Loss Flag to the user of the Bitstream service as a parameter; the flag is derived from the VCDU Loss Flag received from the VCA sublayer. 5.3.8.1.3.2.c If used, the Bitstream Data Loss Flag indicates to the user that an indeterminate amount of data may have been lost between the instance of the BITSTREAM.indication primitive with which the Flag is associated and the previous instance of the BITSTREAM.indication primitive. Note that if the Bitstream Data Loss Flag is set, and (one or more) subsequent B_PDUs are discarded because they contain only fill data, then the Flag must remain set until the next valid B_SDU is delivered to the user. As the contents (valid or fill data) of lost B_PDUs cannot be established, the user should be aware that the Bitstream Data Loss Flag signals a disruption in the Bitstream Protocol Data Units, and not necessarily a disruption of the Bitstream itself. 5.3.8.2 STRUCTURE AND ENCODING OF VCLC_PDUs 5.3.8.2.a The VCLC_PDU may be either a Multiplexing PDU (M_PDU) or a Bitstream PDU (B_PDU). The M_PDU may contain Encapsulation PDUs (E_PDUs). 5.3.8.2.1 FORMAT OF THE ENCAPSULATION PROTOCOL DATA UNIT 5.3.8.2.1.a The Encapsulation Procedures accept variable-length, delimited, octet-aligned E_SDUs from the Encapsulation service interface and encapsulate each of them within a variable-length Encapsulation Protocol Data Unit (E_PDU). The E_PDU uses the format of the Version-1 CCSDS Packet. Its structure is shown in Figure 5-4. [IMAGE] Figure 5-4: Encapsulation Protocol Data Unit 5.3.8.2.1.b The utilization of the fields within the E_PDU is as follows. 5.3.8.2.1.1 VERSION (Bits 0 through 2) 5.3.8.2.1.1.a The three Version bits shall be set to value "000", indicating a Version-1 CCSDS Packet. 5.3.8.2.1.2 TYPE (Bit 3) 5.3.8.2.1.2.a The Type bit is not used. It may be set to value "0" or "1" at the discretion of the Project organization. 5.3.8.2.1.3 SECONDARY HEADER FLAG (Bit 4) 5.3.8.2.1.3.a No requirements have been identified for a Secondary Header in the E_PDU. The Secondary Header Flag bit shall be set to value "0". 5.3.8.2.1.4 APPLICATION PROCESS ID/PACKET CHANNEL ID (Bits 5 through 15) 5.3.8.2.1.4.a The 11-bit Application Process ID/Packet Channel ID field identifies the Packet Channel that is being used for the flow of encapsulated data. 5.3.8.2.1.4.b When the E_SDU contained in the User Data field of the Packet is an ISO 8473 Internet packet, this field shall be set to the reserved Packet Channel value of "all ones minus one". 5.3.8.2.1.4.c The assignment of other reserved values of this field (see Table 5-4) for use by the Encapsulation service is an item for potential future extension of this document. 5.3.8.2.1.5 SEQUENCE FLAGS (Bits 16,17) 5.3.8.2.1.5.a No requirements for segmentation of E_SDUs by the E_PDU have been identified. The two Sequence Flag bits shall therefore be set to value "11". 5.3.8.2.1.6 PACKET SEQUENCE COUNT (Bits 18 through 31) 5.3.8.2.1.6.a The 14-bit Packet Sequence Count field shall contain a straight sequential count (modulo 16384) which numbers each E_PDU generated on each reserved Packet Channel. The count shall be incremented independently for each Packet Channel. 5.3.8.2.1.7 PACKET LENGTH (Bits 32 through 47) 5.3.8.2.1.7.a The Packet Length field contains a sequential 16-bit binary count "C" of the length (in octets) of the E_PDU excluding the Primary Header. The field is a count of the total number of octets which occur in the E_PDU after the last bit of the Primary Header, expressed as follows: C = { (number of octets) - 1 } 5.3.8.2.1.8 E_PDU DATA FIELD 5.3.8.2.1.8.a The E_PDU Data field contains one E_SDU, whose length must be an integer number of octets up to a maximum of 65,536. 5.3.8.2.2 FORMAT OF THE MULTIPLEXING PROTOCOL DATA UNIT 5.3.8.2.2.a The Multiplexing Procedures accept CCSDS Packets (E_PDUs or M_SDUs) respectively from the Encapsulation Procedures and the Multiplexing service interface, and multiplexes them into the Multiplexing Protocol Data Unit (M_PDU). 5.3.8.2.2.b The length of the M_PDU is fixed by management for any particular Virtual Channel, since it is required to fit exactly within the fixed-length data space of the VC_PDU. Necessarily, the length of M_PDUs carried by a Virtual Channel which supports the Insert or SLAP procedures must take into account the fixed length of the optional Insert, and/or the optional SLAP, protocol control information. Once the various length parameters have been set by management, they are static. 5.3.8.2.2.c The format of the M_PDU, which consists of an M_PDU Header followed by an M_PDU Packet Zone, is shown in Figure 5-5. 5.3.8.2.2.d The utilization of the fields within the M_PDU is as follows: [IMAGE] Figure 5-5: Multiplexing Protocol Data Unit, M_PDU 5.3.8.2.2.1 SPARE (Bits 0-4) 5.3.8.2.2.1.a The five-bit Spare field is currently undefined by CCSDS; by convention, it shall therefore be set to the reserved value of "00000". 5.3.8.2.2.2 FIRST HEADER POINTER (Bits 5-15) 5.3.8.2.2.2.a The purpose of the First Header Pointer field is to facilitate delimiting of variable-length SDUs contained within the M_PDU Packet Zone, by pointing directly to a known reference location within the first SDU from which its length may be determined. The SDUs within the M_PDU may be either E_PDUs or M_SDUs, both of which are formatted as Version-1 CCSDS Packets. 5.3.8.2.2.2.b Length delimiting is used to determine where the boundaries of the CCSDS Packets occur within the M_PDU Packet Zone. Packets may "spill over" into the Packet Zone of the next consecutive M_PDU on a particular Virtual Channel. 5.3.8.2.2.2.c This 11-bit field contains a binary count "P" (modulo 2048) which, when incremented by "1", points directly to the number of the octet within the M_PDU Packet Zone (starting at octet number one, which begins at the first bit of the Packet Zone) that contains the first octet of the first CCSDS Packet header. The count "P" is expressed as: P = { (Number of the octet) - 1 } 5.3.8.2.2.2.d If the M_PDU Packet Zone contains CCSDS Packet data but no Packet header exists within the Zone, the First Header Pointer shall be set to value "all ones". This situation may occur if a long Packet spills over across more than one M_PDU. 5.3.8.2.2.2.e If the M_PDU Packet Zone does not contain any valid user data (i.e., it contains a fill pattern) the First Header Pointer shall be set to value "all ones minus one". 5.3.8.2.2.2.f Since CCSDS Packets may start at any octet boundary within the M_PDU Packet Zone, it is possible that a Packet header may be split between successive M_PDUs on one Virtual Channel. The rules for handling this situation are as follows: 5.3.8.2.2.2.g if the first CCSDS Packet header starts at the end of the Packet Zone within M_PDU (x) and spills over into M_PDU (x+1) on that Virtual Channel, the First Header Pointer in M_PDU (x) shall be set to indicate the start of this Packet header; 5.3.8.2.2.2.h if any CCSDS Packet header is split between M_PDUs (x) and (x+1) on that Virtual Channel, the First Header Pointer in M_PDU (x+1) ignores the residue of the split Packet Header, and shall only be set to indicate the start of any subsequent new CCSDS Packet header within M_PDU (x+1). 5.3.8.2.2.3 M_PDU PACKET ZONE (integral number of octets) 5.3.8.2.2.3.a The M_PDU Packet Zone is a fixed number of octets in length and contains the variable-length E_PDUs or M_SDUs, formatted as Version-1 CCSDS Packets. The first and last Packets of the M_PDU are not necessarily complete, since the first CCSDS Packet may be a continuation of a Packet begun in the previous M_PDU and the last CCSDS Packet may continue in the subsequent M_PDU. 5.3.8.2.2.3.b In the event that it is necessary to insert a "fill" Packet, a Version-1 CCSDS Packet of appropriate length shall be generated which has the following characteristics: Version: "000" Type: Not used; set to either "0" or "1". Sec. Header Flag: "0" APID: "All ones" Sequence Flags: "11" (unsegmented) Sequence Count: "All zeros" Packet Length: The value of this field is a binary count of the exact number of octets in the User Data field of the Fill Packet, minus one. User Data Field: A Project-specified fill pattern, which must be an integral number of octets, shall be inserted. 5.3.8.2.3 FORMAT OF THE BITSTREAM PROTOCOL DATA UNIT 5.3.8.2.3.a The Bitstream Procedures accept Bitstream Data from the Bitstream service interface and generate the Bitstream Protocol Data Unit (B_PDU). 5.3.8.2.3.b The length of the B_PDU is fixed by management for any particular Virtual Channel, since it is required to fit exactly within the fixed-length data space of the VC_PDU. Necessarily, the length of B_PDUs carried by a Virtual Channel which supports the Insert or SLAP procedures must take into account the fixed length of the Insert, SLAP protocol control information, and Reed-Solomon Check Symbols field if the associated options are selected. Once the various length parameters have been set by management, they are static. 5.3.8.2.3.c The format of the B_PDU, which consists of a B_PDU Header followed by a B_PDU Bitstream Data Zone, is shown in Figure 5-6. [IMAGE] Figure 5-6: Bitstream Protocol Data Unit, B_PDU 5.3.8.2.3.d The utilization of the fields within the B_PDU is as follows: 5.3.8.2.3.1 SPARE (Bits 0,1) 5.3.8.2.3.1.a The Spare field is currently undefined by CCSDS: by convention, it shall therefore be set to the reserved value of "00". 5.3.8.2.3.2 BITSTREAM DATA POINTER (Bits 2-15) 5.3.8.2.3.2.a Because it may be necessary to insert fill data if an insufficient number of Bitstream Data bits have been received before a B_PDU is released for transmission, the Bitstream Data Pointer indicates the location of the last valid user data bit within B_PDU Bitstream Data Zone (i.e., the boundary between user data and any inserted fill). 5.3.8.2.3.2.b This 14-bit field contains a binary count "B" (modulo 16384) which, when incremented by "1", points directly to the number of the last valid user data bit within the B_PDU Bitstream Data Zone (starting at bit number one, which is the first bit within the Bitstream Data Zone). The count "B" is expressed as: B = { (Number of the bit) - 1 } 5.3.8.2.3.2.c If there are no fill data in the Bitstream Data Zone (i.e., the B_PDU contains only valid user data), the Bitstream Data Pointer shall be set to the value "all ones". 5.3.8.2.3.2.d If there are no valid user data in the Bitstream Data Zone (i.e., the B_PDU contains only fill), the Bitstream Data Pointer shall be set to the value "all ones minus one". 5.3.8.2.3.3 B_PDU BITSTREAM DATA ZONE 5.3.8.2.3.3.a The Bitstream Data Zone contains either a fixed-length block of the user Bitstream Data (possibly terminated with fill data at a location delimited by the Bitstream Data Pointer), or a fixed-length Project-specified fill pattern. 5.4 VIRTUAL CHANNEL ACCESS SUBLAYER 5.4.1 OVERVIEW 5.4.1.a This section contains the service and protocol specifications for the Virtual Channel Access sublayer. The VCA sublayer performs time division multiplexing between the asynchronous VCLC sublayer and the synchronous Physical Channel layer. 5.4.2 INTERNAL ORGANIZATION OF THE VCA SUBLAYER 5.4.2.a The addressing mechanism at the Virtual Channel Data Unit and VCA service interfaces to the VCA sublayer is the CCSDS Virtual Channel identified by the VCDU-ID, which is a concatenation of Spacecraft ID and Virtual Channel ID. The VCDU-IDs are bound by management at the transmitting end of a data link to one or more PCA_PDUs. Although multicasting of a virtual channel through multiple PCA_PDUs is permitted if the VCDU size is the same for all of the relevant PCA_PDUs and Insert service is not present in any of those PCA_PDUs, multiplexing of a virtual channel across multiple PCA_PDUs is forbidden. 5.4.2.b The addressing mechanism at the Insert service interface to the VCA sublayer is the LinkID. 5.4.2.c The internal organization of the VCA sublayer is shown in Figure 5- 7. 5.4.3 SERVICES PROVIDED BY THE VCA SUBLAYER 5.4.3.a The VCA sublayer provides three services: 5.4.3.b a "VCA service" provides transfer of VCA_SDUs across the Physical Channel. The VCA service is used by the VCLC sublayer and is exposed as an SLS service. Internal to the VCA sublayer, an option exists to transfer VCA_SDUs across the Physical Channel using a retransmission control procedure known as a "Space Link ARQ Procedure" (SLAP); 5.4.3.c an "Insert service" may be used at low transmitted data rates (see Reference [8]) to provide isochronous transfer of fixed- length IN_SDUs across the Physical Channel. The Insert service concurrently uses the same VCs as the other services; [IMAGE] Figure 5-7: Internal Organization of the VCA Sublayer 5.4.3.d a "Virtual Channel Data Unit service" provides transfer of user- generated validated VC_PDUs (VCDUs or CVCDUs) across the Physical Channel. 5.4.3.e In view of complex interactions with internal VCA error control, the Virtual Channel Data Unit service and Insert service shall not be simultaneously active on a particular Physical Channel. 5.4.3.f The types of data transfer services that are supported are as follows: 5.4.3.g a VCA_SDU and/or an IN_SDU may be transferred using a VC_PDU which does not incorporate Reed-Solomon coding (i.e., a VCDU), thus providing SLS "Grade-3" service. The VCA_SDU may not be an M_PDU if Grade-3 service is used; 5.4.3.h a VCA_SDU and/or an IN_SDU may be transferred using a VC_PDU which incorporates Reed-Solomon coding (i.e., a CVCDU), thus providing SLS "Grade-2" service; 5.4.3.i a VCA_SDU may be transferred using a VC_PDU which incorporates Reed-Solomon coding plus the SLAP retransmission protocol, thus providing SLS "Grade-1" service; 5.4.3.j a user-generated VC_PDU may be transferred which itself internally supports either Grade-1, Grade-2 or Grade-3 service across the SLS. 5.4.4 VCA SERVICES ASSUMED FROM THE PHYSICAL CHANNEL LAYER 5.4.4.a The "Physical Channel Service" required from the Physical Channel layer is the capability to transfer channel bits from point to point or point to multipoint across the Space Link Subnet. Multiplexing of a VCA, VCDU, or Insert service across multiple Physical Channels is not permitted, though this does not preclude the multicasting of a Virtual Channel over multiple Physical Channels. 5.4.4.b The service primitives are: PC_UNITDATA.request (channel bit) PC_UNITDATA.indication (channel bit) 5.4.5 VCA SERVICES ASSUMED FROM THE LOCAL ENVIRONMENT 5.4.5.a The services assumed from the local environment are unspecified. 5.4.6 VCA SERVICE INTERFACE SPECIFICATION 5.4.6.a. This section specifies the services provided by the CCSDS Virtual Channel Access sublayer. The services described do not imply any particular implementation. 5.4.6.1 OVERVIEW OF INTERACTIONS 5.4.6.1.1 VCA SERVICE 5.4.6.1.1.a The VCA service is used to transfer VCA_SDUs across the Space Link Subnet. The VCA service user accesses the sublayer at the VCA_SAP identified by the VCDU-ID. The VCA sublayer entity constructs VC_PDUs (VCDUs or CVCDUs) from VCA_SDUs, optionally (if Grade-1 service is requested) invoking the internal SLAP procedures to add the SLAP protocol. It serializes the VC_PDUs, delimits them using Synchronization Markers, and transmits them using the services of the Physical Channel layer. 5.4.6.1.1.b The service primitives associated with this service are: VCA_UNITDATA.request VCA_UNITDATA.indication 5.4.6.1.1.c The VCA_UNITDATA.request primitive is passed to the Virtual Channel Access sublayer to request that a VCA_SDU be sent. 5.4.6.1.1.d The VCA_UNITDATA.indication primitive is passed from the Virtual Channel Access sublayer to indicate the arrival of a VCA_SDU. 5.4.6.1.2 INSERT SERVICE 5.4.6.1.2.a The Insert service is used to transfer isochronous Insert SDUs (IN_SDUs) by carrying them within an Insert field that is placed into every transmitted VC_PDU. The presence/absence and length of the Insert field is set by management. The service requires isochronous IN_SDUs to be of fixed length on all Virtual Channels; their length may be of any constant value which is an integral number of octets, between 1 octet and the maximum length of the data-carrying space of the VC_PDU. 5.4.6.1.2.b There are two service primitives associated with this service: INSERT.request INSERT.indication 5.4.6.1.2.c The INSERT.request primitive is passed to the VCA sublayer to request that an IN_SDU be sent. 5.4.6.1.2.d The INSERT.indication is used by the VCA sublayer to indicate the arrival of an IN_SDU. 5.4.6.1.3 VIRTUAL CHANNEL DATA UNIT SERVICE 5.4.6.1.3.a The Virtual Channel Data Unit service is used by a trusted VCA sublayer user (i.e., an independent VCA sublayer entity which has been certified during the design process to meet Project-specified reliability and safety criteria) to transfer preformatted VCDUs or CVCDUs across the Space Link Subnet. The trusted VCA sublayer user accesses the VCA sublayer at the VCA_SAP identified by the VCDU-ID; this SAP is bound by management to use the same Physical Channel service as the VCA sublayer. The VCA sublayer multiplexes the user-generated VC_PDUs (VCDUs/CVCDUs) with the VCDUs/CVCDUs generated by itself, delimits them using Synchronization Markers, and transmits them using the services of the Physical Channel layer. 5.4.6.1.3.b The service primitives associated with this service are: VCA_VCDU.request VCA_VCDU.indication 5.4.6.1.3.c The VCA_VCDU.request primitive is passed to the Virtual Channel Access sublayer by the trusted sublayer user to request that a VCDU or CVCDU be sent. 5.4.6.1.3.d The VCA_VCDU.indication primitive is passed from the Virtual Channel Access sublayer to the trusted sublayer user to indicate the arrival of a VCDU or CVCDU. 5.4.6.2 VCA SERVICE PRIMITIVE PARAMETERS 5.4.6.2.a The parameters for the VCA primitives are described below. Unique uses of these parameters by any primitive are described in the Additional Comments section in the detailed description of that primitive. 5.4.6.2.b VCA_SDU VCA Service Data Unit. A VCA_SDU is the service data unit passed to and from users of the VCA service on a particular VC. 5.4.6.2.c IN_SDU The Insert Service Data Unit. An IN_SDU is the service data unit passed to and from users of the Insert service on all VCs. An IN_SDU is an isochronous, octet-aligned data unit of fixed length. Its length at the request (source) interface is always equal to its length at the indication (destination) interface. 5.4.6.2.d SLAP_SDU The SLAP Service Data Unit. A SLAP_SDU is a special instance of a VCA_SDU, passed to and from users of the VCA service on a VC which has been assigned by management to support SLS Grade-1 service. 5.4.6.2.e VCDU/ Virtual Channel Data Unit or Coded Virtual Channel CVCDU Data Unit. Within the Virtual Channel Data Unit service, a VCDU/CVCDU is the service data unit which is passed between trusted peer VCA sublayer entities. 5.4.6.2.f VCDU-ID Virtual Channel Data Unit Identifier. The VCDU-ID consists of a concatenation of the Spacecraft Identifier (SCID) and the Virtual Channel Identifier (VCID). It identifies the VCA_SAP and therefore the SLS Grade of Service (Grade-1, Grade- 2, or Grade-3) associated with the transfer. 5.4.6.2.g LinkID The LinkID is used by the Insert service to identify the PCA_PDU that contains the stream of VC_PDUs which carry the IN_SDUs. Note that a stream of VC_PDUs contained in a PCA_PDU may include more than one SCID. 5.4.6.2.h VCDU The VCDU Loss Flag is used to notify the user at the Loss destination end of a VCA service that a sequence discontinuity has been Flag detected and that one or more VC_PDUs has been lost. The VCDU Loss Flag is mandatory (in contrast to similar flags provided by the Encapsulation and Bitstream services) in recognition of its importance in the Multiplexing and Bitstream procedures of the VCLC layer. 5.4.6.2.i Insert Data The Insert Data Loss Flag is an optional parameter Loss Flag which may be used to notify the user at the destination end of the Insert service that one or more CADUs has been lost 5.4.7 DETAILED VCA SERVICE SPECIFICATIONS 5.4.7.a This section describes in detail the primitives and parameters associated with the VCA service, the Insert service, and the Virtual Channel Data Unit service. 5.4.7.b The parameters, which are specified in an abstract sense, specify the information to be made available to the receiving entity. A specific implementation is not constrained in the method of making this information available. 5.4.7.1 VCA_UNITDATA.request 5.4.7.1.a Function This primitive is the service request primitive for the VCA service. 5.4.7.1.b Semantics The primitive shall provide parameters as follows: VCA_UNITDATA.request (VCA_SDU, VCDU-ID) 5.4.7.1.c When Generated This primitive is passed to the VCA sublayer to request it to send the VCA_SDU. 5.4.7.1.d Effect on Receipt Receipt of this primitive causes the VCA sublayer to attempt to send the VCA_SDU. 5.4.7.1.e Additional Comments None. 5.4.7.2 VCA_UNITDATA.indication 5.4.7.2.a Function This primitive is the service indication primitive for the VCA service. 5.4.7.2.b Semantics The primitive shall provide parameters as follows: VCA_UNITDATA.indication (VCA_SDU, VCDU-ID, VCDU Loss Flag) 5.4.7.2.c When Generated This primitive is passed from the VCA sublayer to the VCA sublayer user to indicate the arrival of a VCA_SDU. 5.4.7.2.d Effect on Receipt The effect of receipt of this primitive by the VCLC layer is described in Section 5.3 5.4.7.2.e Additional Comments The VCDU Loss Flag is used to signal a detected discontinuity in the sequence of VC_PDUs to the VCA service user. 5.4.7.3 INSERT.request 5.4.7.3.a Function This primitive is the service request primitive for the Insert service. 5.4.7.3.b Semantics The primitive shall provide parameters as follows: INSERT.request (IN_SDU, LinkID) 5.4.7.3.c When Generated This primitive is passed to the VCA sublayer to request it to send the IN_SDU. 5.4.7.3.d Effect on Receipt Receipt of this primitive causes the VCA sublayer to attempt to send the IN_SDU. 5.4.7.3.e Additional Comments The LinkID indicates that the IN_SDU must be inserted into all VC_PDUs. The Insert service and the Virtual Channel Data Unit service are mutually exclusive on a particular Physical Channel. 5.4.7.4 INSERT.indication 5.4.7.4.a Function This primitive is the service indication primitive for the Insert service. 5.4.7.4.b Semantics The primitive shall provide parameters as follows: INSERT.indication(IN_SDU, LinkID, Insert Data Loss Flag [opt.]) 5.4.7.4.c When Generated This primitive is passed from the VCA sublayer to the Insert service user to indicate the arrival of an IN_SDU. 5.4.7.4.d Effect on Receipt The effect of receipt of this primitive by the Insert service user is not specified. 5.4.7.4.e Additional Comments The LinkID parameter indicates that the IN_SDU was transferred in "all" Virtual Channels. The optional Insert Data Loss Flag is used to signal a detected loss of one or more CADUs to the Insert service user. 5.4.7.5 VCA_VCDU.request 5.4.7.5.a Function This primitive is the service request primitive for the Virtual Channel Data Unit service. 5.4.7.5.b Semantics The primitive shall provide parameters as follows: VCA_VCDU.request (VCDU/CVCDU, VCDU-ID) 5.4.7.5.c When Generated This primitive is passed to the VCA sublayer to request it to send the VCDU or CVCDU. 5.4.7.5.d Effect on Receipt Receipt of this primitive causes the VCA sublayer to attempt to send the VCDU or CVCDU. 5.4.7.5.e Additional Comments The Virtual Channel Data Unit service and the Insert service are mutually exclusive on a particular Physical Channel. 5.4.7.6 VCA_VCDU.indication 5.4.7.6.a Function This primitive is the service indication primitive for the Virtual Channel Data Unit service. 5.4.7.6.b Semantics The primitive shall provide parameters as follows: VCA_VCDU.indication (VCDU/CVCDU, VCDU-ID) 5.4.7.6.c When Generated This primitive is passed from the VCA sublayer to the VCA sublayer user to indicate the arrival of a VCDU or CVCDU. 5.4.7.6.d Effect on Receipt The effect of receipt of this primitive by the VCA sublayer user is not specified. 5.4.7.6.e Additional Comments None. 5.4.8 INTERNAL VCA INTERFACE TO THE SLAP PROCEDURES 5.4.8.a The SLAP procedures, although completely contained within the VCA sublayer, are sufficiently complex and detailed that they are described separately in Section 6 of this Recommendation. For this reason an unambiguous interface to the SLAP procedures is defined here. 5.4.8.b The architecture of the SLAP interfaces is shown in Figure 5- 8. [IMAGE] Figure 5-8: Internal VCA Interfaces with the SLAP 5.4.8.c The services assumed from the SLAP consist of the primitives: SLAP_DATA.request SLAP_DATA.indication 5.4.8.d Services presented to the SLAP are those of the VCA sublayer, and at the VCA service interface consist of the primitives: VCA_UNITDATA.request VCA_UNITDATA.indication 5.4.8.1 SERVICES ASSUMED FROM THE SLAP PROCEDURES 5.4.8.1.1 SLAP_DATA.request 5.4.8.1.1.a Function This primitive is the service request primitive for the SLAP service. 5.4.8.1.1.b Semantics The primitive shall provide parameters as follows: SLAP_DATA.request(SLAP_SDU, VCDU-ID) 5.4.8.1.1.c When Generated This primitive is passed to the SLAP procedures to send the SLAP_SDU. 5.4.8.1.1.d Effect on Receipt Receipt of this primitive causes the SLAP procedures to send the SLAP_SDU. 5.4.8.1.1.e Additional Comments The SLAP_SDU is the VCA_SDU on a VC assigned by management to support SLS Grade-1 service. The SLAP_SAP is defined by the VCDU-ID. 5.4.8.1.2 SLAP_DATA.indication 5.4.8.1.2.a Function This primitive is the service indication primitive for the SLAP service. 5.4.8.1.2.b Semantics The primitive shall provide parameters as follows: SLAP_DATA.indication (SLAP_SDU, VCDU-ID) 5.4.8.1.2.c When Generated This primitive is passed from the SLAP to the VCA sublayer user on a particular Grade-1 VC to indicate the arrival of a SLAP_SDU. 5.4.8.1.2.d Effect on Receipt The effect of receipt of this primitive by the VCA sublayer user is unspecified. 5.4.8.1.2.e Additional Comments The SLAP_SDU is the VCA_SDU on a VC assigned by management to support SLS Grade-1 service. The SLAP_SAP is defined by the VCDU-ID. 5.4.8.2 SERVICES PRESENTED TO THE SLAP PROCEDURES 5.4.8.2.a The services presented to the SLAP procedures are those at the VCA service interface. The SLAP has its own numbering mechanism and is therefore independent of the sequencing of VC_PDUs. 5.4.9 VIRTUAL CHANNEL ACCESS PROTOCOL SPECIFICATION 5.4.9.1 VCA PROTOCOL PROCEDURES 5.4.9.1.a The VCA sublayer is composed of three sets of protocol procedures: "SLAP Procedures"; "Virtual Channel Procedures"; and "Channel Access Procedures". 5.4.9.1.b The internal functional organization of the SLAP Procedures is described in Section 6 of this Recommendation and is therefore not discussed here. 5.4.9.1.c The Virtual Channel Procedures and Channel Access Procedures are internally organized to support the functions illustrated in Figure 5-9. [IMAGE] Figure 5-9: VCA Internal Functional Organization 5.4.9.1.1 VIRTUAL CHANNEL PROCEDURES 5.4.9.1.1.a The protocol data unit of the Virtual Channel Procedures is the VC_PDU, which is implemented using the CCSDS Virtual Channel Data Unit (VCDU) data structure. A VC_PDU is composed of a VCDU Primary Header, an optional VCDU Insert Zone, a VCDU Data Unit Zone, and an optional VCDU Trailer. 5.4.9.1.1.b The Virtual Channel Procedures accept service data units and build them into VC_PDUs for transmission at the sending VCA sublayer entity, and extract and deliver the service data units at the receiving VCA sublayer entity. The procedures are composed of a "VCDU Assembly Function" and a "VCA_SDU Extraction Function". 5.4.9.1.1.1 VCDU ASSEMBLY FUNCTION 5.4.9.1.1.1.a The VCDU Assembly Function is used to build the structure and Primary Header of the VCDUs for transmission on each Virtual Channel, using VCA_SDUs (or SLAP_PDUs if the VC supports Grade-1 service) which are each received in a VCA_UNITDATA.request primitive. There is one VCDU Assembly Function per Virtual Channel. 5.4.9.1.1.1.b VCDUs are assembled by placing a single VCA_SDU or SLAP_PDU, unchanged, into the VCDU Data Unit Zone, and generating the VCDU Primary Header fields. The length of the VCA_SDU or SLAP_PDU must be equal to the length of the Data Unit Zone for the Virtual Channel identified by the VCDU-ID. 5.4.9.1.1.1.c A VCDU-ID field is generated and placed into the Primary Header. A sequential count is generated independently for each VC and placed into the Primary Header. 5.4.9.1.1.2 VCA_SDU EXTRACTION FUNCTION 5.4.9.1.1.2.a The VCA_SDU Extraction Function extracts VCA_SDUs from the VCDUs, and delivers them on individual Virtual Channels to users of the VCA service at VCA_SAPs defined by the VCDU-ID. An extracted VCA_SDU (which may, for Grade-1 service, be a SLAP_PDU) is delivered in a VCA_UNITDATA.indication primitive. There is one VCA_SDU Extraction Function per Virtual Channel. 5.4.9.1.2 CHANNEL ACCESS PROCEDURES 5.4.9.1.2.a The Channel Access Procedures provide the multiplexing functions necessary to switch all of the individual Virtual Channels together for commutation into one PCA_PDU. They also provide the error-control functions in support of the different SLS Grades of Service, and the isochronous formatting functions in support of the Insert service. There is one Channel Access Procedural entity for each PCA_PDU. 5.4.9.1.2.b In support of Grade-1/2 service, a VC_PDU may be error protected, using the Reed-Solomon encoding scheme, in which case it is transformed internally and becomes a CCSDS Coded Virtual Channel Data Unit (CVCDU) data structure. 5.4.9.1.2.c The VC_PDUs are transmitted through the Physical Channel as a serial string of VCDUs and/or CVCDUs; the boundaries between them are delimited by attaching a Synchronization Marker to each VCDU/CVCDU. One individual VCDU/CVCDU, prefixed by its attached Synchronization Marker, is a CCSDS Channel Access Data Unit (CADU). 5.4.9.1.2.d The protocol data unit of the Channel Access Procedures is the PCA_PDU, which is a serial stream of bits representing a continuous and contiguous stream of CADUs. The PCA_PDU is named by the LinkID. 5.4.9.1.2.e The Channel Access Procedures are composed of ten internal functions: a "VCDU Commutation Function"; a "Fill Generation Function"; an "Error Control Encoding Function"; an "Insert Injection Function"; a "Delimiting Function"; a "Synchronization Function"; an "Insert Extraction Function"; an "Error Control Decoding Function"; a "VCDU Decommutation Function"; and a "Fill Removal Function". 5.4.9.1.2.1 VCDU COMMUTATION FUNCTION 5.4.9.1.2.1.a There is one VCDU Commutation entity for each PCA_PDU. The VCDU Commutation entity generates a queue of VCDUs (received from either the Virtual Channel Procedures or from the Virtual Channel Data Unit service interface) for commutation into the PCA_PDU in an appropriate order that is set by management. If necessary to preserve the continuity of the transmitted stream, the VCDU Commutation Function requests "Fill" VCDUs from the Fill Generation Function. 5.4.9.1.2.1.b The Virtual Channel Data Unit service interface supports externally generated VC_PDUs: these may be either VCDUs or CVCDUs, as specified by management. They are passed in a VCA_VCDU.request primitive. 5.4.9.1.2.1.c The algorithm to be used to order the VC_PDUs is not specified by CCSDS, but is defined by Project organizations considering factors such as priority, release rate, isochronous timing requirements, etc. 5.4.9.1.2.2 FILL GENERATION FUNCTION 5.4.9.1.2.2.a In the event that there are no valid VC_PDUs available for transmission at a release time that is established by the VCDU Commutation Function, the Fill Generation Function creates a Fill VCDU which has its VCID set to the reserved value of "all ones". It is not required to maintain a sequential count for fill VCDUs. 5.4.9.1.2.3 ERROR CONTROL ENCODING FUNCTION 5.4.9.1.2.3.a Under control of management, three optional error control fields may be generated by the Error Control Encoding Function and added to the VCDU, in support of different SLS Grades of Service: 5.4.9.1.2.3.b A "VCDU Header Error Control" field may be added to the VCDU Primary Header to protect key header information. This field is required in all VC_PDUs associated with Grade-3 service, and in all VC_PDUs associated with Grade-1/2 service where: (1) the implementation of the receiving system is such that the Primary Header must be processed prior to Reed-Solomon decoding, and/or (2) the Insert Zone is present in a PCA_PDU which supports mixed Grade-3 and Grade-1/2 service. (Note: in case (1) the requirement for VCDU Header Error Control is implementation dependent and is therefore the subject of local cross support agreements; in case (2) the presence of the VCDU Header Error Control field is required in order to equalize the length of the Primary Headers, so that Insert data may be extracted by the receiver before any decoding is performed.) 5.4.9.1.2.3.c A cyclic redundancy code (CRC) "VCDU Error Control" field (using a polynomial which covers the entire VCDU) may be inserted into the VCDU Trailer. This field is required in all VC_PDUs associated with Grade-3 service. 5.4.9.1.2.3.d A block of "Reed-Solomon Check Symbols" may be appended to the end of the VCDU, thus forming a CVCDU. This field is required in all VC_PDUs associated with Grade-1/2 service. 5.4.9.1.2.3.e Since VCDUs and CVCDUs are always of the same fixed length in a particular PCA_PDU, the Data Unit Zone of a CVCDU is shortened (relative to a VCDU) by an amount equal to the length of the Reed-Solomon check symbols. 5.4.9.1.2.3.f Externally generated VC_PDUs associated with the Virtual Channel Data Unit service will always bypass the Error Control Encoding Functions specified in 5.4.9.1.2.3.b and 5.4.9.1.2.3.c. The Virtual Channel Data Unit service user must therefore ensure that the VC_PDUs contain an error encoding option which conforms with that implemented by the supporting SLS element(s). However, it is permissible for Virtual Channel Data Unit service users to supply VCDUs to a supporting SLS element for conversion to CVCDUs, providing that the user shortens their length to accommodate the addition of the Reed-Solomon check symbols. 5.4.9.1.2.4 INSERT INJECTION FUNCTION 5.4.9.1.2.4.a When the optional Insert service is activated, a fixed- length Insert Zone exists in every VC_PDU (VCDU/CVCDU) that is transmitted in a particular PCA_PDU (including Fill VC_PDUs). The Insert service and Virtual Channel Data Unit service may not be activated simultaneously. 5.4.9.1.2.4.b The IN_SDUs are timed to arrive at a constant interval that corresponds to the release time of the VC_PDUs onto the Physical Channel. The Insert Injection function places the IN_SDU, received in an INSERT.request primitive, into the Insert Zone of the VC_PDU, preserving octet alignment. 5.4.9.1.2.4.c The Insert Injection function shall be performed before the CRC and/or Reed-Solomon Error Control Encoding Functions. 5.4.9.1.2.5 BIT TRANSITION GENERATION FUNCTION (OPT.) 5.4.9.1.2.5.a Adequate bit transition density must be ensured when the PCA_PDU is modulated directly onto the space channel. Some modulation schemes themselves provide the required transitions; however, if adequate bit transitions do not exist, a random sequence shall be exclusively ORed with each bit of the CADU, exclusive of the Synchronization Marker. Such a random sequence shall be generated using the following polynomial: h(x) = x**8 + x**7 + x**5 + x**3 + 1 5.4.9.1.2.5.b This sequence repeats after 255 bits and the sequence generator is re-initialized to an all-ones state during each Synchronization Marker period. The first 40 bits of the pseudonoise sequence are shown below; the left-most bit is the first bit of the sequence and is exclusively ORed with the first bit of the VCDU or CVCDU: 1111 1111 0100 1000 0000 1110 1100 0000 1001 1010 5.4.9.1.2.5.c If an inner convolutional coding scheme is implemented with alternate symbol inversion, there is no requirement to add the bit transition generator (but neither is it prohibited). Appropriate choice of a modulation technique could also obviate the need for a transition generator. If the transition generator is implemented, then management provisions must necessarily be made to notify the receiving end of the link of its presence: the LinkID provides this management association. 5.4.9.1.2.6 DELIMITING FUNCTION 5.4.9.1.2.6.a VC_PDUs are submitted to the Delimiting Function at a data rate that is set by management; their transmitted sequence is determined by the VCDU Commutation Function. 5.4.9.1.2.6.b The Delimiting Function creates the PCA_PDU, which is clocked out synchronously at the transmitted bit rate of the Physical Channel by prefixing a Synchronization Marker to each VC_PDU and thus forming a continuous and contiguous stream of CADUs. Each CADU occupies one synchronous time slot on the Physical Channel. 5.4.9.1.2.6.c The PCA_PDU is submitted to the Physical Channel layer in the PC_UNITDATA.request primitive. 5.4.9.1.2.7 SYNCHRONIZATION FUNCTION 5.4.9.1.2.7.a The PCA_PDU is received from the Physical Channel layer in a PC_UNITDATA.indication primitive. The Synchronization Function determines the boundaries of the fixed-length VC_PDU by recognition of the appended Synchronization Marker of the CADU. The Synchronization Marker is discarded once synchronization to the VC_PDU boundaries has been achieved. 5.4.9.1.2.8 BIT TRANSITION REMOVAL FUNCTION (IF NEEDED) 5.4.9.1.2.8.a In the event that the optional Bit Transition Generation Function was performed by the transmitter, the Bit Transition Removal Function is activated at the receiving end (immediately after synchronization is achieved) to remove the randomization and restore the original data. 5.4.9.1.2.8.b The Bit Transition Removal Function is activated as needed under control of management; i.e., the presence or absence of the randomizing sequence is one of the managed parameters which is ascribed by a particular LinkID. 5.4.9.1.2.9 INSERT EXTRACTION FUNCTION 5.4.9.1.2.9.a When the optional Insert service is activated under control of management, the Insert Extraction Function extracts the IN_SDUs from the Insert Zones of the incoming stream of VC_PDUs, regardless of their VCDU-ID, and delivers each of them to the user of the Insert service in an INSERT.indication primitive. If error protection of the IN_SDUs is not required, this function may be performed prior to the Error Control Decoding Function. 5.4.9.1.2.10 ERROR CONTROL DECODING FUNCTION 5.4.9.1.2.10.a The operations performed by the Error Control Decoding Function vary according to the error coding techniques (i.e., VCDU Header Error Control, VCDU Error Control field, Reed-Solomon encoding) that are present in the received VC_PDUs. The mechanism that the Error Control Decoding Function uses to determine which of the error coding techniques is present is dependent on the implementation of the receiving system. There are a number of possible ways for a receiver to determine the error coding techniques that are in use in a particular PCA_PDU, using either management- supplied information, information deduced from the received VC_PDUs themselves, or a combination of both. The rules for incorporating VCDU Error Control are discussed in Section 5.4.9.1.2.3; note that the implementation of the receiving system may itself affect those rules. The variety of options for processing PCA_PDUs with mixtures of error coding mechanisms is discussed further in Reference [8]. 5.4.9.1.2.10.b If VCDU Header Error Control is present in the VC_PDU, the Error Control Decoding Function uses the content of the VCDU Header Error Control field to attempt to correct key elements of the VCDU Primary Header. (Note that if Reed- Solomon error protection of the entire VC_PDU is also present, additional decoding of the VCDU Header Error Control is not required.) A VC_PDU which contains detected and uncorrectable header errors is not required to be delivered in cross support situations. 5.4.9.1.2.10.c If the VCDU Error Control field is present in the VC_PDU, the Error Control Decoding Function recomputes the CRC value for the VCDU and compares it to the content of the VCDU Error Control field to determine if the VCDU contains a detected error. (Note that if Reed-Solomon error protection of the entire VC_PDU is also present, additional decoding of the VCDU Error Control is not required.) A VC_PDU which contains a detected error is not required to be delivered in cross support situations. 5.4.9.1.2.10.d If Reed-Solomon encoding is present in the VC_PDU (that is, the VC_PDU is a CVCDU), the Error Control Decoding Function uses the content of the Reed-Solomon Check Symbols field to attempt to correct the errors in the VC_PDU. A VC_PDU which contains detected and uncorrectable errors is not required to be delivered in cross support situations. 5.4.9.1.2.10.e Externally generated VC_PDUs associated with the Virtual Channel Data Unit service use the Error Control Decoding Function only to the extent necessary to ensure the validity of their Primary Header routing information. Such VC_PDUs containing detected and uncorrectable header errors are not required to be delivered in cross support situations. 5.4.9.1.2.11 VCDU DECOMMUTATION FUNCTION 5.4.9.1.2.11.a The VCDU Decommutation Function examines the VCDU-ID in the incoming stream of VC_PDUs and routes them to either the VCA_SDU Extraction Function, the Virtual Channel Data Unit service interface, or the Fill Removal Function. At the Virtual Channel Data Unit service interface, the VC_PDU is delivered in a VCA_VCDU.indication primitive. 5.4.9.1.2.12 FILL REMOVAL FUNCTION 5.4.9.1.2.12.a The Fill Removal Function recognizes "Fill" VCDUs by their unique VCID value of "all ones" and discards them. 5.4.9.2 STRUCTURE AND ENCODING OF VCA SUBLAYER PROTOCOL DATA UNITS 5.4.9.2.a The protocol data units of the VCA sublayer are the Virtual Channel Protocol Data Unit (VC_PDU), the SLAP Protocol Data Unit (SLAP_PDU) and the Physical Channel Access Protocol Data Unit (PCA_PDU). 5.4.9.2.1 FORMAT OF THE VC_PDU 5.4.9.2.1.a The VC_PDU is implemented using the CCSDS Virtual Channel Data Unit (VCDU). A VCDU is composed of a VCDU Primary Header, an optional VCDU Insert Zone, a VCDU Data Unit Zone, and an optional VCDU Trailer. In support of Grade-1/2 service, a block of Reed-Solomon check symbols is internally appended to the VCDU to form a Coded Virtual Channel Data Unit (CVCDU). The structural relationships between the VCDU and CVCDU are shown in Figure 5-10. [IMAGE] Figure 5-10: VCDU/CVCDU Structural Components 5.4.9.2.1.b Since the VCDU and CVCDU have the same fixed length in a particular PCA_PDU, the Data Unit Zone of a CVCDU is shortened to accommodate the Reed-Solomon check symbols. 5.4.9.2.1.c The detailed internal field allocation of the VCDU is shown in Figure 5-11. 5.4.9.2.1.1 VCDU PRIMARY HEADER 5.4.9.2.1.1.a The VCDU Primary Header contains the following fields: Field: Length (bits): VERSION NUMBER 2 VCDU IDENTIFIER: 14 Spacecraft ID (8) Virtual Channel ID (6) VIRTUAL CHANNEL DATA UNIT COUNTER 24 SIGNALLING FIELD 8 Replay Flag (1) Reserved Spares (7) VCDU HEADER ERROR CONTROL (optional): (16) The total length of the VCDU Primary Header is 48 or 64 bits, depending on whether the optional VCDU Header Error Control field is present. [IMAGE] Figure 5-11: Virtual Channel Data Unit Format 5.4.9.2.1.1.1 VERSION NUMBER (Bits 0,1) 5.4.9.2.1.1.1.a The two Version Number bits (which occupy the two most significant bits of the VCDU Primary Header) are reserved for identification of the VCDU structure. At present two Versions are recognized: 5.4.9.2.1.1.1.b Version-1 (Bits 0,1 = "00"): identifies the CCSDS Telemetry Transfer Frame, specified in Reference [2]; 5.4.9.2.1.1.1.c Version-2 (Bits 0,1 = "01"): identifies the CCSDS Virtual Channel Data Unit, specified herein. 5.4.9.2.1.1.1.d The remainder of this document discusses only the Version-2 structure. Note, however, that there is a deliberate and close relationship between the Version-2 VCDU and the Version-1 Transfer Frame, which maximizes the commonality between CCSDS Conventional Systems and CCSDS Advanced Orbiting Systems. 5.4.9.2.1.1.2 VCDU IDENTIFIER (Bits 2 through 15) 5.4.9.2.1.1.2.a The purpose of the VCDU Identifier (VCDU-ID) is to identify the operational spacecraft with which the VCDU is associated, and to identify the Virtual Channel in use. The field contains two subfields: 5.4.9.2.1.1.2.1 Spacecraft Identifier (Bits 2 through 9) 5.4.9.2.1.1.2.1.a The Spacecraft Identifier (SCID) identifies the various logical entities that provide data to (or receive data from) the VCA sublayer. It also provides the naming domain for the Virtual Channels. 5.4.9.2.1.1.2.1.b For complex international constellations of spacecraft, several SCIDs may be present in the same PCA_PDU. A single spacecraft may be assigned more than one SCID. Different SCIDs will be assigned for flight vehicles, for development vehicles which are using ground networks during prelaunch operations, and for simulated streams. The Secretariat of the CCSDS assigns SCIDs, using procedures defined in Reference [1]. 5.4.9.2.1.1.2.1.c The convention for the SCID naming domains is as follows: 5.4.9.2.1.1.2.1.d for space-to-ground communication the naming domain is the source naming domain (i.e., the transmitting spacecraft); 5.4.9.2.1.1.2.1.e for ground-to-space communication the naming domain is the destination naming domain (i.e., the receiving spacecraft); 5.4.9.2.1.1.2.1.f for space-to-space communication the naming domain is the source naming domain (i.e., the transmitting spacecraft). 5.4.9.2.1.1.2.2 Virtual Channel Identifier (Bits 10 through 15) 5.4.9.2.1.1.2.2.a The six-bit Virtual Channel Identifier (VCID) field enables up to 64 Virtual Channels (VCs) to be run concurrently in association with each SCID that is authorized in a particular PCA_PDU. 5.4.9.2.1.1.2.2.b If only one VC is used, these bits are set permanently to value "all zeros". A VC used for transmission of "Fill" data is indicated by setting these bits to the reserved value of "all ones": a Fill VC so identified may not contain any valid user data within its Data Unit Zone, but it must contain the Insert Zone if Insert service is supported. 5.4.9.2.1.1.3 VIRTUAL CHANNEL DATA UNIT COUNTER (Bits 16 through 39) 5.4.9.2.1.1.3.a The purpose of the VCDU Counter field is to provide individual accountability for each of the sixty-four Virtual Channels. 5.4.9.2.1.1.3.b The 24-bit field represents a sequential count (modulo 16,777,216) of the total number of VCDUs which have been transmitted on each of the VCs; it is used in association with the VCID field to maintain a separate counter for each VC. 5.4.9.2.1.1.4 SIGNALLING FIELD (Bits 40 through 47) 5.4.9.2.1.1.4.a The Signalling field is used to alert the receiver of the VCDU with respect to functions that: (a) may change more rapidly than can be handled by management, or; (b) provide a significant cross check against manual or automated setups, for use in VCA sublayer fault detection and isolation. The Signalling field contains two subfields: 5.4.9.2.1.1.4.1 Replay Flag (Bit 40) 5.4.9.2.1.1.4.1.a Recognizing the need to store VCDUs during periods when the Physical Channel is unavailable, and to retrieve them for subsequent replay when the channel is restored, this flag alerts the receiver of the VCDU with respect to its "realtime" or "replay" status. Its main purpose is to discriminate between realtime and replay VCDUs transmitted on a particular Physical Channel when they both may use the same VCID. 5.4.9.2.1.1.4.1.b The Replay Flag is interpreted as follows: "0" = Realtime VCDU "1" = Replay VCDU 5.4.9.2.1.1.4.1.c Owing to the wide spectrum of onboard storage and retrieval technology options, the exact interpretation of this Flag is necessarily the subject of negotiation between Projects and cross support organizations. For instance, it may be interpreted to indicate that the value of the VCDU Counter field on the replayed VC decreases rather than increases, as a function of reverse playback. Note that if a Reed-Solomon encoded CVCDU is stored, it must be re-encoded if the status of the Replay Flag is altered after retrieval. 5.4.9.2.1.1.4.2 Reserved Spares (Bits 41 through 47) 5.4.9.2.1.1.4.2.a The seven-bit Reserved Spares field is reserved by CCSDS for potential future signalling applications and in the interim shall, by convention, be set to the value "all zeros". 5.4.9.2.1.1.5 VCDU HEADER ERROR CONTROL (Bits 48 through 63, optional) 5.4.9.2.1.1.5.a The 2-bit Version Number field, the 14-bit VCDU Identifier field, and the 8-bit Signalling field may all be protected by an optional error detecting and error correcting code, whose check symbols are contained within this 16-bit field. 5.4.9.2.1.1.5.b The VCDU Header Error Control field is either mandatory or optional, depending on the Grade of Service, the presence or absence of related VCDU fields, and local implementation decisions. (See Section 5.4.9.1.2.3, Section 5.4.9.1.2.10 and Reference [8] for more information on these dependencies.) 5.4.9.2.1.1.5.c The mechanism for generating the VCDU Header Error Control field shall be to use a shortened Reed-Solomon (10,6) code. The parameters of the selected code are as follows: (1) "J=4" bits per Reed-Solomon (R-S) symbol. (2) "E=2" symbol error correction capability within a R-S code word. (3) The field generator polynomial shall be: [IMAGE] (4) The code generator polynomial shall be: [IMAGE] (5) Within an R-S symbol, the transmission shall start from the bit on the left side; e.g., [IMAGE] shall be transmitted as a 1 followed by three 0s. (6)The bit to R-S symbol mapping shall be: bits in the header symbol 0,1,2,3 0 4,5,6,7 1 8,9,10,11 2 12,13,14,15 3 40,41,42,43 4 44,45,46,47 5 48,49,50,51 6 52,53,54,55 7 56,57,58,59 8 60,61,62,63 9 5.4.9.2.1.1.5.d Note that the header error correction code can correct up to and including two symbol errors. This is sufficient to meet the required performance of <1x10E- 07 VCA_SDUs missing (specified in Table 5-6 for Grade-3 service) at a 1x10E-05 channel bit error rate, for random bit errors. In the case of convolutional coded channels, in particular when the convolutional coding is interleaved, the VCA_SDU loss rate will drop to 2x10E-05 at an operating point equivalent to a channel bit error rate of 1x10E-05. This is due to the burst errors typical of the convolutional decoders. The minimum required performance may be achieved, for example, by using Grade-2 services, by using additional (transparent) interleaving, or by improving the link margin. 5.4.9.2.1.2 VCDU INSERT ZONE 5.4.9.2.1.2.a The presence or absence of the optional VCDU Insert Zone is established by management. If the VCDU/CVCDU supports the Insert service for transfer of isochronous data, the Insert Zone shall exist in every VCDU and/or CVCDU that is transmitted in a particular PCA_PDU, including Fill VCDUs. 5.4.9.2.1.2.b The length of the Insert Zone shall be set by management to be equal to the constant length of the Insert Service Data Unit (IN_SDU) for that PCA_PDU. The Insert Zone shall contain precisely one octet-aligned IN_SDU. There is no CCSDS protocol data unit associated with the Insert service within the VCA sublayer. 5.4.9.2.1.2.c If the Insert Zone is present, management reduces the length of the VCDU Data Unit Zone that is available to VCA users by an amount equal to the constant length of the Insert Zone. Once set by management, the length and presence of the Insert Zone is static. 5.4.9.2.1.3 VCDU DATA UNIT ZONE 5.4.9.2.1.3.a The VCDU Data Unit Zone, which must exist as an integer number of octets, has a length which varies and is equal to: (1) the fixed VCDU or CVCDU length which has been selected for use on a particular Physical Channel; minus (2) the length of the VCDU Primary Header plus the length of the VCDU Insert Zone and/or the VCDU Trailer and/or the Reed-Solomon check symbols (if any of these are present). 5.4.9.2.1.3.b The VCDU Data Unit Zone contains higher-layer service data units associated with the SLS Encapsulation, Multiplexing, Bitstream, or Virtual Channel Access service interfaces. It may therefore contain one M_PDU, one B_PDU, one SLAP_PDU, or one private data unit of unknown internal format and structure. 5.4.9.2.1.3.c When no valid higher-layer data are available for transmission at release time for a VCDU, the Virtual Channel ID shall be set to the value "all ones" and a Project- specified "fill" pattern shall be inserted into the VCDU Data Unit Zone. 5.4.9.2.1.4 VCDU TRAILER 5.4.9.2.1.4.a The VCDU Trailer is an optional component of the VCDU. Its presence or absence and internal configuration are prespecified for a particular Virtual Channel by management. If present, it provides a mechanism for inserting an "Operational Control" field, and/or a "VCDU Error Control" field into the trailing octets of a particular VCDU. 5.4.9.2.1.4.1 Operational Control Field (32 bits) (optional) 5.4.9.2.1.4.1.a. The purpose of the Operational Control field is to allow a Project organization to support a hybrid configuration whereby a "Conventional" CCSDS system may be operated in conjunction with an Advanced Orbiting System. If present, this 32-bit field shall contain a "Command Link Control Word", whose use and format are defined in the CCSDS Recommendations for Packet Telemetry, Reference [2], and Telecommand, Reference [5]. A discussion of hybrid telecommand operations is continued in Reference [8]. 5.4.9.2.1.4.1.b If the VCDU Error Control field is not present in the VCDU Trailer, this field occupies the four trailing octets of the VCDU. If the VCDU Error Control field is present, this field is displaced towards the beginning of the VCDU by two octets. 5.4.9.2.1.4.2 VCDU Error Control Field (16 bits) (optional) 5.4.9.2.1.4.2.a The VCDU Error Control field contains a 16-bit cyclic redundancy code which provides a capability for detecting errors that may have been introduced into VCDUs that have been transmitted without the protection of Reed-Solomon outer coding. Note that since the VCDU Header Error Control field independently protects key elements of the VCDU Primary Header, the main use of the VCDU Error Control field is to detect errors occurring elsewhere in the VCDU structure. 5.4.9.2.1.4.2.b Use of the VCDU Error Control field is mandatory within Virtual Channels that are not Reed-Solomon encoded; its presence is not otherwise required. Presence or absence of the field within a particular VCDU is prespecified by management as a setup parameter for the receiving end of each Virtual Channel; it may not be dynamically changed. If present, the field occupies the two trailing octets of the VCDU. 5.4.9.2.1.4.2.c The cyclic redundancy code contained within this field shall be characterized as follows: (1) The generator polynomial shall be: g(x) = x**16 + x**12 + x**5 + 1 (2) Both encoder and decoder shall be initialized to the "all ones" state for each VCDU. (3) Parity "P" generation shall be performed over the data space "D" as shown in Figure 5-12; i.e., "D" covers the entire VCDU excluding the final 16-bit VCDU Error Control field. (4) The generated parity symbols shall then be inserted into the VCDU Error Control field which occupies the final 16-bits of the VCDU. 5.4.9.2.1.4.2.d The detailed procedure for generating the parity symbols is identical to that used for the Version-1 CCSDS Telemetry Transfer Frame and is thus specified in Reference [2]. [IMAGE] Figure 5-12: VCDU Fields over Which Parity Is Generated 5.4.9.2.1.5 REED-SOLOMON CHECK SYMBOLS FIELD 5.4.9.2.1.5.a The Reed-Solomon Check Symbols field contains the Reed- Solomon check symbols, which shall be generated according to the procedures specified in Reference [3]. The presence or absence of this field is an attribute of the Virtual Channel and is prespecified by management. A VCDU which has this field appended becomes known as a Coded Virtual Channel Data Unit (CVCDU). In order to meet the requirement that VCDUs and CVCDUs have the same (fixed) length on a particular Physical Channel, the Data Unit Zone of a CVCDU is shortened to accommodate the addition of the Reed-Solomon check symbols. 5.4.9.2.2 FORMAT OF THE SLAP_PDU 5.4.9.2.2.a If a particular Virtual Channel is configured by management to support Grade-1 service, the SLAP Procedures accept fixed- length SLAP_SDUs (received in a SLAP_DATA.request primitive) and generate the SLAP Protocol Data Unit (SLAP_PDU). 5.4.9.2.2.b The length of the SLAP_PDU is fixed by management for any particular Virtual Channel since it is inserted exactly into the fixed-length VCDU Data Unit Zone of a CVCDU. Necessarily, the management processes which fix the length of the SLAP_SDU carried within the SLAP_PDU must take into account the length of the SLAP_PDU protocol control information. 5.4.9.2.2.c The format of the SLAP_PDU is shown in Figure 5-13. 5.4.9.2.2.d The "Link ARQ Control Word", which supports the SLAP protocol, is discussed further in Section 6. [IMAGE] Figure 5-13: SLAP Protocol Data Unit 5.4.9.2.3 FORMAT OF THE PCA_PDU 5.4.9.2.3.a The PCA_PDU consists of a continuous and contiguous succession of equal-length Channel Access Data Units (CADUs). The CADU consists of a VC_PDU (i.e., a VCDU or a CVCDU, possibly exclusively ORed with a bit transition generator) that is prefixed by a Synchronization Marker. Since the succession of CADUs occur at fixed time intervals that are synchronized with the transmitted channel bit rate, the CADUs provide "channel access slots" into which individual VC_PDUs are placed. 5.4.9.2.3.b The format of the PCA_PDU is shown in Figure 5-14. [IMAGE] Figure 5-14: Physical Channel Access Protocol Data Unit 5.4.9.2.3.c The Synchronization Marker shall be the standard CCSDS Attached Synchronization Marker that is specified in Reference [3]. It is a fixed 32-bit pattern which may be represented in hexadecimal notation as: 1ACFFC1D 5.4.10 SUMMARY OF VCA DATA STRUCTURES 5.4.10.a Figure 5-15 summarizes the overall relationship between the Reed-Solomon Codeblock, the CVCDU, the VCDU, the CADU and the PCA_PDU. Within the transmitted PCA_PDU, both VCDUs and CVCDUs may appear in any order. The information relative to whether a particular CADU contains a VCDU or a CVCDU is inferred from the relevant VCDU-ID. [IMAGE] Figure 5-15: Relationship Between the VCDU, CVCDU, CADU and PCA_PDU 5.4.10.1 STANDARD CADU/VCDU/CVCDU LENGTHS 5.4.10.1.a In order to facilitate robust, reliable synchronization processes within the Space Link Subnet, the CADU length is fixed at a constant value for one given Physical Channel. For very high-rate systems, use of the maximum standard length is recommended for reasons of speed and efficiency. However, for lower-rate systems, shorter standard lengths are available to decrease the potential delays experienced by "realtime" data and to improve synchronization performance. 5.4.10.1.b Since one VCDU or CVCDU is embedded synchronously within each CADU, the standard CADU lengths map directly into standard VCDU/CVCDU lengths. This section defines the standard VCDU or CVCDU lengths. Note that the standard CADU lengths are 32-bits longer, corresponding to the added length of the Synchronization Marker. The length of the VCDU/CVCDU is a managed parameter. 5.4.10.1.c Two different types of space data links are considered. 5.4.10.1.1 LINKS SUPPORTING ONLY SLS GRADE-3 SERVICE 5.4.10.1.1.a On these links, where only VCDUs are transmitted (no CVCDUs are present), all VCDUs shall have one size only, until changed by management. The length of the VCDU can be chosen to be any integer number of octets, as required by the using Project, within the following range: Minimum VCDU length: 124 octets (992 bits) Maximum VCDU length:1275 octets (10,200 bits) 5.4.10.1.1.b Once selected, the VCDU length must be fixed for a mission phase on a particular Physical Channel. 5.4.10.1.2 LINKS SUPPORTING MIXED SLS GRADES OF SERVICE, OR GRADE-1/2 ONLY 5.4.10.1.2.a On mixed links, where at least one Virtual Channel is providing Grade-1 or Grade-2 service (i.e., VCDUs and CVCDUs may both be present), or on links supporting purely Grade- 1/2 service, the recommended standard lengths (which must be integer numbers of octets) are derived by varying the Interleave Depth (I) of the Reed-Solomon encoding as specified in Reference [3]. For systems requiring only octet compatibility, Projects may select a value from the following five standard lengths: Interleave Depth: VCDU/CVCDU Length: I = 1 255 octets(2040 bits) I = 2 510 octets(4080 bits) I = 3 765 octets(6120 bits) I = 4 1020 octets (8160 bits) I = 5 1275 octets (10200 bits) 5.4.10.1.2.b For systems requiring 32-bit compatibility, the technique of "Virtual Fill", as specified in Reference [3], may be used in addition to varying the Reed-Solomon Interleave Depth. The Virtual Fill, which is not transmitted, is used to shorten each Reed-Solomon codeblock by "n" octets. (A Reed- Solomon codeblock consists of "I" codewords, each of length 255 octets. For example, if I=2 then the codeblock length without the Virtual Fill is 510 octets.) If this technique is used, Projects may select a value from the following five standard lengths: Interleave Standard VCDU/CVCDU Virtual Fill Depth: length: octets/codeblock: I = 1 252 octets(2016 bits) n = 3 I = 2 508 octets(4064 bits) n = 2 I = 3 756 octets(6048 bits) n = 9 I = 4 1020 octets (8160 bits) n = 0 I = 5 1260 octets (10080 bits) n = 15 5.4.10.1.2.c Once selected, the VCDU and CVCDU lengths must be the same and must be fixed for a mission phase on a particular Physical Channel. 5.4.10.2 SUMMARY OF CADU INTERNAL FORMATS 5.4.10.2.a The various internal structures of the CADUs associated with different Grades of Service within the Space Link Subnet are summarized in the following diagrams. 5.4.10.2.b GRADE-1, WITHOUT INSERT, ALL SLS SERVICES [IMAGE] 5.4.10.2.c GRADE-1, WITH INSERT, ALL SLS SERVICES [IMAGE] 5.4.10.2.d GRADE-2, WITHOUT INSERT, SLS MULTIPLEXING OR BITSTREAM SERVICE [IMAGE] 5.4.10.2.e GRADE-2, WITHOUT INSERT, SLS VIRTUAL CHANNEL ACCESS SERVICE [IMAGE] 5.4.10.2.f GRADE-2, WITHOUT INSERT, "FILL" VC [IMAGE] 5.4.10.2.g GRADE-2, WITH INSERT, SLS MULTIPLEXING OR BITSTREAM SERVICE [IMAGE] 5.4.10.2.h GRADE-2, WITH INSERT, SLS VIRTUAL CHANNEL ACCESS SERVICE [IMAGE] 5.4.10.2.i GRADE-2, WITH INSERT, "FILL" VC [IMAGE] 5.4.10.2.j GRADE-3, WITHOUT INSERT, SLS BITSTREAM SERVICE [IMAGE] 5.4.10.2.k GRADE-3, WITHOUT INSERT, SLS VIRTUAL CHANNEL ACCESS SERVICE [IMAGE] 5.4.10.2.l GRADE-3, WITHOUT INSERT, "FILL" VC [IMAGE] 5.4.10.2.m GRADE-3, WITH INSERT, SLS BITSTREAM SERVICE [IMAGE] 5.4.10.2.n GRADE-3, WITH INSERT, SLS VIRTUAL CHANNEL ACCESS SERVICE [IMAGE] 5.4.10.2.o GRADE-3, WITH INSERT, "FILL" VC [IMAGE] 5.5 MANAGEMENT OF THE SPACE LINK SUBNETWORK 5.5.a In order to conserve bandwidth on the Physical Channel, some parameters associated with SLS services are handled by management rather than by inline communications protocol. The managed parameters are those which tend to be static for long periods of time, and whose change generally signifies a major reconfiguration of the data communications systems associated with a particular Advanced Orbiting System. Through the use of a signalling system, management conveys the required configuration information to the applicable protocol layers within the SLS. 5.5.b The managed configuration parameters for the VCA and VCLC sublayers are listed below. These parameters are defined in an abstract sense and are not intended to imply any particular implementation of a management system. 5.5.1 VIRTUAL CHANNEL ACCESS CONFIGURATION PARAMETERS 5.5.1.1 VC_PDU SERVICE PARAMETERS 5.5.1.1.a Each VCDU-ID has associated with it a list of indicators which define: 5.5.1.1.b the length of the VC_PDU; 5.5.1.1.c the upper-layer service interface (i.e., Multiplexing, Bitstream, Virtual Channel Access, or Virtual Channel Data Unit) with which the VC_PDU is associated; 5.5.1.1.d the Grade of Service being supported, i.e., the presence or absence of the Reed-Solomon check symbols and the SLAP protocol; 5.5.1.1.e the presence or absence of the VCDU Header Error Control field; 5.5.1.1.f the presence or absence of the Insert Zone and (if present) its length; 5.5.1.1.g the presence or absence of the VCDU Trailer, and its contents; 5.5.1.1.h the PCA_PDU(s) in which this VCDU-ID is authorized for transmission. 5.5.1.1.i Management, via the signalling system, sends this information to both the sending and receiving entities. 5.5.1.2 VC_PDU RELEASE PARAMETERS 5.5.1.2.a Each VCDU-ID has associated with it Project-unique parameters which define the conditions under which the VC_PDU is to be released for transmission. Management, via the signalling system, sends this Project-unique information only to the sending entity. 5.5.1.3 VC_PDU PROCESSING PARAMETERS 5.5.1.3.a Each VCDU-ID has associated with it processing parameters which define: 5.5.1.3.b whether the contents of the VCDU Data Unit Zone are to be extracted and delivered to the SLAP procedures, to the VCLC sublayer (Multiplexing and Bitstream service), or to the Virtual Channel Access service interface; 5.5.1.3.c whether the complete VC_PDU is to be delivered to the Virtual Channel Data Unit or to the Virtual Channel Access service interface; 5.5.1.3.d whether or not the VC_PDU is to be discarded because it contains Fill data. 5.5.1.3.e Management, via the signalling system, sends this information to only the receiving entity. 5.5.2 VIRTUAL CHANNEL LINK CONTROL CONFIGURATION PARAMETERS 5.5.2.1 LOWER LAYER SERVICE PARAMETERS 5.5.2.1.a Each VCLC entity has associated with it a list of indicators which define the following service parameters provided by the VCA sublayer below in conjunction with a particular VC: 5.5.2.1.b the Grade of Service provided; 5.5.2.1.c the length to be used for the service data unit. 5.5.2.1.d Management, via the signalling system, sends this information to both the sending and receiving entities. 5.5.2.2 VCLC PROCESSING PARAMETERS 5.5.2.2.a Each VCLC entity has associated with it processing parameters which define: 5.5.2.2.b the type of service data unit being delivered by the VCA sublayer (i.e., M_PDU or B_PDU); 5.5.2.2.c to which service access points the user service data units are to be delivered. 5.5.2.2.d Management, via the signalling system, sends this information to only the receiving entity. 6 SPACE LINK ARQ PROCEDURE: SERVICE DEFINITION 6.1 INTRODUCTION 6.1.a This section of the Recommendation defines the Space Link ARQ Procedure (SLAP) which is used to provide "Grade-1" data delivery service across the Space Link Subnetwork. Grade-1 service is characterized by the transfer of higher-layer user service data units (SLAP_SDUs) so that they are delivered through the SLS in sequence, without duplication, with a very high probability of being complete, and with a very high probability that they are error free. 6.1.b The SLAP, as described here, operates only within the Space Link Subnetwork and can therefore be used in support of both Path and Internet service. Extension of Grade-1 service across the entire CPN (sometimes described as "end-to-end") would require Project organizations either to use additional link layer ARQ protocols in each of the onboard and ground subnetworks, or to augment the Internet service by implementing a Transport layer which supports retransmission control. Alternatively, a special Application layer ARQ protocol could be used. It should be noted that the SLAP has been designed to be conceptually independent of the layer in which it operates, and thus could potentially be extended in the future for use as an Application layer ARQ protocol across the CPN. This usage is not, however, currently part of this Recommendation and is not discussed further herein. 6.1.c This section describes the operational concept for the SLAP and specifies the SLAP service interface. The CCSDS Secretariat should be consulted for information relative to the status of the SLAP protocol specification. 6.2 OPERATIONAL CONCEPT AND ORGANIZATION OF THE SLAP 6.2.a. As noted in Section 5, the SLAP resides within the Virtual Channel Access (VCA) sublayer of the Space Link Subnet. It is an element of VCA procedure which supports the VCLC procedures as well as the Virtual Channel Access service. It relies upon the VCA service interface to achieve data transfer through the Physical Channel, using individual Virtual Channels which are dedicated to Grade-1 service. 6.2.b The SLAP is defined to be a bidirectional procedure: two dedicated Grade-1 Virtual Channels, one in each direction of SLS data flow (e.g., VC "x" forward and VC "y" return), are paired to interconnect two symmetric SLAP entities. At each end of the connection ("Point A" and "Point B"), the SLAP entity is composed of both a "Sending Function" and an "Acceptance Function", as illustrated in Figure 6-1. Note that, although shown in separate boxes in the figure, the Sending and Acceptance Functions at Point A (and likewise at Point B) are in fact both performed within a single protocol state machine. [IMAGE] Figure 6-1: Symmetric SLAP Operation 6.2.c The SLAP_SDUs are received from the service interface with a layer above (i.e., either the VCLC sublayer, or the Virtual Channel Access service). The SLAP Sending Function adds a Link ARQ Control Word (LACW) to each SLAP_SDU to produce a SLAP_PDU, which is transferred on a prespecified dedicated Virtual Channel by placing it within a Coded Virtual Channel Data Unit (CVCDU) data structure. The LACW contains numbering information which identifies each SLAP_SDU flowing on VC "x", plus a report of the status of acceptance of SLAP_SDUs flowing on VC "y". 6.2.d The CVCDUs are protected using Reed-Solomon encoding, which provides the required very-high probability that the Grade-1 SLAP_SDUs are error free. In the event that the VCA sublayer is unable to correct a CVCDU, it will be discarded and a discontinuity will thus be introduced into the sequence of SLAP_PDUs. Discontinuities may also be introduced by momentary channel outages. The SLAP therefore provides the necessary retransmission protocol needed to ensure the completeness and sequencing of delivered Grade-1 SLAP_SDUs by supplying the required numbering, sending, reporting, and resending procedures. The result is a hybrid system employing both powerful forward error correction and ARQ-type retransmission control. 6.2.e Each LACW within a SLAP_PDU contains a sequence number that is associated with the SLAP_SDU to which it is appended. These sequence numbers are generated by the SLAP Sending Function, and are valid only within the SLAP; they are independent of the numbering scheme used by either the Virtual Channel procedures (i.e., the VCDU Counter in the VCDU Primary Header), or by the layers above. It is these LACW sequence numbers that are used for SLAP_PDU acceptance checks and for retransmission control. The sequence numbers assigned to SLAP_PDUs traveling in one direction over the connections are independent of the sequence numbers of SLAP_PDUs traveling in the opposite direction. 6.2.f Certain LACWs may also be formatted to produce "supervisory" SLAP_PDUs, which are used to pass protocol control data from the Sending Function to the Acceptance Function, or vice versa. Supervisory SLAP_PDUs are not assigned sequence numbers by the Sending Function and therefore are not checked for correct sequencing by the Acceptance Function. 6.2.g For the SLAP to operate, it is necessary for the Acceptance Function to acknowledge receipt of SLAP_PDUs, and to report sequence errors when they occur. These reports are carried in the LACWs that accompany data flowing in the opposite direction, i.e., reports concerning receipt of SLAP_PDUs transmitted from A to B are carried in the LACWs that are attached to SLAP_PDUs flowing from B to A. 6.2.h If the LACW report received at Point A acknowledges that all SLAP_PDUs were received by the Acceptance Function at Point B, normal operation occurs. However, if the LACW report indicates that a sequence error has occurred, a retransmission strategy is invoked within the Sending Function at Point A to resend the missing SLAP_PDU(s). If an unrecoverable error condition is encountered, a service interruption is reported to management and the Sending Function at Point A then reinitializes itself and transmits a supervisory protocol control command to the Acceptance Function at Point B, which causes reinitialization there and enables service to be resumed. 6.2.i In a symmetric manner, reports on data transmitted from the Sending Function at Point B to the Acceptance Function at Point A are carried in LACWs that accompany data flowing from A to B, and are acted upon by the Sending Function at Point B. 6.2.j The general organization of the SLAP Sending and Acceptance Functions is shown in Figure 6-2. For simplicity, only half of the pair of procedures at each end of the connection is shown. 6.3 SLAP SERVICE INTERFACE SPECIFICATION 6.3.a This section defines the services provided by the SLAP to the sublayer above (the VCLC sublayer, or the Virtual Channel Access service interface) and the services required by the SLAP from the Virtual Channel procedures in the sublayer below (referred to here as the "lower layer"). The service specifications in this section are not intended to imply any particular implementation. 6.3.b The SLAP service is connection oriented; it is bidirectional and persists over time. Connection establishment, reset, and termination are controlled by management. The service interfaces specified herein are only those that are used for data transfer once a connection has been established. 6.3.c In the service interfaces described below, the general parameters "SN_SOURCE.address" and "SN_DESTINATION.address" are used to represent the identification of the subnetwork source and destination addresses for the data flowing over the SLAP connection. Within the SLS, the specific address parameters are provided by the VCDU-ID; however, the more general parameter terminology is used to facilitate potential future application of the SLAP within other layers of the CPN architecture. [IMAGE] Figure 6-2: Organization of the SLAP Sending/Acceptance Functions 6.3.1 SLAP/UPPER LAYER SERVICE INTERFACE SPECIFICATION 6.3.1.a This section specifies the services required of the SLAP by the upper layer, as described from the viewpoint of the upper layer. These services allow a local upper-layer entity to exchange data units with remote peer upper-layer entities. The upper layer accesses the SLAP via a "SLAP_SAP", which is associated with a particular Virtual Channel by management. 6.3.1.b The only service provided at this interface is data transfer. The service primitives associated with data transfer are: SLAP_DATA.request SLAP_DATA.indication 6.3.1.1 SLAP_DATA.request 6.3.1.1.a Function This primitive is the service request primitive for the SLAP service. 6.3.1.1.b Semantics The primitive shall provide parameters as follows: SLAP_DATA.request (SLAP_SDU, SN_SOURCE.address) 6.3.1.1.c When Generated This primitive is passed to the SLAP to request that a SLAP_SDU be sent to the other end of the connection. 6.3.1.1.d Effect on Receipt Receipt of this primitive causes the SLAP to send the SLAP_SDU, using the Virtual Channel identified by the SN_SOURCE.address. 6.3.1.1.e Additional Comments The SN_SOURCE.address parameter is specified by the VCDU-ID. The length of the SLAP_SDU on a given VC is equal to the length of the CVCDU Data Unit Zone minus the length of the LACW, and must remain fixed for the duration of the connection. 6.3.1.2 SLAP_DATA.indication 6.3.1.2.a Function This primitive is the service indication primitive for the SLAP service. 6.3.1.2.b Semantics The primitive shall provide parameters as follows: SLAP_DATA.indication (SLAP_SDU, SN_DESTINATION.address) 6.3.1.2.c When Generated This primitive is passed from the SLAP to the layer above to indicate the arrival of a SLAP_SDU on the Virtual Channel indicated by the SN_DESTINATION.address. 6.3.1.2.d Effect on Receipt The effect of receipt of this primitive by the layer above is specified in Section 5. 6.3.1.2.e Additional Comments The SN_DESTINATION.address parameter is specified by the VCDU- ID. The SLAP_SDU is guaranteed to be delivered in the same sequence in which it was submitted to the SLAP, with a specified high probability of being without omission or duplication, and with a specified high probability of not containing an error induced by the SLS. 6.3.2 SLAP/LOWER LAYER SERVICE INTERFACE SPECIFICATION 6.3.2.a This section specifies the services required of the lower layer by the SLAP. These services allow the local SLAP entity to exchange SLAP_PDUs with a peer SLAP entity at the other end of a connection. 6.3.2.b The service primitives at the lower layer interface are: VCA_UNITDATA.request VCA_UNITDATA.indication 6.3.2.1 VCA_UNITDATA.request 6.3.2.1.a Function This primitive is the service request primitive for the VCA service. 6.3.2.1.b Semantics The primitive shall provide parameters as follows: VCA_UNITDATA.request (SLAP_PDU, SN_SOURCE.address) 6.3.2.1.c When Generated This primitive is passed from the SLAP Procedures to the Virtual Channel procedures to request them to send the SLAP_PDU, using the Virtual Channel identified by the SN_SOURCE.address parameter. 6.3.2.1.d Effect on Receipt Receipt of this primitive causes the Virtual Channel procedures to encapsulate the SLAP_PDU within a CVCDU and to attempt to send it. 6.3.2.1.e Additional Comments The SN_SOURCE.address parameter is specified by the VCDU-ID. A dedicated Virtual Channel must be used to transmit the SLAP_PDU. The length of the SLAP_PDU on a given dedicated Grade-1 VC is equal to the length of the CVCDU Data Unit Zone, and must remain fixed for the duration of the connection. 6.3.2.2 VCA_UNITDATA.indication 6.3.2.2.a Function This primitive is the service indication primitive for the VCA service. 6.3.2.2.b Semantics The primitive shall provide parameters as follows: VCA_UNITDATA.indication (SLAP_PDU, SN_DESTINATION.address, VCDU Data Loss Flag) 6.3.2.2.c When Generated This primitive is passed from the Virtual Channel procedures to the SLAP to indicate the arrival of a SLAP_PDU on the Virtual Channel indicated by the SN_DESTINATION.address. 6.3.2.2.d Effect on Receipt The effect of receipt of this primitive by the SLAP is currently unspecified. 6.3.2.2.e Additional Comments The SN_DESTINATION.address parameter is specified by the VCDU- ID. The Virtual Channel procedures must provide a fixed-length CVCDU Data Unit Zone for the duration of the SLAP connection. 6.4 REQUIREMENTS FOR THE SLAP PROTOCOL 6.4.a This section presents an overview of the functional requirements which must be satisfied by the SLAP. 6.4.1 REQUIREMENTS FOR THE SLAP SENDING FUNCTION 6.4.1.a The SLAP Sending Function shall receive SLAP_SDUs and corresponding address information from the layer above the SLAP. 6.4.1.b The SLAP Sending Function shall guarantee that the SLAP_SDUs are delivered complete, in sequence, and without duplication to the remote SLAP entity at the other end of the connection. 6.4.1.c The SLAP Sending Function shall utilize the underlying services of the sublayer below for transfer of SLAP_PDUs to the remote peer SLAP entity. 6.4.1.d The SLAP Sending Function shall deliver the SLAP_PDUs to the sublayer below in a controlled flow so as to avoid an overflow of the remote peer SLAP entity's capacity to receive. 6.4.1.e The SLAP Sending Function shall, when requested by the remote peer SLAP entity, retransmit all SLAP_PDUs that have been transmitted since the last acknowledged SLAP_PDU. 6.4.1.f In the event that acknowledgements are not received within a specified period of time, the SLAP Sending Function shall retransmit all SLAP_PDUs that have been transmitted since the last acknowledged PDU. 6.4.2 REQUIREMENTS FOR THE SLAP ACCEPTANCE FUNCTION 6.4.2.a The SLAP Acceptance Function shall establish a full-duplex connection with a remote peer SLAP entity, when a "connect request" is received from management, and confirm to management that the connection has been established. 6.4.2.b The SLAP Acceptance Function shall report to management when the remote peer SLAP entity establishes a connection. 6.4.2.c The SLAP Acceptance Function shall terminate a connection (empty all buffers, reset all timers and counters, and disconnect) with a remote peer SLAP entity when a "disconnect request" is received from management, and confirm to management that the connection has been terminated. 6.4.2.d The SLAP Acceptance Function shall report to management when the remote peer SLAP entity terminates the connection. 6.4.2.e The SLAP Acceptance Function shall perform a loop-back test of the SLAP-to-SLAP connection, when a "transmit test request" is received from management, and report to management the status of the connection upon completion of the test. 6.4.2.f The SLAP Acceptance Function shall perform a reset (empty all buffers and reset all timers and counters) of the connection when a "reset request" is received from management, and confirm to management that the reset has been performed. 6.4.2.g The SLAP Acceptance Function shall report to management when the remote peer SLAP entity issues a reset of the connection. 6.4.2.h The SLAP Acceptance Function shall report unrecoverable error conditions to management. 6.4.2.i The SLAP Acceptance Function shall process pending management requests before pending SLAP_DATA.requests or VCA_UNITDATA.indications. 7 CROSS SUPPORT OPTIONS 7.a This section defines the service options which may be selected by a Project organization in order to conform to the Advanced Orbiting Systems architecture defined within this Recommendation. It also defines the relationship between the selected services and the levels of cross support which may be achieved. 7.1 CROSS SUPPORT CONCEPTS 7.1.a Cross support may occur between different organizations within one Agency who are cooperating in the execution of a space mission, or between different Agencies. Cross support takes place at the level of data structures that are created by one party in the cooperative arrangement and are handed over to another party for transmission between ground and space systems, using transmission resources that are supplied by the supporting party. As defined in this Recommendation, cross support therefore involves traversing the Space Link Subnetwork at some point during the transfer of data. 7.1.b Two types of cross support, as identified in Figure 7-1, are possible. "Symmetric" cross support occurs when party "A" submits a data structure "X" to party "B" at a sending node, and receives the same data structure "X" back from party "B" at a receiving node. "Asymmetric" cross support occurs when party "A" submits a data structure "X" to party "B" at a sending node and receives a different data structure "Y" (at a higher or lower layer) back from party "B" at a receiving node. 7.1.c When cross support is symmetric, only the data structure itself and its pertinent physical attributes (e.g., size, frequency, etc.) need to be agreed upon between the parties. 7.1.d When cross support is asymmetric, use of the same protocols within the unbalanced layers is required. 7.1.e In all cases of cross support, full agreement on any options within the protocols and/or data structures is required. 7.1.f For current information concerning the precise specification of cross support services, the CCSDS Secretariat should be consulted. [IMAGE] Figure 7-1: Cross Support Configurations 7.2 CPN SERVICE OPTIONS 7.2.a Within the framework of this Recommendation, a particular Project organization may select from a set of eight CCSDS service options in response to its specific requirements. Generally, the Project will select one or more data transfer services across the CPN, plus one or more data transfer services across the Space Link Subnetwork. Each of the services may operate either unidirectionally or bidirectionally, at the Project's choice. 7.2.b The services available for use by Projects to transfer data across the CPN are the CCSDS Path service as specified in Section 3 and the CCSDS Internet service as specified in Section 4. 7.2.c The services available for use by Projects to transfer data across the Space Link Subnetwork, all of which are specified in Section 5, are: the CCSDS Encapsulation service; the CCSDS Multiplexing service; the CCSDS Bitstream service; the CCSDS Virtual Channel Access service; the CCSDS Virtual Channel Data Unit service; and the CCSDS Insert service. 7.2.1 GENERIC SERVICE PROFILE 7.2.1.a Figure 7-2 presents a generic "options profile" of all of the functions associated with CPN services. Note that Path and Internet "gateway" functions are associated with the relay of Path and Internet protocol data units which originate outside of a CPN. 7.2.1.b The generic CPN service options profile is used in the following paragraphs to define the specific set of options associated with each of the selected CCSDS services. For asymmetric cross support of a particular CCSDS service, a Project organization must conform to at least one vertical path through the specific options profile for that service. 7.2.2 PATH SERVICE OPTIONS PROFILE 7.2.2.a The options profile for the CCSDS Path service is shown in Figure 7-3. The user may interface via the Octet String or Packet service options, as defined in Section 3. Alternatively, a "Path gateway" function may be entered so that a Logical Data Path which originated outside the boundaries of the CPN may traverse the CPN, using the CCSDS Path protocol. Note that the Path service requires use of Reed-Solomon coding during SLS transfer. 7.2.3 INTERNET SERVICE OPTIONS PROFILE 7.2.3.a The options profile for the CCSDS Internet service is shown in Figure 7-4. The user may interface with the Internet service as defined in Section 4. Alternatively, an "Internet gateway" function may be entered so that an Internet message which originated outside the boundaries of the CPN may traverse the CPN, using the CCSDS Internet protocol. Note that the Internet service requires use of Reed-Solomon coding during SLS transfer. 7.2.4 ENCAPSULATION SERVICE OPTIONS PROFILE 7.2.4.a The options profile for the CCSDS Encapsulation service is shown in Figure 7-5. Note that the Encapsulation service requires use of Reed-Solomon coding during SLS transfer. [IMAGE] Figure 7-2: Generic CPN Service Options Profile [IMAGE] Figure 7-3: Path Service Options Profile [IMAGE] Figure 7-4: Internet Service Options Profile [IMAGE] Figure 7-5: Encapsulation Service Options Profile 7.2.5 MULTIPLEXING SERVICE OPTIONS PROFILE 7.2.5.a The options profile for the CCSDS Multiplexing service is shown in Figure 7-6. Note that the Multiplexing service requires use of Reed-Solomon coding during SLS transfer. 7.2.6 BITSTREAM SERVICE OPTIONS PROFILE 7.2.6.a The options profile for the CCSDS Bitstream service is shown in Figure 7-7. 7.2.7 VIRTUAL CHANNEL ACCESS SERVICE OPTIONS PROFILE 7.2.7.a The options profile for the CCSDS Virtual Channel Access service is shown in Figure 7-8. 7.2.8 VIRTUAL CHANNEL DATA UNIT SERVICE OPTIONS PROFILE 7.2.8.a The options profile for the CCSDS Virtual Channel Data Unit service is shown in Figure 7-9. The Header Error Control and/or VCDU Error Control, if selected, must be present in the data structure generated by the service user. Reed-Solomon encoding may be applied by the service user, or by the supporting SLS element. 7.2.8.b Note that in order to avoid operational complexities associated with error control and modification of the user data structure, the Virtual Channel Data Unit service and the Insert service are mutually exclusive on a particular Physical Channel. 7.2.9 INSERT SERVICE OPTIONS PROFILE 7.2.9.a The options profile for the CCSDS Insert service is shown in Figure 7-10. The Insert service may not be activated simultaneously with the Virtual Channel Data Unit service. [IMAGE] Figure 7-6: Multiplexing Service Options Profile [IMAGE] Figure 7-7: Bitstream Service Options Profile [IMAGE] Figure 7-8: Virtual Channel Access Service Options Profile [IMAGE] Figure 7-9: Virtual Channel Data Unit Service Options Profile [IMAGE] Figure 7-10: Insert Service Options Profile 7.3 CROSS SUPPORT PROTOCOL OPTIONS MATRIX 7.3.a The relationship between the data structures that are exchanged between cooperating parties in all possible symmetric and asymmetric cross support configurations are indicated in the matrix shown in Table 7-1. Based on its requirements for cross support, a Project may use the matrix to select the particular symmetric or asymmetric cross support data structure configurations which it will use in conjunction with each of its selected data transfer service options. For each unique configuration, the required stack of agreed CCSDS protocols may then be constructed. Further information concerning this matrix is presented in Reference [8] 7.3.b The matrix is organized to show the input data structure (handed by one party to a supporting party) on the vertical axis, and to show the data structure received back from the supporting party on the horizontal axis. The box at the intersection of a row and column shows the stack of protocols which are required in order to achieve the cross support. The boxes on the diagonal are the symmetric cross support configurations where only the data structure itself must be agreed between the parties. The off- diagonal boxes show the possible asymmetric cross support configurations, and indicate the layers of protocol which must be agreed and implemented interoperably in order for the cross support to occur. Boxes indicated by a "-" are invalid configurations. 7.3.c The key to the matrix is as follows: I = Internet protocol data unit P = Path protocol data unit E = Encapsulation protocol data unit M = Multiplexing protocol data unit B = Bitstream protocol data unit V = Virtual Channel protocol data unit (VCDU or CVCDU) PCA = Physical Channel Access protocol data unit (CADU) (R) = Standard Reed-Solomon code - required for Grade-1/2 Virtual Channel Data Unit service s = Symmetric cross support - = Not applicable I_SDU = Internet service data unit I_PDU = Internet protocol data unit O_SDU = Octet String service data unit P_SDU = Packet service data unit CP_PDU = CCSDS Path protocol data unit E_SDU = Encapsulation service data unit M_SDU = Multiplexing service data unit B_SDU = Bitstream service data unit VCA_SDU = Virtual Channel Access service data unit VCDU_SDU = Virtual Channel Data Unit service data unit IN_SDU = Insert service data unit RF = Radio Frequency signal Table 7-1: Cross Support Options Matrix [IMAGE] ANNEX A ADDENDUM ON CCSDS PACKET TIMETAGGING This Annex, which is part of the Recommendation, defines how a timetag may be added to the Secondary Header of a CCSDS Packet. A.1 INTRODUCTION A.1.a In many applications there is a firm requirement to stamp a CCSDS Packet with a timetag that is relatable to an event of significance to the recipient of the application data contained within the Packet. A.1.1 PURPOSE A.1.1.a This Annex defines the mechanism to be used for timetagging a CCSDS Packet, using the facilities of its Secondary Header. A.1.2 SCOPE A.1.2.a Packet timetagging may be required in a variety of space applications, such as ordering sets of user data into the time series in which they were generated at the source (in conjunction with the Packet sequence counter) or correlating user data with other independent data sets. A.1.2.b Services operating within Path service end systems (e.g., so- called "production data" or "level zero" processing) may impose their own additional requirements for Packet timetagging which are not specified herein. A.1.2.c Packet timetagging may be needed by users of the "Packet service" and "Octet String service" options of the CCSDS Path service. (Note that timetagging is not provided by the Encapsulation service for the Space Link Subnet.) A.1.2.d This Annex defines the mechanism to be implemented by users when formatting service data units, associated with CCSDS Path service, that need timetagging, but not the requirements that drive the need for such timetagging. A.2 METHOD FOR CCSDS PACKET TIMETAGGING A.2.a For CCSDS Path service users who require Packet timetagging, the Packet Secondary Header shall be used and shall contain a standard CCSDS Time Code. A.2.b Within both the Packet service and the Octet string options of the Path service, the Secondary Header containing the Time Code shall be created by the user. A.2.c The presence or absence of the Secondary Header within the CCSDS Packet shall be signalled by the Secondary Header Flag within the Packet Primary Header. A.2.1 SECONDARY HEADER STRUCTURE A.2.1.a The format for the Secondary Header shall be as shown in Figure A- 1; it consists of an optional Time Code Field followed by an optional Ancillary Data Field. [IMAGE] Figure A-1: Secondary Header Format A.2.1.b If present, a Secondary Header shall consist of: A.2.1.c a Time Code Field only; or A.2.1.d an Ancillary Data Field only; or A.2.1.e a Time Code Field followed by an Ancillary Data Field. A.2.1.f The chosen option is a managed parameter which is implied from the Path ID. A.2.2 TIME CODE FIELD A.2.2.a The Packet Secondary Header Time Code Field shall consist of an integral number of octets. A.2.2.b It is preferred that the Packet Secondary Header Time Code Field should contain one of the CCSDS segmented binary or unsegmented binary time codes specified in Reference [20]. A.2.2.c The time code selected (e.g., CCSDS Unsegmented Time Code, CCSDS Day Segmented Time Code) shall be fixed for a given Path ID. A.2.2.d The characteristics (e.g., ambiguity period, epoch, length, resolution) of the time code shall be selected from the options in Reference [20]. A.2.2.e If the characteristics are fixed for a particular Path ID, the corresponding P-field (as described in Reference [20]) need not be present. If the characteristics are allowed to change for a Path ID, the P-field shall be present so as to identify the changes. A.2.2.f The presence or absence of the P-field in the Packet Secondary Header Time Code Fields shall be fixed for a particular Path ID. If present, it shall immediately precede the T-field that is defined in Reference [20]. A.2.3 ANCILLARY DATA FIELD A.2.3.a The optional Ancillary Data Field shall consist of an integral number of octets and may contain any ancillary information necessary for the interpretation of the information contained within the User Data Field of the CCSDS Packet. A.2.3.b The format and characteristics of the Ancillary data are not specified herein. ANNEX B ACRONYMS AND TERMINOLOGY This Annex, which is part of the Recommendation, summarizes the key acronyms and terminology which are used throughout the document. B.1 LIST OF ACRONYMS APID: APPLICATION PROCESS IDENTIFIER ARQ: AUTOMATIC REPEAT QUEUING B-: BITSTREAM B_SDU: BITSTREAM SERVICE DATA UNIT B_PDU: BITSTREAM PROTOCOL DATA UNIT CADU: CHANNEL ACCESS DATA UNIT CCSDS: CONSULTATIVE COMMITTEE FOR SPACE DATA SYSTEMS CPN: CCSDS PRINCIPAL NETWORK CP_SAP: CCSDS PATH SERVICE ACCESS POINT CP_PDU: CCSDS PATH PROTOCOL DATA UNIT CP_SDU: CCSDS PATH SERVICE DATA UNIT CRC: CYCLIC REDUNDANCY CODE CVCDU: CODED VIRTUAL CHANNEL DATA UNIT dB: DECIBEL E-: ENCAPSULATION E_PDU: ENCAPSULATION PROTOCOL DATA UNIT E_SDU: ENCAPSULATION SERVICE DATA UNIT Eb/No: INFORMATION BIT ENERGY TO NOISE RATIO G/W: GATEWAY HDR: HEADER I: INTERLEAVE DEPTH OR INFORMATION ID: IDENTIFIER IN_SDU: INSERT SERVICE DATA UNIT ISO: INTERNATIONAL ORGANIZATION FOR STANDARDIZATION LACW: LINK ARQ CONTROL WORD LDP: LOGICAL DATA PATH LinkID: LINK IDENTIFIER Mb/s: MEGABITS PER SECOND M-: MULTIPLEXING M_PDU: MULTIPLEXING PROTOCOL DATA UNIT M_SDU: MULTIPLEXING SERVICE DATA UNIT MSAP: MANAGEMENT SERVICE ACCESS POINT MSB: MOST SIGNIFICANT BIT N/A: NOT APPLICABLE O_SDU: OCTET SERVICE DATA UNIT OSI: OPEN SYSTEMS INTERCONNECTION P-FIELD: PREAMBLE FIELD PCA: PHYSICAL CHANNEL ACCESS PCA_PDU: PHYSICAL CHANNEL ACCESS PROTOCOL DATA UNIT PCID: PACKET CHANNEL IDENTIFIER PDU: PROTOCOL DATA UNIT P_SDU: PACKET SERVICE DATA UNIT R-S: REED-SOLOMON SAP: SERVICE ACCESS POINT SC: SPACECRAFT SCID: SPACECRAFT IDENTIFIER SDU: SERVICE DATA UNIT SEC.: SECONDARY SL: SPACE LINK SLAP: SPACE LINK ARQ PROCEDURE SLAP_PDU: SLAP PROTOCOL DATA UNIT SLAP_SAP: SLAP SERVICE ACCESS POINT SLAP_SDU: SLAP SERVICE DATA UNIT SLS: SPACE LINK SUBNETWORK SL_SAP: SPACE LINK SERVICE ACCESS POINT SN: SUBNETWORK SN_SAP: SUBNETWORK SERVICE ACCESS POINT SN_SDU: SUBNETWORK SERVICE DATA UNIT SYNC.: SYNCHRONIZATION T-FIELD: TIME FIELD VC: VIRTUAL CHANNEL VCA: VIRTUAL CHANNEL ACCESS VC_PDU: VIRTUAL CHANNEL PROTOCOL DATA UNIT VCA_SAP: VIRTUAL CHANNEL ACCESS SERVICE ACCESS POINT VCA_SDU: VIRTUAL CHANNEL ACCESS SERVICE DATA UNIT VCDU: VIRTUAL CHANNEL DATA UNIT VCID: VIRTUAL CHANNEL IDENTIFIER VCDU-ID: VIRTUAL CHANNEL DATA UNIT IDENTIFIER (= SCID+VCID) VCLC: VIRTUAL CHANNEL LINK CONTROL VCLC_PDU: VIRTUAL CHANNEL LINK CONTROL PROTOCOL DATA UNIT VCLC_SAP: VIRTUAL CHANNEL LINK CONTROL SERVICE ACCESS POINT VCLC_SDU: VIRTUAL CHANNEL LINK CONTROL SERVICE DATA UNIT 8473: ISO 8473 NETWORK LAYER PROTOCOL B.2 SUMMARY OF TERMINOLOGY ADVANCED ORBITING SYSTEM: Those systems, located in space and on the ground, which support Earth orbiting missions involving manned space stations, manned and unmanned platforms, and space transportation systems. AGENCY: A national or international space organization which is a Member or Observer of the Consultative Committee for Space Data Systems. APID QUALIFIER: A Path service mechanism for supplementing the Application Process ID in the header of a Version-1 CCSDS Packet so that it may be locally discriminated from other CCSDS Packets bearing the same APID. APPLICATION, USER APPLICATION: The name given to the internal activities of a user of the CPN who is located at an endpoint of the network. APPLICATION PROCESS IDENTIFIER, APID: An 11-bit field within the Primary Header of a Version-1 CCSDS Packet, which identifies a particular User Application within a local naming domain. APPLICATION SERVICES: Upper-layer communications services provided to interactive space mission applications such as file transfers, electronic messages, data-base queries, etc. ASYNCHRONOUS: A data transfer technique which does not preserve precise timing or structural relationships between the transmitted signal and the transfer mechanism. AUDIO: A data stream containing digitized samples of human voice or sound signals. BITSTREAM DATA: An undelimited string of bits, each having apparently equal weight, which has no known structure to a service provider. BITSTREAM PROTOCOL DATA UNIT: The protocol data unit of the B_PDU Construction Function of the Space Link Subnet, having the format of a header followed by a fixed-length block of data that contains a string of user bits (possibly terminated with fill data), the boundary between user and fill data being indicated by a pointer in the header. BITSTREAM SERVICE (B-SERVICE): A service within the Space Link Subnet which allows Bitstream Data to be transferred on a dedicated Virtual Channel. CCSDS PACKET: A variable-length, delimited data unit whose structure and header information is specified by the CCSDS. CHANNEL ACCESS DATA UNIT: A protocol data unit within the Virtual Channel Access sublayer of the Space Link Subnet. A CADU consists of a VCDU or a CVCDU that has been prefixed and delimited by a Synchronization Marker. CODED VIRTUAL CHANNEL DATA UNIT: A Virtual Channel Data Unit to which a block of error-correcting Reed- Solomon check symbols has been appended. CONNECTIONLESS: A communications protocol which operates in a unidirectional fashion, without handshaking from the receiving end, using a data path which may dynamically vary. CONNECTION-ORIENTED: A communications protocol which operates in a closed-loop fashion by receiving handshaking acknowledgements from the receiving end, using a pre- established data path. CONVENTIONAL: Belonging to a class of (predominantly unmanned) missions as typified by space missions flown during the 1960-1990 timeframe. CROSS SUPPORT: The capability for one CCSDS Agency to bidirectionally transfer data from another CCSDS Agency between space and ground systems, through the Space Link Subnetwork, using its own transmission resources. DATA UNIT ZONE: That portion of a Virtual Channel Data Unit into which higher-layer data units may be placed for asynchronous or isochronous transmission. ENCAPSULATION PROTOCOL DATA UNIT: The protocol data unit of the Encapsulation Function of the Space Link Subnet, having the format of a CCSDS Packet. ENCAPSULATION SERVICE, FUNCTION (E-SERVICE): A service or function within the Space Link Subnet which wraps incoming delimited data units (that are not in CCSDS Packet format) into CCSDS Packets, during their transfer through the Subnet. END POINT, END SYSTEM: The location on the CPN of a User Application, at which CPN services are terminated. GATEWAY: The connecting point between two dissimilar subnetworks. GRADE OF SERVICE: A selectable method of data transmission service within the Space Link Subnet. GRADE-1 SERVICE: A Space Link Subnet data transmission service whereby user data are delivered through the SLS with very high probabilities of being complete (i.e. no omissions or duplications), in sequence, and error free. GRADE-2 SERVICE: A Space Link Subnet data transmission service whereby user data are delivered through the SLS possibly incomplete (i.e. with omissions), possibly with duplications caused by onboard storage and retrieval, but with a very high probability of being error free. GRADE-3 SERVICE: A Space Link Subnet data transmission service whereby user data are delivered through the SLS possibly incomplete, possibly duplicated as a result of onboard storage and retrieval, and possibly containing errors. GROUND NETWORK: The ground data distribution part of the CCSDS Principal Network. HEADER: A standard label which identifies a standard data communications structure. IDLE: A mechanism for maintaining synchronous data transmission, in the event that no user data are available, by inserting "fill" data. INSERT SERVICE, FUNCTION: A service or function within the Space Link Subnet which allows isochronous user data to share a Virtual Channel with other types of data. INSERT SERVICE DATA UNIT: The data unit which is placed within the Insert Zone of the Insert Protocol Data Unit during transfer through the Space Link Subnet. INSERT ZONE: That portion of a Virtual Channel Data Unit into which Insert service data units may be placed for isochronous transmission. INTERNET, INTERNET SERVICE: The CCSDS service which supports protocol-driven data flow from end-to-end through multiple, heterogeneous subnetworks. ISOCHRONOUS: A data transfer technique which preserves the timing characteristics and relationships of the transmitted signal. LAYER: A functional organization whereby a complex distributed system may be broken into relatively simple modules of service. LEVEL ZERO PROCESSING: See PRODUCTION DATA PROCESSING. LIFETIME CONTROL: A method of data transmission whereby data units are discarded if the number of times that they pass through intermediate nodes (such as routers and gateways) exceeds a pre-established value. LINK IDENTIFIER, LinkID: The LinkID names the Physical Channel Access Protocol Data Unit (PCA_PDU), and is the addressing mechanism for the Insert service. LOGICAL DATA PATH: A preconfigured route between two user application endpoints, through which data may flow without the need for large communications headers. A Logical Data Path associates the source, the destination, and the route between them. MANAGED OBJECT: A parameter associated with a CPN service which is exposed to network management for the purpose of network monitoring and control. MANAGEMENT: The set of functions and services provided within a network to supervise, schedule, and control network resources. MISSION: An activity in space under the control of a Project. MULTIPLEXING PROTOCOL DATA UNIT: The protocol data unit of the Multiplexing Function of the Space Link Subnet, having the format of a header followed by a fixed-length block of data that contains a piece of a contiguous string of concatenated CCSDS Packets. MULTIPLEXING SERVICE, FUNCTION (M-SERVICE): A service or function within the Space Link Subnet which packs CCSDS Packets together so that they may efficiently occupy the fixed-length data field of a Coded Virtual Channel Data Unit. OCTET: An eight-bit word. OCTET STRING SERVICE: A service option within the CCSDS Path service, whereby the CPN creates the CCSDS Packets which support the Path protocol. ONBOARD NETWORK: The onboard data distribution part of the CCSDS Principal Network. P-FIELD: The Preamble Field of a standard CCSDS Time Code. PACKET: A variable-length, delimited data structure consisting of a set of higher- layer user data that are encapsulated within standard header information. (Note: the term "packet" is used generically in this Recommendation, while the term "Packet" refers to the Version-1 CCSDS Packet.) PACKET CHANNEL: A mechanism used by the Multiplexing Function within the Space Link Subnet to allow multiple users to share one Virtual Channel. PACKET CHANNEL ID: The identifier for a Packet Channel, mechanized using the APID field of a CCSDS Packet. PACKET SERVICE: A service option within the CCSDS Path service, whereby users create the CCSDS Packets which support the Path protocol. PATH, PATH SERVICE: The CPN service which, using Logical Data Paths, allows large rates and volumes of space mission data to flow between relatively static endpoints without requiring large communications headers. PATH ENTITY: A CPN element which supports CCSDS Path service. PATH ID, PATH IDENTIFIER: An identifier for a Logical Data Path. PHYSICAL CHANNEL: The space/space or space/ground transmission medium. PHYSICAL CHANNEL LAYER: The bottom layer of the Space Link Subnetwork. PRIMITIVE: An abstract model of the logical exchange of user data and control information between network layers or sublayers. PRINCIPAL NETWORK/CCSDS PRINCIPAL NETWORK: A set of three subnetworks, clustered around special-purpose space data channels, which provide basic space mission data communications services using techniques which are standardized by the CCSDS. PROCEDURE: A set of functional processes which are used to implement a service. PRODUCTION DATA PROCESSING: A value-added service, performed at a CPN endpoint, which prepares user data for delivery (also referred to as "level zero processing"). PROJECT: An organization which has the technical and funding cognizance to execute a particular space mission. PROTOCOL DATA UNIT: A data structure which operates across a layer within a distributed system in order to implement the service offered by that layer. RECOMMENDATION: A CCSDS document which provides guidelines from which the CCSDS Agencies may develop their own Standards. REED-SOLOMON: A high performance block-oriented outer coding technique which provides powerful error-correction capability (named after its inventors, Reed and Solomon). SECONDARY HEADER: An optional field within a Version-1 CCSDS Packet, into which supplementary information (e.g., a Time Code) may be placed to facilitate value-added network service. SERVICE: A standard capability which is offered within a network layer. SERVICE ACCESS POINT: An address on the CCSDS Principal Network where a particular CPN service is exposed to a user. SERVICE DATA UNIT: A data unit which is provided as an input to a service, or which is output by that service. SIGNALLING: The set of functions and services provided within a network to format and exchange management information between management elements. SPACE CHANNEL: A space/space or space/ground data transmission path. SPACECRAFT IDENTIFIER, SCID: An identifier, contained within the Virtual Channel Data Unit header which, when concatenated with the Version Number "01", identifies a local control authority. SPACE LINK SUBNET(WORK): The central subnet within the CCSDS Principal Network, which enables the transmission of data through space channels. SPACE LINK ARQ PROCEDURE: A function within the Space Link Subnet that performs retransmission control to ensure delivered completeness of higher-layer data. SPACE LINK LAYER: The top layer of the Space Link Subnet, composed of the Virtual Channel Link Control and Virtual Channel Access sublayers. STANDARD: A document which commits CCSDS Agency resources to a particular Project- independent data handling technique. SUBLAYER: An internal partitioning of a layered architecture into fine-grained subdivisions of function. SUBNET(WORK): A component of a network which provides local communications services corresponding to OSI layers 1 and 2. SYMBOL: The encoded representation of space mission information as it flows through space channels. SYNCHRONIZATION MARKER: A pattern used to delimit the boundaries of fixed-length data blocks as they are transmitted through a space channel. T-FIELD: The Time Field of a standard CCSDS Time Code. TELEMETRY: A term used to characterize the generation of more or less continuous and predictable sets of space mission measurement data at data rates and volumes which may be extremely high, and which have a large interaction with overall communications resources. TIMETAG: The digital representation of time information, used to annotate a space service data unit with respect to its time of generation relative to other mission events. VERSION NUMBER: An identifier, contained within the Virtual Channel Data Unit header, which defines the protocol data unit in use at the Link layer of the Space Link Subnetwork. VIDEO: A stream of data containing digitized samples of television signals. VIRTUAL CHANNEL: A mechanism whereby a single Physical Channel may be shared by different types of users by creating multiple apparently parallel "virtual" paths through the channel. VIRTUAL CHANNEL ACCESS SERVICE: A cross supported Space Link Subnetwork service which exposes the Data Unit Zone of a Virtual Channel to users. VIRTUAL CHANNEL ACCESS SUBLAYER: A layer of the Space Link Subnetwork which transmits higher-layer data through the Physical Channel using constant-length data blocks. VIRTUAL CHANNEL DATA UNIT: The protocol data unit of the Virtual Channel Access sublayer of the Space Link Subnet, consisting of a fixed-length CCSDS data structure which is used bidirectionally on space channels within Advanced Orbiting Systems to implement an OSI layer-2 protocol. VIRTUAL CHANNEL DATA UNIT IDENTIFIER (VCDU-ID): An identifier, consisting of a Spacecraft ID concatenated with a Virtual Channel ID which (when qualified by the Version Number "01") uniquely identifies a particular AOS Virtual Channel. VIRTUAL CHANNEL DATA UNIT SERVICE: A cross support service within the Space Link Subnet that allows independently created VCDU or CVCDUs to be transmitted on a Physical Channel. VIRTUAL CHANNEL LINK CONTROL SUBLAYER: A layer of the Space Link Subnet which allows user data to be placed on individual Virtual Channels.