<?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.6.35 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-controlplane-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title abbrev="SCION CP">SCION Control Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-controlplane-00"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>cdk@scion.org</email>
      </address>
    </author>
    <author initials="M." surname="Frei" fullname="Matthias Frei">
      <organization>SCION Association</organization>
      <address>
        <email>matzf@scion.org</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <date year="2023" month="June" day="26"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 139?>

<t>This document describes the control 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 SCION-capable endpoints. In fact, endpoints can choose between multiple path options, enabling the optimization of network paths. The SCION control plane is responsible for discovering these paths and making them available to the endpoints.</t>
      <t>The main goal of SCION's control plane is to create and manage path segments, which can then be combined into forwarding paths to transmit packets in the data plane. This document first discusses how path exploration is realized through beaconing and how path segments are created and registered. Each SCION autonomous system (AS) can register segments according to its own policy - it is free to specify which path properties and algorithm(s) to use in the selection procedure. The document then describes the path lookup process, where endpoints obtain path segments - a fundamental building block for the construction of end-to-end paths.</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 146?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The SCION control plane is responsible for discovering path segments and making them available to endpoints. This process includes path exploration, registration, and lookup. This section explains the basic concepts of the control plane in SCION and introduces SCION's routing concept.</t>
      <t>As SCION is an <em>inter-domain</em> network architecture, it only deals with <em>inter</em>-domain routing. One feature of SCION is the decoupling of inter-domain routing from endpoint addressing. This Introduction section provides a description of the SCION addressing system in more detail.</t>
      <t><strong>Note:</strong> It is assumed that readers of this draft are familiar with the basic concepts of the SCION next-generation inter-domain network architecture. If not, please find more detailed information in the IETF Internet Drafts <xref target="I-D.scion-overview"/>, <xref target="I-D.scion-components"/>, and <xref target="I-D.scion-cppki"/>, as well as in <xref target="CHUAT22"/>, especially Chapter 2. A short description of the SCION basic terms and elements can be found in <xref target="terms"/> below.</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 network nodes. The control plane thus determines where traffic can be sent and deals with questions such as how paths are discovered, which paths exist, what quality individual links offer, etc. Within a SCION AS, such functionalities are carried out by the control service. Packet forwarding is instead a task pertaining to 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").</t>
        <t><strong>Endpoint</strong>: An endpoint is the start- or the endpoint of a SCION path. For example, an endpoint can be a host as defined in <xref target="RFC1122"/>, or a gateway bridging a SCION and an IP domain. This definition is based on the definition in <xref target="I-D.path-properties-voc"/>.</t>
        <t><strong>Forwarding Path</strong>: A forwarding path is a complete end-to-end path between two SCION hosts, which is used to transmit packets in the data plane and 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), info fields 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 (i.e., 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>Packet-Carried Forwarding State (PCFS)</strong>: Rather than relying on costly inter-domain forwarding tables, SCION data packets contain all the necessary path information. We refer to this property as packet-carried forwarding state or PCFS.</t>
        <t><strong>Path Segment</strong>: Path segments are derived from path-segment construction beacons (PCBs) and registered at control services. 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 ASes generate PCBs to explore paths within their isolation domain (ISD) and among different ISDs. ASes further propagate selected PCBs to their neighboring ASes. As a PCB traverses the network, it carries path segments, which can subsequently be used for traffic forwarding.</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-and-links">
        <name>Paths and Links</name>
        <t>SCION routers and endpoints connect to each other via links. A SCION path between two endpoints essentially 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 span an area with a uniform trust environment (i.e., a common jurisdiction). An ISD is administered by a set of distinguished ASes called core ASes. Within and between ISDs, SCION supports three types of links: (1) core links, (2) parent-child links, and (3) peering links.</t>
        <ul spacing="normal">
          <li>A <em>core</em> link always connects two core ASes, which are either within the same or in a different ISD. Core links can exist for various underlying business relationships, including provider-customer (where the customer pays the provider for traffic) and peering relationships.</li>
          <li>
            <em>Parent-child</em> links create a hierarchy between the parent and the child. ASes with a parent-child link typically have a provider-customer relationship.</li>
          <li>
            <em>Peering</em> links exist between ASes with a (settlement-free or paid) peering relationship. Peering links can only be used to reach destinations within or downstream of the peering AS. They can be established between any two core or non-core ASes, and between core and non-core ASes. Peering links can also cross ISD boundaries.</li>
        </ul>
        <t>Each link connecting SCION routers is bidirectional and identified by its corresponding egress and ingress interface IDs. These interface IDs only need to be unique within each AS. Therefore, they can be chosen and encoded by each AS independently and without any need for coordination.</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. SCION inter-domain routing operates on two levels: Within a SCION isolation domain (ISD), which is called <em>intra</em>-ISD routing, and between ISDs, called <em>inter</em>-ISD routing. Both levels use the so-called <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 on 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, who carry this information in their packet headers. This concept is called <em>packet-carried forwarding state</em>. The concept 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>
            <em>Path exploration (or beaconing)</em>: This is the process where an AS discovers paths to other ASes. See also <xref target="beaconing"/>.</li>
          <li>
            <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"/>.</li>
          <li>
            <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"/>.</li>
        </ol>
        <t>All processes operate concurrently.</t>
        <t><xref target="_figure-1"/> below shows the SCION routing processes and their relation to each other.</t>
        <figure anchor="_figure-1">
          <name>SCION routing processes and their relation to each other. All processes operate concurrently</name>
          <artwork><![CDATA[
+-------------------------+       +-------------------------+
| Exploration (Beaconing) |------>|      Registration       |
+-------------------------+       +-----------+-------------+
                                              |
                              +---------------+
                              |
     +------------------------v------------------------+
     |                 Path Resolution                 |
     |                                                 |
     |   +----------------+       +----------------+   |
     |   |     Lookup     +------>|  Combination   |   |
     |   |                |       |    (Data Plane)|   |
     |   +----------------+       +----------------+   |
     +-------------------------------------------------+
]]></artwork>
        </figure>
        <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. The control service of an AS has the following tasks:</t>
        <ul spacing="normal">
          <li>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.</li>
          <li>Selecting and registering the set of path segments via which the AS wants to be reached.</li>
          <li>Managing certificates and keys to secure inter-AS communication. Each PCB contains signatures of all on-path ASes. Every 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.</li>
        </ul>
        <t><strong>Note:</strong> The control service of an AS must not be confused with a border router. The control service of a specific AS is part of the control plane and responsible for <em>finding and registering suitable paths</em>. It can be deployed anywhere inside the AS. A border router belongs to the data plane; its main task is to <em>forward data packets</em>. Border routers are deployed at the edge of an AS.</t>
        <section anchor="path-segments">
          <name>Path Segments</name>
          <t>As described previously, the main goal of SCION's control plane is to create and manage path segments, which can then be combined into forwarding paths to transmit packets in the data plane. SCION distinguishes the following types of path segments:</t>
          <ul spacing="normal">
            <li>A path segment from a non-core AS to a core AS is an <em>up-segment</em>.</li>
            <li>A path segment from a core AS to a non-core AS is a <em>down-segment</em>.</li>
            <li>A path segment between core ASes is a <em>core-segment</em>.</li>
          </ul>
          <t>So each path segment either ends at a core AS, or starts at a core AS, or both.</t>
          <t><strong>Note:</strong> There are no SCION path segments that start and end at a non-core AS. However, when combining path segments into an end-to-end SCION path, it is possible to use peering links. For more information on SCION and peering links, see <xref target="beaconing"/>.</t>
          <t>All path segments are invertible: A core-segment can be used bidirectionally, and an up-segment can be converted into a down-segment, or vice versa, 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>
        </section>
      </section>
      <section anchor="numbering">
        <name>Addressing</name>
        <t>The inter-domain SCION routing is based on the &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 can be of variable length, does not need to be globally unique, and can thus be an IPv4, IPv6, or MAC address, for example - in fact, the endpoint address is the "normal", currently used, non-SCION-specific endpoint address.</t>
        <t>However, the ISD-AS number is a SCION-specific number. It consists of 64-bits, with the top 16 bits indicating the ISD, and the bottom 48 bits indicating the AS. The text representation uses a <tt>-</tt>(dash) separator between the ISD and AS numbers, for example: <tt>4-ff00:1:f</tt>. This section provides more details about the numbering scheme for SCION ISD and AS numbers.</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. It <bcp14>MUST</bcp14> be globally unique. 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">Reserved for future use.</td>
              </tr>
            </tbody>
          </table>
          <t>A suitable mechanism to globally coordinate the assignation of ISD numbers does not yet exist. However, we hope that in the future an organization such as ICANN or a regional Internet registry (e.g., RIPE NCC) will take on the responsibility of assigning ISD and AS numbers.</t>
          <t>Currently, ISD numbers are allocated by Anapaya, the Swiss-based provider of SCION-based networking software and solutions.</t>
        </section>
        <section anchor="as-numbers">
          <name>AS numbers</name>
          <t>An AS number is the 48-bit identifier for an AS.  SCION inherits the existing 32-bit AS numbers from RFC4893, but provides an extended 48-bit space, allowing for additional SCION-only AS numbers beyond the 32-bit space in use today.</t>
          <section anchor="formatting">
            <name>Formatting</name>
            <t>The default formatting for AS numbers in SCION is very similar to IPv6 (see <xref target="RFC5952"/>). It uses a 16-bit <tt>:</tt>-separated lower-case hex encoding with leading 0's ommitted: <tt>0:0:0</tt> to <tt>ffff:ffff:ffff</tt>.</t>
            <t>In SCION, the following rules apply:</t>
            <ul spacing="normal">
              <li>The <tt>::</tt> zero-compression feature of IPv6 is NOT allowed. The feature has very limited use in a 48-bit address space and would only add more complexity.</li>
              <li>In order to provide easy comparison with BGP AS numbers, any AS number in the BGP AS range (0 - 2<sup>32-1</sup>) <bcp14>SHOULD</bcp14> be represented as decimal. It is allowed to write a BGP AS number in the SCION AS syntax. However, programs <bcp14>SHOULD</bcp14> always use the decimal representation for display. For example, if a program receives the AS number <tt>0:1:f</tt>, it should display the number as "65551".</li>
              <li>A range of AS numbers can be shortened with a notation similar to the one used for CIDR IP ranges (<xref target="RFC4632"/>). For example, the range of the lowest 32-bit AS numbers (0-4294967295) can be represented as <tt>0:0:0/16</tt>.</li>
            </ul>
            <t>The next table gives an overview of the AS number allocation.</t>
            <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">0</td>
                  <td align="left">1</td>
                  <td align="left">The wildcard AS</td>
                </tr>
                <tr>
                  <td align="left">1-4294967295</td>
                  <td align="left">~4.3 bill.</td>
                  <td align="left">32-bit BGP AS numbers, formatted as decimal. If a BGP AS deploys SCION, it has the same AS number for both BGP and SCION.<sup>1</sup></td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>1:0:0</tt></td>
                  <td align="left">1</td>
                  <td align="left">Reserved</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>2:0:0/16</tt></td>
                  <td align="left">~4.3 bill.</td>
                  <td align="left">Public SCION-only ASes (i.e., ASes that are created for SCION, and are no existing BGP ASes). They should be allocated in ascending order, without gaps and "vanity" numbers.</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ff00:0:0/32</tt></td>
                  <td align="left">65535</td>
                  <td align="left">Reserved for documentation and test/sample code (analogous to <xref target="RFC5398"/>).</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>ff00:0:0/24</tt></td>
                  <td align="left">~16.8 mill.</td>
                  <td align="left">Reserved for private use (analogous to <xref target="RFC6996"/>). These numbers can be used for testing/private deployments.</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>
            <t>1) Some 32-bit AS numbers are reserved for special purposes. For more details, see <eref target="https://www.iana.org/assignments/iana-as-numbers-special-registry/iana-as-numbers-special-registry.xhtml">"IANA: Special-Purpose Autonomous System (AS) Numbers"</eref>.</t>
            <t>The rest of the space is currently unallocated.</t>
          </section>
        </section>
        <section anchor="serv-disc">
          <name>Wildcard Addressing</name>
          <t>SCION allows endpoints to use wildcard addresses in the control-plane routing, to designate any core AS, e.g., to place requests for core- or down path segments during path lookup. These wildcard addresses are of the form I-0, to designate any AS in ISD I. Here, "0" is the wildcard for the AS. For more information, see <xref target="wildcard"/>.</t>
        </section>
      </section>
      <section anchor="communication-protocol">
        <name>Communication Protocol</name>
        <t>All communication between the control services in different ASes is expressed in terms of gRPC remote procedure calls (for details, see <eref target="https://grpc.io"/>). Service interfaces and messages are defined in the Protocol Buffer "proto3" interface definition language (for details, see <eref target="https://protobuf.dev"/>).</t>
        <t><strong>Note:</strong> The details for how gRPC is mapped to the SCION data plane will be described in a separate document.</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>. This section gives a detailed explanation of the SCION beaconing process.</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 so-called <em>path-segment construction beacons (PCBs)</em> on a regular basis, to iteratively construct path segments. PCBs contain 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>inter-ISD</em> or core beaconing is based on the (selective) sending of PCBs without a defined direction, and <em>intra-ISD</em> beaconing on top-to-bottom propagation.</t>
        <ul spacing="normal">
          <li>
            <em>Inter-ISD or core 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. Core beaconing is periodic; PCBs are sent over policy-compliant paths to discover multiple paths between any pair of core ASes.</li>
          <li>
            <em>Intra-ISD beaconing</em> creates path segments from core ASes to non-core ASes. For this, the control service of a core AS creates PCBs and sends them to the non-core child ASes (typically customer ASes). The control service of a non-core child AS receives these PCBs and forwards them to its child ASes, and so on. This procedure continues until the PCB reaches an AS without any customer (leaf AS). As a result, all ASes within an ISD receive path segments to reach the core ASes of their ISD.</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 are added to the PCB.</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="extending-a-pcb">
          <name>Extending a PCB</name>
          <t>Every propagation period (as configured by the AS), the control service</t>
          <ul spacing="normal">
            <li>selects the best combinations of PCBs and interfaces connecting to a neighboring AS (i.e., a child AS or a core AS), and</li>
            <li>sends each selected PCB to the selected egress interface(s) associated with it.</li>
          </ul>
          <t>For every selected PCB and egress interface combination, the AS extends the PCB by adding a so-called <em>AS entry</em> to the selected PCB. Such an AS entry includes a hop field that specifies the incoming (ingress) and outgoing (egress) interface for the packet forwarding through this AS, in the beaconing direction. The AS entry can also contain peer entries.</t>
          <ul spacing="normal">
            <li>For the specification of one PCB, see <xref target="pcbs"/></li>
            <li>For more details on selecting PCBs, see <xref target="selection"/></li>
            <li>For more details on propagating PCBs, see <xref target="path-segment-prop"/></li>
          </ul>
        </section>
        <section anchor="one-hop-paths">
          <name>One-Hop Paths</name>
          <t>To propagate PCBs to neighboring ASes to which no forwarding path is available yet, SCION uses so-called <em>one-hop paths</em>. The One-Hop Path Type will be described in more detail in the SCION Data Plane specification (this document will be available later this year).</t>
        </section>
        <section anchor="pcb-propagation-illustrated-examples">
          <name>PCB Propagation - Illustrated Examples</name>
          <t><xref target="_figure-2"/> below shows how intra-ISD PCB propagation works, from the ISD's core AS down to child ASes. For the sake of illustration, the interfaces of each AS are numbered with integer values. In practice, each AS can choose any encoding for its interfaces; in fact, only the AS itself needs to understand its encoding. Here, AS F receives two different PCBs via two different links from core AS Core. Moreover, AS F uses two different links to send two different PCBs to AS G, each PCB containing the respective egress interfaces. AS G extends the two PCBs and forwards both of them over a single link to a child AS.</t>
          <figure anchor="_figure-2">
            <name>Intra-ISD PCB propagation from the ISD core to child ASes</name>
            <artwork><![CDATA[
                                .-------.
            +--------+        ,'         `.
            |PCB     |       ;             :
            |========|       :    Core     ;    +--------+
            |Core    #---+    \           /     |PCB     |
            |- Out:2 |   |     `. 2   1 ,'  -- -+++++++++|
            +--------+   |       `+---+'   |    |Core    |
                         |        |   |    |    |- Out:1 |
                         |        |   |         +--------+
    +--------+           | +-----+|   |    |
    |PCB     |           +-# PCB ||   |    |
    |========|             +--+--+|   |+-----+
    |Core    |                |   |   || PCB |
    |- Out:2 |                v   |   |+--+--+
    |--------|                    |   |   |
    |AS F    |          .---.     |   |   v
    |-In:2   #----+    (  J  )    |   |
    |-Out:7  |    |     `---'     |   |       .---.
    |-PeerJ:1|    |       |       |   |      (  H  )
    |-PeerH:4|    |       |     .-v---v-.     `---'
    +--------+    |        --,-'  2   3  '-.    |
+--------+      +-#---+     / 1             \   |
|PCB     |  <---+ PCB |    ;               4 :--
|++++++++|      +-----+    :      AS F       ;
|Core    |  <---------------\ 7             /
|- Out:1 |         +-----+   \             /
|--------|     <---+ PCB |    '-. 6   5 ,-'
|AS F    |         +--+--+       `+---+'        +---------+
|-In:3   |            |           |   |         | PCB     |
|-Out:7  + -- -- -- --            |   |         | ========|
|-PeerJ:1|                        |   |         | Core    |
|-PeerH:4|   +--------+           |   |         | - Out:2 |
+--------+   |PCB     |           |   |         | --------|
             |========|           |   |         | AS F    |
             |Core    |           |   |+-----+  | -In:2   |+---------+
             |- Out:2 |           |   || PCB #--# -Out:5  || PCB     |
 +--------+  |--------|           |   |+--+--+  | -PeerJ:1|| ++++++++|
 |PCB     |  |AS F    |    +-----+|   |   |     | -PeerH:4|| Core    |
 |++++++++|  |-In:2   #---#| PCB ||   |   v     +---------+| - Out:1 |
 |Core    |  |-Out:6  |    +--+--+|   |                    | --------|
 |- Out:1 |  |-PeerJ:1|       |   |   | +-----+            | AS F    |
 |--------|  |-PeerH:4|       v   |   | | PCB +- -- -- -- -+ -In:3   |
 |AS F    |  +--------+  +-----+  |   | +--+--+            | -Out:5  |
 |-In:3   +- -- -- -- -- + PCB |  |   |    |               | -PeerJ:1|
 |-Out:6  |              +--+--+  |   |    v               | -PeerH:4|
 |-PeerJ:1|                 |     |   |                    +---------+
 |-PeerH:4|                 v   .-v---v-.
 +--------+                  ,-'  5   1  '-.
                            /               \
                  <--------; 4               : +---------+
                           :      AS G       ; | PCB     |
               +--------+   \               /  | ========|
               |PCB     |    \             /   | Core    |
               |========|     '-.   3   ,-'    | - Out:2 |
               |Core    |        `--+--'       | --------|
   +--------+  |- Out:2 |           |          | AS F    |+---------+
   |PCB     |  |--------|           |          | -In:2   || PCB     |
   |++++++++|  |AS F    |           | +-----+  | -Out:5  || ++++++++|
   |Core    |  |-In:2   |           | | PCB #--# -PeerJ:1|| Core    |
   |- Out:1 |  |-Out:6  |    +-----+| +--+--+  | -PeerH:4|| - Out:1 |
   |--------|  |-PeerJ:1#----# PCB ||    |     | --------|| --------|
   |AS F    |  |-PeerH:4|    +--+--+|    v     | AS G    || AS F    |
   |-In:3   |  |--------|       |   |          | -In:1   || -In:3   |
   |-Out:6  |  |AS G    |       v   |          | -Out:3  || -Out:5  |
   |-PeerJ:1|  |-In:5   |           |          +---------+| -PeerJ:1|
   |-PeerH:4|  |-Out:3  |           | +-----+             | -PeerH:4|
   |--------|  +--------+   +-----+ | | PCB |-- -- -- -- -+ --------|
   |AS G    +- -- -- -- -- -+ PCB | | +--+--+             | AS G    |
   |-In:5   |               +--+--+ |    |                | -In:1   |
   |-Out:3  |                  |    |    v                | -Out:3  |
   +--------+                  v    |                     +---------+
                                    |
                                    v
]]></artwork>
          </figure>
          <t>PCBs are used to explore paths within or between ISDs. As PCBs traverse the network, they accumulate path and forwarding information on AS-level. One could say that a PCB represents a single path segment that can be used to construct end-to-end forwarding paths. However, there is a difference between a PCB and a (registered) path segment. A PCB is a so-called "travelling path segment" that accumulates AS entries as it transits the network, as is shown in <xref target="_figure-2"/>. A (registered) path segment, instead, is a "snapshot" of a travelling PCB at a given time T and on a given AS interface X. This is illustrated by <xref target="_figure-3"/>. This figure shows several possible path segments to reach AS G. It is up to AS G to decide via which of these path segments it wants to be reached, and thus which path segments it will register.</t>
          <figure anchor="_figure-3">
            <name>Possible up- or down-path segments for AS G</name>
            <artwork><![CDATA[
                 AS Entry Core         AS Entry F            AS Entry G

                           .---.
                          (  H  )- -- -- +
                           `---'         |
                    .-----.             .-------.            .------.
                  ,'       `.        ,-' 4       '-.       ,'        `.
                 ;           :      /       AS F    \     ;            :
path segment 1   :  Core   1 ;     ; 3             5 :    : 1   AS G   ;
                  \         /      :                 ;     \          /
                   `.   2 #---------#-2-----------6-#--------# 5    ,'
                     `---'           \             /          `----'
                                      '-. 1   7 ,-'
                                         `-----'
                              .---.       |
                             (  J  )-- -- +
                              `---'
                  egress 2          ingress 2 - egress 6     ingress 5
                                      Peer J: ingress 1
                                      Peer H: ingress 4
------------------------------------------------------------------------
                           .---.
                          (  H  )- -- -- +
                           `---'         |
                    .-----.             .-------.            .------.
                  ,'       `.        ,-' 4       '-.       ,'        `.
                 ;           :      /       AS F    \     ;            :
path segment 2   :  Core   1 ;     ; 3        +----5-#----# 1   AS G   ;
                  \         /      :          |      ;     \          /
                   `.   2 #---------#-2-------+     /       `. 5    ,'
                     `---'           \            6/          `----'
                                      '-. 1   7 ,-'
                                         `-----'
                              .---.       |
                             (  J  )-- -- +
                              `---'
                  egress 2          ingress 2 - egress 5     ingress 1
                                      Peer J: ingress 1
                                      Peer H: ingress 4
------------------------------------------------------------------------
                           .---.
                          (  H  )- -- -- +
                           `---'         |
                    .-----.             .-------.            .------.
                  ,'       `.        ,-' 4       '-.       ,'        `.
                 ;           :      /       AS F    \     ;            :
path segment 3   :  Core   1 #-----#-3-----+       5 :    : 1   AS G   ;
                  \         /      :       |         ;     \          /
                   `.   2 ,'        \ 2    +------6-#--------# 5    ,'
                     `---'           \             /          `----'
                                      '-. 1   7 ,-'
                                         `-----'
                              .---.       |
                             (  J  )-- -- +
                              `---'
                  egress 1          ingress 3 - egress 6     ingress 5
                                      Peer J: ingress 1
                                      Peer H: ingress 4
------------------------------------------------------------------------
                           .---.
                          (  H  )- -- -- +
                           `---'         |
                    .-----.             .-------.            .------.
                  ,'       `.        ,-' 4       '-.       ,'        `.
                 ;           :      /       AS F    \     ;            :
path segment 2   :  Core   1 #-----#-3-------------5-#----# 1   AS G   ;
                  \         /      :                 ;     \          /
                   `.   2 ,'        \ 2             /       `. 5    ,'
                     `---'           \            6/          `----'
                                      '-. 1   7 ,-'
                                         `-----'
                              .---.       |
                             (  J  )-- -- +
                              `---'
                  egress 1          ingress 3 - egress 5     ingress 1
                                      Peer J: ingress 1
                                      Peer H: ingress 4
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="pcbs">
        <name>Path-Segment Construction Beacons (PCBs)</name>
        <t>This section provides a detailed specification of a single PCB and its message format.</t>
        <t><strong>Note:</strong> The SCION open-source implementation makes use of Protobuf (Protocol Buffers), a free and open-source cross-platform data format developed by Google and used to serialize structured data. The messages and remote procedure calls described below are in "proto3" language. For more information on Protobuf, see the official <eref target="https://protobuf.dev/">"Protocol Buffers Documentation"</eref>.</t>
        <section anchor="pcb-compos">
          <name>Components of a PCB in Message Format</name>
          <t><xref target="_figure-4"/> graphically represents the PCB message format:</t>
          <figure anchor="_figure-4">
            <name>Top-down composition of one 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- - - - *                 |
+----------------+---------------------+                 |
| Signature Alg. | Verification Key ID |                 |
+----------------+---------------------+                 |
                 *- - - - - # - - - - -*                 |
                            |                            |
*- - - - - - - - - - - - - -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  |  |HopField|PeerMTU |PeerISD-AS|PeerInterf.|
+-------------+--------+---+  +----+---+--------+----------+-----------+
                       *- - -#- - -*
                             |
                             |
*- - - - - - - - - - - - - - v - - - - - - - - - - - - - - *
+------------+-------------+-------------------+-----------+
|  Ingress   |    Egress   |  Expiration Time  |   MAC     |
+------------+-------------+-------------------+-----------+
]]></artwork>
          </figure>
          <t>The following sections provide detailed specifications of the PCB messages, starting with the top-level message of one PCB, and then diving deeper into each of the PCB's message components.</t>
          <section anchor="segment">
            <name>PCB Top-Level Message Format</name>
            <artwork><![CDATA[
+-------------+-------------+------------+------+------------+
|Segment Info | AS Entry 0  | AS Entry 1 |  ... | AS Entry N |
+-------------+-------------+------------+------+------------+
]]></artwork>
            <t>Each PCB at least consists of:</t>
            <ul spacing="normal">
              <li>An information field with an identifier and a timestamp.</li>
              <li>Entries of all ASes on the path segment represented by this PCB.</li>
            </ul>
            <t>The following code block defines the PCB on 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>
                <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"/>.</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>
                    <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="ase-message"/>.</li>
                </ul>
              </li>
            </ul>
          </section>
          <section anchor="seginfo">
            <name>Segment Information</name>
            <artwork><![CDATA[
+----------------------------+
|         Segment Info       |
+----------------------------+
*- - - - - - - # - - - - - - *
               |
               |
*- - - - - - - v - - - - - - *
+--------------+-------------+
|   Timestamp  |   Seg ID    |
+--------------+-------------+
]]></artwork>
            <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>
                <tt>timestamp</tt>: The 64-bit timestamp indicates the creation time of this PCB. It is set by the originating core AS. The expiration time of the corresponding path segment 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).</li>
              <li>
                <tt>segment_id</tt>: The 32-bit identifier of this PCB and the corresponding path segment. The segment ID is required 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. The <tt>segment_id</tt> field is an updatable field. The originating core AS <bcp14>MUST</bcp14> fill this field with a cryptographically random number. Each following AS <bcp14>MUST</bcp14> then update the segment ID correctly for the next AS to be able to verify the hop field in the data plane.</li>
            </ul>
            <t><strong>Note:</strong> See <xref target="hopfield"/> for more information on the hop field message format. The SCION Data Plane Specification provides a detailed description of the computation of the segment ID field and the verification of the hop field in the data plane.</t>
          </section>
          <section anchor="ase-message">
            <name>AS Entry</name>
            <artwork><![CDATA[
                           +--------------+
                           |  AS Entry    |
                           +--------------+
                           *- - - -#- - - *
                                   |
                                   |
                                   |
*- - - - - - - - - - - - - - - - - v - - - - - - - - - - - - - - - *
+-----------------------+------------------------------------------+
|    Unsigned Ext.      |          Signed AS Entry                 |
+-----------------------+------------------------------------------+
]]></artwork>
            <t>Beside the basic information component, 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. During the beaconing process, also 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>
                <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.</li>
              <li>
                <tt>PathSegmentUnsignedExtensions</tt>: The unsigned and thus unprotected part of the AS entry. These are extensions with metadata that need no explicit protection.</li>
            </ul>
          </section>
          <section anchor="signed-compo">
            <name>AS Entry Signed Component</name>
            <artwork><![CDATA[
        +------------------------------------------------------+
        |                   Signed AS Entry                    |
        +------------------------------------------------------+
        *- - - - - - - - - - - - -#- - - - - - - - - - - - - - *
                                  |
                                  |
*- - - - - - - - - - - - - - - - -v- - - - - - - - - - - - - - - - - -*
+--------------------+-----------------+------------------------------+
|      Header        |     Body        |            Signature         |
+--------------------+-----------------+------------------------------+
]]></artwork>
            <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 a private key that corresponds to the public key certified by the AS's certificate.</t>
            <t>This section specifies the signed component of an AS entry. The signed component of an AS entry <bcp14>MUST</bcp14> include the following elements:</t>
            <ul spacing="normal">
              <li>a header,</li>
              <li>a body, and</li>
              <li>a signature.</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>The following code block shows the low-level representation of the <tt>HeaderAndBodyInternal</tt> message used for signature computation input. This message should not be used by external code.</t>
            <artwork><![CDATA[
   message HeaderAndBodyInternal {
       // Encoded header suitable for signature computation.
       bytes header = 1;
       // Raw payload suitable for signature computation.
       bytes body = 2;
   }
]]></artwork>
            <ul spacing="normal">
              <li>For the specification of the signed header, see <xref target="ase-header"/>.</li>
              <li>For the specification of the signed body, see <xref target="ase-sign"/>.</li>
              <li>For the specification of the <tt>signature</tt> field, see <xref target="sign"/>.</li>
            </ul>
            <section anchor="ase-header">
              <name>AS Entry Signed Header</name>
              <artwork><![CDATA[
           +-----------------+
           |     Header      |
           +-----------------+
           *- - - - # - - - -*
                    |
 - - - - - - - - - -v- - - - - - - - - *
+----------------+---------------------+
| Signature Alg. | Verification Key ID |
+----------------+---------------------+
                 *- - - - - # - - - - -*
                            |
 - - - - - - - - - - - - - -v- - - - - - - - - -
+---------+---------+------------+--------------+
| ISD-AS  |TRC Base | TRC Serial |Subject Key ID|
+---------+---------+------------+--------------+
]]></artwork>
              <t>The header part defines metadata that is relevant to (the computation and verification of) the signature. It <bcp14>MUST</bcp14> at least include the following metadata:</t>
              <ul spacing="normal">
                <li>The algorithm to compute the signature</li>
                <li>The identifier of the public key used to verify the signature (i.e., the public key certified by the AS's certificate)</li>
                <li>The ISD-AS number of the AS</li>
              </ul>
              <t>The following code block defines the signed header of an AS entry in Protobuf message format (called the <tt>Header</tt> message).</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;
   }

   message VerificationKeyID {
       uint64 isd_as = 1;
       bytes subject_key_id = 2;
       uint64 trc_base = 3;
       uint64 trc_serial = 4;
   }
]]></artwork>
              <ul spacing="normal">
                <li>
                  <tt>signature_algorithm</tt>: Specifies the algorithm to compute the signature.</li>
                <li>
                  <t><tt>verification_key_id</tt>: Holds the serialized data defined by the <tt>VerificationKeyID</tt> message type. The <tt>VerificationKeyID</tt> message contains more information that is relevant to signing and verifying PCBs and other control-plane messages. The <tt>VerificationKeyID</tt> message type includes the following fields (see also the above code block):
                  </t>
                  <ul spacing="normal">
                    <li>
                      <tt>isd_as</tt>: The ISD-AS number of the current AS.</li>
                    <li>
                      <tt>subject_key_id</tt>: Refers to the certificate that contains the public key needed to verify this PCB's signature.</li>
                    <li>
                      <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.</li>
                    <li>
                      <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.</li>
                  </ul>
                </li>
              </ul>
              <t><strong>Note:</strong> For more information on signing and verifying PCBs, see the chapter Certificate Specification of the SCION Control-Plane PKI Specification. For more information on the TRC base and serial number, see the chapter Trust Root Configuration Specification of the SCION Control-Plane PKI Specification.</t>
              <ul spacing="normal">
                <li>
                  <tt>timestamp</tt>: Defines the signature creation timestamp. This field is optional.</li>
                <li>
                  <tt>metadata</tt>: Can be used to include arbitrary per-protocol metadata. This field is optional.</li>
                <li>
                  <tt>associated_data_length</tt>: Specifies the length of associated data that is covered by the signature, but is not included in the header and body. The value of this field is zero, if no associated data is covered by the signature.</li>
              </ul>
            </section>
            <section anchor="ase-sign">
              <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>
              <t>The body of an AS entry consists 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>
                  <tt>isd_as</tt>: The ISD-AS number of the AS that created this AS entry.</li>
                <li>
                  <tt>next_isd_as</tt>: The ISD-AS number of the downstream AS to which the PCB should be forwarded.</li>
                <li>
                  <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"/>.</li>
                <li>
                  <tt>peer_entries</tt>: The list of optional peer entries (<tt>PeerEntry</tt>). For a specification of one peer entry, see <xref target="peerentry"/>.</li>
                <li>
                  <tt>mtu</tt>: The size of the maximum transmission unit (MTU) within the current AS's network.</li>
                <li>
                  <tt>extensions</tt>: List of (signed) extensions (optional). PCB extensions defined here are part of the signed AS entry. This field should 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"/>.</li>
              </ul>
            </section>
            <section anchor="sign">
              <name>AS Entry Signature</name>
              <t>The signature of an AS entry is computed over the AS entry's signed component. This is the input for the computation of the signature:</t>
              <ul spacing="normal">
                <li>The signed header and body of the current AS (<tt>header_and_body</tt>).</li>
                <li>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"/>.</li>
                <li>The signed <tt>header_and_body</tt>/<tt>signature</tt> combination of each previous AS on this specific path segment.</li>
              </ul>
              <t>The following code block shows how the signature input is defined in the SCION Protobuf implementation ("ps" stands for path segment). Note that the signature has a nested, onion-like structure.</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>
            <artwork><![CDATA[
       +-----------+
       | Hop Entry |
       +-----------+
       *- - -#- - -*
             |
 - - - - - - v - - - - - - *
+-------------+------------+
| Ingress MTU | Hop Field  |
+-------------+------------+
]]></artwork>
            <t>Each body of an AS entry <bcp14>MUST</bcp14> contain exactly one hop entry component. The hop entry component specifies forwarding information for the data plane. The data plane requires this information 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>
                <tt>hop_field</tt>: Contains the authenticated information about the ingress and egress interfaces in the direction of beaconing. The data plane needs this information to forward packets through the current AS. For further specifications, see <xref target="hopfield"/>.</li>
              <li>
                <tt>ingress_mtu</tt>: Specifies the maximum transmission unit (MTU) of the ingress interface of the current AS.</li>
            </ul>
          </section>
          <section anchor="hopfield">
            <name>Hop Field</name>
            <artwork><![CDATA[
                      +-----------+
                      | Hop Field |
                      +-----------+
                      *- - -#- - -*
                            |
                            |
 - - - - - - - - - - - - - -v- - - - - - - - - - - - - - - *
+---------------------------+-------------------+----------+
|                  Egress   |  Expiration Time  |   MAC    |
+---------------------------+-------------------+----------+
]]></artwork>
            <t>The hop field, part of both hop entries and peer entries, is used directly in the data plane for packet forwarding: It specifies the incoming and outgoing interfaces of the ASes on the forwarding path. To prevent forgery, this information is authenticated with a message authentication code (MAC).</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>
                <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).</li>
            </ul>
            <t><strong>Note:</strong> For the AS that initiates the PCB, the ingress interface identifier <bcp14>MUST NOT</bcp14> be specified. This initiating AS is a core AS.</t>
            <ul spacing="normal">
              <li>
                <tt>egress</tt>: The 16-bit egress interface identifier (in the direction of beaconing).</li>
              <li>
                <tt>exp_time</tt>: The 8-bit encoded expiration time of the hop field, indicating how long the hop field is valid. This value is an offset relative to the PCB creation timestamp set in the PCB's segment information component (see also <xref target="seginfo"/>). By combining these two values, the AS can compute the absolute expiration time of the hop field. Data-plane packets that use the hop field after the expiration time <bcp14>MUST</bcp14> be dropped.</li>
              <li>
                <tt>mac</tt>: The message authentication code (MAC) used in the data plane to verify the hop field.</li>
            </ul>
          </section>
          <section anchor="peerentry">
            <name>Peer Entry</name>
            <artwork><![CDATA[
                      +--------------+
                      |  Peer Entry  |
                      +--------------+
                      *- - - -#- - - *
                              |
*- - - - - - - - - - - - - - -v- - - - - - - - - - - - - - *
+-------------+------------+--------------+----------------+
|  Hop Field  |  Peer MTU  | Peer ISD-AS  | Peer Interface |
+-------------+------------+--------------+----------------+
]]></artwork>
            <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>
                <tt>peer_isd_as</tt>: The ISD-AS number of the peer AS. This number is used to match peering segments during path construction.</li>
              <li>
                <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.</li>
              <li>
                <tt>peer_mtu</tt>: Specifies the maximum transmission unit MTU on the peering link.</li>
              <li>
                <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-5"/>). The data plane needs this information to forward packets through the current AS. For further specifications, see <xref target="hopfield"/>.</li>
            </ul>
            <figure anchor="_figure-5">
              <name>Peer entry information, in the direction of beaconing</name>
              <artwork><![CDATA[
       .-------.
     ,'         `.
    ;             :
    :  parent AS  ;
     \           /
      `.       ,'
        `--+--'
           |
           |
           |
           |ASE.HF.ingress_interface
      .----#----.                              .---------.
   ,-'           '-.                        ,-'           '-.
  /        |        \                      /                 \
 /                   \         PE.peer_   /                   \
;          |          :        interface ;                     :
:                     #------------------#         peer AS     ;
 :         |         ; PE.HF.ingress_     :                   ;
 :                   ; interface          :                   ;
  `.       |       ,'                      `.               ,'
    '-.    v    ,-'                          '-.         ,-'
       `---#---'                                `-------'
           |PE.HF.egress_interface
           |ASE.HF.egress_interface
           |
           |
           |
       .---+---.
     ,'         `.
    ;             :
    :  child AS   ;
     \           /
      `.       ,'
        `-----'
]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="pcb-ext">
          <name>PCB Extensions</name>
          <t>In addition to basic routing information like hop entries and peer entries, PCBs can be used to communicate additional metadata, in its extensions. Extensions can be signed and unsigned. Signed extensions are protected by the AS signature, whereas unsigned extensions are not.</t>
          <t>On code-level and in Protobuf message format, extensions are specified as follows:</t>
          <ul spacing="normal">
            <li>Unsigned extensions <tt>PathSegmentUnsignedExtensions</tt> are part of the AS entry component (the <tt>ASEntry</tt> message, see also <xref target="ase-message"/>).</li>
            <li>Signed extensions <tt>PathSegmentExtensions</tt> are part of the signed body component of an AS entry (the <tt>ASEntrySignedBody</tt> message, see also <xref target="ase-sign"/>).</li>
          </ul>
          <t><strong>Note:</strong> SCION also supports so-called "detachable extensions". The detachable extension itself is part of a PCB's unsigned extensions, but a cryptographic hash of the detachable extension data is added to the signed extensions. Thus, a PCB with a detachable extension can be signed and verified without actually including the detachable extension in the signature. This prevents a possible processing overhead caused by large cryptographically-protected extensions.</t>
        </section>
      </section>
      <section anchor="path-prop">
        <name>Propagation of PCBs</name>
        <t>This section describes how PCBs are selected and propagated in the path exploration process.</t>
        <section anchor="selection">
          <name>Selection of PCBs to Propagate</name>
          <t>As an AS receives a series of intra-ISD or core PCBs, it must select the PCBs it will use to continue beaconing. Each AS must specify a local policy on the basis of which PCBs are evaluated, selected or eliminated. The selection process can be based on <em>path</em> properties (e.g., length, disjointness across different paths) as well as on <em>PCB</em> properties (e.g., age, remaining lifetime of sent instances) - each AS is free to use those properties that suit the AS best. The control service can then compute the overall quality of each candidate PCB based on these properties. For this, the AS should use a selection algorithm or metric that reflects its needs and requirements and identifies the best PCBs or paths segments for this AS.</t>
          <section anchor="storing-and-selecting-candidate-pcbs">
            <name>Storing and Selecting Candidate PCBs</name>
            <t>When receiving a PCB, an AS first stores the PCB in a temporary storage for candidate PCBs, called the <em>beacon store</em>.</t>
            <t>PCBs are propagated in batches to each connected downstream AS at a fixed frequency, the <em>propagation interval</em>. 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>
            <ul spacing="normal">
              <li>The <em>best PCBs set size</em> <bcp14>SHOULD</bcp14> be at most "50" (PCBs) for intra-ISD beaconing and at most "5" (PCBs) for core beaconing.</li>
            </ul>
            <t><strong>Note:</strong> 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, to be able 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>The <em>propagation interval</em> <bcp14>SHOULD</bcp14> be at least "5" (seconds) for intra-ISD beaconing and at least "60" (seconds) for core beaconing.</li>
            </ul>
            <t><strong>Note:</strong> Note that during bootstrapping and if the AS obtains a PCB containing a previously unknown path, the AS should forward the PCB immediately, to ensure quick connectivity establishment.</t>
          </section>
          <section anchor="selection-policy-example">
            <name>Selection Policy Example</name>
            <t><xref target="_figure-6"/> below illustrates the selection of path segments in three networks. Each network uses a different path property to select path segments.</t>
            <ul spacing="normal">
              <li>The network at the upper left considers the <em>path length</em>, which is here defined as the number of hops from the originator core AS to the local AS. This number can give an indication of the path's latency. Based on this criterion, the network will select the PCB representing path segment A-G (in direction of beaconing) to propagate.</li>
              <li>The network at the upper right uses <em>peering links</em> as the selection criterion, 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. Based on this criterion, the network will select the PCB representing path segment B-E-I-L (in direction of beaconing) to propagate.</li>
              <li>The lower network selects PCBs based on <em>disjointness</em>. The disjointness of a PCB is calculated relative to the PCBs that have been previously sent. Paths can be either AS-disjoint or link-disjoint. AS-disjoint paths have no common upstream/core AS for the current AS, whereas link-disjoint paths do not share any AS-to-AS link. Depending on the objective of the AS, both criteria can be used: AS-disjointness allows path diversity in the event that an AS becomes unresponsive, and link-disjointness provides resilience in case of link failure. Based on the disjointness criterion, the network will select the PCBs representing the path segments A-D-G-H-J and C-E-F-I-J (in direction of beaconing) to propagate.</li>
            </ul>
            <figure anchor="_figure-6">
              <name>Example networks to illustrate path-segment selection based on different path properties.</name>
              <artwork><![CDATA[
#---------------#
*-- --- --- --- *  : Selected path segment

PL : Peering Link



         ISD A:                               ISD B:
       Path Length                         Peering Links

       .---------.                        .-------------.
   _.-' ISD Core  `--.                _.-'  ISD Core     `--.
  /.---.         .---.\             ,'.---.             .---.`.
 /(  A  ) - - - (  C  )\           / (  A  ) - - - - - (  C  ) \
;  `-#-'         `---'  :       + - - `---'             `---'   :
:    ||   .---.   | |   ;         :       |  .---. - - - - +    ;
 \   | - (  B  ) -     /        |  \    |  -(  B  )            /
  \  |    `-+-'     | /             \        `-#-||           /
   \ |               /          |    `. |      |   - - - - -,- - - +
    `+-.    |    _.-|                  `--.    | |      _.-'
     |  `-------'               |       |  `---+-------'           |
     |      |     .-+-.                        | + - - - - +
     |    .---.  (  E  )        |       |      |                   |
     |   (  D  )  `-+-'                        |           |
     |    `-+-'     |         .-+-.     |    .-#-.       .---.   .-+-.
     |            .-+-.      (  D  )-PL-----(  E  )--PL-(  F  ) (  G  )
     |      |    (  F  )      `---'     |    `-#-'       `---'   `---'
   .-#-.          `---'                        |           |       |
  (  G  ) - +       |               - - +      |
   `---- - - - - - -               |           |           |       |
                                 .---.       .-#-.       .---.   .---.
                                (  H  )-PL--(  I  )--PL-(  J  ) (  K  )
                                 `---'       `-#-'       `---'   `---'
                                               |           |       |
                                               |
                                             .-#-.         |       |
                                            (  L  ) - - - -
                     ISD C:                  `---' - - - - - - - - +
                  Disjointness

               .-------------.
           _.-'     ISD Core  `--.
        ,-'                       '-.
       /   .---.               .---. \
      /   (  A  ) - - - - - - (  C  ) \
     ;     `-*-'               `-#-'   :
     :         |     .---.     | |     ;
      \      |  - - (  B  ) - -  |    /
       \     |       `---'       |   /
        \    |                   |  /
         '-.                     |-'
            `+-.             _.-'|
             |  `-----------'    |
        .----*.                .-#---.
       (   D   )              (   E   )
        `----*'                `-#---'
        |    |                   |   |
           +---------------------+
        |  | |                       |
           | +- --- --- --- --- +
        |  |                    |    |
        .--#--.                .*----.
       (   F   #-------+      (   G   )
        `-----'        |       `*----|
        |          +-- +-- --- -+
                       |             |
        |-----.    |   |       .-----.
       (   H  *-- -+   +------#   I   )
        `---*-'                `-#---'
            |                    |
            |       .---.        |
             --- --*  J  #-------+
                    `---'
]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="path-segment-prop">
          <name>Propagation of Selected PCBs</name>
          <t>As mentioned above, once per <em>propagation period</em> (determined by each AS), an AS propagates selected PCBs to its neighboring ASes. This happens on the level of both intra-ISD beaconing and core beaconing. This section describes both processes in more detail.</t>
          <t>To bootstrap the initial communication with a neighboring beacon service, ASes use so-called one-hop paths. This special kind of path handles beaconing between neighboring ASes for which no forwarding path may be available yet. In fact, it is the task of beaconing to discover such forwarding paths. The purpose of one-hop paths is thus to break this circular dependency. The One-Hop Path Type will be described in more detail in the SCION Data Plane specification.</t>
          <section anchor="propagation-first-steps">
            <name>Propagation - First Steps</name>
            <t>The following first steps of the propagation procedure are the same for both intra-ISD and core beaconing:</t>
            <ol spacing="normal" type="1"><li>Upon receiving a PCB, the control service of an AS verifies the structure and all signatures on the PCB.<br/>
                <strong>Note:</strong> The PCB contains the version numbers of the trust root configuration(s) (TRC) and certificate(s) that must be used to verify its signatures. This 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.</li>
              <li>As core beaconing is based on sending PCBs without a defined direction, it is necessary to avoid loops during path creation. The control service of core ASes therefore checks whether the PCB includes an AS entry created by the core AS itself. If so, the PCB is discarded in order to avoid loops.<br/>
                <strong>Note:</strong> It can be legitimate to cross the same ISD multiple times: For example, if the ISD spans a large geographical area, a path transiting another ISD may constitute a shortcut. However, it is up to each core AS to decide whether it wants to allow this.</li>
              <li>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. For more information on the selection process, see <xref target="selection"/>.</li>
            </ol>
          </section>
          <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>From the candidate PCBs stored in the beacon store, the control service of an AS selects the best PCBs to propagate to its downstream neighboring ASes, based on a selection algorithm specific for this AS.</li>
              <li>
                <t>The control service adds a new AS entry to every selected PCB. This AS entry <bcp14>MUST</bcp14> at least include:
                </t>
                <ul spacing="normal">
                  <li>The ingress interface to this AS, in the hop field component.</li>
                  <li>The egress interface to the neighboring AS, also in the hop field component.</li>
                  <li>The ISD_AS number of the next AS, in the signed body component of the AS entry.</li>
                  <li>If the AS has peering links, the control service should 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 hop field component of each added peer entry must have a specified egress interface.</li>
                </ul>
              </li>
              <li>The control service <bcp14>MUST</bcp14> now sign each selected, extended PCB and append the computed signature.</li>
              <li>As a final step, the control service propagates each extended PCB to the correct neighboring ASes, 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"/>).</li>
            </ol>
            <t><strong>Note:</strong></t>
            <ul spacing="normal">
              <li>For more information on the signed body component of an AS entry, see <xref target="ase-sign"/>.</li>
              <li>For more information on a peer entry, see <xref target="peerentry"/>.</li>
              <li>For more information on the hop field component, see <xref target="hopfield"/>.</li>
              <li>For more information on signing an AS entry, see <xref target="sign"/>.</li>
            </ul>
          </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>The core control service selects the best PCBs to forward to neighboring core ASes observed so far.</li>
              <li>
                <t>The service adds a new AS entry to every selected PCB. This AS entry <bcp14>MUST</bcp14> at least include:
                </t>
                <ul spacing="normal">
                  <li>The egress interface to the neighboring core AS, in the hop field component.</li>
                  <li>The ISD_AS number of the neighboring core AS, in the signed body component of the AS entry.</li>
                </ul>
              </li>
              <li>The core control service <bcp14>MUST</bcp14> now sign the extended PCBs and append the computed signature.</li>
              <li>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"/>).</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>
                    <tt>Beacon</tt>: Specifies the method that calls the control service at the neighboring AS in order to propagate the extended PCB.</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>
                    <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"/>.</li>
                </ul>
              </li>
              <li>
                <tt>BeaconResponse</tt>: Specifies the response message from the neighboring AS.</li>
            </ul>
          </section>
        </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 adds these segments to the relevant path databases, thus 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 critera. The next step is to register the selected down-segments with the control service of the relevant core ASes, according to 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 preferred core-path segments to other core ASes, in the <em>core-segment registration</em> process. 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>Up-segments, which allow the infrastructure entities and endpoints in this AS to communicate with core ASes; and</li>
          <li>down-segments, which allow remote entities to reach this AS.</li>
        </ul>
        <t>The up- and down-segments do not have to be equal. An 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- and down-segment sets. Also, the processes of transforming a PCB in an up-segment or a down-segment differ slightly. Both processes are described below.</t>
        <section anchor="term-pcb">
          <name>Terminating a PCB</name>
          <t>Both the up- and down-segments end at the AS. One could therefore say that by transforming a PCB into a path segment, an AS "terminates" the PCB for this AS ingress interface and at this moment in time.</t>
          <t>The control service of a non-core AS must perform 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. This new AS entry <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>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".</li>
                  </ul>
                </li>
                <li>
                  <t>The egress interface in the hop field component <bcp14>MUST NOT</bcp14> be specified.
                  </t>
                  <ul spacing="normal">
                    <li>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".</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>If the AS has peering links, the control service should 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>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".</li>
              </ul>
            </li>
            <li>As a last step, the control service <bcp14>MUST</bcp14> sign the modified PCB and append the computed signature.</li>
          </ol>
          <t><strong>Note:</strong></t>
          <ul spacing="normal">
            <li>For more information on the signed body component of an AS entry, see <xref target="ase-sign"/>.</li>
            <li>For more information on a peer entry, see <xref target="peerentry"/>.</li>
            <li>For more information on the hop field component, see <xref target="hopfield"/>.</li>
            <li>For more information on signing an AS entry, see <xref target="sign"/>.</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>The control service selects the PCBs that it wants to transform into up-segments from the candidate PCBs in the beacon store.</li>
            <li>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>.</li>
            <li>The control service now adds the newly created up-segments to its own path database.</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>The control service selects the PCBs that it wants to transform into down-segments from the candidate PCBs in the beacon store.</li>
            <li>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>.</li>
            <li>The control service now 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"/>).</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>The core control service selects the best PCBs towards each core AS observed so far.</li>
          <li>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>.</li>
          <li>As a final step, the control service adds the newly created core-segments to its own path database.</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 on Code-Level</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 that must be registered. Currently, only the following type is used:
            </t>
            <ul spacing="normal">
              <li>
                <tt>SEGMENT_TYPE_DOWN</tt>: Specifies a down-segment.</li>
            </ul>
          </li>
          <li>
            <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>.</li>
        </ul>
      </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>An up-path segment to reach the core of the source ISD (only if the source endpoint is a non-core AS),</li>
          <li>
            <t>a core-path segment to reach
            </t>
            <ul spacing="normal">
              <li>another core AS in the source ISD, in case the destination AS is in the same source ISD, or</li>
              <li>a core AS in a remote ISD, if the destination AS is in another ISD, and</li>
            </ul>
          </li>
          <li>a down-path segment to reach the destination AS.</li>
        </ul>
        <t><strong>Note:</strong> 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 will be provided by the SCION Data Plane Specification document.</t>
        <t>The process to look up and fetch path segments consists of the following steps:</t>
        <ol spacing="normal" type="1"><li>First, the source endpoint queries the control service in its own AS (i.e., the source AS) for the required segments. The control service has up-path segments stored in its path database. Additionally, the control service checks if it has appropriate core- and down-path segments in store as well; in this case it returns them immediately.</li>
          <li>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-path segments to core ASes in the destination ISD (which is either the own or a remote ISD). To reach the core control services, the control service of the source AS uses the locally stored up-path segments.</li>
          <li>Next, the control service of the source AS combines up-path segments with the newly retrieved core-path segments. The control service then queries the control services of the remote core ASes in the destination ISD, to fetch down-path 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- and core segments.</li>
          <li>Finally, the control service of the source AS returns all retrieved path segments to the source endpoint.</li>
          <li>Once it has obtained all path segments, the endpoint combines them into an end-to-end path in the data plane.</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 should be as follows:</t>
          <ol spacing="normal" type="1"><li>Request up-segments for the source endpoint at the control service of the source AS.</li>
            <li>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.</li>
            <li>Request down-segments starting at core ASes in the destination ISD.</li>
          </ol>
        </section>
        <section anchor="caching">
          <name>Caching</name>
          <t>For the sake of efficiency, the control service of the source AS should cache each returned path segment request. Caching ensures that path lookups are fast for frequently used destinations. The use of caching 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 should do the following:</t>
          <ul spacing="normal">
            <li>Cache the returned path segments.</li>
            <li>Send requests in parallel when requesting path segments from other control services.</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 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. This section specifies the behavior of the segment-request handlers in the lookup process. First, the use of wildcards in the lookup process is briefly addressed.</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 must 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>Determine the requested segment type.</li>
            <li>In the case of an up-segment request, look up matching up-segments in the path database and return them.</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>Expand the source wildcard into separate requests for each reachable core AS in the source ISD.</li>
                <li>
                  <t>For each core-segment request,
                  </t>
                  <ul spacing="normal">
                    <li>If possible, return matching core-segments from cache;</li>
                    <li>otherwise, request the core-segments from the control services of each reachable core AS at the source (start) of the core-segment. Add the retrieved core-segments to the cache.</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>In the case of a down-segment request:
              </t>
              <ul spacing="normal">
                <li>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).</li>
                <li>
                  <t>For each segment request,
                  </t>
                  <ul spacing="normal">
                    <li>If possible, return matching down-segments from cache;</li>
                    <li>otherwise, request the down-segment from the control services of the core ASes at the source (start) of the down-segment. Sending the request may require looking up core-segments to the source core AS of the down-segment. Add the retrieved down-segments to the cache.</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>The source of the path segment must be this core AS.</li>
                <li>
                  <t>The request must either be
                  </t>
                  <ul spacing="normal">
                    <li>for a core-segment to a core AS in this ISD or another ISD, or</li>
                    <li>for a down-segment to an AS in this ISD.</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>If the destination is a core or wildcard address, then load matching core-segments from the path database and return.</li>
            <li>Otherwise, load the matching down-segments from the path database and return.</li>
          </ol>
          <t><xref target="app-a"/> shows by means of an illustration how the lookup of path segments in SCION works.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>One of the fundamental objectives that guided the design of SCION is security, in particular network security. See chapter 7 of the SCION book (Security Analysis), which states the precise security goals of various network participants and how SCION achieves these goals in the presence of different types of adversaries <xref target="CHUAT22"/>.</t>
      <t>To be precised.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO IANA considerations.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="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="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="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="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text.  While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users.  This document defines a canonical textual representation format.  It does not define a format for internal storage, such as within an application or database.  It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </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="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>
        <reference anchor="I-D.path-properties-voc" target="https://datatracker.ietf.org/doc/draft-irtf-panrg-path-properties/">
          <front>
            <title>A Vocabulary of Path Properties</title>
            <author initials="R." surname="Enghardt" fullname="Reese Enghardt">
              <organization>Netflix</organization>
            </author>
            <author initials="C." surname="Krähenbühl" fullname="Cyrill Krähenbühl">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <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="I-D.scion-components" target="https://datatracker.ietf.org/doc/draft-rustignoli-panrg-scion-components/">
          <front>
            <title>SCION Components Analysis</title>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-cppki" target="https://datatracker.ietf.org/doc/draft-dekater-scion-pki/">
          <front>
            <title>SCION Control-Plane PKI</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-overview" target="https://datatracker.ietf.org/doc/draft-dekater-panrg-scion-overview/">
          <front>
            <title>SCION Overview</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1474?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to William Boye (Swiss National Bank), Juan A. Garcia Prado (ETH Zurich), Samuel Hitz (Anapaya), and Roger Lapuh (Extreme Networks) for reviewing this document. We are also very grateful to Adrian Perrig (ETH Zurich), for providing guidance and feedback about each aspect of SCION. Finally, we are indebted to the SCION development teams of Anapaya and ETH Zurich, 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="app-a">
      <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-7"/> below. In both examples, the source endpoint is in AS A. <xref target="_figure-8"/> shows the sequence diagram for the path lookup process in case the destination is in AS D, whereas <xref target="_figure-9"/> 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 controle service.</t>
      <figure anchor="_figure-7">
        <name>Topology used in the path lookup examples.</name>
        <artwork><![CDATA[
+----------------------------+     +----------------------------+
|                            |     |                            |
|                            |     |                            |
|         .---------.        |     |                            |
|     _.-'  Core     `--.    |     |         .---------.        |
|    /                   \   |     |     _.-'      Core `--.    |
|   ;  .---.     .---.    :  |     |    /            .---.  \   |
|   : (  C  )---(  B  )------+-----+----------------(  F  )  :  |
|    \ `+--'     `+-+'---X---+-+   |   :     .---.   `+-+'   ;  |
|     \ |         | |   /    | +---+----X---(  E  )   | |   /   |
|      `+-.       | |.-'     |     |     \   `-+-'----+ |  /    |
|       |  `------+'|        |     |      `--. |       _|-'     |
|       |         | |        |     |          `+------' |       |
|       |         | |        |     |           |        |       |
|       |+--------+ |        |     |           |        |       |
|       ||          |        |     |           |        |       |
|       ||          |        |     |           |        |       |
|     .-++.         |        |     |         .-+-.      |       |
|    (  D  )      .-+-.      |     |        (  G  )-----+       |
|     `---'      (  A  )     |     |         `---'              |
|                 `---'      |     |                            |
|   ISD 1                    |     |                    ISD 2   |
|                            |     |                            |
+----------------------------+     +----------------------------+
]]></artwork>
      </figure>
      <figure anchor="_figure-8">
        <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,   | |                   | reply(down,[C->D])|
    | |   [B->D, C->D])  | |                   |                   |
    | |< -- -- -- -- -- -+++                   |                   |
    | |                   |                    |                   |
+---+-+----------+        |                    |                   |
|combine segments|        |                    |                   |
+---+-+----------+        |                    |                   |
    | |                   |                    |                   |
    +++                   |                    |                   |
     |                    |                    |                   |
 +---+----+           +---+----+          +----+---+          +----+---+
 +--------+           +--------+          +--------+          +--------+
]]></artwork>
      </figure>
      <figure anchor="_figure-9">
        <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,B,(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    |
   | | reply (down, | |               |             |(down,[F->G])|
   | | [E->G,F->G]) | |               |             |             |
   | |<- -- -- -- --+++               |             |             |
   | |               |                |             |             |
+--+-+----+          |                |             |             |
| combine |          |                |             |             |
|segments |          |                |             |             |
+--+-+----+          |                |             |             |
   | |               |                |             |             |
   +++               |                |             |             |
    |                |                |             |             |
+---+----+       +---+----+       +---+----+    +---+----+    +---+----+
+--------+       +--------+       +--------+    +--------+    +--------+
]]></artwork>
      </figure>
    </section>
  </back>
  <!-- ##markdown-source:
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
iJABAA==

-->

</rfc>
