Skip to main content

A code to describe satellite constellations
draft-piraux-space-constellation-code-02

Document Type Active Internet-Draft (individual)
Authors Maxime Piraux , Juan A. Fraire
Last updated 2026-07-06
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-piraux-space-constellation-code-02
Systems and Protocol Aspects for Circumstellar Environments RG M. Piraux
Internet-Draft                                              Aerospacelab
Intended status: Informational                              J. A. Fraire
Expires: 7 January 2027                      Inria / Saarland University
                                                             6 July 2026

              A code to describe satellite constellations
                draft-piraux-space-constellation-code-02

Abstract

   When considering a satellite constellation forming a non-terrestrial
   network, the characteristics of this constellation heavily influence
   the network topology it forms.  To improve the analysis of such non-
   terrestrial networks across various tools developed by the network
   community, this document defines a constellation code to describe
   common orbital shell patterns, and specification formats to describe
   inter-satellite link topologies and ground stations, covering the
   Core and Ground Networks of a constellation.  In addition, this
   document may serve as an introduction to satellite constellations for
   IETF participants.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://mpiraux.github.io/draft-piraux-space-constellation-code/
   draft-piraux-space-constellation-code.html.  Status information for
   this document may be found at https://datatracker.ietf.org/doc/draft-
   piraux-space-constellation-code/.

   Discussion of this document takes place on the Systems and Protocol
   Aspects for Circumstellar Environments RG Research Group mailing list
   (mailto:space@irtf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/space/.  Subscribe at
   https://www.ietf.org/mailman/listinfo/space/.

   Source for this draft and an issue tracker can be found at
   https://github.com/mpiraux/draft-piraux-space-constellation-code.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

Piraux & Fraire          Expires 7 January 2027                 [Page 1]
Internet-Draft             Constellation code                  July 2026

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 7 January 2027.

Copyright Notice

   Copyright (c) 2026 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Conventions and Definitions . . . . . . . . . . . . . . . . .   5
   3.  Describing the Core Network . . . . . . . . . . . . . . . . .   5
     3.1.  Satellite constellations  . . . . . . . . . . . . . . . .   5
       3.1.1.  Walker constellations . . . . . . . . . . . . . . . .   5
     3.2.  Constellation code  . . . . . . . . . . . . . . . . . . .   8
     3.3.  Examples of constellation codes . . . . . . . . . . . . .  10
     3.4.  Link specification  . . . . . . . . . . . . . . . . . . .  10
       3.4.1.  constellation-specs fields  . . . . . . . . . . . . .  12
   4.  Describing the Ground Network . . . . . . . . . . . . . . . .  13
     4.1.  Ground station specification  . . . . . . . . . . . . . .  14
       4.1.1.  ground-stations-specs fields  . . . . . . . . . . . .  14
   5.  Considerations for future versions of this document . . . . .  15
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  16
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  16
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  16
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  16
   Appendix A.  Changelog  . . . . . . . . . . . . . . . . . . . . .  17
     A.1.  Since draft-piraux-space-constellation-code-01  . . . . .  17
     A.2.  Since draft-piraux-space-constellation-code-00  . . . . .  17
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  17
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  17

Piraux & Fraire          Expires 7 January 2027                 [Page 2]
Internet-Draft             Constellation code                  July 2026

1.  Introduction

   A satellite constellation spans three networks to deliver their
   services as illustrated by Figure 1.  First, an Access Network
   enables User Equipment (UE) to connect to the constellation.  This is
   realised by the establishment of a Service Link to exchange UE
   traffic.  Then, the UE traffic is forwarded over a Core Network
   consisting of the different interconnected satellites.  Finally, the
   UE traffic is sent back to ground via the Feeder Link, which connects
   a satellite to a ground station.  A ground station is usually
   colocated with the infrastructure required to deliver the service.
   In the case of Internet broadband access, this can be a Point-of-
   Presence (PoP) connecting to the Internet.

   Access Network |         Core Network         |    Ground Network
                  |                              |
    UE ------- Service ---> *---*---*---* ---- Feeder --> Ground --- PoP
                Link        :   :   :   :       Link      Station
                  |         *---*---*---*        |
                  |                              |

         Figure 1: A satellite constellation spans three networks

   The network topology of the Core Network of a satellite constellation
   is heavily influenced by its orbital characteristics.  A network is
   formed in space by establishing Inter-Satellite Links (ISL) between
   neighbour satellites, notably enabled by recent technologies such as
   Optical ISLs (OISL).  The resulting topology can be dynamic as the
   distance between neighbour satellites changes throughout their
   orbital period.

   A key characteristic of satellite constellations is the ephemeral
   nature of the Feeder Links.  They may only be established when a
   satellite and a ground station are in range of each other.
   Typically, ground stations can establish links within a defined cone
   of coverage.  This cone is often characterised by a Minimum Elevation
   Angle (MEA), such that Feeder Links can only be established when
   their elevation is above the MEA.  Consequently, satellites are often
   engineered such that Feeder Links are feasible within the entire cone
   of coverage of ground stations.  A ground station often includes
   several antennas such that a certain number of Feeder Links can be
   established from a given location.  Satellites may include several
   antennas as well to establish several Feeder Links or enable make-
   before-break transitions.

Piraux & Fraire          Expires 7 January 2027                 [Page 3]
Internet-Draft             Constellation code                  July 2026

   A common notation for the network community to describe these
   constellations could improve the reproducibility of evaluations,
   measurements and simulations of satellite constellation networks.
   This document focuses on describing some elements of the Core and
   Ground Networks.

   The approach of this document is based on the mission parameters of a
   satellite constellation.  Based on these parameters, the expected
   position of each satellite within the constellation can then be
   computed.  Tools using the notation described in this document are
   free to choose how they propagate the positions of satellites.  This
   may be revised in later versions of this document.  The two practical
   options are:

   *  Keplerian-based propagation, focusing on the theoretical position
      of satellites.

   *  Perturbation-based propagation, such as using Simplified General
      Perturbations 4 (SGP4) or Simplified Deep Space Perturbations 4
      (SDP4) [HoRo1980] [VaCrHuKe2006].

   This version of the specification applies only to circular orbital
   shells.  The rationale for this restriction is that circular orbits
   are the most common in current satellite constellations and simplify
   the code syntax.  Elliptical orbits, such as those used in Molniya or
   Flower constellations, are outside the current scope but could be
   supported in a future extension of this document.

   The notation defined in this document can also specify patterns for
   links within a shell of a constellation.  Each pattern is repeated to
   establish the connectivity of a satellite with its neighbours within
   the shell.  This is inspired by the works of network researchers on
   constellation network topology design [BhSi2019].

   The rest of this document is organised as follows.  Section 3
   describes the Core Network of a constellation.  Section 3.1
   introduces two variants of the Walker pattern for orbital shells,
   used to define many of the existing satellite constellations.
   Section 3.2 defines the constellation code syntax using an ABNF
   grammar [RFC5234] and its semantics.  Section 3.3 contains examples
   of existing constellations defined using the constellation code.
   Section 3.4 extends the code with a specification format for link
   patterns within a shell.  Section 4 describes the Ground Network of a
   constellation.  Section 4.1 defines a specification format for ground
   stations.  Finally, Section 5 concludes with considerations for
   future versions of this document.

Piraux & Fraire          Expires 7 January 2027                 [Page 4]
Internet-Draft             Constellation code                  July 2026

2.  Conventions and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Describing the Core Network

   This section describes how the Core Network of a constellation is
   specified.

3.1.  Satellite constellations

   A constellation greatly improves the availability of a satellite
   service up to global or near-global coverage on Earth.  From the user
   perspective, a constellation offers more guarantees that a satellite
   can be reached at all times.  A constellation is composed of a set of
   orbital planes.  Typically, several satellites are present on an
   orbital plane.  They can be close together to perform formation
   flying or are equally spread within the plane.  Orbital planes are
   distributed in a complementary manner, i.e., they share some
   properties (e.g. altitude and inclination) but differ in others (e.g.
   longitude of ascending node).

   When all orbital planes of a constellation are circular orbits
   sharing the same altitude, they are said to constitute an orbital
   shell.  Constellations often consist of a single orbital shell but
   more complex deployments can have several shells.

   The rest of this section describes two common shells based on the
   Walker pattern.

3.1.1.  Walker constellations

   A Walker constellation consists of circular orbits sharing the same
   inclination.  Two variants of the Walker pattern exist:

   *  Walker Star, where orbits are distributed over 180 degrees around
      the equator.

   *  Walker Delta, where orbits are distributed over 360 degrees around
      the equator.

Piraux & Fraire          Expires 7 January 2027                 [Page 5]
Internet-Draft             Constellation code                  July 2026

3.1.1.1.  Walker Star

   Figure 2 is an illustration of a Walker Star constellation
   considering the Earth equator as horizontal in the Figure.  The orbit
   trajectories are depicted by a dashed line, while satellites and
   their travel direction are indicated by arrow heads.

   The orbits of a Walker Star constellation typically have an
   inclination close to 90 degrees with respect to the equator plane,
   though this is not a geometric constraint and other inclinations are
   possible.  Given that they are distributed over 180 degrees around
   the equator plane, one half-sphere has satellites ascending from the
   south pole to the north pole while the other has them descending from
   north pole to south pole.  This is depicted on the two sides of
   Figure 2.  Over the south and north poles, all orbits are crossing
   paths before going over the other half-sphere.

                                 /  / \  \
                               , - ~ ~ ~ - ,
                           , '/    ^   v    \' ,
                         ,   ^    /     \    v  ,
                        ,   /    ^       v    \   ,
                       ,   ^     |       |     v   ,
                       ,   |     ^       v     |   ,
                       ,   ^     |       |     v   ,
                        ,   \    ^       v    /   ,
                         ,   ^   \       /   v   ,
                           ,  \   ^     v   / , '
                             ' - , _ _ _ ,  '
                                 \  \ /  /

                   Figure 2: A Walker Star constellation

   In a Walker Star constellation, a seam can be observed at the start
   and end of the orbit distribution around the equator plane.  That is
   the first orbit (resp. last orbit) is next to the last orbit (resp.
   first orbit) going in the opposite direction of the sphere.  It can
   be observed at the center of the Figure 2.  The seam effect in Walker
   Star constellations may limit cross-plane ISL links at the seam
   boundary, though cross-plane links are still possible elsewhere; for
   instance, the Iridium constellation uses a Walker Star pattern with
   cross-plane ISLs.  However, the Delta variant is often preferred for
   OISL-capable constellations due to the absence of the seam effect.

Piraux & Fraire          Expires 7 January 2027                 [Page 6]
Internet-Draft             Constellation code                  July 2026

   Figure 3 illustrates a part of a possible network topology for Walker
   Star constellations, with four orbital planes depicted vertically,
   each containing three satellites.  In this example, links are only
   established in-plane, i.e., within the same orbit, though cross-plane
   links are also possible.  Each orbit forms a ring, where the last
   satellite is connected to the first satellite.

                       :        :        :        :
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                     [0/0]    [1/0]    [2/0]    [3/0]
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                     [0/1]    [1/1]    [2/1]    [3/1]
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                     [0/2]    [1/2]    [2/2]    [3/2]
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       :        :        :        :

           Figure 3: A Walker Star constellation network topology

3.1.1.2.  Walker Delta

   Figure 4 is an illustration of a Walker Delta constellation with only
   two orbits due to graphical constraints.  The orbits of a Walker
   Delta constellation typically have an inclination ranging from 45 to
   65 degrees with respect to the equator plane, though any inclination
   is geometrically valid.  Combined with the altitude, the inclination
   directly limits the latitude coverage of a constellation, while
   Walker Star constellations have a complete latitude coverage.

   Given that the orbits are distributed around the entire equator
   plane, there is no seam effect as in the Walker Star pattern.
   Instead, each orbit progresses in the same direction and cross paths
   twice with every other orbit.  In this case, satellites can establish
   links with neighbouring orbits in addition to links within the same
   orbit.

Piraux & Fraire          Expires 7 January 2027                 [Page 7]
Internet-Draft             Constellation code                  July 2026

                           /   , - ~ ~ ~ - ,   \
                           , '               ' ,
                         ,   \                   ,
                        ,      ^           /      ,
                       ,         \        v        ,
                       ,           ^   /           ,
                       ,             \v            ,
                        ,           /  ^          ,
                         ,         v     \       ,
                           ,    /             , '
                             ' - , _ _ _ ,  '
                             \               /

                   Figure 4: A Walker Delta constellation

   Figure 5 illustrates a part of a possible network topology for Walker
   Delta constellations, with four orbital planes depicted vertically,
   each containing three satellites.  Links are established in-plane and
   cross-plane, i.e., from one orbit to the other.

                       :        :        :        :
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                 ..--[0/0]----[1/0]----[2/0]----[3/0]--..
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                 ..--[0/1]----[1/1]----[2/1]----[3/1]--..
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       |        |        |        |
                     +~~~+    +~~~+    +~~~+    +~~~+
                 ..--[0/2]----[1/2]----[2/2]----[3/2]--..
                     +~~~+    +~~~+    +~~~+    +~~~+
                       |        |        |        |
                       :        :        :        :

          Figure 5: A Walker Delta constellation network topology

3.2.  Constellation code

   Figure 6 defines the constellation code using an ABNF grammar
   [RFC5234].  The code can define a constellation with multiple shells.
   Each shell can follow a Walker Star or Walker Delta pattern.

Piraux & Fraire          Expires 7 January 2027                 [Page 8]
Internet-Draft             Constellation code                  July 2026

       constellation = shell [ "+" constellation ]
       shell = walker ":" altitude ":" inclination ":" plane-params
               [ ":" mean-anomaly ]
       walker = "D" / "S"
       altitude = float
       inclination = float
       plane-params = no-sats "/" no-planes "/" phasing-factor
       no-sats = int
       no-planes = int
       phasing-factor = int
       mean-anomaly = float

       int = 1*DIGIT
       float = 1*DIGIT [ "." 1*DIGIT ]

             Figure 6: ABNF Grammar for the constellation code

   In addition to the grammar presented above defining the syntax of the
   code, a number of requirements on the semantics of the code are
   listed below.

   *  The altitude is expressed in kilometres with reference to the
      Earth's surface.

   *  The inclination is expressed in degrees and MUST be within the
      range of [0, 180] degrees.  Inclinations greater than 90°
      represent retrograde orbits.

   *  The number of satellites must be evenly divisible by the number of
      planes.

   *  The phasing factor must be within the range [0, no-planes - 1].
      It represents the relative offset between satellites in adjacent
      orbital planes.  It determines how satellites in one plane are
      shifted in their orbital position compared to the satellites in
      the neighbouring plane, enabling optimal coverage patterns.

   *  The mean anomaly is expressed in degrees and MUST be within the
      range of [0, 360] degrees.  It is optional and represents the
      orbital position of the first satellite in the first plane of the
      constellation.  When absent it is considered equal to zero.  The
      reference epoch for the mean anomaly is defined by the user's
      simulation environment or application context.

Piraux & Fraire          Expires 7 January 2027                 [Page 9]
Internet-Draft             Constellation code                  July 2026

3.3.  Examples of constellation codes

   This section provides some examples of how the constellation code can
   be used to define existing satellite constellations sourced from
   public information.  In some cases, when the phasing factor is not
   known, it is speculative.

    +==========+==============================+=======================+
    | Name     | Description                  | Constellation code    |
    +==========+==============================+=======================+
    | Iridium  | Walker Star, 780 km          | S:780:86.4:66/6/1     |
    |          | altitude, 86.4° inclination, |                       |
    |          | 66 satellites, 6 planes      |                       |
    +----------+------------------------------+-----------------------+
    | OneWeb   | Walker Star, 1 200 km        | S:1200:87.9:672/12/11 |
    |          | altitude, 87.9° inclination, |                       |
    |          | 672 satellites, 12 planes    |                       |
    +----------+------------------------------+-----------------------+
    | Starlink | Walker Delta, 550 km         | D:550:53:1584/72/39   |
    | (shell   | altitude, 53° inclination,   | [StFrHe2022]          |
    | 1)       | 1584 satellites, 72 planes   |                       |
    +----------+------------------------------+-----------------------+
    | GPS      | Walker Delta, 20 180 km, 55° | D:20180:55:24/6/1     |
    |          | inclination, 24 satellites,  |                       |
    |          | 6 planes                     |                       |
    +----------+------------------------------+-----------------------+

                  Table 1: Examples of constellation codes

3.4.  Link specification

   In this section, we extend the code notation with the following
   Concise Data Definition Language (CDDL) schema [RFC8610] to specify
   the patterns of links within a shell.

Piraux & Fraire          Expires 7 January 2027                [Page 10]
Internet-Draft             Constellation code                  July 2026

   constellation-specs = {
     version: tstr,
     shells: [+ shell-entry],
   }

   shell-entry = {
     code: tstr,  ; Constellation code as specified in this document
     link-patterns: [* link-pattern],
   }

   link-pattern = {
     (
       (rank-offset: int, ? plane-offset: int) //
       (? rank-offset: int, plane-offset: int)
     ),
     ? conditions: [* condition],
   }

   condition = { eq: [expression, expression] }

   expression = int
              / context-element
              / operation

   context-element = "rank" / "plane"

   operation = { mod: [expression, expression] }

               Figure 7: CDDL schema for constellation links

   Each data item specifies a constellation that may be composed of
   several shells.  An example specifying a two-shell constellation is
   given below in Extended Diagnostic Notation (EDN) [RFC8949]:

Piraux & Fraire          Expires 7 January 2027                [Page 11]
Internet-Draft             Constellation code                  July 2026

{
  "version": "draft-piraux-space-constellation-code-02",
  "shells": [
    {
      "code": "D:1200:55:400/20/19",
      "link-patterns": [
        { "rank-offset": 1 },             / in-plane link to the next satellite /
        {
          "plane-offset": 1,              / cross-plane link in a staggered pattern /
          "conditions": [                 / e.g., when only three links are possible /
            { "eq": [{ "mod": ["rank", 2] }, { "mod": ["plane", 2] }] }
            / rank % 2 == plane % 2 /
          ]
        }
      ]
    },
    {
      "code": "S:1210:89:52/4/1",
      "link-patterns": [
        { "rank-offset": 1 }
      ]
    }
  ]
}

           Figure 8: Example constellation-specs data item

   Figure 8 specifies a two-shell constellation.  The first shell is a
   Walker Delta shell in which satellites have three links towards
   neighbours.  The second is a Walker Star pattern with two in-plane
   links per satellite.

   These patterns are encoded through the link-patterns key.  It
   contains a list of patterns with optional conditions.  Each pattern
   specifies how to reach a neighbour given local plane and rank offsets
   to establish a bidirectional link.  For instance, the first pattern
   of the first shell specifies that a link is formed with the next
   satellite in the same orbit.

   For each pattern, a list of conditions can be expressed with the
   conditions key.  These are evaluated for each satellite within the
   shell to determine whether the corresponding pattern should be
   applied to form a link.  By applying each pattern to all satellites,
   the set of links within the constellation shell is established.

3.4.1.  constellation-specs fields

   version  Indicates the version of this I-D that the data item should

Piraux & Fraire          Expires 7 January 2027                [Page 12]
Internet-Draft             Constellation code                  July 2026

      be interpreted with.

   shells  A list of shell entries.

3.4.1.1.  Shell entry

   code  The shell code following the specification in Section 3.2.

   link-patterns  A list of link patterns applied to every satellite in
      the shell.

3.4.1.2.  Link pattern

   rank-offset  An integer specifying the offset in rank to reach the
      neighbour for this link.

   plane-offset  An integer specifying the offset in plane to reach the
      neighbour for this link.  When this offset causes the plane index
      to wrap around to the first plane, the rank index of the target
      satellite is adjusted according to the phasing factor of the
      shell.

   At least one of the two offsets MUST be present and non-zero.  The
   other defaults to zero when absent.  They naturally wrap around at
   the boundaries of a shell.

   conditions  A list of conditions that must all be met for the
      corresponding link to be added to a given satellite.

3.4.1.3.  Condition

   A condition is a predicate applied to two expressions.  This version
   of the document only specifies the equality predicate, indicated by
   the eq key.

3.4.1.4.  Expression

   An expression is one of: an integer literal, a context element, or an
   operation on two sub-expressions.  Context elements are represented
   by strings and two of them are defined. rank refers to the current
   rank index and plane refers to the current plane index of the
   satellite being evaluated.  This version of the document only
   specifies the modulo operation, indicated by the mod key.

4.  Describing the Ground Network

   This section describes how the Ground Network of a constellation is
   specified.

Piraux & Fraire          Expires 7 January 2027                [Page 13]
Internet-Draft             Constellation code                  July 2026

4.1.  Ground station specification

   In this section, we describe ground stations using the following CDDL
   schema [RFC8610].

   ground-stations-specs = {
     version: tstr,
     ground-stations: [+ ground-station],
   }

   ground-station = {
     name: tstr,
     latitude: float,      ; degrees
     longitude: float,     ; degrees
     altitude: float,      ; metres above Earth surface
     min-elevation: float, ; degrees
     antennas: uint,
   }

                 Figure 9: CDDL schema for ground stations

   An example specifying a single ground station is as follows:

   {
     "version": "draft-piraux-space-constellation-code-02",
     "ground-stations": [
       {
         "name": "Charleroi",
         "latitude": 50.403,
         "longitude": 4.428,
         "altitude": 109.0,
         "min-elevation": 10.0,
         "antennas": 8
       }
     ]
   }

             Figure 10: Example ground-stations-specs data item

   Figure 10 specifies a single ground station with an associated
   location.  It has a MEA of 10 degrees and 8 antennas that can be used
   simultaneously.

4.1.1.  ground-stations-specs fields

   version  Indicates the version of this I-D that the data item should
      be interpreted with.

Piraux & Fraire          Expires 7 January 2027                [Page 14]
Internet-Draft             Constellation code                  July 2026

   ground-stations  A list of ground stations.

4.1.1.1.  Ground station

   name  A string to identify the ground station.

   latitude  The latitude of the ground station location, expressed in
      degrees.

   longitude  The longitude of the ground station location, expressed in
      degrees.

   altitude  The altitude of the ground station location, expressed in
      metres above the Earth's surface.

   min-elevation  The Minimum Elevation Angle above which Feeder Links
      can be established, expressed in degrees.

   antennas  The number of antennas available to establish Feeder Links
      simultaneously.

5.  Considerations for future versions of this document

   The code and specification formats presented in this document do not
   consider the capabilities of satellites within a constellation to
   establish links.  It focuses on defining the stable network topology
   that is expected for a constellation.  Future versions of this
   document could consider means to define the capabilities of Optical
   Communication Terminals (OCTs) used to establish ISLs.  This is
   complementary to the description of the network topology, which forms
   more of an intent, while capabilities define the space of possible
   links.

6.  Security Considerations

   As the code and specification formats specified in this document are
   foreseen as user input into software that performs simulations,
   evaluations and analysis of satellite constellations, implementers
   SHOULD consider validation and sanitisation measures.

   In particular, the expression and operation types (Section 3.4) are
   recursively defined and could be nested arbitrarily deeply, and the
   shells, link-patterns, conditions, and ground-stations lists are
   unbounded in size.  Implementers SHOULD bound recursion depth and
   collection sizes to mitigate resources exhaustion when processing
   untrusted input.

Piraux & Fraire          Expires 7 January 2027                [Page 15]
Internet-Draft             Constellation code                  July 2026

7.  IANA Considerations

   This document has no IANA actions.

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/rfc/rfc2119>.

   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234,
              DOI 10.17487/RFC5234, January 2008,
              <https://www.rfc-editor.org/rfc/rfc5234>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.

   [RFC8610]  Birkholz, H., Vigano, C., and C. Bormann, "Concise Data
              Definition Language (CDDL): A Notational Convention to
              Express Concise Binary Object Representation (CBOR) and
              JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610,
              June 2019, <https://www.rfc-editor.org/rfc/rfc8610>.

8.2.  Informative References

   [BhSi2019] Bhattacherjee, D. and A. Singla, "Network topology design
              at 27,000 km/hour", ACM, Proceedings of the 15th
              International Conference on Emerging Networking
              Experiments And Technologies pp. 341-354,
              DOI 10.1145/3359989.3365407, December 2019,
              <https://doi.org/10.1145/3359989.3365407>.

   [HoRo1980] Hoots, F. R. and R. L. Roehrich, "Spacetrack Report No. 3:
              Models for Propagation of NORAD Element Sets", December
              1980.

   [RFC8949]  Bormann, C. and P. Hoffman, "Concise Binary Object
              Representation (CBOR)", STD 94, RFC 8949,
              DOI 10.17487/RFC8949, December 2020,
              <https://www.rfc-editor.org/rfc/rfc8949>.

Piraux & Fraire          Expires 7 January 2027                [Page 16]
Internet-Draft             Constellation code                  July 2026

   [StFrHe2022]
              Stock, G., Fraire, J., and H. Hermanns, "Distributed On-
              Demand Routing for LEO Mega-Constellations: A Starlink
              Case Study", IEEE, 2022 11th Advanced Satellite Multimedia
              Systems Conference and the 17th Signal Processing for
              Space Communications Workshop (ASMS/SPSC) pp. 1-8,
              DOI 10.1109/asms/spsc55670.2022.9914716, September 2022,
              <https://doi.org/10.1109/asms/spsc55670.2022.9914716>.

   [TvdLCode] Tim van der Lee, "Constellation Code", July 2023,
              <https://github.com/Tim024/ConstellationCode>.

   [VaCrHuKe2006]
              Vallado, D., Crawford, P., Hujsak, R., and T. Kelso,
              "Revisiting Spacetrack Report #3", American Institute of
              Aeronautics and Astronautics, AIAA/AAS Astrodynamics
              Specialist Conference and Exhibit,
              DOI 10.2514/6.2006-6753, June 2006,
              <https://doi.org/10.2514/6.2006-6753>.

Appendix A.  Changelog

A.1.  Since draft-piraux-space-constellation-code-01

   *  Replaced YAML by CDDL.

   *  Include description of ground stations.

   *  Reorganised the document into Core Network and Ground Network
      sections following the revised introduction.

A.2.  Since draft-piraux-space-constellation-code-00

   *  Add YAML format to specify link patterns within shells of a
      constellation.

   *  Improvement of the text and examples.

Acknowledgments

   We thank Tim van der Lee for his work on a code [TvdLCode] that
   served as the basis for this document.

Authors' Addresses

   Maxime Piraux
   Aerospacelab
   Email: maxime.piraux@aerospacelab.com

Piraux & Fraire          Expires 7 January 2027                [Page 17]
Internet-Draft             Constellation code                  July 2026

   Juan A. Fraire
   Inria / Saarland University
   Email: juan.fraire@inria.fr

Piraux & Fraire          Expires 7 January 2027                [Page 18]