<?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-dekater-scion-controlplane-10" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SCION CP">SCION Control Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-controlplane-10"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>c_de_kater@gmx.ch</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <author initials="S." surname="Hitz" fullname="Samuel Hitz">
      <organization>Anapaya Systems</organization>
      <address>
        <email>hitz@anapaya.net</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 195?>

<t>This document describes the Control Plane of the path-aware, inter-domain network architecture SCION (Scalability, Control, and Isolation On Next-generation networks). A fundamental characteristic of SCION is that it gives path control to SCION-capable endpoints that can choose between multiple path options, thereby enabling the optimization of network paths. The Control Plane is responsible for discovering these paths and making them available to the endpoints.</t>
      <t>The SCION Control Plane creates and securely disseminates path segments between SCION Autonomous Systems (AS) which can then be combined into forwarding paths to transmit packets in the data plane. This document describes mechanisms of path exploration through beaconing and path registration. In addition, it describes how Endpoints construct end-to-end paths from a set of possible path segments through a path lookup process.</t>
      <t>This document contains new approaches to secure path aware networking. It is not an Internet Standard, has not received any formal review of the IETF, nor was the work developed through the rough consensus process. The approaches offered in this work are offered to the community for its consideration in the further evolution of the Internet.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://scionassociation.github.io/scion-cp_I-D/draft-dekater-scion-controlplane.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekater-scion-controlplane/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/scionassociation/scion-cp_I-D"/>.</t>
    </note>
  </front>
  <middle>
    <?line 204?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SCION is a path-aware internetworking routing architecture as described in <xref target="RFC9217"/>. It allows endpoints and applications to select paths across the network to use for traffic, based on trustworthy path properties. SCION is an inter-domain network architecture and is therefore not concerned with intra-domain forwarding.</t>
      <t>SCION has been developed with the following goals:</t>
      <t><em>Availability</em> - to provide highly available communication that can send traffic over paths with optimal or required characteristics, quickly handle inter-domain link or router failures (both on the last hop or anywhere along the path) and provide continuity in the presence of adversaries.</t>
      <t><em>Security</em> - to introduce a new approach to inter-domain path security that leverages path awareness in combination with a unique trust model. The goal is to provide higher levels of trustworthiness in routing information to prevent traffic hijacking, and enable users to decide where their data travels based on routing information that can be unambiguously attributed to an AS, ensuring that packets are only forwarded along authorized path segments. A particular use case is to enable geofencing. Security properties are further discussed in <xref target="security-properties"/>.</t>
      <t><em>Scalability</em> - to improve the scalability of the inter-domain control plane and data plane, avoiding existing limitations related to convergence and forwarding table size. The advertising of path segments is separated into a beaconing process within each Isolation Domain (ISD) and between ISDs which incurs minimal overhead and resource requirements on routers.</t>
      <t>SCION relies on three main components:</t>
      <t><em>PKI</em> - To achieve scalability and trust, SCION organizes existing ASes into logical groups of independent routing planes called <em>Isolation Domains (ISDs)</em>. All ASes in an ISD agree on a set of trust roots called the <em>Trust Root Configuration (TRC)</em> which is a collection of signed root certificates in X.509 v3 format <xref target="RFC5280"/>. The ISD is governed by a set of <em>core ASes</em> which typically manage the trust roots and provide connectivity to other ISDs. This is the basis of the public key infrastructure used for the authentication of messages used by the SCION Control Plane.</t>
      <t><em>Control Plane</em> - performs inter-domain routing by discovering and securely disseminating path information between ASes. The core ASes use Path-segment Construction Beacons (PCBs) to explore intra-ISD paths, or to explore paths across different ISDs.</t>
      <t><em>Data Plane</em> - carries out secure packet forwarding between SCION-enabled ASes over paths selected by endpoints. A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS.</t>
      <t>This document describes the SCION Control Plane component. It should be read in conjunction with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-dataplane"/>.</t>
      <t>The SCION architecture was initially developed outside of the IETF by ETH Zurich with significant contributions from Anapaya Systems. It is deployed in the Swiss finance sector to provide resilient connectivity between financial institutions. The aim of this document is to document the existing protocol specification as deployed, to encourage interoperability among implementations, and to introduce new concepts that can potentially be further improved to address particular problems with the current Internet architecture. This document is not an Internet Standards Track specification; it does not have IETF consensus and it is published for informational purposes.</t>
      <t>Note (to be removed before publication): this document, together with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-dataplane"/>, deprecates <xref target="I-D.dekater-panrg-scion-overview"/>.</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t><strong>Autonomous System (AS)</strong>: An Autonomous System is a network under a common administrative control. For example, the network of an Internet service provider, company, or university can constitute an AS.</t>
        <t><strong>Beaconing</strong>: The Control Plane process where an AS discovers paths to other ASes.</t>
        <t><strong>Control Plane</strong>: The SCION Control Plane is responsible for the propagation and discovery of network paths, i.e., for the exchange of routing information between SCION nodes. The Control Plane thus determines where traffic can be sent and deals with questions such as how paths are discovered, which paths exist, how they are disseminated to endpoints, etc. Within a SCION AS, such functionalities are carried out by the Control Service whereas packet forwarding is a task carried out by the data plane.</t>
        <t><strong>Control Service</strong>: The Control Service is the main control plane infrastructure component within a SCION AS. It is responsible for the path exploration and registration processes that take place within the Control Plane.</t>
        <t><strong>Core AS</strong>: Each Isolation Domain (ISD) is administered by a set of distinguished autonomous systems (ASes) called core ASes, which are responsible for initiating the path-discovery and -construction process (in SCION called "beaconing"). Each ISD <bcp14>MUST</bcp14> have at least one Core AS.</t>
        <t><strong>Endpoint</strong>: An endpoint is the start or the end of a SCION path, as defined in <xref target="RFC9473"/>.</t>
        <t><strong>Forwarding Path</strong>: A forwarding path is a complete end-to-end path between two SCION endpoints which is used to transmit packets in the data plane. It can be created with a combination of up to three path segments (an up segment, a core segment, and a down segment).</t>
        <t><strong>Hop Field (HF)</strong>: As they traverse the network, Path Segment Construction Beacons (PCBs) accumulate cryptographically protected AS-level path information in the form of Hop Fields. In the data plane, Hop Fields are used for packet forwarding: they contain the incoming and outgoing Interface IDs of the ASes on the forwarding path.</t>
        <t><strong>Info Field (INF)</strong>: Each Path Segment Construction Beacon (PCB) contains a single Info field, which provides basic information about the PCB. Together with Hop Fields (HFs), these are used to create forwarding paths.</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, Autonomous Systems (ASes) are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (e.g. a common jurisdiction). A possible model is for ISDs to be formed along national boundaries or federations of nations.</t>
        <t><strong>Leaf AS</strong>: An AS at the "edge" of an ISD, with no other downstream ASes.</t>
        <t><strong>Message Authentication Code (MAC)</strong>. In the rest of this document, "MAC" always refers to "Message Authentication Code" and never to "Medium Access Control". When "Medium Access Control address" is implied, the phrase "Link Layer Address" is used.</t>
        <t><strong>Path Segment</strong>: Path segments are derived from Path Segment Construction Beacons (PCBs). A path segment can be (1) an up segment (i.e. a path between a non-core AS and a core AS in the same ISD), (2) a down segment (i.e. the same as an up segment, but in the opposite direction), or (3) a core segment (i.e. a path between core ASes). Up to three path segments can be used to create a forwarding path.</t>
        <t><strong>Path Segment Construction Beacon (PCB)</strong>: Core AS control planes generate PCBs to explore paths within their isolation domain (ISD) and among different ISDs. ASes further propagate selected PCBs to their neighboring ASes. These PCBs traverse each AS accumulating information, including Hop Fields (HFs) which can subsequently be used for traffic forwarding.</t>
        <t><strong>SCION Control Message Protocol (SCMP)</strong>: A signaling protocol analogous to the Internet Control Message Protocol (ICMP). This is described in <xref target="scmp"/>.</t>
        <t><strong>Trust Root Configuration (TRC)</strong>: A Trust Root Configuration or TRC is a signed collection of certificates pertaining to an isolation domain (ISD). TRCs also contain ISD-specific policies.</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="paths-links">
        <name>Paths and Links</name>
        <t>SCION routers and endpoints connect to each other via links. A link refers to a physical or logical connection between two SCION nodes (e.g., router or endpoint). A SCION path between two endpoints traverses one or more links.</t>
        <t>In SCION, Autonomous Systems (ASes) are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that are part of a uniform trust environment (i.e. a common jurisdiction) and is administered by a set of distinguished ASes called core ASes.</t>
        <t>SCION distinguishes three types of links between ASes: (1) core links, (2) parent-child links, and (3) peering links.</t>
        <ul spacing="normal">
          <li>
            <t><em>Core</em> links connect two core ASes, which are either within the same or in different ISDs. Core links can exist for various reasons, including provider-customer (where the customer pays the provider for traffic) and peering relationships.</t>
          </li>
          <li>
            <t><em>Parent-child</em> links create a hierarchy between the parent and the child AS within the same ISD. ASes with a parent-child link typically have a provider-customer relationship.</t>
          </li>
          <li>
            <t><em>Peering</em> links exist between ASes with a (settlement-free or paid) peering relationship. They can be established between any two ASes (core or non-core) and can cross ISD boundaries.</t>
          </li>
        </ul>
        <t>SCION paths are comprised of at most three path segments: an up segment, traversing links from child to parent, then a core segment consisting of core links, followed by a down segment traversing links from parent to child. Each path segment is established over one or more links.</t>
        <t>SCION paths are always "valley free" whereby a child AS does not carry transit traffic from a parent AS to another parent AS. These paths can contain at most one peering link which can be used as shortcut between two path segments containing two peer ASes.</t>
        <t><xref target="_figure-1"/> shows the three types of links for one small ISD with two core ASes A and C, and four non-core ASes D,E,F, and G.</t>
        <figure anchor="_figure-1">
          <name>The three types of SCION links in one ISD. Each node in the figure is a SCION AS.</name>
          <artwork><![CDATA[
+-------------------------+
|                         |       #
|        ISD Core         |       |      parent-child
| +-----+         +-----+ |       |      link
| |AS A +c-------c+AS C | |       |
| +--+--+         +--+--+ |       *
|    #               #    |
+----|---------------|----+   c-------c  core link
     |               |
     *               *        p-------p  peering link
  +--+--+         +--+--+
  |AS D +p-------p+AS E |
  +--+--+         +--+--+
     #               #
     |               |
     *               *
  +--+--+         +--+--+
  |AS G |         |AS F |
  +-----+         +-----+
]]></artwork>
        </figure>
        <t>Each link connecting SCION routers is bi-directional and is identified by its corresponding egress and ingress Interface IDs. An Interface ID is a 16-bit identifier as described in <xref target="I-D.dekater-scion-dataplane"/> in section Terminology. It is required to be unique within each AS and can therefore be chosen without any need for coordination between ASes.</t>
      </section>
      <section anchor="routing">
        <name>Routing</name>
        <t>SCION provides path-aware inter-domain routing between ASes across the Internet. The SCION Control Plane is responsible for discovering these inter-domain paths and making them available to the endpoints within the ASes.</t>
        <t>SCION inter-domain routing operates on two levels: within a ISD which is called <em>intra</em>-ISD routing, and between ISD which is called <em>inter</em>-ISD routing. Both levels use <em>Path Segment Construction Beacons (PCBs)</em> to explore network paths. A PCB is initiated by a core AS and then disseminated either within an ISD to explore intra-ISD paths, or among core ASes to explore core paths across different ISDs.</t>
        <t>The PCBs accumulate cryptographically protected path and forwarding information at an AS level and store this information in the form of <em>Hop Fields</em>. Endpoints use information from these Hop Fields to create end-to-end forwarding paths for data packets that carry this information in their headers. This also supports multi-path communication among endpoints.</t>
        <t>The creation of an end-to-end forwarding path consists of the following processes:</t>
        <ol spacing="normal" type="1"><li>
            <t><em>Path exploration (or beaconing)</em>: This is the process where an AS discovers paths to other ASes. See also <xref target="beaconing"/>.</t>
          </li>
          <li>
            <t><em>Path registration</em>: This is the process where an AS selects a few PCBs, according to defined policies, turns the selected PCBs into path segments, and adds these path segments to the relevant path infrastructure, thus making them available to other ASes. See also <xref target="path-segment-reg"/>.</t>
          </li>
          <li>
            <t><em>Path resolution</em>: This is the process of actually creating an end-to-end forwarding path from the source endpoint to the destination. For this, an endpoint performs (a) a path lookup step to obtain path segments, and (b) a path combination step to combine the forwarding path from the segments. This last step takes place in the data plane. See also <xref target="lookup"/>.</t>
          </li>
        </ol>
        <t>All processes operate concurrently.</t>
        <t>The <strong>Control Service</strong> is responsible for the path exploration and registration processes in the Control Plane. It is the main control plane infrastructure component within each SCION AS and has the following tasks:</t>
        <ul spacing="normal">
          <li>
            <t>Generating, receiving, and propagating PCBs. Periodically, the Control Service of a core AS generates a set of PCBs, which are forwarded to the child ASes or neighboring core ASes. In the latter case, the PCBs are sent over policy compliant paths to discover multiple paths between any pair of core ASes.</t>
          </li>
          <li>
            <t>Selecting and registering the set of path segments via which the AS wants to be reached.</t>
          </li>
          <li>
            <t>Managing certificates and keys to secure inter-AS communication. Each PCB contains signatures of all on-path ASes and each time the Control Service of an AS receives a PCB, it validates the PCB's authenticity. When the Control Service lacks an intermediate certificate, it can query the Control Service of the neighboring AS that sent the PCB through the API described in <xref target="crypto-api"/>.</t>
          </li>
        </ul>
        <t><strong>Note:</strong> The Control Service of an AS is decoupled from SCION border routers. The Control Service of a specific AS is part of the Control Plane, is responsible for <em>finding and registering suitable paths</em>, and can be deployed anywhere inside the AS. Border routers are deployed at the edge of an AS and their main tasks are to <em>forward data packets</em>.</t>
        <section anchor="path-segments">
          <name>Path Segments</name>
          <t>SCION distinguishes the following types of path segments:</t>
          <ul spacing="normal">
            <li>
              <t>A path segment from a non-core AS to a core AS is an <em>up segment</em>.</t>
            </li>
            <li>
              <t>A path segment from a core AS to a non-core AS is a <em>down segment</em>.</t>
            </li>
            <li>
              <t>A path segment between core ASes is a <em>core segment</em>.</t>
            </li>
          </ul>
          <t>Each path segment starts and/or ends at a core AS.</t>
          <t>All path segments may be reversed: a core segment can be used bidirectionally, an up segment can be converted into a down segment, and a down segment can be converted into an up segment depending on the direction of the end-to-end path. This means that all path segments can be used to send data traffic in both directions.</t>
          <t>The cryptographic protection of PCBs and path segments is based on the Control Plane PKI. The signatures are structured such that the entire message sequence constituting the path segment can be authenticated by anyone with access to this PKI.</t>
          <t>For fast validation of the path information carried in individual packets during packet forwarding, symmetric key cryptography is used and the Hop Fields contain a MAC. These MACs are structured to allow verification of the sequence of hops, but in contrast to the PCBs can only be validated by the border routers of the respective AS.</t>
        </section>
      </section>
      <section anchor="numbering">
        <name>Addressing</name>
        <t>Inter-domain SCION routing is based on an &lt;ISD, AS&gt; tuple. Although a complete SCION address is composed of the &lt;ISD, AS, endpoint address&gt; 3-tuple, the endpoint address is not used for inter-domain routing or forwarding. The endpoint address is of variable length, does not need to be globally unique, and can thus be an IPv4, IPv6, or link layer address.</t>
        <t><strong>Note:</strong> As a consequence of the fact that SCION relies on existing routing protocols (e.g. IS-IS, OSPF, SR) and communication fabric (e.g. IP, MPLS) for intra-domain forwarding, existing internal routers do not need to be changed to support SCION.</t>
        <section anchor="isd-numbers">
          <name>ISD Numbers</name>
          <t>An ISD number is the 16-bit global identifier for an ISD and <bcp14>MUST</bcp14> be globally unique.</t>
          <t>The following table gives an overview of the ISD number allocation:</t>
          <table anchor="_table-1">
            <name>ISD number allocations</name>
            <thead>
              <tr>
                <th align="left">ISD</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">The wildcard ISD</td>
              </tr>
              <tr>
                <td align="left">1 - 15</td>
                <td align="left">Reserved for documentation and sample code (analogous to <xref target="RFC5398"/>).</td>
              </tr>
              <tr>
                <td align="left">16 - 63</td>
                <td align="left">Private use (analogous to <xref target="RFC6996"/>) - can be used for testing and private deployments</td>
              </tr>
              <tr>
                <td align="left">64 - 4094</td>
                <td align="left">Public ISDs - should be allocated in ascending order, without gaps and "vanity" numbers</td>
              </tr>
              <tr>
                <td align="left">4095 - 65535</td>
                <td align="left">Unallocated</td>
              </tr>
            </tbody>
          </table>
          <t>ISD numbers are currently allocated by Anapaya, a provider of SCION-based networking software and solutions (see <xref target="ISD-AS-assignments-Anapaya"/>). This function is being transitioned to the SCION Association (<xref target="ISD-AS-assignments"/>).</t>
        </section>
        <section anchor="scion-as-numbers">
          <name>SCION AS Numbers</name>
          <t>A SCION AS number is the 48-bit identifier for an AS. Although they play a similar role, there is no relationship between SCION AS numbers and BGP ASNs as defined by <xref target="RFC4271"/>. For historical reasons some SCION Autonomous Systems use a SCION AS number where the first 16 bits are 0 and the remaining 32 bits are identical to their BGP ASN, but there is no technical requirement for this.</t>
          <section anchor="serv-disc">
            <name>Wildcard Addressing</name>
            <t>SCION endpoints use wildcard AS <tt>0</tt> to designate any core AS, e.g. to place requests for core segments or down segments during path lookup. These wildcard addresses are of the form I-0, to designate any AS in ISD I. For more information, see <xref target="wildcard"/>.</t>
          </section>
          <section anchor="scion-as-numbers-1">
            <name>SCION AS numbers</name>
            <table anchor="_table-2">
              <name>AS number allocations</name>
              <thead>
                <tr>
                  <th align="left">AS</th>
                  <th align="left">Size</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">
                    <tt>0</tt></td>
                  <td align="left">1</td>
                  <td align="left">The wildcard AS</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>1 - 4294967295</tt></td>
                  <td align="left">~4.3 billion</td>
                  <td align="left">Public SCION AS numbers</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>1:0:0 - 1:ffff:ffff</tt></td>
                  <td align="left">~4.3 billion</td>
                  <td align="left">Unallocated</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>2:0:0 - 2:ffff:ffff</tt></td>
                  <td align="left">~4.3 billion</td>
                  <td align="left">Public SCION AS numbers</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>3:0:0 - feff:ffff:ffff</tt></td>
                  <td align="left">~280 trillion</td>
                  <td align="left">Unallocated</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ff00:0:0 - ff00:0:ffff</tt></td>
                  <td align="left">65536</td>
                  <td align="left">Reserved for documentation and sample code (analogous to <xref target="RFC5398"/>)</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ff00:1:0 - ffa9:ffff:ffff</tt></td>
                  <td align="left">~730 billion</td>
                  <td align="left">Unallocated</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ffaa:0:0 - ffaa:ff:ffff</tt></td>
                  <td align="left">~16.8 million</td>
                  <td align="left">Reserved for private use (analogous to <xref target="RFC6996"/>) - these numbers can be used for testing and private deployments</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ffaa:100:0 - ffff:ffff:fffe</tt></td>
                  <td align="left">~369 billion</td>
                  <td align="left">Unallocated</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ffff:ffff:ffff</tt></td>
                  <td align="left">1</td>
                  <td align="left">Reserved</td>
                </tr>
              </tbody>
            </table>
          </section>
        </section>
        <section anchor="text-representation">
          <name>Text Representation</name>
          <section anchor="isd-numbers-1">
            <name>ISD numbers</name>
            <t>The text representation of SCION ISD numbers <bcp14>MUST</bcp14> be its decimal ASCII representation.</t>
          </section>
          <section anchor="as-numbers">
            <name>AS numbers</name>
            <t>The text representation of SCION AS numbers is as follows:</t>
            <ul spacing="normal">
              <li>
                <t>SCION AS numbers in the lower 32-bit range <bcp14>MUST</bcp14> be printed as decimal by implementations. Implementations may parse AS numbers in the lower 32-bit range in hexadecimal notation too (e.g., a program may accept AS number '0:1:f' for AS 65551).</t>
              </li>
              <li>
                <t>SCION AS numbers in the higher 32-bit range <bcp14>MUST</bcp14> be printed using big-endian hexadecimal notation in 3 groups of 4, in the range <tt>1:0:0</tt> to <tt>ffff:ffff:ffff</tt>. Leading zeros in each group are omitted, with the exception that one zero <bcp14>MUST</bcp14> be notated if a group is entirely zeros (e.g., <tt>1:0:1</tt>). The <tt>::</tt> zero-compression feature of IPv6 <bcp14>MUST NOT</bcp14> be used.</t>
              </li>
              <li>
                <t>A range of AS numbers can be shortened with a notation similar to the one used for CIDR IP ranges (<xref target="RFC4632"/>). In such case, hexadecimal notation <bcp14>MUST</bcp14> be used. For example, the range of the lowest 32-bit AS numbers (0-4294967295) can be represented as <tt>0:0:0/16</tt>.</t>
              </li>
            </ul>
          </section>
          <section anchor="isd-as-tuples">
            <name>&lt;ISD, AS&gt; tuples</name>
            <t>The text representation of SCION addresses <bcp14>MUST</bcp14> be <tt>&lt;ISD&gt;-&lt;AS&gt;</tt>, where <tt>&lt;ISD&gt;</tt> is the text representation of the ISD number, <tt>&lt;AS&gt;</tt> is the text representation of the AS number, and <tt>-</tt> is the literal ASCII character 0x2D.</t>
            <t>For example, the text representation of AS number ff00:0:1 in ISD number 15 is <tt>15-ff00:0:1</tt>.</t>
          </section>
        </section>
      </section>
      <section anchor="bootstrapping-ability">
        <name>Bootstrapping ability</name>
        <t>A secure and reliable routing architecture has to be designed specifically to avoid circular dependencies during network bootstrapping. One goal is that the SCION network can start up even after large outages or attacks, in addition to avoiding cascades of outages caused by fragile interdependencies. This section lists the concepts SCION uses to prevent circular dependencies:</t>
        <ul spacing="normal">
          <li>
            <t>Neighbor-based path discovery: Path discovery in SCION is performed by the beaconing mechanism. In order to participate in this process, an AS only needs to be aware of its direct neighbors. As long as no path segments are available, communicating with the neighboring ASes is possible with the one-hop path type which does not rely on any path information. SCION uses these <em>one-hop paths</em> to propagate PCBs to neighboring ASes to which no forwarding path is available yet. The One-Hop Path Type is described in more detail in <xref target="I-D.dekater-scion-dataplane"/>.</t>
          </li>
          <li>
            <t>Path reversal: In SCION, every path is reversible. That is, the receiver of a packet can reverse the path in the packet header in order to produce a reply packet without having to perform a path lookup. Such a packet follows the original packet's path backwards.</t>
          </li>
          <li>
            <t>Availability of certificates: In SCION, every entity is required to be in possession of all cryptographic material (including the ISD's TRC and certificates) that is needed to verify any message it sends. This (together with the path reversal) means that the receiver of a message can always obtain all this material by contacting the sender. This avoids circular dependencies between the PKI and connectivity.<br/></t>
          </li>
        </ul>
        <t><strong>Note:</strong> For a detailed description of a TRC and more information on the availability of certificates and TRCs, see <xref target="I-D.dekater-scion-pki"/>.</t>
      </section>
      <section anchor="resistance-to-partitioning">
        <name>Resistance to partitioning</name>
        <t>Partitioning occurs when a network splits into two because of link failures. Partitioning of the global SCION inter-domain network is much less likely to happen, thanks to its path awareness that exposes multiple paths between SCION ASes. Even during failures there is no special failure mode required as SCION-enabled ASes can always switch to already known paths that use other links.</t>
        <t>Recovering from a partitioned network is also seamless as only coarse time synchronization between the partitions is required to resume normal operation and move forward with updates of the cryptographic material. <xref target="clock-inaccuracy"/> further describes the impact of time synchronization and path discovery time.</t>
      </section>
      <section anchor="communication-protocol">
        <name>Communication Protocol</name>
        <t>All communication between the Control Services in different ASes is expressed in terms of RPC remote procedure calls. Service interfaces and messages are defined in the Protocol Buffer "proto3" interface definition language (for details, see <xref target="proto3"/>).</t>
        <t>The RPC messages are transported via <xref target="Connect"/>'s RPC protocol that carries messages over HTTP/3 (see <xref target="RFC9114"/>)), which in turn uses QUIC/UDP (<xref target="RFC9000"/>) as a transport layer. Connect is backwardly compatible with <xref target="gRPC"/> which is supported but deprecated.</t>
        <t>In case of failure, RPC calls return an error as specified by the RPC framework. That is, a non-zero status code and an explanatory string. <xref target="service-discovery"/> provides details about the establishment of the underlying QUIC connections.</t>
      </section>
    </section>
    <section anchor="beaconing">
      <name>Path Exploration or Beaconing</name>
      <section anchor="introduction-and-overview">
        <name>Introduction and Overview</name>
        <t><strong>Path Exploration</strong> is the process where an AS discovers paths to other ASes. In SCION, this process is referred to as <em>beaconing</em> and this section provides a detailed explanation of this.</t>
        <t>In SCION, the <em>Control Service</em> of each AS is responsible for the beaconing process. The Control Service generates, receives, and propagates the <em>Path Segment Construction Beacons (PCBs)</em> on a regular basis, to iteratively construct path segments.</t>
        <t>PCBs contain inter-domain topology and authentication information, and can also include additional metadata that helps with path management and selection. The beaconing process itself is divided into routing processes on two levels, where <em>core</em> or inter-ISD is based on the (selective) sending of PCBs without a defined direction, and <em>intra-ISD</em> beaconing on top-to-bottom propagation. Beaconing is initiated by core ASes, therefore each ISD <bcp14>MUST</bcp14> have at least one core AS.</t>
        <ul spacing="normal">
          <li>
            <t><em>Core or Inter-ISD beaconing</em> is the process of constructing path segments between core ASes in the same or in different ISDs. During core beaconing, the Control Service of a core AS either initiates PCBs or propagates PCBs received from neighboring core ASes to other neighboring core ASes. PCBs are periodically sent over policy compliant paths to discover multiple paths between any pair of core ASes.</t>
          </li>
          <li>
            <t><em>Intra-ISD beaconing</em> creates path segments from core ASes to non-core ASes. For this, the Control Services of core ASes create PCBs and sends them to the non-core child ASes (typically customer ASes) at regular intervals. The Control Service of a non-core child AS receives these PCBs and forwards them to its child ASes, and so on until the PCB reaches an AS without any children (leaf AS). As a result, all ASes within an ISD receive path segments to reach the core ASes of their ISD and register reciprocal segments with the Control Service of the associated core ASes.</t>
          </li>
        </ul>
        <t>On its way, a PCB accumulates cryptographically protected path and forwarding information per traversed AS. At every AS, metadata as well as information about the AS's ingress and egress interfaces is added to the PCB. The full PCB message format is described in <xref target="pcbs"/>. PCBs are used to construct path segments. ASes register them to make them available to other ASes, as described in <xref target="path-segment-reg"/>.</t>
        <section anchor="peering-links">
          <name>Peering Links</name>
          <t>PCBs do not traverse peering links. Instead, peering links are announced along with a regular path in a PCB. If both ASes at either end of a peering link have registered path segments that include this specific peering link, then it is possible to use this peering link during segment combination to create the end-to-end path.</t>
        </section>
        <section anchor="appending-entries-to-a-pcb">
          <name>Appending Entries to a PCB</name>
          <t>Every propagation interval (as configured by the AS), the Control Service:</t>
          <ul spacing="normal">
            <li>
              <t>selects the best combinations of PCBs and interfaces connecting to a neighboring AS (i.e. a child AS or a core AS). This is described in <xref target="selection"/>.</t>
            </li>
            <li>
              <t>propagates each selected PCB to the selected egress interface(s) associated with it. This is described in <xref target="path-segment-prop"/>.</t>
            </li>
          </ul>
          <t>For every selected PCB and egress interface combination, the AS appends an <em>AS entry</em> to the selected PCB. This includes a Hop Field that specifies the ingress and egress interface for the packet forwarding through this AS, in the beaconing direction. The AS entry can also contain peer entries.</t>
        </section>
        <section anchor="pcb-propagation-illustrated-examples">
          <name>PCB Propagation - Illustrated Examples</name>
          <t>The following three figures show how intra-ISD PCB propagation works, from the ISD's core AS down to child ASes. Interface identifiers of each AS are numbered with integer values while ASes are described with an upper case letter for the sake of illustration.</t>
          <t>In <xref target="_figure-3a"/> below, core AS X sends the two different PCBs "a" and "b" via two different links to child AS Y: PCB "a" leaves core AS X via egress interface "2", whereas PCB "b" is sent over egress interface "1". Core AS X adds the respective egress information to the PCBs when sending them off, as can be seen in the figure (the entries "<em>Core - Out:2</em>" and "<em>Core - Out:1</em>", respectively).</t>
          <figure anchor="_figure-3a">
            <name>Intra-ISD PCB propagation from the ISD core to child ASes - Part 1</name>
            <artwork><![CDATA[
                           +-------------+
                           |  Core AS X  |
                           |             |
                           |    2   1    |
                           +----+---+----+
           +--------+           #   #           +--------+
           | PCB a  |   +-----+ |   | +-----+   | PCB b  |
           +========+ <-+PCB a| |   | |PCB b|-> +========+
           | Core   |   +--+--+ |   | +--+--+   |Core    |
           |- Out:2 |      |    |   |    │      |- Out:1 |
           +--------+      v    |   |    v      +--------+
                                *   *
                           +----+---+----+
                           |    AS Y     |
]]></artwork>
          </figure>
          <t>AS Y receives the two PCBs "a" and "b" through two different (ingress) interfaces, namely "2" and "3", respectively (see <xref target="_figure-3b"/> below). Additionally, AS Y forwards to AS Z four PCBs that were previously sent by core AS X. For this, AS Y uses the two different (egress) links "5" and "6". AS Y appends the corresponding ingress and egress interface information to the four PCBs. As can be seen in the figure, AS Y also has two peering links to its neighboring peers V and W, through the interfaces "1" and "4", respectively - AS Y includes this information in the PCBs, as well. Thus, each forwarded PCB cumulates path information on its way "down" from core AS X.</t>
          <figure anchor="_figure-3b">
            <name>Intra-ISD PCB propagation from the ISD core to child ASes - Part 2</name>
            <artwork><![CDATA[
                        +-----+ |   | +-----+
                        |PCB a| |   | |PCB b|
                        +--+--+ |   | +--+--+
                           |    |   |    |
                           v    |   |    v
                                *   *
       +-------------+     +----+---+----+     +-------------+
       |             |     |    2   3    |     |             |
       |             +p---p+ 1           |     |             |
       |    AS V     |     |    AS Y     |     |    AS W     |
       |             |     |           4 +p---p+             |
       |             |     |    6   5    |     |             |
       +-------------+     +----+---+----+     +-------------+
            +--------+          #   #          +--------+
            | PCB c  │          |   |          | PCB d  |
            +========+          |   |          +========+
            |Core X  |          |   |          |Core X  |
            |- Out:2 |          |   |          |- Out:2 |
+--------+  +--------+   +-----+|   |+-----+   +--------+  +--------+
| PCB e  |  |AS Y    | <-|PCB c||   ||PCB d|-> |AS Y    |  | PCB f  │
+========+  |-In:2   |   +--+--+|   |+--+--+   |-In:2   |  +========+
|Core X  |  |-Out:6  |      |   |   |   |      |-Out:5  |  |Core X  |
|- Out:1 |  |-PeerV:1|      v   |   |   v      |-PeerV:1|  |- Out:1 |
+--------+  |-PeerW:4|          |   |          |-PeerW:4|  +--------+
|AS Y    |  +--------+.         |   |          +--------+  |AS Y    |
|-In:3   |              +-----+ |   | +-----+              |-In:3   |
|-Out:6  | <------------|PCB e| |   | |PCB f|------------> |-Out:5  |
|-PeerV:1|              +--+--+ |   | +--+--+              |-PeerV:1|
|-PeerW:4|                 |    |   |    |                 |-PeerW:4|
+--------+                 v    |   |    v                 +--------+
                                *   *
                           +----+---+----+
                           |    AS Z     |
]]></artwork>
          </figure>
          <t>The following figure shows how the four PCBs "c", "d", "e", and "f", coming from AS Y, are received by AS Z over two different links: PCBs "c" and "e" reach AS Z over ingress interface "5", whereas PCBs "d" and "f" enter AS Z via ingress interface "1". Additionally, AS Z propagates PCBs "g", "h", "i", and "j" further down, all over the same link (egress interface "3"). AS Z extends the PCBs with the relevant information, so that each of these PCBs now includes AS hop entries from core AS X, AS Y, and AS Z.</t>
          <figure anchor="_figure-3c">
            <name>Intra-ISD PCB propagation from the ISD core to child ASes - Part 3</name>
            <artwork><![CDATA[
                   +-----+      |   |      +-----+
                   |PCB c|      |   |      |PCB d|
                   +-+---+      |   |      +---+-+
                     |  +-----+ |   | +-----+  |
                     v  |PCB e| |   | |PCB f|  v
                        +--+--+ |   | +--+--+
                           |    |   |    |
                           v    |   |    v
                                *   *
                           +----+---+----+
                           |    5   1    |
                           |             |
                           |    AS Z     |
            +--------+     |             |     +--------+
            │ PCB g  |     |      3      |     | PCB h  |
            +========+     +------+------+     +========+
            │Core X  |            #            |Core X  |
+--------+  │- Out:2 |            |            |- Out:2 |  +--------+
| PCB i  |  +--------+            |            +--------+  | PCB j  |
+========+  │AS Y    |            |            |AS Y    |  +========+
|Core X  |  │-In:2   |            |            |-In:2   |  |Core X  |
|- Out:1 |  │-Out:6  |   +-----+  |  +-----+   |-Out:5  |  |- Out:1 |
+--------+  │-PeerV:1| <-|PCB g│  |  |PCB h|-> |-PeerV:1|  +--------+
|AS Y    |  │-PeerW:4|   +--+--+  |  +--+--+   |-PeerW:4|  |AS Y    |
|-In:3   |  +--------+      |     |     |      +--------+  |-In:3   |
|-Out:6  |  │AS Z    |      v     |     v      |AS Z    |  |Out:5   |
|-PeerV:1|  │-In:5   |            |            |-In:1   |  |-PeerV:1|
|-PeerW:4|  │-Out:3  |            |            |-Out:3  |  |-PeerW:4|
+--------+  +--------+            |            +--------+  +--------+
|AS Z    |               +-----+  |  +-----+               |AS Z    |
|-In:5   | <-------------|PCB i|  |  |PCB j|------------>  |-In:1   |
|-Out:3  |               +--+--+  |  +--+--+               |-Out:3  |
+--------+                  |     |     |                  +--------+
                            v     |     v
                                  v

]]></artwork>
          </figure>
          <t>Based on the figures above, one could say that a PCB represents a single path segment. However, there is a difference between a PCB and a registered path segment as a PCB is a so-called "travelling path segment" that accumulates AS entries when traversing the Internet. A registered path segment is instead a "snapshot" of a travelling PCB at a given time T and from the vantage point of a particular AS A. This is illustrated by <xref target="_figure-4"/>. This figure shows several possible path segments to reach AS Z, based on the PCBs "g", "h", "i", and "j" from <xref target="_figure-3c"/> above. It is up to AS Z to use all of these path segments or just a selection of them.</t>
          <figure anchor="_figure-4">
            <name>Possible up- or down segments for AS Z</name>
            <artwork><![CDATA[
                AS Entry Core        AS Entry Y          AS Entry Z

               +-------------+     +-------------+     +-------------+
               |  Core AS X  |     |    AS Y     |     |    AS Z     |
Path Segment 1 |            1+     +3           5+     +1            |
               |             |     |             |     |             |
               |            2+#---*+2-----------6+#---*+5            |
               |             |     |             |     |             |
               +-------------+     +-------------+     +-------------+
                  Egress 2       Ingress 2 - Egress 6     Ingress 5

----------------------------------------------------------------------

               +-------------+     +-------------+     +-------------+
               |  Core AS X  |     |    AS Y     |     |    AS Z     |
               |            1+     +3     +-----5+#---*+1            |
Path Segment 2 |             |     |      |      |     |             |
               |            2+#---*+2-----+     6+     +5            |
               |             |     |             |     |             |
               +-------------+     +-------------+     +-------------+
                  Egress 2       Ingress 2 - Egress 5     Ingress 1

----------------------------------------------------------------------

               +-------------+     +-------------+     +-------------+
               |  Core AS X  |     |    AS Y     |     |    AS Z     |
               |            1+#---*+3-----+     5+     +1            |
Path Segment 3 |             |     |      |      |     |             |
               |            2+     +2     +-----6+#---*+5            |
               |             |     |             |     |             |
               +-------------+     +-------------+     +-------------+
                  Egress 1       Ingress 3 - Egress 6     Ingress 5

----------------------------------------------------------------------

               +-------------+     +-------------+     +-------------+
               |  Core AS X  |     |    AS Y     |     |    AS Z     |
               |            1+#---*+3-----------5+#---*+1            |
Path Segment 4 |             |     |             |     |             |
               |            2+     +2           6+     +5            |
               |             |     |             |     |             |
               +-------------+     +-------------+     +-------------+
                  Egress 1       Ingress 3 - Egress 5      Ingress 1

]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="pcbs">
        <name>Path-Segment Construction Beacons (PCBs)</name>
        <section anchor="pcb-compos">
          <name>PCB Message Format</name>
          <figure anchor="_figure-5">
            <name>Top-down composition of a PCB</name>
            <artwork><![CDATA[
                           PCB/Path Segment

+-------------+------------+------------+--------+--------------------+
|Segment Info | AS Entry 0 | AS Entry 1 |  ...   |     AS Entry N     |
+-------------+------------+------------+--------+--------------------+
+------+------+            +------+-----+
       |                          |
       v                          |
+----------------+                |
+---------+------+                |
|Timestamp|Seg ID                 |
+---------+------+                |
                                  v
+----------------------------------------------------------------------+
+-----------------------+----------------------------------------------+
|    Unsigned Ext.      |               Signed AS Entry                |
+-----------------------+----------------------------------------------+
                        +-----------------------+----------------------+
                                                |
                                                v
+----------------------------------------------------------------------+
+--------------------+------------------+------------------------------+
|     Signature      |      Header      |             Body             |
+--------------------+------------------+------------------------------+
                     +--------+---------+-------------------------+----+
                              |                                   |
                              v                                   |
+-------------------------------------------------------------+   |
+---------+-------------------+---------+--------+------------+   |
|Sig. Alg.|Verification Key ID|Timestamp|Metadata|AssocDataLen|   |
+---------+-------------------+---------+--------+------------+   |
          +---------+---------+                                   |
                    |                                             |
                    v                                             |
+-----------------------------------------------+                 |
+---------+---------+------------+--------------+                 |
| ISD-AS  |TRC Base | TRC Serial |Subject Key ID|                 |
+---------+---------+------------+--------------+                 |
                                                                  |
                                                                  |
                                                                  v
+----------------------------------------------------------------------+
+------+-----------+---------+------------+-----+------------+----+----+
|ISD-AS|Next ISD-AS|Hop Entry|Peer Entry 0| ... |Peer Entry N|MTU |Ext.|
+------+-----------+---------+------------+-----+------------+----+----+
                   +----+----+------+-----+
                        |           |
                        v           v
+--------------------------+ +-----------------------------------------+
+-------------+------------+ +---------+--------+----------+-----------+
| Ingress MTU | Hop Field  | |Hop Field|PeerMTU |PeerISD-AS|PeerInterf.|
+-------------+------------+ +---------+--------+----------+-----------+
                       +----+----+
                            |
                            v
+----------------------------------------------------------+
+------------+-------------+-------------------+-----------+
|  Ingress   |    Egress   |  Expiration Time  |    MAC    |
+------------+-------------+-------------------+-----------+

]]></artwork>
          </figure>
          <section anchor="segment">
            <name>PCB Top-Level Message Format</name>
            <figure anchor="_figure-6">
              <name>PCB Top-Level Message Format</name>
              <artwork><![CDATA[
+-------------+------------+------------+-----+------------+
|Segment Info | AS Entry 0 | AS Entry 1 | ... | AS Entry N |
+-------------+------------+------------+-----+------------+

]]></artwork>
            </figure>
            <t>Each PCB <bcp14>MUST</bcp14> consists of at least:</t>
            <ul spacing="normal">
              <li>
                <t>An information field with an identifier and a timestamp.</t>
              </li>
              <li>
                <t>Entries of all ASes on the path segment represented by this PCB.</t>
              </li>
            </ul>
            <t>The following code block defines the PCB at the top level in Protobuf message format.</t>
            <artwork><![CDATA[
   message PathSegment {
       bytes segment_info = 1;
       repeated ASEntry as_entries = 2;
   }
]]></artwork>
            <ul spacing="normal">
              <li>
                <t><tt>segment_info</tt>: This field is used as input for the PCB signature. It is the encoded version of the component <tt>SegmentInformation</tt>, which provides basic information about the PCB. The <tt>SegmentInformation</tt> component is specified in detail in <xref target="seginfo"/>.</t>
              </li>
              <li>
                <t><tt>as_entries</tt>: Contains the <tt>ASEntry</tt> component of all ASes on the path segment represented by this PCB.
                </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>ASEntry</tt>: The <tt>ASEntry</tt> component contains the complete path information of a specific AS that is part of the path segment represented by the PCB. The <tt>ASEntry</tt> component is specified in detail in <xref target="as-entry"/>.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
          <section anchor="seginfo">
            <name>Segment Information</name>
            <figure anchor="_figure-7">
              <name>Segment Information Component</name>
              <artwork><![CDATA[
+----------------------------+
|         Segment Info       |
+----------------------------+
+-------------+--------------+
              |
              v
+----------------------------+
+-------------+--------------+
|  Timestamp  |    Seg ID    |
+-------------+--------------+

]]></artwork>
            </figure>
            <t>Each PCB <bcp14>MUST</bcp14> include an information component with basic information about the PCB.</t>
            <t>In the Protobuf message format, the information component of a PCB is called the <tt>SegmentInformation</tt> message. The following code block shows the Protobuf message definition for the <tt>SegmentInformation</tt> message.</t>
            <artwork><![CDATA[
   message SegmentInformation {
       int64 timestamp = 1;
       uint32 segment_id = 2;
   }
]]></artwork>
            <ul spacing="normal">
              <li>
                <t><tt>timestamp</tt>: The 32-bit timestamp indicates the creation time of this PCB. It is set by the originating core AS and the expiration time of each Hop Field in the PCB is computed relative to this timestamp. The timestamp is encoded as the number of seconds elapsed since the POSIX Epoch (1970-01-01 00:00:00 UTC).</t>
              </li>
              <li>
                <t><tt>segment_id</tt>: The 16-bit identifier of this PCB and the corresponding path segment. The segment ID is <bcp14>REQUIRED</bcp14> for the computation of the message authentication code (MAC) of an AS's Hop Field. The MAC is used for Hop Field verification in the data plane and the originating core AS <bcp14>MUST</bcp14> fill this field with a cryptographically random number.</t>
              </li>
            </ul>
            <t><strong>Note:</strong> See <xref target="hopfield"/> for more information on the Hop Field message format. <xref target="I-D.dekater-scion-dataplane"/> provides a detailed description of the computation of the MAC and the verification of the Hop Field in the data plane.</t>
          </section>
          <section anchor="as-entry">
            <name>AS Entry</name>
            <figure anchor="_figure-8">
              <name>AS Entry</name>
              <artwork><![CDATA[
                           +--------------+
                           |   AS Entry   |
                           +--------------+
                           +------+-------+
                                  |
                                  v
+------------------------------------------------------------------+
+-----------------------+------------------------------------------+
|  Unsigned Extension   |             Signed AS Entry              |
+-----------------------+------------------------------------------+

]]></artwork>
            </figure>
            <t>Each PCB <bcp14>MUST</bcp14> also contain the entries of all ASes included in the corresponding path segment. This means that the originating core AS <bcp14>MUST</bcp14> add its AS entry to each PCB it creates, and each traversed AS <bcp14>MUST</bcp14> attach its AS entry to the PCB.</t>
            <t>One AS entry contains the complete hop information for this specific AS in this specific path segment. It consists of a signed and an unsigned component.</t>
            <t>The code block below defines an AS entry <tt>ASEntry</tt> in Protobuf message format.</t>
            <artwork><![CDATA[
   message ASEntry {
       SignedMessage signed = 1;
       PathSegmentUnsignedExtensions unsigned = 2;
   }
]]></artwork>
            <t>It includes the following components:</t>
            <ul spacing="normal">
              <li>
                <t><tt>SignedMessage</tt>: The signed component of an AS entry. For the specification of this part of the AS entry, see <xref target="signed-compo"/> below.</t>
              </li>
              <li>
                <t><tt>PathSegmentUnsignedExtensions</tt>: Optional unsigned PCB extensions, further described in <xref target="pcb-ext"/>.</t>
              </li>
            </ul>
          </section>
          <section anchor="signed-compo">
            <name>AS Entry Signed Component</name>
            <figure anchor="_figure-9">
              <name>AS Entry Signed Component</name>
              <artwork><![CDATA[
        +------------------------------------------------------+
        |                   Signed AS Entry                    |
        +------------------------------------------------------+
        +--------------------------+---------------------------+
                                   |
                                   v
+---------------------------------------------------------------------+
+--------------------+------------------+-----------------------------+
|     Signature      |      Header      |             Body            |
+--------------------+------------------+-----------------------------+

]]></artwork>
            </figure>
            <t>Each AS entry of a PCB <bcp14>MUST</bcp14> include a signed component as well as a signature computed over the signed component. Each AS entry <bcp14>MUST</bcp14> be signed with the Control Plane AS Certificate (see <xref target="I-D.dekater-scion-pki"/>).</t>
            <t>The signed component of an AS entry <bcp14>MUST</bcp14> include the following elements:</t>
            <ul spacing="normal">
              <li>
                <t>a header,</t>
              </li>
              <li>
                <t>a body, and</t>
              </li>
              <li>
                <t>a signature.</t>
              </li>
            </ul>
            <t>In the Protobuf message format implementation, the signed component of an AS entry is specified by the <tt>SignedMessage</tt>. It consists of a header-and-body part (<tt>header_and_body</tt>) and a raw signature (<tt>signature</tt>). See also the code block below.</t>
            <artwork><![CDATA[
   message SignedMessage {
       bytes header_and_body = 1;
       bytes signature = 2;
   }
]]></artwork>
            <t>Protobuf definition of the <tt>HeaderAndBody</tt> message used for signature computation input.</t>
            <artwork><![CDATA[
   message HeaderAndBody {
       bytes header = 1;
       bytes body = 2;
   }
]]></artwork>
            <ul spacing="normal">
              <li>
                <t>For the specification of the signed header, see <xref target="ase-header"/>.</t>
              </li>
              <li>
                <t>For the specification of the signed body, see <xref target="ase-sign"/>.</t>
              </li>
              <li>
                <t>For the specification of the <tt>signature</tt> field, see <xref target="sign"/>.</t>
              </li>
            </ul>
            <section anchor="ase-header">
              <name>AS Entry Signed Header</name>
              <figure anchor="_figure-10">
                <name>AS Entry Signed Header</name>
                <artwork><![CDATA[
                      +-----------------+
                      |     Header      |
                      +-----------------+
                      +--------+--------+
                               |
                               v
+-------------------------------------------------------------+
+---------+-------------------+---------+--------+------------+
|Sig. Alg.|Verification Key ID|Timestamp|Metadata|AssocDataLen|
+---------+-------------------+---------+--------+------------+
          +---------+---------+
                    |
                    v
     +-----------------------------------------------+
     +---------+---------+------------+--------------+
     | ISD-AS  |TRC Base | TRC Serial |Subject Key ID|
     +---------+---------+------------+--------------+

]]></artwork>
              </figure>
              <t>The header part carries information that is relevant to the computation and verification of the signature. It contains the following fields:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>signature_algorithm</tt>: Specifies the algorithm to compute the signature. This field is <bcp14>REQUIRED</bcp14>. Possible types are defined by the <tt>SignatureAlgorithm</tt> definition. An unspecified signature algorithm is never valid. Other algorithms or curves <bcp14>MAY</bcp14> be used in the future. Signature algorithms are further discussed in <xref target="I-D.dekater-scion-pki"/>.</t>
                </li>
                <li>
                  <t><tt>verification_key_id</tt>: Contains a <tt>VerificationKeyID</tt> message, carrying information relevant to signing and verifying PCBs and other control-plane messages. This field is <bcp14>REQUIRED</bcp14>.</t>
                </li>
                <li>
                  <t><tt>timestamp</tt>: Defines the signature creation timestamp. This field is <bcp14>OPTIONAL</bcp14>.</t>
                </li>
                <li>
                  <t><tt>metadata</tt>: it may include metadata. This field is <bcp14>OPTIONAL</bcp14>. While it is part of the generic <tt>Header</tt> message format, it <bcp14>MUST</bcp14> be empty in an AS entry signed header.</t>
                </li>
                <li>
                  <t><tt>associated_data_length</tt>: Specifies the length of the data covered by the signature but not included within the header or body. This data contains information about preceding AS entries, as described in <xref target="sign"/>. The value of this field is zero if no associated data is covered by the signature.</t>
                </li>
              </ul>
              <t>The <tt>Header</tt> and <tt>SignatureAlgorithm</tt> protobuf message definitions are:</t>
              <artwork><![CDATA[
   message Header {
       SignatureAlgorithm signature_algorithm = 1;
       bytes verification_key_id = 2;
       // Optional
       google.protobuf.Timestamp timestamp = 3;
       // Optional
       bytes metadata = 4;
       int32 associated_data_length = 5;
   }

  enum SignatureAlgorithm {
    SIGNATURE_ALGORITHM_UNSPECIFIED = 0;
    SIGNATURE_ALGORITHM_ECDSA_WITH_SHA256 = 1;
    SIGNATURE_ALGORITHM_ECDSA_WITH_SHA384 = 2;
    SIGNATURE_ALGORITHM_ECDSA_WITH_SHA512 = 3;
  }
]]></artwork>
              <t>The <tt>VerificationKeyID</tt> message contains the following <bcp14>REQUIRED</bcp14> fields:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>isd_as</tt>: The ISD-AS number of the current AS.</t>
                </li>
                <li>
                  <t><tt>subject_key_id</tt>: Refers to the certificate that contains the public key needed to verify this PCB's signature.</t>
                </li>
                <li>
                  <t><tt>trc_base</tt>: Defines the <em>base</em> number of the latest Trust Root Configuration (TRC) available to the signer at the time of the signature creation.</t>
                </li>
                <li>
                  <t><tt>trc_serial</tt>: Defines the <em>serial</em> number of the latest TRC available to the signer at the time of the signature creation.</t>
                </li>
              </ul>
              <t>Its protobuf message definition is:</t>
              <artwork><![CDATA[
   message VerificationKeyID {
       uint64 isd_as = 1;
       bytes subject_key_id = 2;
       uint64 trc_base = 3;
       uint64 trc_serial = 4;
   }
]]></artwork>
              <t>For more information on signing and verifying control plane messages (such as PCBs), see 'Signing and Verifying Control Plane Messages' in <xref target="I-D.dekater-scion-pki"/>. For more information on the TRC base and serial number, see 'Trust Root Configuration Specification' in <xref target="I-D.dekater-scion-pki"/>.</t>
            </section>
            <section anchor="ase-sign">
              <name>AS Entry Signed Body</name>
              <figure anchor="_figure-11">
                <name>AS Entry Signed Body</name>
                <artwork><![CDATA[
                +--------------------------------------+
                |                 Body                 |
                +--------------------------------------+
                +------------------+-------------------+
                                   |
                                   v
+---------------------------------------------------------------------+
+------+-----------+---------+-------------+---+-------------+---+----+
|ISD-AS|Next ISD-AS|Hop Entry|Peer Entry 0 |...|Peer Entry N |MTU|Ext.|
+------+-----------+---------+-------------+---+-------------+---+----+

]]></artwork>
              </figure>
              <t>The body of an AS entry <bcp14>MUST</bcp14> consist of the signed component <tt>ASEntrySignedBody</tt> of all ASes in the path segment represented by the PCB, up until and including the current AS.</t>
              <t>The following code block defines the signed body of one AS entry in Protobuf message format (called the <tt>ASEntrySignedBody</tt> message).</t>
              <artwork><![CDATA[
   message ASEntrySignedBody {
       uint64 isd_as = 1;
       uint64 next_isd_as = 2;
       HopEntry hop_entry = 3;
       repeated PeerEntry peer_entries = 4;
       uint32 mtu = 5;
       PathSegmentExtensions extensions = 6;
   }
]]></artwork>
              <ul spacing="normal">
                <li>
                  <t><tt>isd_as</tt>: The ISD-AS number of the AS that created this AS entry.</t>
                </li>
                <li>
                  <t><tt>next_isd_as</tt>: The ISD-AS number of the downstream AS to which the PCB <bcp14>MUST</bcp14> be forwarded. The presence of this field prevents path hijacking attacks, as further discussed in <xref target="path-hijack"/>.</t>
                </li>
                <li>
                  <t><tt>hop_entry</tt>: The hop entry (<tt>HopEntry</tt>) with the information required to forward this PCB through the current AS to the next AS. This information is used in the data plane. For a specification of the hop entry, see <xref target="hopentry"/>.</t>
                </li>
                <li>
                  <t><tt>peer_entries</tt>: The list of optional peer entries (<tt>PeerEntry</tt>). For a specification of one peer entry, see <xref target="peerentry"/>.</t>
                </li>
                <li>
                  <t><tt>mtu</tt>: The maximum transmission unit (MTU) that is supported by all intra-domain links within the current AS. This value is set by the control service when adding the AS entry to the beacon. How the control service obtains this information is implementation dependent. Current practice is to make it a configuration item.</t>
                </li>
                <li>
                  <t><tt>extensions</tt>: List of (signed) extensions (optional). PCB extensions defined here are part of the signed AS entry. This field <bcp14>SHOULD</bcp14> therefore only contain extensions that include important metadata for which cryptographic protection is required. For more information on PCB extensions, see <xref target="pcb-ext"/>.</t>
                </li>
              </ul>
            </section>
            <section anchor="sign">
              <name>AS Entry Signature</name>
              <t>Each AS entry <bcp14>MUST</bcp14> be signed with the AS certificate's private key K<sub>i</sub>. The certificate <bcp14>MUST</bcp14> have a validity period that is longer than the Hop Field absolute expiration time (described in <xref target="hopfield"/>). The signature Sig<sub>i</sub> of an AS entry ASE<sub>i</sub> is computed over the AS entry's signed component.</t>
              <t>This is the input for the computation of the signature:</t>
              <ul spacing="normal">
                <li>
                  <t>The signed header and body of the current AS (<tt>header_and_body</tt>).</t>
                </li>
                <li>
                  <t>The <tt>segment_info</tt> component of the current AS. This is the encoded version of the <tt>SegmentInformation</tt> component containing basic information about the path segment represented by the PCB. For the specification of <tt>SegmentInformation</tt>, see <xref target="seginfo"/>.</t>
                </li>
                <li>
                  <t>The signed <tt>header_and_body</tt>/<tt>signature</tt> combination of each previous AS on this specific path segment.</t>
                </li>
              </ul>
              <t>The signature Sig<sub>i</sub> of an AS entry ASE<sub>i</sub> is now computed as follows:</t>
              <t>Sig<sub>i</sub> =
K<sub>i</sub>( ASE<sub>i</sub><sup>(signed)</sup> || SegInfo || ASE<sub>0</sub><sup>(signed)</sup> || Sig<sub>0</sub> || ... || ASE<sub>i-1</sub><sup>(signed)</sup> || Sig<sub>i-1</sub> )</t>
              <t>The signature metadata minimally contains the ISD-AS number of the signing entity and the key identifier of the public key to be used to verify the message. For more information on signing and verifying control plane messages, see 'Signing and Verifying Control Plane Messages' in <xref target="I-D.dekater-scion-pki"/>.</t>
              <t>Some of the data used as an input to the signature comes from previous ASes in the path segment. This data is therefore called "associated data" and it gives the signature a nested structure. The content of associated data defined in Protobuf is:</t>
              <artwork><![CDATA[
input(ps, i) = signed.header_and_body || associated_data(ps, i)

associated_data(ps, i) = ps.segment_info ||
                         ps.as_entries[1].signed.header_and_body ||
                         ps.as_entries[1].signed.signature ||
                         ...
                         ps.as_entries[i-1].signed.header_and_body ||
                         ps.as_entries[i-1].signed.signature
]]></artwork>
            </section>
          </section>
          <section anchor="hopentry">
            <name>Hop Entry</name>
            <figure anchor="_figure-12">
              <name>Hop Entry</name>
              <artwork><![CDATA[
        +-----------+
        | Hop Entry |
        +-----------+
        +-----+-----+
              |
              v
+---------------------------+
+-------------+-------------+
| Ingress MTU |  Hop Field  |
+-------------+-------------+

]]></artwork>
            </figure>
            <t>Each body of an AS entry <bcp14>MUST</bcp14> contain exactly one hop entry component. The hop entry component specifies forwarding information which the data plane requires to create the hop through the current AS (in the direction of the beaconing).</t>
            <t>The following code block defines the hop entry component <tt>HopEntry</tt> in Protobuf message format:</t>
            <artwork><![CDATA[
   message HopEntry {
       HopField hop_field = 1;
       uint32 ingress_mtu = 2;
   }
]]></artwork>
            <ul spacing="normal">
              <li>
                <t><tt>hop_field</tt>: Contains the authenticated information about the ingress and egress interfaces in the direction of beaconing. Routers need this information to forward packets through the current AS. For further specifications, see <xref target="hopfield"/>.</t>
              </li>
              <li>
                <t><tt>ingress_mtu</tt>: Specifies the maximum transmission unit (MTU) of the ingress interface (in beaconing direction) of the hop being described. The MTU of paths constructed from the containing beacon is necessarily less than or equal to this value. How the control service obtains the MTU of an inter-AS link is implementation dependent. It may be discovered or configured. Current practice to make it a configuration item. Path MTU is further discussed in <xref target="path-mtu"/>.</t>
              </li>
            </ul>
            <t>In this description, MTU and packet size are to be understood in the same sense as in <xref target="RFC1122"/>. That is, exclusive of any layer 2 framing or packet encapsulation (for links using an underlay network).</t>
          </section>
          <section anchor="hopfield">
            <name>Hop Field</name>
            <figure anchor="_figure-13">
              <name>Hop Field</name>
              <artwork><![CDATA[
                      +-----------+
                      | Hop Entry |
                      +-----------+
                      +-----+-----+
                            |
                            V
+----------------------------------------------------------+
+-------------+-------------+-------------------+----------+
|   Ingress   |    Egress   |  Expiration Time  |   MAC    |
+-------------+-------------+-------------------+----------+

]]></artwork>
            </figure>
            <t>The Hop Field, part of both hop entries and peer entries, is used directly in the data plane for packet forwarding and specifies the incoming and outgoing interfaces of the ASes on the forwarding path. This information is authenticated with a Message Authentication Code (MAC) which is used by the Control Service of an AS to authenticate path segments with its border routers during packet forwarding.</t>
            <t>The algorithm used to compute the Hop Field MAC is an AS-specific choice, although the Control Services and border routers within an AS <bcp14>MUST</bcp14> use the same algorithm. Implementations <bcp14>MUST</bcp14> also support the Default Hop Field MAC algorithm. See <xref target="I-D.dekater-scion-dataplane"/> section "Authorizing Segments through Chained MACs") for more information including configuration. Endpoints do not compute MACs.</t>
            <t>The following code block defines the Hop Field component <tt>HopField</tt> in Protobuf message format:</t>
            <artwork><![CDATA[
   message HopField {
       uint64 ingress = 1;
       uint64 egress = 2;
       uint32 exp_time = 3;
       bytes mac = 4;
   }

]]></artwork>
            <ul spacing="normal">
              <li>
                <t><tt>ingress</tt>: The 16-bit ingress interface identifier (in the direction of the path construction, that is, in the direction of beaconing through the current AS).</t>
              </li>
            </ul>
            <t><strong>Note:</strong> For the core AS that initiates the PCB, the ingress interface identifier <bcp14>MUST</bcp14> be set to the "unspecified" value (see <xref target="I-D.dekater-scion-dataplane"/> section Terminology).</t>
            <ul spacing="normal">
              <li>
                <t><tt>egress</tt>: The 16-bit egress interface identifier (in the direction of beaconing).</t>
              </li>
              <li>
                <t><tt>exp_time</tt>: The 8-bit encoded expiration time of the Hop Field, indicating its validity. This field expresses a duration in seconds according to the formula: <tt>duration = (1 + exp_time) * (24*60*60/256)</tt>. The minimum duration is therefore 337.5 s. This duration is relative to the PCB creation timestamp set in the PCB's segment information component (see also <xref target="seginfo"/>). Therefore, the absolute expiration time of the Hop Field is the sum of these two values.</t>
              </li>
              <li>
                <t><tt>mac</tt>: The message authentication code (MAC) used in the data plane to verify the Hop Field, as described in <xref target="I-D.dekater-scion-dataplane"/>.</t>
              </li>
            </ul>
          </section>
          <section anchor="peerentry">
            <name>Peer Entry</name>
            <figure anchor="_figure-14">
              <name>Peer Entry</name>
              <artwork><![CDATA[
                      +--------------+
                      |  Peer Entry  |
                      +--------------+
                      +------+-------+
                             |
                             v
+----------------------------------------------------------+
+-------------+------------+--------------+----------------+
|  Hop Field  │  Peer MTU  │ Peer ISD-AS  │ Peer Interface |
+-------------+------------+--------------+----------------+

]]></artwork>
            </figure>
            <t>By means of a peer entry, an AS can announce that it has a peering link to another AS. A peer entry is an optional component of a PCB - it is only included if there is a peering link to a peer AS.</t>
            <t>The following code block defines the peer entry component <tt>PeerEntry</tt> in Protobuf message format:</t>
            <artwork><![CDATA[
   message PeerEntry {
       uint64 peer_isd_as = 1;
       uint64 peer_interface = 2;
       uint32 peer_mtu = 3;
       HopField hop_field = 4;
   }
]]></artwork>
            <ul spacing="normal">
              <li>
                <t><tt>peer_isd_as</tt>: The ISD-AS number of the peer AS. This number is used to match peering segments during path construction.</t>
              </li>
              <li>
                <t><tt>peer_interface</tt>: The 16-bit interface identifier of the peering link on the peer AS side. This identifier is used to match peering segments during path construction.</t>
              </li>
              <li>
                <t><tt>peer_mtu</tt>: Specifies the maximum transmission unit (MTU) of the peering link being described. The MTU of paths via such link is necessarily less than or equal to this value. How the control service obtains the MTU of an inter-AS link is implementation dependent. It may be discovered or configured, but current practice is to make it a configuration item.</t>
              </li>
              <li>
                <t><tt>hop_field</tt>: Contains the authenticated information about the ingress and egress interfaces in the current AS (coming from the peering link, in the direction of beaconing - see also <xref target="_figure-6"/>). The data plane needs this information to forward packets through the current AS. For further specifications, see <xref target="hopfield"/>.</t>
              </li>
            </ul>
            <t>In this description, MTU and packet size are to be understood in the same sense as in <xref target="RFC1122"/>. That is, exclusive of any layer 2 framing or packet encapsulation (for links using an underlay network).</t>
            <figure anchor="_figure-15">
              <name>Peer entry information, in the direction of beaconing</name>
              <artwork><![CDATA[
   +-----------+
   |           |
   | Parent AS |
   |           |
   +-----+-----+
         #
         |
         * ASE.HF.ingress_interface
+--------+-----------+
|        |           |        PE.peer_  +-----------+
|        |           |        interface |           |
|        | +---------+p----------------p+  Peer AS  |
|        | |         | PE.HF.ingress_   |           |
|        | |         | interface        +-----------+
|        | |         |
|        v v         |
+---------+----------+
          # PE.HF.egress_interface
          │ ASE.HF.egress_interface
          *
    +-----+-----+
    |           |
    | Child AS  |
    |           |
    +-----------+

]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="pcb-ext">
          <name>PCB Extensions</name>
          <t>AS entries in PCBs may carry a number of optional extensions that accumulate information while traveling across ASes. Extensions can be:</t>
          <ul spacing="normal">
            <li>
              <t>Unsigned extensions <tt>PathSegmentUnsignedExtensions</tt>. They are part of the AS entry component (the <tt>ASEntry</tt> message, see also <xref target="as-entry"/>).</t>
            </li>
            <li>
              <t>Signed extensions <tt>PathSegmentExtensions</tt>. They are part of the signed body component of an AS entry (the <tt>ASEntrySignedBody</tt> message, see also <xref target="ase-sign"/>).</t>
            </li>
          </ul>
          <t>It is recommended to keep the size of signed extensions small, since they are an integral part of the input to every AS’s signature.</t>
          <t>The example below contains the Protobuf definition of the <tt>StaticInfoExtension</tt>. It is a signed extension that is used to carry path segment metadata, such as segment latency, bandwidth, router coordinates, link type, number of internal hops. This and other extensions are at time of writing experimental. We therefore omit definitions of the <tt>StaticInfoExtension</tt> message format and refer to <xref target="PCBExtensions"/>.</t>
          <artwork><![CDATA[
  message PathSegmentExtensions {
    StaticInfoExtension static_info = 1;
  }
]]></artwork>
        </section>
        <section anchor="pcb-validity">
          <name>PCB Validity</name>
          <t>To be valid (that is, usable to construct a valid path), a PCB <bcp14>MUST</bcp14>:</t>
          <ul spacing="normal">
            <li>
              <t>Contain valid AS Entry signatures (<xref target="sign"/>).</t>
            </li>
            <li>
              <t>Have a timestamp (<xref target="seginfo"/>) that is not later than the current time at the point of validation, plus an allowance for differences between the clocks of the validator and originator.</t>
            </li>
            <li>
              <t>Contain only unexpired hops (<xref target="hopfield"/>).</t>
            </li>
          </ul>
          <t>It is recommend to use the hopfield expiration time (that is 337.5 seconds, see <xref target="hopfield"/>) as the allowance for differences between the clocks of the validator and originator.</t>
          <t>For the purpose of validation, a hop is considered expired if its absolute expiration time, calculated as defined in <xref target="hopfield"/>, is later than the current time + allowance at the point of validation.</t>
        </section>
        <section anchor="configuration">
          <name>Configuration</name>
          <t>For the purpose of constructing and propagating path segments, an AS Control Service must be configured with links to neighboring ASes. Such information may be conveyed to the Control Service in an out-of-band fashion (e.g in a configuration file). For each link, these values <bcp14>MUST</bcp14> be configured:</t>
          <ul spacing="normal">
            <li>
              <t>Local Interface ID. This <bcp14>MUST</bcp14> be unique within each AS.</t>
            </li>
            <li>
              <t>Neighbor type (core, parent, child, peer), depending on link type (see <xref target="paths-links"/>). Link type depends on mutual agreements between the organizations operating the ASes at each end of each link.</t>
            </li>
            <li>
              <t>Neighbor ISD-AS number</t>
            </li>
            <li>
              <t>Neighbor interface underlay address</t>
            </li>
          </ul>
          <t>The maximum MTU supported by all intra-AS links may also be configured by the operator.</t>
        </section>
      </section>
      <section anchor="path-prop">
        <name>Propagation of PCBs</name>
        <t>This section describes how PCBs are received, selected and further propagated in the path exploration process.</t>
        <section anchor="reception">
          <name>Reception of PCBs</name>
          <t>Upon receiving a PCB, the Control Service of an AS performs the following checks:</t>
          <ol spacing="normal" type="1"><li>
              <t>PCB validity: It verifies the validity of the PCB (see <xref target="pcb-validity"/>) and invalid PCBs <bcp14>MUST</bcp14> be discarded. The PCB contains the version numbers of the TRC(s) and certificate(s) that <bcp14>MUST</bcp14> be used to verify its signatures which enables the Control Service to check whether it has the relevant TRC(s) and certificate(s). If not, they can be requested from the Control Service of the sending AS through the API described in <xref target="crypto-api"/>.</t>
            </li>
            <li>
              <t>Loop avoidance: If it is a core AS, the Control Service <bcp14>MUST</bcp14> check whether the PCB includes duplicate hop entries created by the core AS itself or by other ASes. If so, the PCB <bcp14>MUST</bcp14> be discarded in order to avoid loops. This step is necessary because core beaconing is based on propagating PCBs to all AS neighbors. Additionally, core ASes <bcp14>SHOULD</bcp14> discard PCBs that were propagated at any point by a non-core AS. Ultimately, core ASes <bcp14>MAY</bcp14> make a policy decision to propagate beacons containing path segments that traverse the same ISD more than once as this can be legitimate, e.g. if the ISD spans a large geographical area, a path between different ASes transiting another ISD may constitute a shortcut.</t>
            </li>
            <li>
              <t>Incoming Interface: the last ISD-AS entry in a received PCB (in its AS Entry Signed Body) <bcp14>MUST</bcp14> coincide with the ISD-AS neighbor of the interface where the PCB was received. In addition, the corresponding link <bcp14>MUST</bcp14> be core or parent. If not, the PCB <bcp14>MUST</bcp14> be discarded.</t>
            </li>
            <li>
              <t>Continuity: when a PCB contains two or more AS entries, the receiver Control Service <bcp14>MUST</bcp14> check every AS entry except the last and discard beacons where the ISD-AS of an entry does not equal the ISD-AS of the next entry.</t>
            </li>
          </ol>
          <t>If the PCB verification is successful, the Control Service decides whether to store the PCB as a candidate for propagation based on selection criteria and polices specific for each AS.</t>
        </section>
        <section anchor="storing">
          <name>Storing Candidate PCBs</name>
          <t>An AS stores candidate PCBs in a temporary storage called the <em>Beacon Store</em>. The management of this storage is implementation defined.</t>
          <t>Current practice is to retain all PCBs until expired or replaced by one describing the same path with a later origination time.</t>
        </section>
        <section anchor="selection">
          <name>PCB Selection Policies</name>
          <t>An AS <bcp14>MUST</bcp14> select which PCBs to propagate further. The selection process can inspect and compare the properties of the candidate PCBs (e.g. length, disjointness across different paths, age, expiration time) and/or take into account which PCBs have been propagated in the past. The PCBs to select or eliminate is determined by the policy of the AS.</t>
          <t>In order to avoid excessive overhead on the path discovery system in bigger networks, an AS should only propagate those candidate PCBs with the highest probability of meeting the needs of the endpoints that will perform path construction, in accordance with <xref target="propagation-interval-size"/>.</t>
          <t>As SCION does not provide any in-band signal about the intentions of endpoints nor about the policies of downstream ASes, the policy will typically select a somewhat diverse set optimized for multiple, generic parameters. Selection may be based on criteria such as:</t>
          <ul spacing="normal">
            <li>
              <t>AS path length: from the originator core AS to the child (non-core) AS.</t>
            </li>
            <li>
              <t>Expiration time: the maximum value for the expiration time when extending the segment.</t>
            </li>
            <li>
              <t>ISD or AS exclusion lists: certain ASes or ISD that may not appear in a segment.</t>
            </li>
            <li>
              <t>ISD loops: if permitted, they allow core AS to reach other core ASes in the same ISD via a third party ISDs.</t>
            </li>
            <li>
              <t>Availability of peering links: that is the number of different peering ASes from all non-core ASes on the PCB or path segment. A greater number of peering ASes increases the likelihood of finding a shortcut on the path segment.</t>
            </li>
            <li>
              <t>Path disjointness: Paths can be either AS disjointed or link disjointed. AS disjointed paths have no common upstream/core AS for the current AS, whereas link disjointed paths do not share any AS-to-AS link. AS disjointness allows path diversity in the event that an AS becomes unresponsive, and link disjointness provides resilience in case of link failure. Both criteria can be used depending on the objective of the AS.  </t>
              <t>
The relative disjointness of two PCBs A and B may be calculated by assigning a disjointness score, calculated as the number of links in A that don't appear in B. For example, the beacon that has the highest disjointness score and is not the shortest path should be selected, but if this not better than what has already been selected, then the beacon with the shortest path yet to be selected should be chosen instead.</t>
            </li>
          </ul>
          <t>A PCB Selection Policy can be expressed as a stateful filter of segments, i.e., a function which indicates whether to accept or deny a given segment. This filter is stateful in that it can be updated each time its AS registers a new segment.
Naturally, an AS's policy selects PCBs corresponding to paths that are commercially or otherwise operationally viable.</t>
          <t>To ensure reachability, PCB selection policies should forward as many PCBs as possible. PCB selection is not intended as a mechanism for traffic engineering (e.g., by excluding specific PCBs for that purpose).</t>
        </section>
        <section anchor="propagation-interval-size">
          <name>Propagation Interval and Best PCBs Set Size</name>
          <t>PCBs are propagated in batches to each neighboring AS at a fixed frequency known as the <em>propagation interval</em> which happens for both intra-ISD beaconing (<xref target="intra-isd-beaconing"/>) and core beaconing (<xref target="core-beaconing"/>). At each propagation event, each AS selects a set of the best PCBs from the candidates in the Beacon Store according to the AS's selection policy. This set should have a fixed size, the <em>best PCBs set size</em>.</t>
          <t>The <em>best PCBs set size</em> should be:</t>
          <ul spacing="normal">
            <li>
              <t>For intra-AS beaconing (i.e. propagating to children ASes): at most 50.</t>
            </li>
            <li>
              <t>For core beaconing (i.e. propagation between core ASes): at most 5 per immediate neighbor core AS. Current practice is that each set is chosen among the PCBs received from each neighbor.</t>
            </li>
          </ul>
          <t>These values reflect a tradeoff between scalability —limited by the computational overhead of signature verification—and the amount of paths discovered. The PCBs set size should not be too low, to make sure that beaconing can discover a wide amount of paths. Further discussion on these trade-offs is provided in <xref target="scalability"/>.
In current practice the intra-ISD set size is typically 20. Current practice also showed that in small SCION core networks, higher values of the core best PCBs set size (e.g., 20) can be used.</t>
          <t>Depending on the selection criteria, it may be necessary to keep more candidate PCBs than the <em>best PCBs set size</em> in the Beacon Store in order to determine the best set of PCBs. If this is the case, an AS should have a suitable pre-selection of candidate PCBs in place in order to keep the Beacon Store capacity limited.</t>
          <ul spacing="normal">
            <li>
              <t>The <em>propagation interval</em> should be at least "5" (seconds) for intra-ISD beaconing and at least "60" (seconds) for core beaconing.</t>
            </li>
          </ul>
          <t>Note that to ensure establish quick connectivity, an AS <bcp14>MAY</bcp14> attempt to forward a PCB more frequently ("fast recovery"). Current practice is to increase the frequency of attempts if no PCB propagation is known to have succeeded within the last propagation interval:</t>
          <ul spacing="normal">
            <li>
              <t>because the corresponding RPC failed;</t>
            </li>
            <li>
              <t>or because no beacon was available to propagate.</t>
            </li>
          </ul>
        </section>
        <section anchor="path-segment-prop">
          <name>Propagation of Selected PCBs</name>
          <t>To bootstrap the initial communication with a neighboring beacon service, ASes use one-hop paths. This special kind of path handles beaconing between neighboring ASes for which no forwarding path may be available yet. It is the task of beaconing to discover such forwarding paths and the purpose of one-hop paths is to break this circular dependency. The One-Hop Path Type is described in more detail in <xref target="I-D.dekater-scion-dataplane"/>.</t>
          <section anchor="intra-prop">
            <name>Propagation of PCBs in Intra-ISD Beaconing</name>
            <t>The propagation process in intra-ISD beaconing includes the following steps:</t>
            <ol spacing="normal" type="1"><li>
                <t>From the candidate PCBs stored in the Beacon Store, the Control Service of an AS selects the best PCBs to propagate to its neighboring child ASes, based on a selection algorithm specific for this AS.</t>
              </li>
              <li>
                <t>The Control Service <bcp14>MUST</bcp14> add a new AS entry (see <xref target="as-entry"/>), including any Peer Entry information (see <xref target="peerentry"/>) the AS is configured to advertise to every selected PCB.</t>
              </li>
              <li>
                <t>The Control Service <bcp14>MUST</bcp14> sign each selected, extended PCB and append the computed signature.</t>
              </li>
              <li>
                <t>As a final step, the Control Service propagates each extended PCB to the neighboring AS specified in the new AS entry by invoking the <tt>SegmentCreationService.Beacon</tt> remote procedure call (RPC) in the Control Services of the neighboring ASes (see also <xref target="prop-proto"/>).</t>
              </li>
            </ol>
          </section>
          <section anchor="propagation-of-pcbs-in-core-beaconing">
            <name>Propagation of PCBs in Core Beaconing</name>
            <t>The propagation process in core beaconing includes the following steps:</t>
            <ol spacing="normal" type="1"><li>
                <t>The core Control Service selects the best PCBs to forward to neighboring core ASes observed so far.</t>
              </li>
              <li>
                <t>The service adds a new AS entry to every selected PCB which <bcp14>MUST</bcp14> include:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>The egress interface to the neighboring core AS in the Hop Field component.</t>
                  </li>
                  <li>
                    <t>The ISD_AS number of the neighboring core AS in the signed body component of the AS entry.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>The core Control Service <bcp14>MUST</bcp14> sign the extended PCBs and append the computed signature.</t>
              </li>
              <li>
                <t>As a final step, the service propagates the extended PCBs to the neighboring core ASes by invoking the <tt>SegmentCreationService.Beacon</tt> remote procedure call (RPC) in the Control Services of the neighboring core ASes (see also <xref target="prop-proto"/>).</t>
              </li>
            </ol>
          </section>
          <section anchor="prop-proto">
            <name>Propagation of PCBs in Protobuf Message Format</name>
            <t>The last step of the above described core and intra-ISD propagation procedures is implemented as follows in Protobuf message format:</t>
            <artwork><![CDATA[
   service SegmentCreationService {
       rpc Beacon(BeaconRequest) returns (BeaconResponse) {}
   }

   message BeaconRequest {
       PathSegment segment = 1;
   }

   message BeaconResponse {}
]]></artwork>
            <t>The propagation procedure includes the following elements:</t>
            <ul spacing="normal">
              <li>
                <t><tt>SegmentCreationService</tt>: Specifies the service via which the extended PCB is propagated to the Control Service of the neighboring AS.
                </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>Beacon</tt>: Specifies the method that calls the Control Service at the neighboring AS in order to propagate the extended PCB.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>BeaconRequest</tt>: Specifies the request message sent by the <tt>Beacon</tt> method to the Control Service of the neighboring AS. It contains the following element:
                </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>PathSegment</tt>: Specifies the path segment to propagate to the neighboring AS. For more information on the Protobuf message type <tt>PathSegment</tt>, see <xref target="segment"/>.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>BeaconResponse</tt>: An empty message returned as an acknowledgement upon success.</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="crypto-api">
        <name>Distribution of Cryptographic Material</name>
        <t>Control Services distribute cryptographic material for the PKI (see <xref target="I-D.dekater-scion-pki"/>) using the following protobuf messages through the <tt>TrustMaterialService</tt> RPCs:</t>
        <artwork><![CDATA[
service TrustMaterialService {
    rpc Chains(ChainsRequest) returns (ChainsResponse) {}
    rpc TRC(TRCRequest) returns (TRCResponse) {}
}
]]></artwork>
        <ul spacing="normal">
          <li>
            <t><tt>Chains(ChainsRequest)</tt>: Returns the certificate chains that match the request.</t>
          </li>
          <li>
            <t><tt>TRC(TRCRequest)</tt>: Returns a specific TRC that matches the request.</t>
          </li>
        </ul>
        <t>The corresponding protobuf message formats are:</t>
        <artwork><![CDATA[
message ChainsRequest {
    uint64 isd_as = 1;
    bytes subject_key_id = 2;
    google.protobuf.Timestamp at_least_valid_until = 3;
    google.protobuf.Timestamp at_least_valid_since = 4;
}

message ChainsResponse {
    repeated Chain chains = 1;
}

message Chain {
    bytes as_cert = 1;
    bytes ca_cert = 2;
}
]]></artwork>
        <t>A <tt>ChainsRequest</tt> message includes the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>isd_as</tt>: Returns ISD-AS of Subject in the AS certificate.</t>
          </li>
          <li>
            <t><tt>subject_key_id</tt>: Returns SubjectKeyID in the AS certificate.</t>
          </li>
          <li>
            <t><tt>at_least_valid_until</tt>: Point in time at which the AS certificate must still be valid - in seconds since UNIX epoch.</t>
          </li>
          <li>
            <t><tt>at_least_valid_since</tt>: Point in time at which the AS certificate must be or must have been valid - in seconds since UNIX epoch.</t>
          </li>
        </ul>
        <t>A <tt>ChainsResponse</tt> includes the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>chains</tt>: Lists the certificate chains that match the request. A <tt>Chain</tt> contains:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>as_cert</tt>: Returns the AS certificate in the chain.</t>
              </li>
              <li>
                <t><tt>ca_cert</tt>: Returns the CA certificate in the chain.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>For requesting TRCs, the protobuf messages are:</t>
        <artwork><![CDATA[
message TRCRequest {
    uint32 isd = 1;
    uint64 base = 2;
    uint64 serial = 3;
}

message TRCResponse {
    bytes trc = 1;
}
]]></artwork>
        <t>A <tt>TRCRequest</tt> includes the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>isd</tt>: Returns the ISD number of the TRC.</t>
          </li>
          <li>
            <t><tt>base</tt>: Returns the base number of the TRC.</t>
          </li>
          <li>
            <t><tt>serial</tt>: Returns the serial number of the TRC.</t>
          </li>
        </ul>
        <t>The returned <tt>trc</tt> contains the raw TRC.</t>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="destination-mapping">
        <name>Destination Mapping</name>
        <t>The mechanism by which endpoints determine the destination ISD-AS corresponding to a given destination address is outside the scope of this document.
One option, still experimental in existing deployments, is that SCION-aware endpoints may resolve destination SCION addresses using a naming system (e.g. DNS).
SCION-unaware endpoints may interface with a SCION network through a SCION IP Gateway (SIG), which tunnels IP traffic over SCION. In such cases, the source SIG is responsible for mapping destination IPs to the appropriate destination ISD-AS and gateway. More information can be found at <xref target="SIG"/>.</t>
      </section>
      <section anchor="monitoring-considerations">
        <name>Monitoring Considerations</name>
        <t>In order to maintain service availability, an AS <bcp14>SHOULD</bcp14> monitor the following aspects when deploying the SCION control plane:</t>
        <ul spacing="normal">
          <li>
            <t>For routers (to enable correlation with link states): state of configured links (core, child, parent)</t>
          </li>
          <li>
            <t>For any control service:
            </t>
            <ul spacing="normal">
              <li>
                <t>Fraction of path lookups served successfully (see <xref target="lookup"/>)</t>
              </li>
              <li>
                <t>Time synchronization offset with other ASes (see <xref target="clock-inaccuracy"/>)</t>
              </li>
              <li>
                <t>Fraction of ASes found in non-expired segments for which a non-expired certificate exists</t>
              </li>
            </ul>
          </li>
          <li>
            <t>For a core AS:
            </t>
            <ul spacing="normal">
              <li>
                <t>Fraction of core ASes (preferably only those to which the link is up) that can be found in non-expired core segments</t>
              </li>
              <li>
                <t>Fraction of ASes, core or children, (preferably only those to which the link is up) whereto a beacon was initiated during the last propagation interval</t>
              </li>
              <li>
                <t>Fraction of freshly propagated beacons for which at least one corresponding down segment has been registered (see <xref target="path-segment-reg"/>)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>For a non-core AS:
            </t>
            <ul spacing="normal">
              <li>
                <t>Number of up segments available (may be just 0/non-0) younger than the propagation interval (or some multiple thereof).</t>
              </li>
              <li>
                <t>Fraction of up segments that were successfully registered as down segments (see <xref target="path-segment-reg"/>).</t>
              </li>
              <li>
                <t>Fraction of children ASes (preferably only those to which the link is up) whereto a beacon was propagated during the last propagation interval</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="clock-inaccuracy">
        <name>Effects of Clock Inaccuracy</name>
        <t>A PCB originated by a given Control Service is validated by all the Control Services that receive it. All have different clocks and their differences affect the validation process:</t>
        <ul spacing="normal">
          <li>
            <t>A fast clock at origination or a slow clock at reception will yield a lengthened expiration time for hops, and possibly an origination time in the future.</t>
          </li>
          <li>
            <t>A slow clock at origination or a fast clock at reception will yield a shortened expiration time for hops, and possibly an expiration time in the past.</t>
          </li>
        </ul>
        <t>This bias comes in addition to a structural delay: PCBs are propagated at a configurable interval - typically around one minute. As a result of this and the way they are iteratively constructed, PCBs with N hops may be validated up to N intervals (so maximally N minutes) after origination which creates a constraint on the expiration of hops. Hops of the minimal expiration time (337.5 seconds - see <xref target="hopfield"/>) would make any PCB describing a path longer than 5 hops expire. For this reason it is unadvisable to create hops with a short expiration time - they <bcp14>SHOULD</bcp14> be around 6 hours.</t>
        <t>The Control Service and its clients authenticate each-other according to their respective AS's certificate. Path segments are authenticated based on the certificates of the ASes that they refer to. The <bcp14>RECOMMENDED</bcp14> expiration time of a SCION AS certificate is between 3h and 3 days. Some deployments use up to 5 days.
In comparison to these time scales, clock offsets in the order of minutes are immaterial.</t>
        <t>Each administrator of a SCION Control Service is responsible for maintaining sufficient clock accuracy. No particular method is assumed by this specification.</t>
      </section>
      <section anchor="scalability">
        <name>Path Discovery Time and Scalability</name>
        <t>The path discovery mechanism balances the number of discovered paths and the time it takes to discover them versus resource overhead of the discovery.</t>
        <t>The resource costs for path discovery are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Communication overhead is transmitting the PCBs and occasionally obtaining the required PKI material.</t>
          </li>
          <li>
            <t>Processing overhead is validating the signatures of the AS entries, signing new AS entries, and to a lesser extent, evaluating the beaconing policies.</t>
          </li>
          <li>
            <t>Storage overhead is both the temporary storage of PCBs before the next propagation interval, and the storage of complete discovered path segments.</t>
          </li>
        </ul>
        <t>All of these are dependent on the number and length of the discovered path segments, i.e. the total number of AS entries of the discovered path segments. These, in turn, depend on the configured best PCBs set size (<xref target="propagation-interval-size"/>).</t>
        <t>Interesting metrics for scalability and speed of path discovery are the time until all discoverable path segments have been discovered after a network bootstrap, and the time until a new link is usable. In general, the time until a specific PCB is built depends on its length, the propagation interval, and whether on-path ASes use "fast recovery".</t>
        <t>At each AS, the PCB will be processed and propagated at the subsequent propagation event. As propagation events are not synchronized between different ASes, a PCB arrives at a random point in time during the interval and may be buffered before potentially being propagated. With a propagation interval T at each AS, the mean time until the PCB is propagated in one AS therefore is T / 2 and the mean total time for the propagation steps of a PCB of length L is at worst L * T / 2 (with a variance of L * T^2 / 12).</t>
        <t>Note that link removal is not part of path discovery in SCION. For scheduled removal of links, operators let path segments expire. On link failures, endpoints route around the failed link by switching to different paths in the data plane (see <xref target="I-D.dekater-scion-dataplane"/> section "Handling Link Failures").</t>
        <t>To achieve scalability, SCION partitions ASes into ISDs and in an ideal topology the inter-ISD core network should be kept to a moderate size. For more specific observations, we distinguish between intra-ISD and core beaconing.</t>
        <section anchor="intra-isd-beaconing">
          <name>Intra-ISD Beaconing</name>
          <t>In the intra-ISD beaconing, PCBs are propagated top down along parent-child links from core to leaf ASes. Each AS discovers path segments from itself to the core ASes of its ISD.</t>
          <t>This typically produces an acyclic graph which is narrow at the top, widens towards the leafs, and is relatively shallow. Intermediate provider ASes will have a large number of children, while they only have a small number of parents and the chain of intermediate providers from a leaf AS to a core AS is typically not long (e.g. local, regional, national provider, then core).</t>
          <t>Each AS potentially receives PCBs for all down path segments from the core to itself. While the number of distinct provider chains to the core is typically moderate, the multiplicity of links between provider ASes has multiplicative effect on the number of PCBs. Once this number grows above the maximum recommended best PCB set size of 50, ASes <bcp14>SHOULD</bcp14> trim the set of PCBs propagated.</t>
          <t>Ultimately, the number of PCBs received by an AS per propagation interval remains bounded by 50 for each parent link of an AS, and at most 50 PCBs per child link are propagated. The length of these PCBs and thus the number of AS entries to be processed and stored, is expected to be moderate and not grow considerably with network size. The total resource overhead for beacon propagation is easily manageable even for highly connected ASes.</t>
          <t>To illustrate this, an AS with a rather large number of 100 parent links receives at most 5000 PCBs during a propagation interval. Assuming a generous average length of 10 AS entries for these PCBs, this corresponds to 50000 AS entries.</t>
          <t>Due to the variable length fields in AS entries, the sizes for storage and transmission cannot be predicted exactly, but assume an average of 250 bytes per AS entry. At the shortest recommended propagation interval of 5 seconds, this corresponds to an average bandwidth of around 2.5 MB/s and the processing of 10000 signature verifications per second.</t>
          <t>If the same AS has 1000 child links, the propagation of the beacons will require signing one new AS entry for each of the propagated PCBs for each link (at most 50 per link), i.e. at most 50000 signatures per propagation event. The total bandwidth for the propagation of these PCBs for all 1000 child links would, be roughly around 25 MB/s which is manageable with even modest consumer hardware.</t>
          <t>On a network bootstrap, path segments to each AS are discovered within a number of propagation steps proportional to the longest path. With a 5 second propagation interval and a generous longest path of length 10, all path segments are discovered after 25 seconds on average. When all ASes start propagation just after they've received the first PCBs from any of their upstreams (see 'fast recovery'), the construction of a first path to connect each AS to the ISD core is accelerated.</t>
          <t>When a new parent-child link is added to the network, the parent AS will propagate the available PCBs in the next propagation event. If the AS on the child side of the new link is a leaf AS, path discovery is thus complete after at most one propagation interval. Otherwise, child ASes at distance D below the new link, learn of the new link after at worst D further propagation intervals.</t>
        </section>
        <section anchor="core-beaconing">
          <name>Core Beaconing</name>
          <t>In core beaconing (typically inter-ISD), PCBs are propagated omnidirectionally along core links. Each AS discovers path segments from itself to any other core AS.</t>
          <t>The number of distinct paths through the core network is typically very large. To keep the overhead manageable, at most 5 path segments to every destination AS are discovered and the propagation frequency is slower than in the intra-ISD beaconing (at least 60 seconds between propagation events).</t>
          <t>Without making strong assumptions on the topology of the core network, we can assume that shortest paths through real world networks are relatively short, e.g. the Barabási-Albert random graph model predicts a diameter of log(N)/log(log(N)) for a network with N nodes <xref target="BollRio-2000"/> and the average distance scales in the same way. Whilst we cannot assume that the selected PCBs are strictly the shortest paths through the network, they are likely to be not very much longer than the shortest paths either.</t>
          <t>With N the number of participating core ASes, an AS receives up to 5 * N PCBs per propagation interval per core link interface. For highly connected ASes, the number of PCBs received thus becomes rather large and in a network of 1000 ASes, a AS with 300 core links receives up to 1.5 million PCBs per propagation interval.</t>
          <t>Assuming an average PCB length of 6 and the shortest propagation interval of 60 seconds, this corresponds to roughly 150 thousand signature validations per second or roughly 38 MB/s. For much larger, more highly connected ASes, the path discovery tasks of the Control Service can be distributed over many instances in order to increase the PCB throughput.</t>
          <t>On a network bootstrap, full connectivity is obtained after a number of propagation steps corresponding to the diameter of the network. Assuming a network diameter of 6, this corresponds to roughly 3 minutes on average. When a new link is added to the network, it will be available to connect two ASes at distances D1 and D2 from the link, respectively, at worst after a mean time (D1+D2)*T/2.</t>
        </section>
      </section>
    </section>
    <section anchor="path-segment-reg">
      <name>Registration of Path Segments</name>
      <t><strong>Path registration</strong> is the process where an AS transforms selected PCBs into path segments, and adding these segments to the relevant path databases thereby making them available to other ASes.</t>
      <t>As mentioned previously, a non-core AS typically receives several PCBs representing several path segments to the core ASes of the ISD the AS belongs to. Out of these PCBs, the non-core AS selects those down path segments through which it wants to be reached, based on AS-specific selection criteria.</t>
      <t>The next step is to register the selected down segments with the Control Service of the relevant core ASes in accordance with a process called <em>intra-ISD path segment registration</em>. As a result, a core AS's Control Service contains all intra-ISD path segments registered by the non-core ASes of its ISD. In addition, each core AS Control Service also stores the preferred core path segments to other core ASes during the <em>core segment registration</em> process.</t>
      <t>Both processes are described below.</t>
      <section anchor="intra-reg">
        <name>Intra-ISD Path Segment Registration</name>
        <t>Every <em>registration period</em> (determined by each AS), the AS's Control Service selects two sets of PCBs to transform into two types of path segments:</t>
        <ul spacing="normal">
          <li>
            <t>Up segments, which allow the infrastructure entities and endpoints in this AS to communicate with core ASes; and</t>
          </li>
          <li>
            <t>Down segments, which allow remote entities to reach this AS.</t>
          </li>
        </ul>
        <t>The up segments and down segments do not have to be equal as AS may want to communicate with core ASes via one or more up segments that differ from the down segment(s) through which it wants to be reached. Therefore, an AS can define different selection policies for the up segment and down segment sets. In addition, the processes of transforming a PCB in an up segment or a down segment differ slightly.</t>
        <section anchor="term-pcb">
          <name>Terminating a PCB</name>
          <t>Both the up segments and down segments end at the AS, so by transforming a PCB into a path segment, an AS "terminates" the PCB for this AS ingress interface and at that moment in time.</t>
          <t>The Control Service of a non-core performs the following steps to "terminate" a PCB:</t>
          <ol spacing="normal" type="1"><li>
              <t>The Control Service adds a new AS entry to the PCB which <bcp14>MUST</bcp14> be defined as follows:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The next AS <bcp14>MUST NOT</bcp14> be specified.
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>In Protobuf message format, this means that the value of the <tt>next_isd_as</tt> field in the <tt>ASEntrySignedBody</tt> component <bcp14>MUST</bcp14> be "0".</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>The egress interface in the Hop Field component <bcp14>MUST NOT</bcp14> be specified.
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>In Protobuf message format, this means that the value of the <tt>egress</tt> field in the <tt>HopField</tt> component <bcp14>MUST</bcp14> be "0".</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>If the AS has peering links, the Control Service <bcp14>MAY</bcp14> add corresponding peer entry components to the signed body of the AS entry - one peer entry component for each peering link that the AS wants to advertise. The egress Interface ID in the Hop Field component of each added peer entry <bcp14>MUST NOT</bcp14> be specified.
              </t>
              <ul spacing="normal">
                <li>
                  <t>In Protobuf message format, this means that the value of the <tt>egress</tt> field in the <tt>HopField</tt> component <bcp14>MUST</bcp14> be "0".</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The Control Service <bcp14>MUST</bcp14> sign the modified PCB and append the computed signature.</t>
            </li>
          </ol>
          <t><strong>Note:</strong></t>
          <ul spacing="normal">
            <li>
              <t>For more information on the signed body component of an AS entry, see <xref target="ase-sign"/>.</t>
            </li>
            <li>
              <t>For more information on a peer entry, see <xref target="peerentry"/>.</t>
            </li>
            <li>
              <t>For more information on the Hop Field component, see <xref target="hopfield"/>.</t>
            </li>
            <li>
              <t>For more information on signing an AS entry, see <xref target="sign"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="transforming-a-pcb-into-an-up-segment">
          <name>Transforming a PCB into an Up Segment</name>
          <t>Every registration period, the Control Service of a non-core AS performs the following steps to transform PCBs into up segments:</t>
          <ol spacing="normal" type="1"><li>
              <t>The Control Service selects the PCBs that it wants to transform into up segments from the candidate PCBs in the Beacon Store.</t>
            </li>
            <li>
              <t>The Control Service "terminates" the selected PCBs by performing the steps described in <xref target="term-pcb"/>. From this moment on, the modified PCBs are called <strong>up segments</strong>.</t>
            </li>
            <li>
              <t>The Control Service adds the newly created up segments to its own path database.</t>
            </li>
          </ol>
          <t><strong>Note:</strong> For more information on possible selection strategies of PCBs, see <xref target="selection"/>.</t>
        </section>
        <section anchor="transforming-a-pcb-into-a-down-segment">
          <name>Transforming a PCB into a Down Segment</name>
          <t>Every registration period, the Control Service of a non-core AS performs the following steps to transform PCBs into down segments:</t>
          <ol spacing="normal" type="1"><li>
              <t>The Control Service selects the PCBs that it wants to transform into down segments from the candidate PCBs in the Beacon Store.</t>
            </li>
            <li>
              <t>The Control Service "terminates" the selected PCBs by performing the steps described in <xref target="term-pcb"/>. From this moment on, the modified PCBs are called <strong>down segments</strong>.</t>
            </li>
            <li>
              <t>The Control Service registers the newly created down segments with the Control Services of the core ASes that originated the corresponding PCBs. This is done by invoking the <tt>SegmentRegistrationService.SegmentsRegistration</tt> remote procedure call (RPC) in the Control Services of the relevant core ASes (see also <xref target="reg-proto"/>). The first ISD-AS entry of the path segment <bcp14>MUST</bcp14> be equal to the core ISD-AS where the segment is being registered. If not, the core AS <bcp14>MUST</bcp14> reject the segment.</t>
            </li>
          </ol>
          <t><strong>Note:</strong> For more information on possible selection strategies of PCBs, see <xref target="selection"/>.</t>
        </section>
      </section>
      <section anchor="core-path-segment-registration">
        <name>Core Path Segment Registration</name>
        <t>The core beaconing process creates path segments from core AS to core AS. These core segments are then added to the Control Service path database of the core AS that created the segment, so that local and remote endpoints can obtain and use these core segments. In contrast to the intra-ISD registration procedure, there is no need to register core segments with other core ASes as each core AS will receive PCBs originated from every other core AS.</t>
        <t>In every registration period, the Control Service of a core AS performs the following operations:</t>
        <ol spacing="normal" type="1"><li>
            <t>The core Control Service selects the best PCBs towards each core AS observed so far.</t>
          </li>
          <li>
            <t>The core Control Service "terminates" the selected PCBs by performing the steps described in <xref target="term-pcb"/>. From this moment on, the modified PCBs are called <strong>core segments</strong>.</t>
          </li>
          <li>
            <t>The Control Service adds the newly created core segments to its own path database.</t>
          </li>
        </ol>
        <t><strong>Note:</strong> For more information on possible selection strategies of PCBs, see <xref target="selection"/>.</t>
      </section>
      <section anchor="reg-proto">
        <name>Path Segment Registration RPC API</name>
        <t>The Control Service of a non-core AS has to register the newly created down segments with the Control Services of the core ASes that originated the corresponding PCBs. This registration step is implemented as follows in Protobuf message format:</t>
        <artwork><![CDATA[
   enum SegmentType {
       SEGMENT_TYPE_UNSPECIFIED = 0;
       SEGMENT_TYPE_UP = 1;
       SEGMENT_TYPE_DOWN = 2;
       SEGMENT_TYPE_CORE = 3;
   }

   service SegmentRegistrationService {
       rpc SegmentsRegistration(SegmentsRegistrationRequest) returns (
         SegmentsRegistrationResponse) {}
   }

   message SegmentsRegistrationRequest {
       message Segments {
           repeated PathSegment segments = 1;
       }

       map<int32, Segments> segments = 1;
   }

   message SegmentsRegistrationResponse {}
]]></artwork>
        <ul spacing="normal">
          <li>
            <t><tt>SegmentType</tt>: Specifies the type of the path segment to be registered. Currently, only the following type is used:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>SEGMENT_TYPE_DOWN</tt>: Specifies a down segment.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><tt>map&lt;int32, Segments&gt; segments</tt>: Represents a separate list of segments for each path segment type. The key is the integer representation of the corresponding <tt>SegmentType</tt>.</t>
          </li>
          <li>
            <t><tt>SegmentRegistrationResponse</tt>: an empty message returned as an acknowledgement upon success.</t>
          </li>
        </ul>
      </section>
      <section anchor="path-mtu">
        <name>Path MTU</name>
        <t>SCION paths represent a sequence of ASes and inter-AS links; each with possibly different MTUs. As a result, the path MTU is the minimum of the MTUs of each inter-AS link and intra-AS networks it traverses. Such MTU information is disseminated during path construction:</t>
        <ul spacing="normal">
          <li>
            <t>The MTU of each intra-AS network traversed (represented by the MTU field of the corresponding <xref target="ase-sign">AS Entries</xref>)</t>
          </li>
          <li>
            <t>The MTU of each inter-AS link or peering link (indicated by the ingress_mtu field of each <xref target="hopentry"/> or the peer_mtu field of each <xref target="peerentry"/> used)</t>
          </li>
        </ul>
        <t>Such information is then made available to source endpoints during the path lookup process (See <xref target="lookup"/>). Note that the destination endpoint does not receive such information, therefore when using path reversibility, it should use mechanisms to estimate the reverse path MTU (e.g., MTU discovery or estimate MTU from the largest packet received). SCION endpoints are oblivious to the internal topology of intermediate ASes. When looking up a path they should therefore assume that all hops are also constrained by the intra-AS MTU of each AS traversed.</t>
      </section>
    </section>
    <section anchor="lookup">
      <name>Path Lookup</name>
      <t>The <em>path lookup</em> is a fundamental building block of SCION's path management as it enables endpoints to obtain path segments found during path exploration and registered during path registration. This allows the endpoints to construct end-to-end paths from the set of possible path segments returned by the path lookup process. The lookup of paths still happens in the control plane, whereas the construction of the actual end-to-end paths happens in the data plane.</t>
      <section anchor="lookup-process">
        <name>Lookup Process</name>
        <t>An endpoint (source) that wants to start communication with another endpoint (destination) requires up to three path segments:</t>
        <ul spacing="normal">
          <li>
            <t>An up segment to reach the core of the source ISD (only if the source endpoint is a non-core AS);</t>
          </li>
          <li>
            <t>a core segment to reach
            </t>
            <ul spacing="normal">
              <li>
                <t>another core AS in the source ISD, in case the destination AS is in the same source ISD, or;</t>
              </li>
              <li>
                <t>a core AS in a remote ISD, if the destination AS is in another ISD, and;</t>
              </li>
            </ul>
          </li>
          <li>
            <t>a down segment to reach the destination AS.</t>
          </li>
        </ul>
        <t>The actual number of required path segments depends on the location of the destination AS as well as on the availability of shortcuts and peering links. More information on combining and constructing paths is provided by <xref target="I-D.dekater-scion-dataplane"/>.</t>
        <t>The process to look up and fetch path segments consists of the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The source endpoint queries the Control Service in its own AS (i.e. the source AS) for the required segments by sending a SegmentsRequest. The Control Service has up segments stored in its path database and additionally checks if it has appropriate core segments and down segments stored as well - in this case it returns them immediately in a SegmentsResponse.</t>
          </li>
          <li>
            <t>If there are no appropriate core segments and down segments, the Control Service in the source AS queries the Control Services of the reachable core ASes in the source ISD for core segments to core ASes in the destination ISD. To reach the core Control Services, the Control Service of the source AS uses the locally stored up segments.</t>
          </li>
          <li>
            <t>The Control Service of the source AS combines up segments with the newly retrieved core segments. The Control Service then queries the Control Services of the remote core ASes in the destination ISD to fetch down segments to the destination AS. To reach the remote core ASes, the Control Service of the source AS uses the previously obtained and combined up segments and core segments.</t>
          </li>
          <li>
            <t>The Control Service of the source AS returns all retrieved path segments to the source endpoint.</t>
          </li>
          <li>
            <t>Once it has obtained all path segments, the source endpoint combines them into an end-to-end path in the data plane.</t>
          </li>
          <li>
            <t>The destination endpoint, once it receives the first packet, <bcp14>MAY</bcp14> revert the path in the received packet in order to construct a response. This ensures that traffic flows on the same path bidirectionally.</t>
          </li>
        </ol>
        <t><xref target="_table-3"/> below shows which Control Service provides the source endpoint with which type of path segment.</t>
        <table anchor="_table-3">
          <name>Control services responsible for different types of path segments</name>
          <thead>
            <tr>
              <th align="left">Segment Type</th>
              <th align="left">Responsible Control Service(s)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Up-segment</td>
              <td align="left">Control service of the source AS</td>
            </tr>
            <tr>
              <td align="left">Core-segment</td>
              <td align="left">Control service of core ASes in source ISD</td>
            </tr>
            <tr>
              <td align="left">Down-segment</td>
              <td align="left">Control service of core ASes in destination ISD (either the local ISD or a remote ISD)</td>
            </tr>
          </tbody>
        </table>
        <section anchor="sequence-of-lookup-requests">
          <name>Sequence of Lookup Requests</name>
          <t>The overall sequence of requests to resolve a path <bcp14>SHOULD</bcp14> be as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Request up segments for the source endpoint at the Control Service of the source AS.</t>
            </li>
            <li>
              <t>Request core segments, which start at the core ASes that are reachable with up segments, and end at the core ASes in the destination ISD. If the destination ISD coincides with the source ISD, this step requests core segments to core ASes that the source endpoint cannot directly reach with an up segment.</t>
            </li>
            <li>
              <t>Request down segments starting at core ASes in the destination ISD.</t>
            </li>
          </ol>
        </section>
        <section anchor="lookup-requests-message-format">
          <name>Lookup Requests Message Format</name>
          <t>Control Services provide paths to endpoints through the <tt>SegmentLookupService</tt> RPC. This API is exposed on the SCION dataplane by the control services of core ASes and exposed on the intra-domain protocol network.</t>
          <artwork><![CDATA[
service SegmentLookupService {
    rpc Segments(SegmentsRequest) returns (SegmentsResponse) {}
}
]]></artwork>
          <t>They use the following protobuf messages: a <tt>SegmentsRequest</tt>, which includes:</t>
          <ul spacing="normal">
            <li>
              <t><tt>src_isd_as</tt>: The source ISD-AS of the segment.</t>
            </li>
            <li>
              <t><tt>dst_isd_as</tt>: The destination ISD-AS of the segment.</t>
            </li>
          </ul>
          <t>The corresponding <tt>SegmentsResponse</tt> returns:</t>
          <ul spacing="normal">
            <li>
              <t><tt>segments</tt>: a list of <tt>PathSegment</tt> matching the request.</t>
            </li>
            <li>
              <t>a mapping from path segment type to path segments, where the key is the integer representation of the <tt>SegmentType</tt> enum defined in <xref target="reg-proto"/>.</t>
            </li>
          </ul>
          <artwork><![CDATA[
message SegmentsRequest {
    uint64 src_isd_as = 1;
    uint64 dst_isd_as = 2;
}

message SegmentsResponse {
    message Segments {
        repeated PathSegment segments = 1;
    }
    map<int32, Segments> segments = 1;
}
]]></artwork>
        </section>
        <section anchor="caching">
          <name>Caching</name>
          <t>For the sake of efficiency, the Control Service of the source AS <bcp14>SHOULD</bcp14> cache each returned path segment request. Caching ensures that path lookups are fast for frequently used destinations and is also essential to ensure that the path lookup process is scalable and can be performed with low latency.</t>
          <t>In general, to improve overall efficiency, the Control Services of all ASes <bcp14>SHOULD</bcp14> do the following:</t>
          <ul spacing="normal">
            <li>
              <t>Cache the returned path segments.</t>
            </li>
            <li>
              <t>Send requests in parallel when requesting path segments from other Control Services.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="behavior-of-actors-in-the-lookup-process">
        <name>Behavior of Actors in the Lookup Process</name>
        <t>As described above, the source endpoint resolves paths with a sequence of segment requests to the Control Service of the source AS. The Control Service in the source AS either answers directly or forwards these requests to the responsible Control Services of core ASes. In SCION, the instances that handle these segment requests at the Control Services are called <em>source AS segment-request handler</em> and <em>core AS segment-request handler</em>, respectively.</t>
        <t>This section specifies the behavior of the segment request handlers in the lookup process.</t>
        <section anchor="wildcard">
          <name>Use of Wildcard Addresses in the Lookup Process</name>
          <t>Endpoints can use wildcard addresses to designate any core AS in path segment requests. The segment request handlers <bcp14>MUST</bcp14> expand these wildcard addresses and translate them into one or more actual addresses. <xref target="_table-4"/> below shows who is responsible for what.</t>
          <t><strong>Note:</strong> For general information on the use of wildcard addresses in SCION, see <xref target="serv-disc"/>.</t>
          <table anchor="_table-4">
            <name>Use of wildcards in path segments requests</name>
            <thead>
              <tr>
                <th align="left">Segment Request</th>
                <th align="left">Wildcard Represents</th>
                <th align="left">Expanded/Translated By</th>
                <th align="left">Translated Into</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Up segment</td>
                <td align="left">"Destination" core AS (where up segment ends)</td>
                <td align="left">Control service of the <em>source AS</em></td>
                <td align="left">Actual address destination core AS in source ISD</td>
              </tr>
              <tr>
                <td align="left">Core segment</td>
                <td align="left">Source core AS (where core segment starts)<sup>1</sup></td>
                <td align="left">Control service of the <em>source AS</em></td>
                <td align="left">Actual address source core AS in source ISD</td>
              </tr>
              <tr>
                <td align="left">Core segment</td>
                <td align="left">Destination core AS (where core segment ends)</td>
                <td align="left">Control service of the <em>source core AS</em></td>
                <td align="left">Actual address destination core AS in destination ISD</td>
              </tr>
              <tr>
                <td align="left">Down segment</td>
                <td align="left">"Source" core AS (where down segment starts)<sup>2</sup></td>
                <td align="left">Control service of the <em>source AS</em></td>
                <td align="left">Actual address source core AS in destination ISD</td>
              </tr>
            </tbody>
          </table>
          <t>1) Includes all core ASes for which an up segment from the source AS exists.<br/>
2) Includes all core ASes in destination ISD with a down segment to destination AS.</t>
        </section>
        <section anchor="segment-request-handler-of-a-non-core-source-as">
          <name>Segment-Request Handler of a Non-Core Source AS</name>
          <t>When the segment request handler of the Control Service of a <em>non-core</em> source AS receives a path segment request, it <bcp14>MUST</bcp14> proceed as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Determine the requested segment type.</t>
            </li>
            <li>
              <t>In the case of an up segment request, look up matching up segments in the path database and return them.</t>
            </li>
            <li>
              <t>In the case of a core segment request from a source core AS to a destination core AS:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Expand the source wildcard into separate requests for each reachable core AS in the source ISD.</t>
                </li>
                <li>
                  <t>For each core segment request;
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>If possible, return matching core segments from cache;</t>
                    </li>
                    <li>
                      <t>Otherwise, request the core segments from the Control Services of each reachable core AS at the source of the core segment, and then add the retrieved core segments to the cache.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>In the case of a down segment request:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Expand the source wildcard into separate requests for every core AS in the destination ISD (destination ISD refers to the ISD to which the destination endpoint belongs).</t>
                </li>
                <li>
                  <t>For each segment request;
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>If possible, return matching down segments from cache;</t>
                    </li>
                    <li>
                      <t>Otherwise, request the down segment from the Control Services of the core ASes at the source of the down segment. Sending the request may require looking up core segments to the source core AS of the down segment, and then adding the retrieved down segments to the cache.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
          </ol>
        </section>
        <section anchor="segment-request-handler-of-a-core-as">
          <name>Segment-Request Handler of a Core AS</name>
          <t>When the segment request handler of a <em>core AS</em> Control Service receives a path segment request, it <bcp14>MUST</bcp14> proceed as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Validate the request:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The source of the path segment <bcp14>MUST</bcp14> be this core AS.</t>
                </li>
                <li>
                  <t>The request <bcp14>MUST</bcp14> either be;
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>for a core segment to a core AS in this ISD or another ISD, or;</t>
                    </li>
                    <li>
                      <t>for a down segment to an AS in this ISD.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>If the destination is a core or wildcard address, then load matching core segments from the path database and return.</t>
            </li>
            <li>
              <t>Otherwise, load the matching down segments from the path database and return.</t>
            </li>
          </ol>
          <t><xref target="app-c"/> shows by means of an illustration how the lookup of path segments in SCION works.</t>
        </section>
      </section>
    </section>
    <section anchor="service-discovery">
      <name>Control Service Discovery</name>
      <t>The Control Plane RPC APIs rely on QUIC connections over UDP/SCION (see <xref target="I-D.dekater-scion-dataplane"/>. Establishing such connection requires the initiator to identify the relevant peer (service resolution) and to select a path to it. Since the Control Service is itself the source of path segment information, the following bootstrapping processes apply:</t>
      <ul spacing="normal">
        <li>
          <t>Neighboring ASes craft one-hop paths directly. They are described in more detail in <xref target="I-D.dekater-scion-dataplane"/></t>
        </li>
        <li>
          <t>Paths to non-neighboring ASes are obtained from neighboring ASes which allows multihop paths to be constructed and propagated incrementally.</t>
        </li>
        <li>
          <t>Constructed multi-hop paths are registered with the Control Service at the origin core AS.</t>
        </li>
        <li>
          <t>Control Services respond to requests from remote ASes by reversing the path via which the request came.</t>
        </li>
      </ul>
      <t>Clients find the relevant Control Service at a given AS by resolving a 'service address' as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>A client sends a <tt>ServiceResolutionRequest</tt> RPC (which has no parameters) to an endpoint address in the format:
          </t>
          <ul spacing="normal">
            <li>
              <t>Common Header:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Path type: SCION (0x01)</t>
                </li>
                <li>
                  <t>DT/DL: "Service" (0b0100)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Address Header:
              </t>
              <ul spacing="normal">
                <li>
                  <t>DstHostAddr: "SVC_CS" (0x0002)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>UDP Header:
              </t>
              <ul spacing="normal">
                <li>
                  <t>DstPort: 0</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>
A <tt>ServiceResolutionRequest</tt> <bcp14>MUST</bcp14> fit within a UDP datagram, otherwise clients and servers won't be able to establish control-plane reachability.</t>
        </li>
        <li>
          <t>The ingress border router at the destination AS resolves the service destination to an actual endpoint address. This document does not mandate any specific method for this resolution.</t>
        </li>
        <li>
          <t>The ingress border router forwards the message to the resolved address.</t>
        </li>
        <li>
          <t>The destination service responds to the client with a <tt>ServiceResolutionResponse</tt>. It contains one or more transport options and it <bcp14>MUST</bcp14> fit within a UDP datagram.
  Known transports are "QUIC". Unknown values <bcp14>MUST</bcp14> be ignored by clients. The response includes a <tt>Transport</tt> message containing supported addresses and port to reach the service.
  Supported address formats for QUIC are IPv4 and IPv6. An example of the corresponding address format is:
  <tt>192.0.2.1:80</tt> and <tt>[2001:db8::1]:80</tt>. A missing, zero or non-existent port value <bcp14>MUST</bcp14> be treated by clients as an error.</t>
        </li>
        <li>
          <t>The client uses the address and port from the "QUIC" option to establish a QUIC connection, which can then be used for other RPCs.</t>
        </li>
      </ol>
      <t>The following code block provides the service resolution API Protobuf messages.</t>
      <artwork><![CDATA[
  message ServiceResolutionRequest {}

  message ServiceResolutionResponse {
    map<string, Transport> transports = 1;
  }

  message Transport {
    string address = 1;
  }
]]></artwork>
    </section>
    <section anchor="scmp">
      <name>SCMP</name>
      <t>The SCION Control Message Protocol (SCMP) provides functionality for network diagnostics, such as traceroute, and error messages that signal packet processing or network-layer problems. SCMP is a helpful tool for network diagnostics and, in the case of External Interface Down and Internal Connectivity Down messages, a signal for endpoints to detect network failures more rapidly and fail-over to different paths. However, SCION nodes should not strictly rely on the availability of SCMP, as this protocol may not be supported by all devices and/or may be subject to rate limiting.</t>
      <t>This document only specifies the messages used for the purposes of path diagnosis and recovery. An extended specification can be found in <xref target="SCMP"/>. Its security considerations are discussed in <xref target="manipulate-selection"/>.</t>
      <section anchor="general-format">
        <name>General Format</name>
        <t>Every SCMP message is preceded by a SCION header and zero or more SCION extension headers (see <xref target="I-D.dekater-scion-dataplane"/> section "SCION Header Specification"). The SCMP header is identified by a <tt>NextHdr</tt> value of <tt>202</tt> in the immediately preceding header.</t>
        <t>The messages have the following general format:</t>
        <figure anchor="scmp-format">
          <name>SCMP message format</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="68" y="84">Type</text>
                  <text x="196" y="84">Code</text>
                  <text x="388" y="84">Checksum</text>
                  <text x="252" y="116">Type-dependent</text>
                  <text x="336" y="116">Block</text>
                  <text x="208" y="148">(</text>
                  <text x="252" y="148">variable</text>
                  <text x="316" y="148">length</text>
                  <text x="352" y="148">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |           Checksum            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Type-dependent Block                    |
+                                                               +
|                        ( variable length )                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>Type</tt>: it indicates the type of SCMP message. Its value determines the format of the type-dependent block.</t>
          </li>
          <li>
            <t><tt>Code</tt>: it provides additional granularity to the SCMP type.</t>
          </li>
          <li>
            <t><tt>Checksum</tt>: it is used to detect data corruption.</t>
          </li>
          <li>
            <t><tt>Type-dependent Block</tt>: optional field of variable length which format is dependent on the message type.</t>
          </li>
        </ul>
      </section>
      <section anchor="message-types">
        <name>Message Types</name>
        <t>SCMP messages are grouped into two classes: error messages and informational messages. Error messages are identified by a zero in the high-order bit of the type value. I.e., error messages have a type value in the range of 0-127. Informational messages have type values in the range of 128-255.</t>
        <t>This specification defines the message formats for the following SCMP messages:</t>
        <table>
          <name>Error Message Types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">
                <xref target="packet-too-big">Packet Too Big</xref></td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">
                <xref target="external-interface-down">External Interface Down</xref></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">
                <xref target="internal-connectivity-down">Internal Connectivity Down</xref></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">100</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left">101</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">127</td>
              <td align="left">Reserved for expansion of SCMP error messages</td>
            </tr>
          </tbody>
        </table>
        <table>
          <name>Informational Message Types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">128</td>
              <td align="left">
                <xref target="echo-request">Echo Request</xref></td>
            </tr>
            <tr>
              <td align="left">129</td>
              <td align="left">
                <xref target="echo-reply">Echo Reply</xref></td>
            </tr>
            <tr>
              <td align="left">130</td>
              <td align="left">
                <xref target="traceroute-request">Traceroute Request</xref></td>
            </tr>
            <tr>
              <td align="left">131</td>
              <td align="left">
                <xref target="traceroute-reply">Traceroute Reply</xref></td>
            </tr>
            <tr>
              <td align="left">200</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left">201</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left">Reserved for expansion of SCMP informational messages</td>
            </tr>
          </tbody>
        </table>
        <t>Type values 100, 101, 200, and 201 are reserved for private experimentation.</t>
        <t>All other values are reserved for future use.</t>
      </section>
      <section anchor="checksum-calculation">
        <name>Checksum Calculation</name>
        <t>The checksum is the 16-bit one's complement of the one's complement sum of the
entire SCMP message, starting with the SCMP message type field, and prepended
with a "pseudo-header" consisting of the SCION address header and the Layer 4
protocol type as defined in <xref target="I-D.dekater-scion-dataplane"/> section "SCION Header Specification/Pseudo Header for Upper-Layer Checksum".</t>
      </section>
      <section anchor="processing-rules">
        <name>Processing Rules</name>
        <t>The following rules apply when processing SCMP messages:</t>
        <ul spacing="normal">
          <li>
            <t>If an SCMP error message of unknown type is received at its destination, it <bcp14>MUST</bcp14> be passed to the upper-layer process that originated the packet that caused the error, if it can be identified.</t>
          </li>
          <li>
            <t>If an SCMP informational message of unknown type is received, it <bcp14>MUST</bcp14> be silently dropped.</t>
          </li>
          <li>
            <t>Every SCMP error message <bcp14>MUST</bcp14> include as much of the offending SCION packet as possible. The error message packet - including the SCION header and all extension headers - <bcp14>MUST NOT</bcp14> exceed <strong>1232 bytes</strong> in order to fit into the minimum MTU (see <xref target="I-D.dekater-scion-dataplane"/> section "Deployment Considerations/MTU").</t>
          </li>
          <li>
            <t>In case the implementation is required to pass an SCMP error message to the upper-layer process, the upper-layer protocol type is extracted from the original packet in the body of the SCMP error message and used to select the appropriate process to handle the error. In case the upper-layer protocol type cannot be extracted from the SCMP error message body, the SCMP message <bcp14>MUST</bcp14> be silently dropped.</t>
          </li>
          <li>
            <t>An SCMP error message <bcp14>MUST NOT</bcp14> be originated in response to any of the following:
            </t>
            <ul spacing="normal">
              <li>
                <t>An SCMP error message.</t>
              </li>
              <li>
                <t>A packet which source address does not uniquely identify a single node. E.g., an IPv4 or IPv6 multicast address.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The maximum size 1232 bytes is chosen so that the entire datagram, if encapsulated in UDP and IPv6, does not exceed 1280 bytes (L2 Header excluded). 1280 bytes is the minimum MTU required by IPv6 and it is assumed that, nowadays, this MTU can also be safely expected when using IPv4.</t>
      </section>
      <section anchor="scmp-notification">
        <name>Error Messages</name>
        <section anchor="packet-too-big">
          <name>Packet Too Big</name>
          <figure anchor="_figure-21">
            <name>Packet Too Big format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="140" y="116">Reserved</text>
                    <text x="384" y="116">MTU</text>
                    <text x="148" y="148">As</text>
                    <text x="180" y="148">much</text>
                    <text x="212" y="148">of</text>
                    <text x="240" y="148">the</text>
                    <text x="296" y="148">offending</text>
                    <text x="364" y="148">packet</text>
                    <text x="132" y="164">as</text>
                    <text x="180" y="164">possible</text>
                    <text x="248" y="164">without</text>
                    <text x="296" y="164">the</text>
                    <text x="332" y="164">SCMP</text>
                    <text x="380" y="164">packet</text>
                    <text x="208" y="180">exceeding</text>
                    <text x="268" y="180">1232</text>
                    <text x="316" y="180">bytes.</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Reserved           |             MTU               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                As much of the offending packet                |
+              as possible without the SCMP packet              +
|                    exceeding 1232 bytes.                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Error Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">2</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">MTU</td>
                <td align="left">The Maximum Transmission Unit of the next-hop link.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>Packet Too Big</strong> message <bcp14>SHOULD</bcp14> be originated by a router in response to a
packet that cannot be forwarded because the packet is larger than the MTU of the
outgoing link. The MTU value is set to the maximum size a SCION packet can have
to still fit on the next-hop link, as the sender has no knowledge of the
underlay.</t>
        </section>
        <section anchor="external-interface-down">
          <name>External Interface Down</name>
          <figure anchor="_figure-22">
            <name>External Interface Down format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="528" viewBox="0 0 528 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,288" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,288" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,224 L 520,224" fill="none" stroke="black"/>
                  <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="136" y="116">ISD</text>
                    <text x="380" y="132">AS</text>
                    <text x="240" y="196">Interface</text>
                    <text x="292" y="196">ID</text>
                    <text x="148" y="244">As</text>
                    <text x="180" y="244">much</text>
                    <text x="212" y="244">of</text>
                    <text x="240" y="244">the</text>
                    <text x="296" y="244">offending</text>
                    <text x="364" y="244">packet</text>
                    <text x="132" y="260">as</text>
                    <text x="180" y="260">possible</text>
                    <text x="248" y="260">without</text>
                    <text x="296" y="260">the</text>
                    <text x="332" y="260">SCMP</text>
                    <text x="380" y="260">packet</text>
                    <text x="208" y="276">exceeding</text>
                    <text x="268" y="276">1232</text>
                    <text x="316" y="276">bytes.</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ISD              |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+             AS                +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                        Interface ID                           +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                As much of the offending packet                |
+              as possible without the SCMP packet              +
|                    exceeding 1232 bytes.                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Error Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">5</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">The interface ID of the external link with connectivity issue.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>External Interface Down</strong> message <bcp14>SHOULD</bcp14> be originated by a router in response
to a packet that cannot be forwarded because the link to an external AS is broken.
The ISD and AS identifier are set to the ISD-AS of the originating router.
The Interface ID identifies the link of the originating AS that is down.
Recipients can use this information to route around broken data-plane links.</t>
        </section>
        <section anchor="internal-connectivity-down">
          <name>Internal Connectivity Down</name>
          <figure anchor="_figure-23">
            <name>Internal Connectivity Down format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="528" viewBox="0 0 528 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,352" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,352" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,224 L 520,224" fill="none" stroke="black"/>
                  <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                  <path d="M 8,352 L 520,352" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="136" y="116">ISD</text>
                    <text x="380" y="132">AS</text>
                    <text x="192" y="196">Ingress</text>
                    <text x="264" y="196">Interface</text>
                    <text x="316" y="196">ID</text>
                    <text x="188" y="260">Egress</text>
                    <text x="256" y="260">Interface</text>
                    <text x="308" y="260">ID</text>
                    <text x="148" y="308">As</text>
                    <text x="180" y="308">much</text>
                    <text x="212" y="308">of</text>
                    <text x="240" y="308">the</text>
                    <text x="296" y="308">offending</text>
                    <text x="364" y="308">packet</text>
                    <text x="132" y="324">as</text>
                    <text x="180" y="324">possible</text>
                    <text x="248" y="324">without</text>
                    <text x="296" y="324">the</text>
                    <text x="332" y="324">SCMP</text>
                    <text x="380" y="324">packet</text>
                    <text x="208" y="340">exceeding</text>
                    <text x="268" y="340">1232</text>
                    <text x="316" y="340">bytes.</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ISD              |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+             AS                +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                   Ingress Interface ID                        +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                   Egress Interface ID                         +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                As much of the offending packet                |
+              as possible without the SCMP packet              +
|                    exceeding 1232 bytes.                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Error Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">6</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Ingress ID</td>
                <td align="left">The interface ID of the ingress link.</td>
              </tr>
              <tr>
                <td align="left">Egress ID</td>
                <td align="left">The interface ID of the egress link.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>Internal Connectivity Down</strong> message <bcp14>SHOULD</bcp14> be originated by a router in
response to a packet that cannot be forwarded inside the AS because the
connectivity between the ingress and egress routers is broken. The ISD and AS
identifier are set to the ISD-AS of the originating router. The ingress
Interface ID identifies the interface on which the packet enters the AS. The
egress Interface ID identifies the interface on which the packet is destined to
leave the AS, but the connection is broken to.</t>
          <t>Recipients can use this information to route around a broken data plane inside an
AS.</t>
        </section>
      </section>
      <section anchor="scmp-information">
        <name>Informational Messages</name>
        <section anchor="echo-request">
          <name>Echo Request</name>
          <figure anchor="_figure-24">
            <name>Echo Request format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="140" y="116">Identifier</text>
                    <text x="364" y="116">Sequence</text>
                    <text x="428" y="116">Number</text>
                    <text x="196" y="148">Data</text>
                    <text x="224" y="148">(</text>
                    <text x="268" y="148">variable</text>
                    <text x="324" y="148">Len.</text>
                    <text x="352" y="148">)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Data ( variable Len. )                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Informational Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">128</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">A 16-bit identifier to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">A 16-bit sequence number to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Data</td>
                <td align="left">Variable length of arbitrary data</td>
              </tr>
            </tbody>
          </table>
          <t>Every node <bcp14>SHOULD</bcp14> implement a SCMP Echo responder function that receives Echo Requests and originates corresponding Echo replies.</t>
        </section>
        <section anchor="echo-reply">
          <name>Echo Reply</name>
          <figure anchor="_figure-25">
            <name>Echo Reply format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="140" y="116">Identifier</text>
                    <text x="364" y="116">Sequence</text>
                    <text x="428" y="116">Number</text>
                    <text x="196" y="148">Data</text>
                    <text x="224" y="148">(</text>
                    <text x="268" y="148">variable</text>
                    <text x="324" y="148">Len.</text>
                    <text x="352" y="148">)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Data ( variable Len. )                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Informational Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">129</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">The identifier of the Echo Request</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">The sequence number of the Echo Request</td>
              </tr>
              <tr>
                <td align="left">Data</td>
                <td align="left">The data of the Echo Request</td>
              </tr>
            </tbody>
          </table>
          <t>Every node <bcp14>SHOULD</bcp14> implement a SCMP Echo responder function that receives Echo Requests and originates corresponding Echo replies.</t>
          <t>The data received in the SCMP Echo Request message <bcp14>MUST</bcp14> be returned entirely and unmodified in the SCMP Echo Reply message.</t>
        </section>
        <section anchor="traceroute-request">
          <name>Traceroute Request</name>
          <figure anchor="_figure-26">
            <name>Traceroute Request format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="528" viewBox="0 0 528 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,256" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,256" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,256 L 520,256" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="140" y="116">Identifier</text>
                    <text x="364" y="116">Sequence</text>
                    <text x="428" y="116">Number</text>
                    <text x="136" y="148">ISD</text>
                    <text x="388" y="164">AS</text>
                    <text x="256" y="228">Interface</text>
                    <text x="308" y="228">ID</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ISD              |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+              AS               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                          Interface ID                         +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <t>Given a SCION path constituted of hop fields, traceroute allows to identify the corresponding on-path ISD-ASes.</t>
          <table>
            <name>Informational Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">130</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">A 16-bit identifier to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">A 16-bit sequence number to aid matching replies with request</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
            </tbody>
          </table>
          <t>A border router is alerted of a Traceroute Request message through the Ingress or Egress Router Alert flag set to 1 in the hop field that describes the traversal of that router in a packet's path (see <xref target="I-D.dekater-scion-dataplane"/> section "SCION Header Specification"). When such a packet is received, the border router <bcp14>SHOULD</bcp14> reply with a <xref target="traceroute-reply">Traceroute Reply message</xref>.</t>
        </section>
        <section anchor="traceroute-reply">
          <name>Traceroute Reply</name>
          <figure anchor="_figure-27">
            <name>Traceroute Reply format</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="528" viewBox="0 0 528 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,256" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,256" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,256 L 520,256" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="68" y="84">Type</text>
                    <text x="196" y="84">Code</text>
                    <text x="380" y="84">Checksum</text>
                    <text x="140" y="116">Identifier</text>
                    <text x="364" y="116">Sequence</text>
                    <text x="428" y="116">Number</text>
                    <text x="136" y="148">ISD</text>
                    <text x="388" y="164">AS</text>
                    <text x="256" y="228">Interface</text>
                    <text x="308" y="228">ID</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ISD              |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+              AS               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                          Interface ID                         +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </figure>
          <table>
            <name>Informational Message field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">131</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">The identifier set in the Traceroute Request</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">The sequence number of the Tracroute Request</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">The interface ID of the SCMP originating router</td>
              </tr>
            </tbody>
          </table>
          <t>The identifier is set to the identifier value from the <xref target="traceroute-request">Traceroute Request message</xref>. The ISD and AS identifiers are set to the ISD-AS of the originating border router.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As described previously, the goal of SCION’s beaconing process in the control plane is to securely discover and disseminate paths between any two ASes. This section describes security considerations for SCION's Control Plane that focuses on <em>inter</em>-domain routing. SCION does not provide intra-domain routing, nor does it provide end-to-end payload encryption so these topics lie outside the scope of this section.</t>
      <t>This section discusses three kinds of threats to the control plane:</t>
      <ol spacing="normal" type="1"><li>
          <t>When an adversary controls one or all core ASes of an ISD and tries to manipulate the beaconing process from the top down (see <xref target="topdown-manipulate"/>).</t>
        </li>
        <li>
          <t>When "ordinary" (non-core) adversaries try to manipulate the beaconing process (see <xref target="manipulate-beaconing"/>).</t>
        </li>
        <li>
          <t>Denial of Services (DoS) attacks where attackers overload different parts of the infrastructure (see <xref target="dos-cp"/>).</t>
        </li>
      </ol>
      <section anchor="security-properties">
        <name>Security Properties</name>
        <t>The SCION control plane provides various security properties, as discussed below.
Here, an AS is described as 'honest' if its private keys are unknown to the attacker and it correctly performs operations in accordance with this specification (e.g. uses a unique interface identifier for each link). An honest path is one that only traverses honest ASes. An honest segment is the one created by an honest AS.</t>
        <t>Security properties are:</t>
        <ul spacing="normal">
          <li>
            <t>Connectivity - For every pair of honest ASes X and Y, X will eventually register enough segments to build at least one path (of any length) leading to Y.</t>
          </li>
          <li>
            <t>Forwarding Path Consistency - For every honest path segment registered in any AS
            </t>
            <ul spacing="normal">
              <li>
                <t>its sequence of AS entries corresponds to a continuous SCION forwarding path in the network of inter-domain links</t>
              </li>
              <li>
                <t>the inter-domain network topology remains unchanged since the segment was first generated.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Loop Freedom - For every honest path segment registered in any AS, its sequence of AS entries contains no duplicates, including current and next ISD-AS and Interface IDs.</t>
          </li>
          <li>
            <t>Path Authorization - For every honest path segment registered in any AS and any AS X appearing on that segment (except for the previous one), AS X propagated a PCB corresponding to the segment portion ending in its own entry to its successor AS on the segment.</t>
          </li>
        </ul>
        <t>To ensure that the properties hold across the overall SCION network, these are the prerequisites to follow:
  - all core ASes <bcp14>MUST</bcp14> be able to reach each other with some sequence of core links
  - and all non-core ASes <bcp14>MUST</bcp14> have at least one path up to a core AS.</t>
        <t>Furthermore, to ensure that the properties hold within a single ISD, all core ASes of the ISD <bcp14>MUST</bcp14> be able to reach each other without leaving the ISD, i.e, for every pair of cores in an ISD there is a sequence of SCION links that only traverse the ISD members.
A core AS may reach other core ASes in the same ISD via other ISDs. This may be permitted, depending on the ISD's policies.</t>
      </section>
      <section anchor="topdown-manipulate">
        <name>Manipulation of the Beaconing Process by a Core Adversary</name>
        <t>The first risk to the beaconing process comes from an adversary controlling one or more core ASes in an ISD. If the adversary stops all core AS(es) within an ISD from propagating PCBs, the discovery of new paths will halt. In this case, downstream ASes will notice that PCBs are no longer being propagated, but all previously discovered and still valid paths remain usable for data plane forwarding until they expire. This is an unlikely scenario, as it would require compromise of all core ASes within an ISD.</t>
      </section>
      <section anchor="manipulate-beaconing">
        <name>Manipulation of the Beaconing Process by a Non-Core Adversary</name>
        <t>This section examines several possible approaches that could be taken by an "ordinary" non-core adversary to manipulate the beaconing process in the Control Plane. For each case it shows to what extent SCION's design can prevent the corresponding attack or help mitigate it.</t>
        <section anchor="path-hijack">
          <name>Path Hijacking through Interposition</name>
          <t>A malicious AS M might try to manipulate the beaconing process between two neighbor ASes A and B, with the goal to hijack traffic to flow via M. If M can interpose itself on the path between A and B, then it could attempt several potential attacks:</t>
          <ul spacing="normal">
            <li>
              <t>The adversary M could intercept and disseminate a PCB on its way from A to the neighboring AS B, and inject its own AS entry into the PCB toward downstream ASes.</t>
            </li>
            <li>
              <t>The adversary could modify the Hop Fields of an already existing path in order to insert its own AS in the path.</t>
            </li>
            <li>
              <t>The adversary could fully block traffic between AS A and AS B in order to force traffic redirection through an alternate path that includes its own AS.</t>
            </li>
          </ul>
          <t>The first type of attack is detectable and blocked by downstream ASes (e.g. B) because a PCB disseminated by AS A towards AS B contains the "Next ISD AS" field in the entry of AS A, pointing to AS B, and protected by A's signature. If M manipulates the PCB while in flight from A to B, then verification of the manipulated inbound PCBs will fail at AS B, as the adversary's PCBs cannot contain A's correct signature (see <xref target="reception"/>).</t>
          <t>The second type of attack is made impossible by the Hop Field's MAC which protects the Hop Field's integrity and chains it with the previous Hop Fields on the path.</t>
          <t>The third type of attack generally cannot be prevented. However the alternate path would be immediately visible to endpoints as traffic <bcp14>MUST</bcp14> include Hop Fields from AS M.</t>
        </section>
        <section anchor="fake-ases">
          <name>Creation of Spurious ASes and ISDs</name>
          <t>An alternative scenario is when an adversary tries to introduce and spoof a non-existent AS. This would enable the adversary to send traffic with the spoofed AS as a source, allowing the adversary to complicate the detection of its attack and to plausibly deny the misbehavior.</t>
          <t>However, spoofing a new AS requires a registration of that AS with the ISD core to obtain a valid AS certificate, otherwise the adversary cannot construct valid PCBs. As this registration should include a thorough check and authentication by a CA, this cannot be done stealthily which defeats the original purpose.</t>
          <t>Similarly to creating a fake AS, an adversary could try to introduce a new malicious ISD. This involves the generation of its own TRC, finding core ASes to peer with, and convincing other ISDs of its legitimacy to accept the new TRC. Although this setup is not entirely impossible, it requires substantial time and effort and may need the involvement of more than one malicious entity. Here the "costs" of setting up the fake ISD may outweigh the benefits.</t>
        </section>
        <section anchor="peer-link-misuse">
          <name>Peering Link Misuse</name>
          <t>The misuse of a peering link by an adversary represents another type of attack. Consider the case where AS A wants to share its peering link only with one of its downstream neighbors AS B, and therefore selectively includes the peering link only in PCBs sent to B. An adversary may now try to gain access to this peering link by prepending the relevant PCBs to its own path. For this, the adversary needs to be able to (1) eavesdrop on the link from A to B, and (2) obtain the necessary Hop Fields by querying a Control Service and extracting the Hop Fields from registered paths.</t>
          <t>Even if an adversary succeeds in misusing a peering link as described above, SCION is able to mitigate this kind of attack. Each AS includes an egress interface as well as specific “next hop” information to the PCB before disseminating it further downstream. If a malicious entity tries to misuse a stolen PCB by adding it to its own segments, verification will fail upstream as the egress interface mismatches. Therefore, the peering link can only be used by the intended AS.</t>
        </section>
        <section anchor="manipulate-selection">
          <name>Manipulation of the Path-Selection Process</name>
          <t>SCION endpoints select inter-domain forwarding paths. This section discusses some mechanisms with which an adversary can attempt to trick endpoints downstream (in the direction of beaconing) into choosing non-optimal paths. The goal of such attacks is to make paths that are controlled by the adversary more attractive than other available paths.</t>
          <t>In SCION, overall path selection is the result of three steps. Firstly, each AS selects which PCBs are further forwarded to its neighbors. Secondly, each AS chooses the paths it wants to register at the local Control Service (as up segments) and at the core Control Service (as down segments). Thirdly, the endpoint performs path selection among all available paths resulting from a path lookup process.</t>
          <t>These attacks are only successful if the adversary is located within the same ISD and upstream relative to the victim AS. It is not possible to attract traffic away from the core as traffic travels upstream towards the core. Furthermore, the attack may either be discovered downstream (e.g., by seeing large numbers of paths becoming available), or during path registrations. After detection, non-core ASes will be able to identify paths traversing the adversary AS and avoid these paths.</t>
          <t><strong>Announcing Large Numbers of Path Segments</strong> <br/>
This attack is possible if the adversary controls at least two ASes. The adversary can create a large number of links between the ASes under its control which do not necessarily correspond to physical links. This allows the adversary to multiply the number of PCBs forwarded to its downstream neighbor ASes and in turn increases the chance that one or several of these forwarded PCBs are selected by the downstream ASes.</t>
          <t>In general, the number of PCBs that an adversary can announce this way scales exponentially with the number of consecutive ASes the adversary controls. However, this also decreases their chance of being chosen by a downstream AS for PCB dissemination or by an endpoint for path construction as these relatively long paths have to compete with other shorter paths. Furthermore, both endpoints and downstream ASes can detect poorer quality paths in the data plane and switch to better paths.</t>
          <t><strong>Wormhole Attack</strong> <br/>
A malicious AS M1 can send a PCB not only to their downstream neighbor ASes, but also out-of-band to another non-neighbor colluding malicious AS M2. This creates new segments to M2 and M2's downstream neighbor ASes, simulating a link between M1 and M2 which may not correspond to an actual link in the network topology.</t>
          <t>Similarly, a fake path can be announced through a fake peering link between two colluding ASes even if in different ISDs. An adversary can advertise fake peering links between the two colluding ASes, thus offering short paths to many destination ASes. Downstream ASes might have a policy of preferring paths with many peering links and thus are more likely to disseminate PCBs from the adversary. Endpoints are also more likely to choose short paths that make use of peering links.</t>
          <t>In the data plane, whenever the adversary receives a packet containing a fake peering link, it can transparently exchange the fake peering Hop Fields with valid Hop Fields to the colluding AS. To avoid detection of the path alteration by the receiver, the colluding AS can replace the added Hop Fields with the fake peering link Hop Fields the sender inserted.</t>
          <t>To defend against this attack, methods to detect the wormhole attack are needed. Per link or path latency measurements can help reveal the wormhole and render the fake peering link suspicious or unattractive. Without specific detection mechanisms these so-called wormhole attacks are unavoidable in routing.</t>
          <t><strong>Rogue SCMP Error Messages</strong>  <br/>
SCMP External Interface Down (<xref target="external-interface-down"/>) and Internal Connectivity Down (<xref target="internal-connectivity-down"/>) can potentially be abused by an attacker to to disrupt forwarding of information and/or force the traffic through a different paths. Endpoints should therefore consider them weak hints and apply heuristics to detect fraudulent SCMP messages (e.g. by actively probing whether the affected path is actually down).
Note that this would be mitigated through authentication of SCMP messages. Authentication is not specified here since it is currently still experimental.</t>
        </section>
      </section>
      <section anchor="dos-cp">
        <name>Denial of Service Attacks</name>
        <t>The beaconing process in the SCION Control Plane relies on control plane communication. ASes exchange control plane messages within each other when propagating PCBs to downstream neighbors, when registering PCBs as path segments, or during core path lookup. Volumetric DoS attacks, where attackers overload a link may make it difficult to exchange these messages.</t>
        <t>SCION limits the impact of such attacks which aim to exhaust network bandwidth on links as ASes can switch to alternative paths that do not contain the congested links. Reflection-based attacks are also prevented as response packets are returned on the same path to the actual sender.</t>
        <t>Other mechanisms are required to avoid transport protocol attacks where the attacker tries to exhaust the resources on a target server, such as for the Control Services, by opening many connections to this. The means to mitigate these kind of DoS attacks are basically the same as for the current Internet, e.g. filtering, geo-blocking or using cookies.</t>
        <t>Thanks to its path awareness, SCION enables more fine-grained filtering mechanisms based on certain path properties. For example, control plane RPC methods that are available to endpoints within an AS are strictly separate from methods available to endpoints from other ASes. Specifically, expensive recursive path segment and trust material lookups are thus shielded from abuse by unauthorized entities.</t>
        <t>For RPC methods exposed to other ASes, the Control Service implementation minimizes its attack surface by rejecting illegitimate callers based on ISD/AS, path type and length and any other available data points as soon as possible, i.e. immediately after determining the request type. For example:</t>
        <ul spacing="normal">
          <li>
            <t><tt>SegmentCreationService.Beacon</tt> can only be called by direct neighbors and thus calls from peers with a path length greater than one can immediately be discarded.</t>
          </li>
          <li>
            <t><tt>SegmentRegistrationService.SegmentsRegistration</tt> can only be called from within the same ISD, thus the source address <bcp14>MUST</bcp14> match the local ISD and the number of path segments <bcp14>MUST</bcp14> be 1.</t>
          </li>
        </ul>
        <t>A combination of the mechanism above is used to prevent flooding attacks on the Control Service. In addition, the Control Service <bcp14>SHOULD</bcp14> be deployed in a distributed and replicated manner so that requests can be balanced and a single instance failure does not result in a complete failure of the control plane of a SCION AS.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>The ISD and SCION AS number are SCION-specific numbers. They are currently allocated by Anapaya Systems, a provider of SCION-based networking software and solutions (see <xref target="ISD-AS-assignments-Anapaya"/>). This task is being transitioned from Anapaya to the SCION Association (see <xref target="ISD-AS-assignments"/>).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.dekater-scion-dataplane">
          <front>
            <title>SCION Data Plane</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>Independent</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Jean-Christophe Hugly" initials="J." surname="Hugly">
              <organization>Independent</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document describes the data plane of the path-aware, inter-
   domain network architecture SCION (Scalability, Control, and
   Isolation On Next-generation networks).  One of the basic
   characteristics of SCION is that it gives path control to endpoints.
   The SCION Control Plane is responsible for discovering these paths
   and making them available as path segments to the endpoints.  The
   role of the SCION Data Plane is to combine the path segments into
   end-to-end paths, and forward data between endpoints according to the
   specified path.

   The SCION Data Plane fundamentally differs from today's IP-based data
   plane in that it is _path-aware_: In SCION, interdomain forwarding
   directives are embedded in the packet header.  This document provides
   a detailed specification of the SCION data packet format as well as
   the structure of the SCION header.  SCION also supports extension
   headers, which are additionally described.  The document continues
   with the life cycle of a SCION packet while traversing the SCION
   Internet, followed by a specification of the SCION path authorization
   mechanisms and the packet processing at routers.

   This document contains new approaches to secure path aware
   networking.  It is not an Internet Standard, has not received any
   formal review of the IETF, nor was the work developed through the
   rough consensus process.  The approaches offered in this work are
   offered to the community for its consideration in the further
   evolution of the Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-07"/>
        </reference>
        <reference anchor="I-D.dekater-scion-pki">
          <front>
            <title>SCION Control Plane PKI</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="6" month="September" year="2025"/>
            <abstract>
              <t>   This document presents the trust concept and design of the SCION
   _Control Plane Public Key Infrastructure (CP-PKI)_. SCION
   (Scalability, Control, and Isolation On Next-generation networks) is
   a path-aware, inter-domain network architecture where the Control
   Plane PKI handles cryptographic material and lays the foundation for
   the authentication procedures in SCION.  It is used by SCION's
   Control Plane to authenticate and verify path information, and
   provisions SCION's trust model based on Isolation Domains.

   This document describes the trust model behind the SCION Control
   Plane PKI, including specifications of the different types of
   certificates and the Trust Root Configuration.  It also specifies how
   to deploy the Control Plane PKI infrastructure.

   This document contains new approaches to secure path aware
   networking.  It is not an Internet Standard, has not received any
   formal review of the IETF, nor was the work developed through the
   rough consensus process.  The approaches offered in this work are
   offered to the community for its consideration in the further
   evolution of the Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-10"/>
        </reference>
        <reference anchor="RFC4632">
          <front>
            <title>Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan</title>
            <author fullname="V. Fuller" initials="V." surname="Fuller"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <date month="August" year="2006"/>
            <abstract>
              <t>This memo discusses the strategy for address assignment of the existing 32-bit IPv4 address space with a view toward conserving the address space and limiting the growth rate of global routing state. This document obsoletes the original Classless Inter-domain Routing (CIDR) spec in RFC 1519, with changes made both to clarify the concepts it introduced and, after more than twelve years, to update the Internet community on the results of deploying the technology described. 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="122"/>
          <seriesInfo name="RFC" value="4632"/>
          <seriesInfo name="DOI" value="10.17487/RFC4632"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="gRPC" target="https://grpc.io/">
          <front>
            <title>gRPC, an open-source universal RPC framework</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="proto3" target="https://protobuf.dev/programming-guides/proto3/">
          <front>
            <title>Protocol Buffers Language Guide version 3</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="Connect" target="https://connectrpc.com/docs/protocol/">
          <front>
            <title>Connect Protocol Reference</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </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="I-D.dekater-panrg-scion-overview">
          <front>
            <title>SCION Overview</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Adrian Perrig" initials="A." surname="Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date day="7" month="May" year="2024"/>
            <abstract>
              <t>   The Internet has been successful beyond even the most optimistic
   expectations and is intertwined with many aspects of our society.
   But although the world-wide communication system guarantees global
   reachability, the Internet has not primarily been built with security
   and high availability in mind.  The next-generation inter-network
   architecture SCION (Scalability, Control, and Isolation On Next-
   generation networks) aims to address these issues.  SCION was
   explicitly designed from the outset to offer security and
   availability by default.  The architecture provides route control,
   failure isolation, and trust information for end-to-end
   communication.  It also enables multi-path routing between hosts.

   This document discusses the motivations behind the SCION architecture
   and gives a high-level overview of its fundamental components,
   including its authentication model and the setup of the control- and
   data plane.  As SCION is already in production use today, the
   document concludes with an overview of SCION deployments.

   For detailed descriptions of SCION's components, refer to
   [I-D.dekater-scion-pki], [I-D.dekater-scion-controlplane], and
   [I-D.dekater-scion-dataplane].  A more detailed analysis of
   relationships and dependencies between components is available in
   [I-D.rustignoli-scion-components].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-panrg-scion-overview-06"/>
        </reference>
        <reference anchor="ISD-AS-assignments-Anapaya" target="https://docs.anapaya.net/en/latest/resources/isd-as-assignments/">
          <front>
            <title>SCION ISD and AS Assignments</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ISD-AS-assignments" target="http://scion.org/registry/">
          <front>
            <title>SCION Registry</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="CHUAT22" target="https://doi.org/10.1007/978-3-031-05288-0">
          <front>
            <title>The Complete Guide to SCION</title>
            <author initials="L." surname="Chuat" fullname="Laurent Chuat">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Basin" fullname="David Basin">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="P." surname="Mueller" fullname="Peter Mueller">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="ISBN" value="978-3-031-05287-3"/>
        </reference>
        <reference anchor="RFC1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC5398">
          <front>
            <title>Autonomous System (AS) Number Reservation for Documentation Use</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <date month="December" year="2008"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, two blocks of Autonomous System numbers (ASNs) are reserved for use in examples in RFCs, books, documentation, and the like. This document describes the reservation of two blocks of ASNs as reserved numbers for use in documentation. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5398"/>
          <seriesInfo name="DOI" value="10.17487/RFC5398"/>
        </reference>
        <reference anchor="RFC6996">
          <front>
            <title>Autonomous System (AS) Reservation for Private Use</title>
            <author fullname="J. Mitchell" initials="J." surname="Mitchell"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document describes the reservation of Autonomous System Numbers (ASNs) that are for Private Use only, known as Private Use ASNs, and provides operational guidance on their use. This document enlarges the total space available for Private Use ASNs by documenting the reservation of a second, larger range and updates RFC 1930 by replacing Section 10 of that document.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="6"/>
          <seriesInfo name="RFC" value="6996"/>
          <seriesInfo name="DOI" value="10.17487/RFC6996"/>
        </reference>
        <reference anchor="RFC9217">
          <front>
            <title>Current Open Questions in Path-Aware Networking</title>
            <author fullname="B. Trammell" initials="B." surname="Trammell"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>In contrast to the present Internet architecture, a path-aware internetworking architecture has two important properties: it exposes the properties of available Internet paths to endpoints, and it provides for endpoints and applications to use these properties to select paths through the Internet for their traffic. While this property of "path awareness" already exists in many Internet-connected networks within single domains and via administrative interfaces to the network layer, a fully path-aware internetwork expands these concepts across layers and across the Internet.</t>
              <t>This document poses questions in path-aware networking, open as of 2021, that must be answered in the design, development, and deployment of path-aware internetworks. It was originally written to frame discussions in the Path Aware Networking Research Group (PANRG), and has been published to snapshot current thinking in this space.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9217"/>
          <seriesInfo name="DOI" value="10.17487/RFC9217"/>
        </reference>
        <reference anchor="RFC9473">
          <front>
            <title>A Vocabulary of Path Properties</title>
            <author fullname="R. Enghardt" initials="R." surname="Enghardt"/>
            <author fullname="C. Krähenbühl" initials="C." surname="Krähenbühl"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>Path properties express information about paths across a network and the services provided via such paths. In a path-aware network, path properties may be fully or partially available to entities such as endpoints. This document defines and categorizes path properties. Furthermore, the document identifies several path properties that might be useful to endpoints or other entities, e.g., for selecting between paths or for invoking some of the provided services. This document is a product of the Path Aware Networking Research Group (PANRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9473"/>
          <seriesInfo name="DOI" value="10.17487/RFC9473"/>
        </reference>
        <reference anchor="PCBExtensions" target="https://docs.scion.org/en/latest/beacon-metadata.html">
          <front>
            <title>PCB Path Metadata Extension</title>
            <author initials="" surname="Anapaya">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="" surname="ETH">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="" surname="SCION">
              <organization>SCION Association</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="BollRio-2000" target="https://kam.mff.cuni.cz/~ksemweb/clanky/BollobasR-scale_free_random.pdf">
          <front>
            <title>The diameter of a scale-free random graph</title>
            <author initials="B." surname="Bollobás" fullname="Béla Bollobás">
              <organization/>
            </author>
            <author initials="O." surname="Riordan" fullname="Oliver Riordan">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SCMP" target="https://docs.scion.org/en/latest/protocols/scmp.html">
          <front>
            <title>SCMP Documentation</title>
            <author initials="" surname="Anapaya">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="" surname="ETH">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="" surname="SCION">
              <organization>SCION Association</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="SCIONLAB" target="https://ieeexplore.ieee.org/abstract/document/9259355">
          <front>
            <title>SCIONLAB - A Next-Generation Internet Testbed</title>
            <author initials="J." surname="Kown" fullname="Jonghoon Kwon">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="J." surname="García-Pardo" fullname="Juan A. García-Pardo">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="F." surname="Wirz" fullname="François Wirz">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Frei" fullname="Matthias Frei">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="SIG" target="https://docs.scion.org/en/latest/sig.html">
          <front>
            <title>SCION IP Gateway Documentation</title>
            <author initials="" surname="Anapaya">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="" surname="ETH">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="" surname="SCION">
              <organization>SCION Association</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2277?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Alvaro Retana (Futurewei), Joel M. Halpern (Ericsson), William Boye (Swiss National Bank), Matthias Frei (SCION Association), Kevin Meynell (SCION Association), Juan A. Garcia Prado (ETH Zurich), and Roger Lapuh (Extreme Networks), for reviewing this document. We also thank Daniel Galán Pascual and Christoph Sprenger from the Information Security Group at ETH Zurich for their inputs based on their formal verification work on SCION. We are also very grateful to Adrian Perrig (ETH Zurich), for providing guidance and feedback about every aspect of SCION. Finally, we are indebted to the SCION development teams of Anapaya, ETH Zurich, and the SCION Association for their practical knowledge and for the documentation about the SCION Control Plane, as well as to the authors of <xref target="CHUAT22"/> - the book is an important source of input and inspiration for this draft.</t>
    </section>
    <section numbered="false" anchor="deployment-testing-scionlab">
      <name>Deployment Testing: SCIONLab</name>
      <t>SCIONLab is a global research network that is available to test the SCION architecture. You can create and use your ASes using your own computation resources which allows you to gain real-world experience of deploying and managing a SCION network.</t>
      <t>More information can be found on the SCIONLab website and in the <xref target="SCIONLAB"/> paper.</t>
    </section>
    <section numbered="false" anchor="app-c">
      <name>Path-Lookup Examples</name>
      <t>To illustrate how the path lookup works, we show two path-lookup examples in sequence diagrams. The network topology of the examples is represented in <xref target="_figure-41"/> below. In both examples, the source endpoint is in AS A. <xref target="_figure-42"/> shows the sequence diagram for the path lookup process in case the destination is in AS D, whereas <xref target="_figure-43"/> shows the path lookup sequence diagram if the destination is in AS G. ASes B and C are core ASes in the source ISD, while E and F are core ASes in a remote ISD. Core AS B is a provider of the local AS, but AS C is not, i.e. there is no up-segment from A to C. "CS" stands for Control Service.</t>
      <figure anchor="_figure-41">
        <name>Topology used in the path lookup examples</name>
        <artwork><![CDATA[
+----------------------------+     +----------------------------+
|                            |     |                            |
|                            |     |                            |
|    +------------------+    |     |    +------------------+    |
|    |       Core       |    |     |    |       Core       |    |
|    |                  |    |     |    |                  |    |
|    | +-----+  +-----+ |    |     |    |          +-----+ |    |
|    | |AS C +--+AS B +----------------------------+AS F | |    |
|    | +-+---+  ++-+-++ |    |     |    |          +-+-+-+ |    |
|    |   |       | | |  |    |     |    | +-----+    | |   |    |
|    |   |       | | +--------------------+AS E +----+ |   |    |
|    |   |       | |    |    |     |    | +--+--+      |   |    |
|    +---|-------|-|----+    |     |    +----│---------|---+    |
|        |       | |         |     |         │         |        |
|        |       | |         |     |         │         |        |
|        | +-----+ |         |     |         │         |        |
|        | |       |         |     |         │         |        |
|        | |       |         |     |         │         |        |
|      +-+-+-+  +--+--+      |     |      +--+--+      |        |
|      |AS D |  |AS A |      |     |      |AS G +------+        |
|      +-----+  +-----+      |     |      +-----+               |
|                            |     |                            |
|            ISD 1           |     |            ISD 2           |
+----------------------------+     +----------------------------+

]]></artwork>
      </figure>
      <figure anchor="_figure-42">
        <name>Sequence diagram illustrating a path lookup for a destination D in the source ISD. The request (core, x, x) is for all pairs of core ASes in the source ISD. Similarly, (down, x, D) is for down segments between any core AS in the source ISD and destination D.</name>
        <artwork><![CDATA[
+---------+          +---------+          +---------+         +---------+
|Endpoint |          |Source AS|          | Core AS |         | Core AS |
|         |          | CS (A)  |          | CS (B)  |         | CS (C)  |
+--+-+-+--+          +----+----+          +----+----+         +----+----+
   | | |                  |                    |                   |
   | | |                  |                    |                   |
+--+-+-+------+           |                    |                   |
|Send Requests|           |                    |                   |
| in parallel |           |                    |                   |
+--+-+-+------+           |                    |                   |
   | | |                  |                    |                   |
   | | |request (up)      |                    |                   |
   +--------------------->|                    |                   |
   |<-- -- -- -- -- -- -- +                    |                   |
   | | | reply (up,[A->B])|                    |                   |
   | | |                  |                    |                   |
   | | |                  |                    |                   |
   | | |request (core,*,*)|                    |                   |
   | +------------------->|                    |                   |
   | | |                  |request (core,B,*)  |                   |
   | | |                  +------------------->|                   |
   | | |                  |<-- -- -- -- -- -- -+                   |
   | | |                  |  reply(core,[B->C])|                   |
   | |<-- -- -- -- -- -- -+                    |                   |
   | | | reply (core,[B->C])                   |                   |
   | | |                  |                    |                   |
   | | |                  |                    |                   |
   | | |request (down,*,D)|                    |                   |
   | | |           +------+------+             |                   |
   | | +---------->|send requests|             |                   |
   | | |           | in parallel |             |                   |
   | | |           +-----+-+-----+             |                   |
   | | |                 | |                   |                   |
   | | |                 | |request (down,B,D) |                   |
   | | |                 +-------------------->|                   |
   | | |                 |<-- -- -- -- -- -- --+                   |
   | | |                 | | reply(down,[B->D])|                   |
   | | |                 | |                   |                   |
   | | |                 | |                   |request (down,C,D) |
   | | |                 | +-------------------------------------->|
   | | |                 | |<-- -- -- -- -- -- -- -- -- -- -- -- --+
   | | |                 | |                   | reply(down,[C->D])|
   | | |                 | |                   |                   |
   | | |<-- -- -- -- -- -+++                   |                   |
   | | | reply (down,[B->D, C->D])             |                   |
   | | |                  |                    |                   |
+--+-+-+---------+        |                    |                   |
|Combine Segments|        |                    |                   |
+----+-----------+        |                    |                   |
     |                    |                    |                   |
     |                    |                    |                   |
     |                    |                    |                   |

]]></artwork>
      </figure>
      <figure anchor="_figure-43">
        <name>Sequence diagram illustrating a path lookup for a destination G in a remote ISD. The request (core, x, (2, x)) is for all path segments between a core AS in the source ISD and a core AS in ISD 2. Similarly, (down, (2, x), G) is for down segments between any core AS in ISD 2 and destination G.</name>
        <artwork><![CDATA[
        
+---------+     +---------+     +---------+     +---------+     +---------+
|Endpoint |     |Source AS|     | Core AS |     | Core AS |     | Core AS |
|         |     | CS (A)  |     | CS (B)  |     | CS (E)  |     | CS (F)  |
+--+-+-+--+     +----+----+     +----+----+     +----+----+     +----+----+
   | | |             |               |               |               |
   | | |             |               |               |               |
+--+-+-+------+      |               |               |               |
|Send Requests|      |               |               |               |
| in parallel |      |               |               |               |
+--+-+-+------+      |               |               |               |
   | | |             |               |               |               |
   | | |request (up) |               |               |               |
   +---------------->|               |               |               |
   | | |             |               |               |               |
   |<-- -- -- -- -- -+               |               |               |
   | | | reply (up,[A->B])           |               |               |
   | | |             |               |               |               |
   | | |             |               |               |               |
   | | |request (core,*,(2,*))       |               |               |
   | +-------------->|               |               |               |
   | | |             |request (core,*,(2,*))         |               |
   | | |             +-------------->|               |               |
   | | |             |<- -- -- -- -- +               |               |
   | | |             | reply (core,[B->E,B->F])      |               |
   | |<- -- -- -- -- +               |               |               |
   | | | reply (core,[B->E,B->F])    |               |               |
   | | |             |               |               |               |
   | | |             |               |               |               |
   | | |request (down,(2,*),G)       |               |               |
   | | |      +------+------+        |               |               |
   | | +----->|send requests|        |               |               |
   | | |      | in parallel |        |               |               |
   | | |      +-----+-+-----+        |               |               |
   | | |            | |              |request (down,E,G)             |
   | | |            +------------------------------->|               |
   | | |            |<-- -- -- -- -- -- -- -- -- -- -+               |
   | | |            | |              | reply (down,[E->G])           |
   | | |            | |              |               |               |
   | | |            | |              |               |               |
   | | |            | |              |               |request (down,F,G)
   | | |            | +--------------------------------------------->|
   | | |            | |<- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+
   | | |            | |              |               | reply (down,[F->G])
   | | |<- -- -- -- +++              |               |               |
   | | | reply (down,[E->G,F->G])    |               |               |
   | | |             |               |               |               |
+--+-+-+---------+   |               |               |               |
|Combine Segments|   |               |               |               |
+----+-----------+   |               |               |               |
     |               |               |               |               |
     |               |               |               |               |
     |               |               |               |               |

]]></artwork>
      </figure>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>Changes made to drafts since ISE submission. This section is to be removed before publication.</t>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-10">
        <name>draft-dekater-scion-controlplane-10</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>New section "Distribution of Cryptographic Material" containing definitions formerly in the gRPC API appendix</t>
          </li>
          <li>
            <t>New section "Destination Mapping" including a SIG reference</t>
          </li>
          <li>
            <t>New section "Lookup Requests Message Format" containing definitions formerly in the gRPC API appendix</t>
          </li>
          <li>
            <t>Move appendix "Use of the SCION Data Plane" to new section "Control Service Discovery"</t>
          </li>
          <li>
            <t>Mention ConnectRPC as main RPC method instead of gRPC</t>
          </li>
          <li>
            <t>Remove appendix "Full Control Service gRPC API" and move corresponding protobuf definitions in new sections mentioned above</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Rename Inter-ISD Beaconing into Core Beaconing for consistency</t>
          </li>
          <li>
            <t>Clarify descriptions of fields in the <tt>HeaderAndBody</tt> message and that metadata must be empty</t>
          </li>
          <li>
            <t>AS Entry Signature: fix order of terms in one formula, clarify validity and meaning of associated data</t>
          </li>
          <li>
            <t>PCB Extensions: clarified text, added example of the <tt>StaticInfoExtension</tt> and informative reference</t>
          </li>
          <li>
            <t>PCB Validity: clarify text on timestamp validity and time allowances</t>
          </li>
          <li>
            <t>Reception of PCBs: mention that incoming link <bcp14>MUST</bcp14> be core or parent</t>
          </li>
          <li>
            <t>PCB selection policies: discourage use for traffic engineering</t>
          </li>
          <li>
            <t>Best PCBs Set Size: clarify tradeoffs and avoid normative language when unnecessary</t>
          </li>
          <li>
            <t>Path reversibility: mention that destination endpoints should estimate MTU</t>
          </li>
          <li>
            <t>Move considerations on SCMP Authentication to the security considerations section (Rogue SCMP Error Messages)</t>
          </li>
          <li>
            <t>Security Properties: use normative language to clarify assumptions</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-09">
        <name>draft-dekater-scion-controlplane-09</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>"SCION AS numbers": make text representation for lower 32-bit ASes consistent with PKI draft, add reference to allocation.</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Nits and wording improvements</t>
          </li>
          <li>
            <t>Reviewed use of normative language</t>
          </li>
          <li>
            <t>Figures: redraw and use aasvg when possible</t>
          </li>
          <li>
            <t>"Paths and Links": clarify relationship between path segments and links</t>
          </li>
          <li>
            <t>Ensure consistent use of example ranges</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-08">
        <name>draft-dekater-scion-controlplane-08</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>Abstract: reword, mention goal and that document is not an Internet Standard</t>
          </li>
          <li>
            <t>"Propagation of PCBs" section:
            </t>
            <ul spacing="normal">
              <li>
                <t>clarify checks at reception</t>
              </li>
              <li>
                <t>introduce criteria for PCB selection policies</t>
              </li>
              <li>
                <t>remove superfluous policy example figure</t>
              </li>
              <li>
                <t>Propagation Interval and Best PCBs Set Size: mention tradeoff between scalability and amount of paths discovered.</t>
              </li>
              <li>
                <t>reorganize order of paragraphs</t>
              </li>
            </ul>
          </li>
          <li>
            <t>New section "Security Properties" in Security considerations, based on formal model of SCION</t>
          </li>
          <li>
            <t>New figure: Control Service RPC API - Trust Material definitions</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Moved "Special-Purpose SCION AS Numbers" table later in text</t>
          </li>
          <li>
            <t>Split "Circular dependencies and partitioning" into two sections: "Bootstrapping ability" and "Resistance to partitioning".</t>
          </li>
          <li>
            <t>Explain why PCBs have a next_isd_as field</t>
          </li>
          <li>
            <t>Qualified better the choice of time allowance in the definition of segment from the future in section "PCB Validity".</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-07">
        <name>draft-dekater-scion-controlplane-07</name>
        <ul spacing="normal">
          <li>
            <t>Moved SCMP specification from draft-dekater-scion-dataplane-03 to this document</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-06">
        <name>draft-dekater-scion-controlplane-06</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>New section: Path MTU</t>
          </li>
          <li>
            <t>New section: Monitoring Considerations</t>
          </li>
          <li>
            <t>Completed description of Control Services RPC API in appendix</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Introduction: clarify goal of the document</t>
          </li>
          <li>
            <t>Clarify typical vs recommended-limits values for best PCB set size and for certificate validity duration.</t>
          </li>
          <li>
            <t>Clarify text representation of ISD-AS</t>
          </li>
          <li>
            <t>General rewording</t>
          </li>
          <li>
            <t>Added reference to SCIONLab as a testbed for implementors</t>
          </li>
          <li>
            <t>Introduced this change log</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-05">
        <name>draft-dekater-scion-controlplane-05</name>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Clarify beaconing fast retry at bootstrapping</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-controlplane-04">
        <name>draft-dekater-scion-controlplane-04</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>Clarified selection of MAC including a default algorithm</t>
          </li>
          <li>
            <t>New section: PCB validity</t>
          </li>
          <li>
            <t>New section: configuration</t>
          </li>
          <li>
            <t>New section: Path Discovery Time and Scalability</t>
          </li>
          <li>
            <t>New section: Effects of Clock Inaccuracy</t>
          </li>
          <li>
            <t>New appendix: Control Service RPC API</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Introduction: Added overview of SCION components</t>
          </li>
          <li>
            <t>Clarified path reversibility, link types, Interface IDs</t>
          </li>
          <li>
            <t>Fixed private AS range typo</t>
          </li>
          <li>
            <t>Clarified PCB selection policies and endpoint requirements</t>
          </li>
          <li>
            <t>Clarified PCB propagation</t>
          </li>
          <li>
            <t>General edits to make terminology consistent, remove duplication and rationalize text</t>
          </li>
          <li>
            <t>Removed forward references</t>
          </li>
          <li>
            <t>Added RFC2119 compliant terminology</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
77nMSENKvd8/+dtf/ze7N8fF7G9//T/1slDT0/pCXF6lZC8h6Wvi6grIk5W9
tHGxgwiW3LMUHo1JNpXhr6x9dD4PycSc7p1YDfRq3mKml0LVvMaS6W2cVCgh
Tb0kneaFGDBDmly5pnSqtmEkbmGlVa/tPgAYqt0za0DlHAHvWvtT/YweK9xJ
ymlLCvobOdNrjvlGSNaFItmleZHBw06L1ZxJbSc7jaWxMyNxtGVOAtXPIeAw
W9Z03Vk3tE4fwRNLbzAuCiZmqE5oTHPBsMc6Ux+9ltw7jerlGsT8yYLPrHak
pQuZTvzWB4yokFAg38c3Jj6Y8LRz2iRzt/CZtmruOA+z+t0nvkBaeFO1mMwt
eMuqwoym/gTmGCLwmd4o+aI16HVuL6N8X+audOvYM/qvw0YIB+NNM4bMGwCd
3gSCizmpo5hMPinWj5jTFtE6SUK7G9KJOXUOlmYjX3wh6p/NiQ5kGFiigetu
6iKHtS1LLwpwLbCOeL91F0EG4vCUb2obbfWpiC1SZY4KuB0yN5yTeAJaAeZ1
hydgLYsB23jqiYtcxVzcYref5IzYAMqyaNlEj6zHP5ubWuMsMmhEQkxOe0+d
88PtYmDBsJN7Uvn3mRVtDxPZRD5/F55lGerauofOz/C6ZQw6TWRP5iZzJMB5
ai6Ra7QH1xRZCiw+7BC20eU9GS5K5xcJtWko2SOQk7MoOrW4BjPSQMi6nHu9
nOLcbxotFqp6U+RDjdjY9XvwYJ808IUopt/zQp77hbBH70zJ8MGD5Jt++a24
P70B7c6pQRIuY8JFYcJ8lZrlofFjIslwOzEJiWGEcBO8GQxIylfYwv1qMhRM
PqZGwJbwfkxWzMdXVT5QRDfj01bIUDf2GEociX6smrg5MV9p8JIWrc9bxLgR
i3Iqzb9T4yoQAwMXeucog/kMRVhVITSHY2dy1z3zbTjuwFfVcdBpm7sw8oa8
EVpQpQWXrKKNyoCdT7snHkzTduNBYTRmgwXfarGAWkkhaLg5l22v0Fkt2JG8
tD1hIcZmlWCzs+UYLZTDDbHvjKVfqUaAY5TcFMVVtcC2ZTZZ6QYbP6KlITai
10mai4m9TzdSdXzmDWT3lripKj8jbtKnR0LPyrThVuWt1nZyZPOXNNB/LqTZ
qwoZlec+kMK+D5oAsEagZ8/923GH/0BSYEzqWbLP19Juat23vsNvZj+I+Bxx
USQuWOjeLyNhCw7RcZEJ1y1G3b46OMyoAqtyXxmQaiCB+XgGu3rd5LJXbN+G
qRonu7zUk91Plt+mTlLlF6zRsWoutoxyB1qifF+ZgbVgjTmAbxTOX67lUFg6
ROhf6JhTQahI2pDYbRl6b7I+FJlZQYTCbwvTQaYWSD4N0qQklLrfuJr4bQ6n
TeMVMXNsvgd3DdkGeAM31Ab1mszgGMtVrd06OPRRjWglLqMd+zh2yz5mMiFp
WCfRVJ/lMeM5it27EP51IWF8DvlxW14f5BDWarLdbQLZTP5OQd6DFGvDiLoW
rw98jhVY9RZEkxI+Gd+1DnsjvUs1cCRovbCrTAmalLecfMc61kiD6bSU/hvZ
W0mu8b4R+1Jgs/Imivst+KtLV/SnS/epUMEeOSJdoIpdrs71Jpo0r6PsNAbj
2aLSJR2YbxBSpz6vxsSZzsN5jh2cuAR7kCOEfBO488B84JuAOuA1iQ6ZRPNx
MQx7O2OYS+Ns5lVFCDtDC+Beckrji3tEuTsMNyRnXZA0WZTZhYNR4oAlXObp
pDYq90Cemu+nuSoyfmfKv+gti6k3a3rJHzRzwxnn/gQC+05ETFV0SZLCXKqt
yJIF+QxZsQuybMHbXxTnCysDj3p0EJcXNi+fLUE23vrxhoaH27d14uZv39Dn
cFtixhbdFIM87ZtJLias5D2CePmmo3NqaC5zzpp3Y2hHbA3djX34zjPZRhdv
zxrUI+0dbIPAt3eRXGbpT8nYCWZplDXOSCOXJuae+EZluhguJhIlD1usSvgO
izO/HVqmc5+ycSbuRdwcmiEraJZgKQJnIuHA7d7G82Lucoxc6KKfOb9RIFRi
B3qtZS5kRfyA2k/WHXyYsC9TMvmke4wmy8Gi43yOoE/cRDInGvm+qlnASSIp
uuqGXZqPEPe8l9xy0rNyySqPM3RJw7pYTHX+PZWNxibjR90xqJEZJlJpv7Mo
nYZPtMUZK1zemfDu8dQZ0+bK8hYbG2KBwdxLfigmC+JbJVHnUXFmN7qzPBta
1RWoJSyU6DxAzPkAvg1E5ALhUPnV9swHxQ3hFYbuYgaTuO6yUU9SfiHDjdNF
NXeqDXS2y3zIvmoTy5XXSb2GGQbqAkGqtpVFYUV+0HQr0KuaUy+ykfohSEWs
uFuc53MstV3wEi932IQiU60joYJjFIEbQaLzmk0t6psIGdqdf2UKCLiujOKb
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
ngm7NoSrahkBj4Roe9f3wPnrYGCfuYbfL03jYHdGUMSW1LQXhgerS6Jgv1b+
Y/C3jWsLeoVbcH0mwnr/LPyjk8TXbX/bqJOnPXCWbO1vt/zxYDsmafztcFt3
W2i2sZCHbat72LI6+c9G4jhq/aeVZNr+eH0/g/g11al8jUGuzxD3Nozx61ue
XzZIwi5yJMmSdX3HQe5lOcl9no75bLcWs+27DNJ+f79dcybfdLtJ83+teIa3
7IkgkdJqOj/ud789+NP2L7Wx9zKIOx0o+p0HnQdrL6ftfNY9nSXLiSd3QJNb
f5CVp3fjTNrIp414bjkdph1ZzY8H3W8P24nHBln1pStSbPja9QdZ6fm/K8Ui
7k8Ue/SeF9BYZZNj3jLIw5CgOOuybBEAa8xkuQBYezkmAdZYTvPD1hO7wyDx
iR3Qia07SKsMWPcWt8uANW+xu0+yGFyno5tv8Qfc2LYvxJt9yJt90yArws5+
e/NM2sVrc7PX35Nwsw9ls+93YxtTf/iwlSZuHMR4rCeKTiKzXWeQlV66ZJBY
8Quv/joq6CHHdzNXFHJ90/PLZxKjGd9lJus9/6sfpGFl7pqVedZw6JpHXUtT
A4MTLtA0cvUeNb244jaPVafkLf1vG87WkUKbAm6scohr7f7gXhIkyAtpY6Aj
N1BUxhYh1xrYWGNMKZgIV9Dz5rPtV8OMfo/fG4Z03Yaum883/N4wpetWdN2A
lt+Pa78/aTWm6ybzGr+3c5A6Jd76+30N02qDrj9Mq1F9h2HatKpfbFHJ/Z5U
ZFzfaZiG/G+oVX/XRTWl8d1n07DUf6lFfYgDV3t9a5es4u31hnn4gQ78xrmt
PMzas1sym29udvWsfFJ16/m4Q/958qclvixvu6/39uWzuen9v3kqZqWC6aTz
dE0qdrNZYsCvPMxDpbN2E37d2Swx4u+2qIYZf7eTatgWtQM49pt/0zC3mYrN
q9o+m9uMxWaoabVFxUbYcffbpzHLX3WYW37/ZYeJT+4JndySgdbrJ7PEvm9y
stvO7q67E53dEz67wEQPOGndOl+flXr66DxxRPILacd6ue+g1raZ6neaTdNY
vxNjv8PXfuXDNIz2x/djtD9t5lK1m+wkGMlsr9ntYXK+M7lvMbijzzmK3mbb
y+s6ydP1DHyJytft+qdi1/8uOZSKt++L8/YkQvlckTpRzoes0EoLGp+dHQPf
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

-->

</rfc>
