<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-piraux-space-constellation-code-00" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Constellation code">A code to describe satellite constellations</title>
    <seriesInfo name="Internet-Draft" value="draft-piraux-space-constellation-code-00"/>
    <author fullname="Maxime Piraux">
      <organization>Aerospacelab</organization>
      <address>
        <email>maxime.piraux@aerospacelab.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>IRTF</area>
    <workgroup>Systems and Protocol Aspects for Circumstellar Environments RG</workgroup>
    <abstract>
      <?line 40?>

<t>When considering a satellite constellation forming a non-terrestrial network, the characteristics of this constellation heavily influences the network topology it forms.
To improve the analysis of such non-terrestrial networks across various tools developed by the network community, this document proposes a notation to describe common constellation patterns.
In addition, this document may serve as an introduction to satellite constellations for IETF participants.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mpiraux.github.io/draft-piraux-space-constellation-code/draft-piraux-space-constellation-code.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-piraux-space-constellation-code/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Systems and Protocol Aspects for Circumstellar Environments RG Research Group mailing list (<eref target="mailto:space@irtf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/space/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/space/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mpiraux/draft-piraux-space-constellation-code"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The network topology of a satellite constellation is heavily influenced by its orbital characteristics. With recent technologies enabling Optical Inter-Satellite Links (OISL) between satellites, a network is formed by establishing links between neighbour satellites. The resulting topology can be dynamic as the distance between neighbour satellites changes throughout their orbital period. A common notation for the network community could improve the reproducibility of evaluations, measurements and simulations of satellite constellation networks.</t>
      <t>The true position of a satellite is often represented using a Two-Line Element set (TLE). A TLE contains a number of fields describing the orbital elements at a given time of a given satellite. Combined with a simplified perturbation model, the TLE can be used to predict the future position and velocity of the satellite relatively accurately. However, when studying satellite constellations, TLEs may not be appropriate. First, they assume each satellite has a known absolute position, which is derived from the launch time and parameters which may not be known when studying of the constellation. Second, they involve complex calculations given the chosen perturbation model which may not scale well to large-scale experiments. Third, TLEs are not sufficient to determine how the links are established within the constellation as they do not indicate its characteristics but only the position of its satellites.</t>
      <t>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. While this approach does not capture the small discrepancies that can occur during the launch and operation of the satellites, we argue that it is sufficient in our context.</t>
      <t>The rest of this document is organised as follows.
<xref target="satellite-constellations"/> introduces two variants of the Walker pattern for orbital shells. These are used to define many of the existing satellite constellations. <xref target="constellation-code"/> defines the constellation code syntax using an ABNF grammar <xref target="RFC5234"/> and the code semantics. <xref target="examples-of-constellations-codes"/> contains examples of existing constellations defined using the constellation code. Finally, <xref target="considerations"/> concludes with considerations for future versions of this document.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="satellite-constellations">
      <name>Satellite constellations</name>
      <t>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).</t>
      <t>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.</t>
      <t>The rest of this section describes two common shells based on the Walker pattern.</t>
      <section anchor="walker-constellations">
        <name>Walker constellations</name>
        <t>A Walker constellation consists of circular orbits sharing the same inclination. Two variants of the Walker pattern exist:</t>
        <ul spacing="normal">
          <li>
            <t>Walker Star, where orbits are distributed over 180 degrees around the equator.</t>
          </li>
          <li>
            <t>Walker Delta, where orbits are distributed over 360 degrees around the equator.</t>
          </li>
        </ul>
        <section anchor="walker-star">
          <name>Walker Star</name>
          <t><xref target="fig-walker-star"/> 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.</t>
          <t>The orbits of a Walker Star constellation often have an inclination close to 90 degrees with respect to the equator plane. 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 <xref target="fig-walker-star"/>.
Over the south and north poles, all orbits are crossing paths before going over the other half-sphere.</t>
          <figure anchor="fig-walker-star">
            <name>A Walker Star constellation</name>
            <artwork align="center"><![CDATA[
          /  / \  \
        , - ~ ~ ~ - ,
    , '/    ^   v    \' ,
  ,   ^    /     \    v  ,
 ,   /    ^       v    \   ,
,   ^     |       |     v   ,
,   |     ^       v     |   ,
,   ^     |       |     v   ,
 ,   \    ^       v    /   ,
  ,   ^   \       /   v   ,
    ,  \   ^     v   / , '
      ' - , _ _ _ ,  '
          \  \ /  /
]]></artwork>
          </figure>
          <t>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 <xref target="fig-walker-star"/>. When communication between satellites of neighbour orbits is desired, a Walker Star pattern may not be suitable due to this effect and inter-satellite links may be limited within the same orbit.</t>
          <t><xref target="fig-walker-star-topo"/> illustrates a part of a possible network topology for Walker Star constellations, with four orbital plane depicted vertically, each containing three satellites. Links are only established in-plane, i.e., within the same orbit. Each orbit forms a ring, where the last satellite is connected to the first satellite.</t>
          <figure anchor="fig-walker-star-topo">
            <name>A Walker Star constellation network topology</name>
            <artwork align="center"><![CDATA[
  :        :        :        :
  |        |        |        |
+~~~+    +~~~+    +~~~+    +~~~+
[0/0]    [1/0]    [2/0]    [3/0]
+~~~+    +~~~+    +~~~+    +~~~+
  |        |        |        |
  |        |        |        |
+~~~+    +~~~+    +~~~+    +~~~+
[0/1]    [1/1]    [2/1]    [3/1]
+~~~+    +~~~+    +~~~+    +~~~+
  |        |        |        |
  |        |        |        |
+~~~+    +~~~+    +~~~+    +~~~+
[0/2]    [1/2]    [2/2]    [3/2]
+~~~+    +~~~+    +~~~+    +~~~+
  |        |        |        |
  :        :        :        :
]]></artwork>
          </figure>
        </section>
        <section anchor="walker-delta">
          <name>Walker Delta</name>
          <t><xref target="fig-walker-delta"/> is an illustration of a Walker Delta constellation with only two orbits due to graphical constraints. The orbits of a Walker Delta constellation often have an inclination ranging from 45 to 65 degrees with respect to the equator plane. Combined with the altitude, the inclination directly limits the latitude coverage of a constellation, while Walker Star constellations have a complete latitude coverage.</t>
          <t>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.</t>
          <figure anchor="fig-walker-delta">
            <name>A Walker Delta constellation</name>
            <artwork align="center"><![CDATA[
    /   , - ~ ~ ~ - ,   \
    , '               ' ,
  ,   \                   ,
 ,      ^           /      ,
,         \        v        ,
,           ^   /           ,
,             \v            ,
 ,           /  ^          ,
  ,         v     \       ,
    ,    /             , '
      ' - , _ _ _ ,  '
      \               /
]]></artwork>
          </figure>
          <t><xref target="fig-walker-delta-topo"/> illustrates a part of a possible network topology for Walker Delta constellations, with four orbital plane depicted vertically, each containing three satellites. Links are established in-plane and cross-plane, i.e., from one orbit to the other.</t>
          <figure anchor="fig-walker-delta-topo">
            <name>A Walker Delta constellation network topology</name>
            <artwork align="center"><![CDATA[
      :        :        :        :
      |        |        |        |
    +~~~+    +~~~+    +~~~+    +~~~+
..--[0/0]----[1/0]----[2/0]----[3/0]--..
    +~~~+    +~~~+    +~~~+    +~~~+
      |        |        |        |
      |        |        |        |
    +~~~+    +~~~+    +~~~+    +~~~+
..--[0/1]----[1/1]----[2/1]----[3/1]--..
    +~~~+    +~~~+    +~~~+    +~~~+
      |        |        |        |
      |        |        |        |
    +~~~+    +~~~+    +~~~+    +~~~+
..--[0/2]----[1/2]----[2/2]----[3/2]--..
    +~~~+    +~~~+    +~~~+    +~~~+
      |        |        |        |
      :        :        :        :
]]></artwork>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="constellation-code">
      <name>Constellation code</name>
      <t><xref target="constellation-code-abnf-def"/> defines the constellation code using an ABNF grammar <xref target="RFC5234"/>. The code can define a constellation with multiple shells. Each shell can follow a Walker Star or Walker Delta pattern.</t>
      <t>The code only considers circular orbits but future versions of this document could extend it to include the apogee, perigee and argument of the periapsis such that any elliptical orbit can be defined.</t>
      <figure anchor="constellation-code-abnf-def">
        <name>ABNF Grammar for the constellation code</name>
        <artwork type="abnf" align="center" name="syntax"><![CDATA[
constellation = shell [ "+" constellation ]
shell = walker ":" altitude ":" inclination ":" plane-params
shell =/ [ ":" 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 ]
DIGIT = %x30-39

]]></artwork>
      </figure>
      <t>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.</t>
      <ul spacing="normal">
        <li>
          <t>The altitude is expressed in kilometres with reference to the Earth's surface.</t>
        </li>
        <li>
          <t>The inclination is expressed in degrees and <bcp14>MUST</bcp14> be within the range of [0, 90] degrees.</t>
        </li>
        <li>
          <t>The number of satellites must be evenly divisible by the number of planes.</t>
        </li>
        <li>
          <t>The phasing factor must be within [0, no-planes[.</t>
        </li>
        <li>
          <t>The mean anomaly is expressed in degrees and <bcp14>MUST</bcp14> be within the range of [0, 360] degrees. It is optional and represents the current orbital position of the constellation. When absent it is considered equal to zero.</t>
        </li>
      </ul>
    </section>
    <section anchor="examples-of-constellations-codes">
      <name>Examples of constellations codes</name>
      <t>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.</t>
      <table anchor="example-table">
        <name>Examples of constellation codes</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Description</th>
            <th align="left">Constellation code</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Iridium</td>
            <td align="left">Walker Star, 780 km altitude, 86.4° inclination, 66 satellites, 6 planes</td>
            <td align="left">S:780:86.4:66/6/1</td>
          </tr>
          <tr>
            <td align="left">OneWeb</td>
            <td align="left">Walker Star, 1 200 km altitude, 87.9° inclination, 672 satellites, 12 planes</td>
            <td align="left">S:1200:87.9:672/12/11</td>
          </tr>
          <tr>
            <td align="left">GPS</td>
            <td align="left">Walker Delta, 20 180 km, 55° inclination, 24 satellites, 6 planes</td>
            <td align="left">D:20180:55:24/6/1</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="considerations">
      <name>Considerations for future versions of this document</name>
      <t>The code presented in this document does not consider yet the link configuration within a constellation. For instance, in the case of a Walker Delta constellation, satellites may only be able to establish three OISLs, e.g., two in-plane links and a single cross-plane link. Instead, it is assumed that the network topology is fully meshed as illustrated in <xref target="fig-walker-star-topo"/> and <xref target="fig-walker-delta-topo"/>. Future versions of this document should consider means to indicate how links are established within a constellation, for instance using adjacency matrices.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As the code specified in this document is foreseed as a user input into software that performs simulations, evaluations and analysis of satellite constellations, implementers <bcp14>SHOULD</bcp14> consider validation and sanitisation measures.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TvdLCode" target="https://github.com/Tim024/ConstellationCode">
          <front>
            <title>Constellation Code</title>
            <author initials="" surname="Tim van der Lee">
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 252?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We thank Tim van der Lee for his work on a code <xref target="TvdLCode"/> that served as the basis for this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
O+GFczO3MwtpnfC3uxD/D+ZU8QzzNwAA

-->

</rfc>
