<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-03"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>c_de_kater@gmx.ch</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <author initials="J. C." surname="Hugly" fullname="Jean-Christophe Hugly">
      <organization>SCION Association</organization>
      <address>
        <email>jch@scion.org</email>
      </address>
    </author>
    <author initials="S." surname="Hitz" fullname="Samuel Hitz">
      <organization>Anapaya Systems</organization>
      <address>
        <email>hitz@anapaya.net</email>
      </address>
    </author>
    <date year="2024" month="October" day="19"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 167?>

<t>This document describes the data plane of the path-aware, inter-domain network architecture SCION (Scalability, Control, and Isolation On Next-generation networks). One of the basic characteristics of SCION is that it gives path control to endpoints. The SCION Control Plane is responsible for discovering these paths and making them available as path segments to the endpoints. The role of the SCION Data Plane is to combine the path segments into end-to-end paths, and forward data between endpoints according to the specified path.</t>
      <t>The SCION Data Plane fundamentally differs from today's IP-based data plane in that it is <em>path-aware</em>: In SCION, interdomain forwarding directives are embedded in the packet header. This document provides a detailed specification of the SCION data packet format as well as the structure of the SCION header. SCION also supports extension headers, which are additionally described. The document continues with the life cycle of a SCION packet while traversing the SCION Internet, followed by a specification of the SCION path authorization mechanisms and the packet processing at routers.</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-dp_I-D/draft-dekater-scion-dataplane.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekater-scion-dataplane/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/scionassociation/scion-dp_I-D"/>.</t>
    </note>
  </front>
  <middle>
    <?line 173?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SCION is a path-aware internetworking routing architecture as described in <xref target="RFC9217"/>. It allows endpoints and applications to select paths across the network to use for traffic, based on trusted path properties. SCION is an inter-domain network architecture and is therefore not concerned with intra-domain forwarding.</t>
      <t>The data transmission order for SCION is the same as for IPv6 as defined in Introduction of <xref target="RFC8200"/>.</t>
      <t>SCION has been developed with the following goals:</t>
      <t><em>Availability</em> - to provide highly available communication that can send traffic over paths with optimal or required characteristics, quickly handle inter-domain link or router failures (both on the last hop or anywhere along the path) and provide continuity in the presence of adversaries.</t>
      <t><em>Security</em> - to provide higher levels of trust in routing information in order to prevent traffic hijacking, reduce potential for denial-of-service and other attacks. Endpoints can decide the trust roots they wish to rely on, routing information can be unambiguously attributed to an AS, and packets are only forwarded along authorized path segments. A particular use case is to enable geofencing.</t>
      <t><em>Scalability</em> - to improve the scalability of the inter-domain control plane and data plane, avoiding existing limitations related to convergence and forwarding table size. The advertising of path segments is separated into a beaconing process within each Isolation Domain (ISD) and between ISDs which incurs minimal overhead and resource requirements on routers.</t>
      <t>SCION relies on three main components:</t>
      <t><em>PKI</em> - To achieve scalability and trust, SCION organizes existing ASes into logical groups of independent routing planes called <em>Isolation Domains (ISDs)</em>. All ASes in an ISD agree on a set of trust roots called the <em>Trust Root Configuration (TRC)</em> which is a collection of signed root certificates in X.509 v3 format <xref target="RFC5280"/>. The ISD is governed by a set of <em>core ASes</em> which typically manage the trust roots and provide connectivity to other ISDs. This is the basis of the public key infrastructure which the SCION Control Plane relies upon for the authentication of messages that is used for the SCION control plane. See <xref target="I-D.dekater-scion-pki"/></t>
      <t><em>Control Plane</em> - performs inter-domain routing by discovering and securely disseminating path information between ASes. The core ASes use Path-segment Construction Beacons (PCBs) to explore intra-ISD paths, or to explore paths across different ISDs. See <xref target="I-D.dekater-scion-controlplane"/></t>
      <t><em>Data Plane</em> - carries out secure packet forwarding between SCION-enabled ASes over paths selected by endpoints. A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS.</t>
      <t>This document describes the SCION Data Plane component. It should be read in conjunction with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-controlplane"/>.</t>
      <t>The SCION architecture was initially developed outside of the IETF by ETH Zurich with significant contributions from Anapaya Systems. It is deployed in the Swiss finance sector to provide resilient connectivity between financial institutions. The aim of this document is to document the existing protocol specification as deployed, and to introduce new concepts that can potentially be further improved to address particular problems with the current Internet architecture.</t>
      <t>==Note (to be removed before publication): this document, together with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-controlplane"/>, deprecates <xref target="I-D.dekater-panrg-scion-overview"/>. This document provides an extensive description of how the SCION Data Plane is implemented in order to facilitate understanding, but could potentially be split into separate documents if considered suitable for submission to the Internet Standards Process.==</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 or organization can constitute an AS.</t>
        <t><strong>Core AS</strong>: Each SCION 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 path construction process (in SCION called "beaconing").</t>
        <t><strong>Data Plane</strong>: The data plane (sometimes also referred to as the forwarding plane) is responsible for forwarding data packets that endpoints have injected into the network. After routing information has been disseminated by the control plane, packets are forwarded by the data plane in accordance with such information.</t>
        <t><strong>Egress/Ingress</strong>: refers to the direction of travel. In SCION, path construction with beaconing happens in one direction, while actual traffic might follow the opposite direction. This document clarifies on a case-by-case basis whether 'egress' or 'ingress' refers to the direction of travel of the SCION packet or to the direction of beaconing.</t>
        <t><strong>Endpoint</strong>: An endpoint is the start or the end of a SCION path, as defined in <xref target="RFC9473"/>.</t>
        <t><strong>Forwarding Key</strong>: A forwarding key is a symmetric key that is shared between the control service (control plane) and the routers (data plane) of an AS. It is used to authenticate Hop Fields in the end-to-end SCION path. The forwarding key is an AS-local secret and is not shared with other ASes.</t>
        <t><strong>Forwarding Path</strong>: A forwarding path is a complete end-to-end path between two SCION endpoints which is used to transmit packets in the data plane. It can be created with a combination of up to three path segments (an up segment, a core segment, and a down segment).</t>
        <t><strong>Hop Field (HF)</strong>: As they traverse the network, path segment construction beacons (PCBs) accumulate cryptographically protected AS-level path information in the form of Hop Fields. In the data plane, Hop Fields are used for packet forwarding: they contain the incoming and outgoing interface IDs of the ASes on the forwarding path.</t>
        <t><strong>Info Field (INF)</strong>: Each path segment construction beacon (PCB) contains a single Info field, which provides basic information about the PCB. Together with Hop Fields (HFs), these are used to create forwarding paths.</t>
        <t><strong>Interface Identifier (Interface ID)</strong>: A 16-bit identifier that designates a SCION interface at the end of a link connecting two SCION ASes, with each interface belonging to one border router. Hop fields describe the traversal of an AS by a pair of interface IDs called <tt>ConsIngress</tt> and <tt>ConsEgress</tt>, as they refer to the ingress and egress interfaces in the direction of path construction (beaconing). The Interface ID <bcp14>MUST</bcp14> be unique within each AS. Interface ID 0 is not a valid identifier as implementations <bcp14>MAY</bcp14> use it as the "unspecified" value.</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, Autonomous Systems (ASes) are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (e.g. a common jurisdiction). A possible model is for ISDs to be formed along national boundaries or federations of nations.</t>
        <t><strong>Leaf AS</strong>: An AS at the "edge" of an ISD, with no other downstream ASes.</t>
        <t><strong>MAC</strong>: Message Authentication Code. In the rest of this document, "MAC" always refers to "Message Authentication Code" and never to "Medium Access Control". When "Medium Access Control address" is implied, the phrase "Link Layer Address" is used.</t>
        <t><strong>Path Authorization</strong>: A requirement for the data plane is that endpoints can only use paths that were constructed and authorized by ASes in the control plane. This property is called path authorization. The goal of path authorization is to prevent endpoints from crafting Hop Fields (HFs) themselves, modifying HFs in authorized path segments, or combining HFs of different path segments.</t>
        <t><strong>Path Control</strong>: Path control is a property of a network architecture that gives endpoints the ability to select how their packets travel through the network. Path control is stronger than path transparency.</t>
        <t><strong>Path Segment</strong>: Path segments are derived from path segment construction beacons (PCBs). A path segment can be (1) an up segment (i.e. a path between a non-core AS and a core AS in the same ISD), (2) a down segment (i.e. the same as an up segment, but in the opposite direction), or (3) a core segment (i.e., a path between core ASes). Up to three path segments can be used to create a forwarding path.</t>
        <t><strong>Path-Segment Construction Beacon (PCB)</strong>: Core AS control planes generate PCBs to explore paths within their isolation domain (ISD) and among different ISDs. ASes further propagate selected PCBs to their neighboring ASes. As a PCB traverses the network, it carries path segments, which can subsequently be used for traffic forwarding.</t>
        <t><strong>Path Transparency</strong>: Path transparency is a property of a network architecture that gives endpoints full visibility over the network paths their packets are taking. Path transparency is weaker than path control.</t>
        <t><strong>Peering Link</strong>: A link between two SCION border routers of different ASes that can be used as a shortcut. Peering link information is added to segment information during the beaconing process and used to shorten paths while assembling them from segments. It is possible to construct a path out of only two partial segments which top-most hops are joined by a peering link. Two peering ASes may be in different ISDs and may exist between any ASes, including core ASes.</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="overview">
        <name>Overview</name>
        <t>The SCION Data Plane forwards inter-domain packets between SCION-enabled ASes. SCION routers are normally deployed at the edge of an AS, and peer with neighbor SCION routers. Inter-domain forwarding is based on end-to-end path information contained in the packet header. This path information consists of a sequence of Hop Fields (HFs). Each Hop Field corresponds to an AS on the path, and it includes an ingress interface ID as well as an egress interface ID, which unequivocally identifies the ingress and egress interfaces within the AS. The information is authenticated with a Message Authentication Code (MAC) to prevent forgery.</t>
        <t>This concept allows SCION routers to forward packets to a neighbor AS without inspecting the destination address and also without consulting an inter-domain forwarding table. Intra-domain forwarding and routing are based on existing mechanisms (e.g. IP). A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS. The last SCION router at the destination AS therefore uses the destination address to forward the packet to the appropriate local endpoint.</t>
        <t>This SCION design choice has the following advantages:</t>
        <ul spacing="normal">
          <li>
            <t>It provides control and transparency over forwarding paths to endpoints.</t>
          </li>
          <li>
            <t>It simplifies the packet processing at routers. Instead of having to perform longest prefix matching on IP addresses which requires expensive hardware and substantial amounts of energy, a router can simply access the next hop from the packet header after having verified the authenticity of the Hop Field's MAC.</t>
          </li>
        </ul>
        <section anchor="inter-and-intra-domain-forwarding">
          <name>Inter- and Intra-Domain Forwarding</name>
          <t>As SCION is an inter-domain network architecture, it is not concerned with intra-domain forwarding. This corresponds to the general practice today where BGP and IP are used for inter-domain routing and forwarding, respectively, but ASes use an intra-domain protocol of their choice - for example OSPF or IS-IS for routing and IP, MPLS, and various Layer 2 protocols for forwarding. In fact, even if ASes use IP forwarding internally today, they typically encapsulate the original IP packet they receive at the edge of their network into another IP packet with the destination address set to the egress border router, to avoid full inter-domain forwarding tables at internal routers.</t>
          <t>SCION emphasizes this separation as it is used exclusively for inter-domain forwarding; re-using the intra-domain network fabric to provide connectivity amongst all SCION infrastructure services, border routers, and endpoints. As a consequence, minimal change to the infrastructure is required for ISPs when deploying SCION. In practice, in most existing SCION deployments, SCION routers communicate among themselves and with endpoints by enclosing the SCION header inside an UDP/IPv6 or UDP/IPv4 packet. The choice of using an UDP/IP as an intra-domain protocol between routers was driven by the need to maximize compatibility with existing networks. This does not exclude that a SCION packet may be enclosed directly on top of a L2 protocol, since the choice of intra-domain protocol is AS specific.</t>
          <t><xref target="_figure-30"/> shows the SCION header within the protocol stack, in an AS where the SCION deployment uses UDP/IP as an intra-domain protocol. A similar model may be used for inter-domain links, depending on the individual choice of the two interconnected SCION router operators. A full example of the life of a SCION packet is later presented in <xref target="life-of-a-packet"/>. A list of currently used upper layer protocols on top of SCION is presented in <xref target="protnum"/>.</t>
          <figure anchor="_figure-30">
            <name>The SCION header within the protocol stack in a typical deployment.</name>
            <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |
|                             |
|        Payload (L4)         |
|                             |
|                             |
|                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |
|            SCION            |
|                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  --------------+
|             UDP             |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  Intra-domain  |
|             IP              |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    protocol    |
|         Link Layer          |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  --------------+
]]></artwork>
          </figure>
          <t>A complete SCION address is composed of the &lt;ISD, AS, endpoint address&gt; 3-tuple. The ISD-AS part is used for inter-domain routing. The endpoint address part is only used for intra-domain forwarding at the source and destination ASes. This implies that endpoint addresses are only required to be globally unique within each SCION AS. This means, for example, that an endpoint running a SCION stack using a <xref target="RFC1918"/> could directly communicate with another SCION endpoint using a <xref target="RFC1918"/> endpoint address in a different SCION AS.</t>
        </section>
        <section anchor="intra-domain-forwarding-process">
          <name>Intra-Domain Forwarding Process</name>
          <t>When transiting an intermediate SCION AS, a packet gets forwarded by at most two SCION routers. The forwarding process consists of the following steps.</t>
          <ol spacing="normal" type="1"><li>
              <t>The AS's SCION ingress router receives a SCION packet from the neighboring AS.</t>
            </li>
            <li>
              <t>The SCION router parses, validates, and authenticates the SCION header.</t>
            </li>
            <li>
              <t>The SCION router maps the egress interface ID in the current Hop Field of the SCION header to the destination address of the intra-domain protocol (e.g. MPLS or IP) of the egress border router.</t>
            </li>
            <li>
              <t>The packet is forwarded within the AS by SCION-unaware routers and switches based on the header of the intra-domain protocol.</t>
            </li>
            <li>
              <t>Upon receiving the packet, the SCION egress router strips off the header of the intra-domain protocol, again validates and updates the SCION header, and forwards the packet to the neighboring SCION router.</t>
            </li>
            <li>
              <t>The last SCION router on the path forwards the packet to the packet's destination endpoint indicated by the field <tt>DstHostAddr</tt> of <xref target="address-header">the Address Header</xref>.</t>
            </li>
          </ol>
        </section>
        <section anchor="configuration">
          <name>Configuration</name>
          <t>Border routers require mappings from SCION interface IDs to underlay addresses and such information <bcp14>MUST</bcp14> be supplied to each router in an out of band fashion (e.g in a configuration file). For each link to a neighbor, these values <bcp14>MUST</bcp14> be configured. A typical implementation will require:</t>
          <ul spacing="normal">
            <li>
              <t>Interface ID.</t>
            </li>
            <li>
              <t>Link type (core, parent, child, peer). Link type depends on mutual agreements between the organizations operating the ASes at each end of each link.</t>
            </li>
            <li>
              <t>Neighbor ISD-AS number.</t>
            </li>
            <li>
              <t>For the router that manages the interface: the neighbor interface underlay address.</t>
            </li>
            <li>
              <t>For the routers that do not manage the interface:  the address of the intra-domain protocol on the router that does.</t>
            </li>
          </ul>
          <t>In order to forward traffic to a service endpoint address (<tt>DT/DS</tt> == 0b01 in the <xref target="common-header">common header</xref>), a border router translates the service number into a specific destination address. The method used to accomplish the translation is not defined by this document and is only dependent on the implementation and the choices of each AS's administrator. In current practice this is accomplished by way of a configuration file.</t>
          <t><strong>Note:</strong> The current SCION implementation runs over the UDP/IP protocol. However, the use of other lower layers protocols is possible.</t>
        </section>
      </section>
      <section anchor="construction">
        <name>Path Construction (Segment Combinations)</name>
        <t>Paths are discovered by the SCION Control Plane which makes them available to SCION endpoints in the form of path segments. As described in <xref target="I-D.dekater-scion-controlplane"/>, there are three kinds of path segments: up, down, and core. In the data plane, a SCION endpoint creates end-to-end paths from the path segments by combining multiple path segments. Depending on the network topology, a SCION forwarding path can consist of one, two, or three segments. Each path segment contains several Hop Fields representing the ASes on the segment as well as one Info Field with basic information about the segment, such as a timestamp.</t>
        <t>Segments cannot be combined arbitrarily. To construct a valid forwarding path, the source endpoint <bcp14>MUST</bcp14> obey the following rules:</t>
        <ul spacing="normal">
          <li>
            <t>There <bcp14>MUST</bcp14> be at most one of each type of segment (up, core, and down). Allowing multiple up or down segments would decrease efficiency and the ability of ASes to enforce path policies.</t>
          </li>
          <li>
            <t>If an up segment is present, it <bcp14>MUST</bcp14> be the first segment in the path.</t>
          </li>
          <li>
            <t>If a down segment is present, it <bcp14>MUST</bcp14> be the last segment in the path.</t>
          </li>
          <li>
            <t>If there are two path segments (one up and one down segment) that both announce the same peering link, then a shortcut via this peering link is possible.</t>
          </li>
          <li>
            <t>If there are two path segments (one up and one down segment) that share a common ancestor AS (in the direction of beaconing), then a shortcut via this common ancestor AS is possible. The Up-then-Down constraint still applies.</t>
          </li>
          <li>
            <t>Additionally, all segments without any peering possibility <bcp14>MUST</bcp14> consist of at least two Hop Fields.</t>
          </li>
        </ul>
        <t>Note that the type of segment is known to the endpoint but it is not explicitly visible in the path header of data packets. Therefore, a SCION router needs to explicitly verify that these rules were followed correctly by performing checks described in <xref target="process-router-ingress"/>.</t>
        <t>Besides enabling the enforcement of path policies, the above rules also protect the economic interest of ASes as they prevent building "valley paths". A valley path contains ASes that do not profit economically from traffic on this route, with the name coming from the fact that such paths go "down" (following parent-child links) before going "up" (following child-parent links).</t>
        <t><xref target="_figure-1"/> below shows valid segment combinations.</t>
        <t><strong>Note:</strong> It is assumed that the source and destination endpoints are in different ASes (as endpoints from the same AS use an empty forwarding path to communicate with each other).</t>
        <figure anchor="_figure-1">
          <name>Illustration of valid path segment combinations. Each node represents a SCION Autonomous System.</name>
          <artwork><![CDATA[
                                  ------- = end-to-end path
   C = Core AS                    - - - - = unused links
   * = source/destination AS      ------> = direction of beaconing


          Core                        Core                  Core
      ---------->                 ---------->           ---------->
     .-.       .-.               .-.       .-.         .-.       .-.
+-- ( C )-----( C ) --+     +-- ( C )-----(C/*)       (C/*)-----(C/*)
|    `+'       `+'    |     |    `+'       `-'         `-'       `-'
|     |    1a   |     |     |     |     1b                   1c
|     |         |     |     |     |
|     |         |     |     |     |
|    .+.       .+.    |     |    .+.                       Core
|   (   )     (   )   |     |   (   )                 -------------->
|    `+'       `+'    |     |    `+'                        .-.
|     |         |     |     |     |                   +----( C )----+
|     |         |     |     |     |                   |     `-'     |
|     |         |     |     |     |                   |             |
|    .+.       .+.    |     |    .+.                 .+.     1d    .+.
+-> ( * )     ( * ) <-+     +-> ( * )               (C/*)         (C/*)
     `-'       `-'               `-'                 `-'           `-'



          .-.                      .-.                   .-.
+--   +--( C )--+   --+      +--  (C/*)        +--    - ( C ) -    --+
|     |   `-'   |     |      |     `+'         |     |   `-'   |     |
|     |         |     |      |      |          |                     |
|     |    2a   |     |      |  2b  |          |     |    3a   |     |
|     |         |     |      |      |          |                     |
|    .+.       .+.    |      |     .+.         |    .+.       .+.    |
|   (   )     (   )   |      |    (   )        |   (   #-----#   )   |
|    `+'       `+'    |      |     `+'         |    `+'  Peer `+'    |
|     |         |     |      |      |          |     |         |     |
|     |         |     |      |      |          |     |         |     |
|     |         |     |      |      |          |     |         |     |
|    .+.       .+.    |      |     .+.         |    .+.       .+.    |
+-> ( * )     ( * ) <-+      +->  ( * )        +-> ( * )     ( * ) <-+
     `-'       `-'                 `-'              `-'       `-'


          Core                                    Core
      ---------->                              ---------->
     .-.       .-.             .-.            .-.       .-.        .-.
 +--( C )- - -( C )--+  +---- ( C ) ----+    ( C )- - -( C )  +-- ( C )
 |   `+'       `+'   |  |      `+'      |     `+'       `+'   |    `+'
 |         3b        |  |           4a  |          4b         |  5
 |    |         |    |  |       |       |      |         |    |     |
 |                   |  |               |                     |
 |   .+.       .+.   |  |      .+.      |      + - --. - +    |    .+.
 |  (   #-----#   )  |  |   +-(   )-+   |      +--(   )--+    |   ( * )
 |   `+'  Peer `+'   |  |   |  `-'  |   |      |   `-'   |    |    `+'
 |    |         |    |  |   |       |   |      |         |    |     |
 |    |         |    |  |   |       |   |      |         |    |     |
 |    |         |    |  |   |       |   |      |         |    |     |
 |   .+.       .+.   |  |  .+.     .+.  |     .+.       .+.   |    .+.
 +->( * )     ( * )<-+  +>( * )   ( * )<+    ( * )     ( * )  +-> ( * )
     `-'       `-'         `-'     `-'        `-'       `-'        `-'
]]></artwork>
        </figure>
        <t>Valid path segment combinations:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Communication through core ASes</strong>:  </t>
            <ul spacing="normal">
              <li>
                <t><strong>Core segment combination</strong> (Cases 1a, 1b, 1c, 1d in <xref target="_figure-1"/>): The up and down segments of source and destination do not have an AS in common. In this case, a core segment is <bcp14>REQUIRED</bcp14> to connect the source's up segment and the destination's down segment (Case 1a). If either the source or the destination AS is a core AS (Case 1b) or both are core ASes (Cases 1c and 1d), then no up or down segments are <bcp14>REQUIRED</bcp14> to connect the respective ASes to the core segment.</t>
              </li>
              <li>
                <t><strong>Immediate combination</strong> (Cases 2a, 2b in <xref target="_figure-1"/>): The last AS on the up segment (which is necessarily a core AS) is the same as the first AS on the down segment. In this case, a simple combination of up and down segments creates a valid forwarding path. In Case 2b, only one segment is required.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Peering shortcut</strong> (Cases 3a and 3b): A peering link exists between the up and down segment, and extraneous path segments to the core are cut off. Note that the up and down segments do not need to originate from the same core AS and the peering link could also be traversing to a different ISD.</t>
          </li>
          <li>
            <t><strong>AS shortcut</strong> (Cases 4a and 4b): The up and down segments intersect at a non-core AS below the ISD core, thus creating a shortcut. In this case, a shorter path is made possible by removing the extraneous part of the path to the core. Note that the up and down segments do not need to originate from the same core AS.</t>
          </li>
          <li>
            <t><strong>On-path</strong> (Case 5): In the case where the source's up segment contains the destination AS or the destination's down segment contains the source AS, a single segment is sufficient to construct a forwarding path. Again, no core AS is on the final path.</t>
          </li>
        </ul>
      </section>
      <section anchor="path-authorization">
        <name>Path Authorization</name>
        <t>The SCION Data Plane provides <em>path authorization</em>. This property ensures that data packets always traverse the network using path segments that were explicitly authorized by the respective ASes and prevents endpoints from constructing unauthorized paths or paths containing loops. SCION uses symmetric cryptography in the form of Message Authentication Codes (MACs) to authenticate the information encoded in Hop Fields and such MACs are verified by routers at forwarding. For a detailed specification, see <xref target="path-auth"/>.</t>
      </section>
    </section>
    <section anchor="header">
      <name>SCION Header Specification</name>
      <t>The SCION packet header is aligned to 4 bytes. It is composed of a common header, an address header, a path header, and an <bcp14>OPTIONAL</bcp14> extension header, see <xref target="_figure-2"/> below.</t>
      <figure anchor="_figure-2">
        <name>High-level SCION header structure</name>
        <artwork><![CDATA[
+--------------------------------------------------------+
|                     Common header                      |
|                                                        |
+--------------------------------------------------------+
|                     Address header                     |
|                                                        |
+--------------------------------------------------------+
|                      Path header                       |
|                                                        |
+--------------------------------------------------------+
|               Extension header (OPTIONAL)              |
|                                                        |
+--------------------------------------------------------+
]]></artwork>
      </figure>
      <t>The <em>common header</em> contains important meta information including version number and the lengths of the header and payload. In particular, it contains flags that control the format of subsequent headers such as the address and path headers. For more details, see <xref target="common-header"/>.</t>
      <t>The <em>address header</em> contains the ISD, AS and endpoint addresses of source and destination. The type and length of endpoint addresses are variable and can be set independently using flags in the common header. For more details, see <xref target="address-header"/>.</t>
      <t>The <em>path header</em> contains the full AS-level forwarding path of the packet. A path type field in the common header specifies the path format used in the path header. For more details, see <xref target="path-header"/>.</t>
      <t>The <bcp14>OPTIONAL</bcp14> <em>extension</em> header contains a variable number of hop-by-hop and end-to-end options, similar to extensions in the IPv6 header <xref target="RFC8200"/>. For more details, see <xref target="ext-header"/>.</t>
      <section anchor="common-header">
        <name>Common Header</name>
        <t>The SCION common header has the following packet format:</t>
        <figure anchor="_figure-3">
          <name>The SCION common header packet format</name>
          <artwork><![CDATA[
0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  TraffCl      |                Flow Label             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    NextHdr    |    HdrLen     |          PayloadLen           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    PathType   |DT |DL |ST |SL |              RSV              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>Version</tt>: The version of the SCION common header. Currently, only version "0" is supported.</t>
          </li>
          <li>
            <t><tt>TrafficClass</tt> (<tt>TraffCl</tt> in the image above): The 8-bit long identifier of the packet's class or priority. The value of the traffic class bits in a received packet might differ from the value sent by the packet's source. The current use of the <tt>TrafficClass</tt> field for Differentiated Services and Explicit Congestion Notification is specified in <xref target="RFC2474"/> and <xref target="RFC3168"/>.</t>
          </li>
          <li>
            <t><tt>Flow Label</tt>: This 20-bit field labels sequences of packets to be treated in the network as a single flow. Sources <bcp14>MUST</bcp14> set this field. This serves the same purpose as what <xref target="RFC6437"/> describes for IPv6 and is used in the same manner. Notably, a Flow Label of zero does not imply that packet reordering is acceptable.</t>
          </li>
          <li>
            <t><tt>NextHdr</tt>: Encodes the type of the first header after the SCION header. This can be either a SCION extension or a Layer 4 protocol such as TCP or UDP. Values of this field respect the Assigned SCION Protocol Numbers (see <xref target="protnum"/>).</t>
          </li>
          <li>
            <t><tt>HdrLen</tt>: Specifies the entire length of the SCION header in bytes, i.e. the sum of the lengths of the common header, the address header, and the path header. The SCION header is aligned to a multiple of 4 bytes. The SCION header length is computed as <tt>HdrLen</tt> * 4 bytes. The 8 bits of the <tt>HdrLen</tt> field limit the SCION header to a maximum of 255 * 4 = 1020 bytes.</t>
          </li>
          <li>
            <t><tt>PayloadLen</tt>: Specifies the length of the payload in bytes. The payload includes (SCION) extension headers and the L4 payload. This field is 16 bits long, supporting a maximum payload size of 65'535 bytes.</t>
          </li>
          <li>
            <t><tt>PathType</tt>: Specifies the type of the SCION path and is 8 bits long. The format of one path type is independent of all other path types. The currently defined SCION path types are Empty (0), SCION (1), OneHopPath (2), EPIC (3) and COLIBRI (4). This document only specifies the Empty, SCION and OneHopPath path types. The other path types are currently experimental. For more details, see <xref target="path-header"/>.</t>
          </li>
        </ul>
        <table anchor="_table-1">
          <name>SCION path types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Path Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Empty path (<tt>EmptyPath</tt>)</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">SCION (<tt>SCION</tt>)</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">One-hop path (<tt>OneHopPath</tt>)</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">EPIC path (experimental)</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">COLIBRI path (experimental)</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t><tt>DT/DL/ST/SL</tt>: These fields define the endpoint address type and endpoint address length for the source and destination endpoint. <tt>DT</tt> and <tt>DL</tt> stand for Destination Type and Destination Length, whereas <tt>ST</tt> and <tt>SL</tt> stand for Source Type and Source Length. The possible endpoint address length values are 4 bytes, 8 bytes, 12 bytes, and 16 bytes. If an address has a length different from the supported values, the next larger size <bcp14>SHALL</bcp14> be used and the address can be padded with zeros. <xref target="_table-2"/> below lists the currently used values for address length. The "type" identifier is only defined in combination with a specific address length. For example, address type "0" is defined as IPv4 in combination with address length 4, but is defined as IPv6 in combination with address length 16. Per address length, several sub-types are possible and <xref target="_table-3"/> shows the currently assigned combinations of lengths and types.</t>
          </li>
        </ul>
        <table anchor="_table-2">
          <name>Address length values</name>
          <thead>
            <tr>
              <th align="left">DL/SL Value</th>
              <th align="left">Address Length</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">4 bytes</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">8 bytes</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">12 bytes</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">16 bytes</td>
            </tr>
          </tbody>
        </table>
        <table anchor="_table-3">
          <name>Allocations of type values to length values</name>
          <thead>
            <tr>
              <th align="left">Length (bytes)</th>
              <th align="left">Type</th>
              <th align="left">DT/DL or ST/SL encoding</th>
              <th align="left">Conventional Use</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">0</td>
              <td align="left">0b0000</td>
              <td align="left">IPv4</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">1</td>
              <td align="left">0b0100</td>
              <td align="left">Service</td>
            </tr>
            <tr>
              <td align="left">16</td>
              <td align="left">0</td>
              <td align="left">0b0011</td>
              <td align="left">IPv6</td>
            </tr>
            <tr>
              <td align="left">other</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
            </tr>
          </tbody>
        </table>
        <t>A service address designates a set of endpoint addresses rather than a singular one. A packet addressed to a service is redirected to any one endpoint address that is known to be part of the set. <xref target="_table-4"/> lists the known services.</t>
        <ul spacing="normal">
          <li>
            <t><tt>RSV</tt>: These bits are currently reserved for future use.</t>
          </li>
        </ul>
      </section>
      <section anchor="address-header">
        <name>Address Header</name>
        <t>The SCION address header has the following format:</t>
        <figure anchor="_figure-4">
          <name>The SCION address header packet format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DstISD             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                             DstAS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SrcISD             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                             SrcAS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    DstHostAddr (variable Len)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    SrcHostAddr (variable Len)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>DstISD, SrcISD</tt>: The 16-bit ISD identifier of the destination/source.</t>
          </li>
          <li>
            <t><tt>DstAS, SrcAS</tt>: The 48-bit AS identifier of the destination/source.</t>
          </li>
          <li>
            <t><tt>DstHostAddr, SrcHostAddr</tt>: Specifies the variable length endpoint address of the destination/source. The accepted type and length are defined in the <tt>DT/DL/ST/SL</tt> fields of the common header.</t>
          </li>
        </ul>
        <t>If a service address is implied by the <tt>DT/DL</tt> or <tt>ST/SL</tt> field of the common header, the corresponding address field has the following format:</t>
        <figure anchor="_figure-20">
          <name>Service address format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Service Number        |              RSV              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>RSV</tt>: reserved for future use</t>
          </li>
        </ul>
        <t>The currently known service numbers are:</t>
        <table anchor="_table-4">
          <name>Known Service Numbers</name>
          <thead>
            <tr>
              <th align="left">Service Number (hex)</th>
              <th align="left">Short Name</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0001</td>
              <td align="left">DS</td>
              <td align="left">Discovery Service</td>
            </tr>
            <tr>
              <td align="left">0x0002</td>
              <td align="left">CS</td>
              <td align="left">Control Service</td>
            </tr>
            <tr>
              <td align="left">0xFFFF</td>
              <td align="left">None</td>
              <td align="left">Reserved invalid value</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Note:</strong> For more information on addressing in SCION, see the SCION Control Plane Specification (<xref target="I-D.dekater-scion-controlplane"/>).</t>
      </section>
      <section anchor="path-header">
        <name>Path Header</name>
        <t>The path header of a SCION packet differs for each SCION path type. The path type is set in the <tt>PathType</tt> field of the SCION common header.</t>
        <t>SCION supports three path types:</t>
        <section anchor="empty">
          <name>Empty Path Type</name>
          <t>The <tt>Empty</tt> path type (<tt>PathType=0</tt>) is used to send traffic within an AS. It has no additional fields, i.e. it consumes 0 bytes on the wire.</t>
          <t>One use case of the <tt>Empty</tt> path type lies in the context of <xref target="scion-bfd">link-failure detection</xref>.</t>
        </section>
        <section anchor="scion-path-type">
          <name>SCION Path Type</name>
          <t>The <tt>SCION</tt> path type (<tt>PathType=1</tt>) is the standard path type. A SCION path has the following layout:</t>
          <figure anchor="_figure-5">
            <name>Layout of a standard SCION path</name>
            <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          PathMetaHdr                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           InfoField                           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           InfoField                           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>It consists of a path meta header, up to 3 Info Fields and up to 64 Hop Fields.</t>
          <ul spacing="normal">
            <li>
              <t><tt>PathMetaHdr</tt> indicates the currently valid Info Field and Hop Field while the packet is traversing the network along the path, as well as the number of Hop Fields per segment.</t>
            </li>
            <li>
              <t><tt>InfoField</tt> equals the number of path segments that the path contains - there is one Info Field per path segment. Each Info Field contains basic information about the corresponding segment, such as a timestamp indicating the creation time. There are also two flags: one specifies whether the segment is to be traversed in construction direction, the other whether the first or last Hop Field in the segment represents a peering Hop Field.</t>
            </li>
            <li>
              <t><tt>HopField</tt> represents a hop through an AS on the path, with the ingress and egress interface identifiers for this AS. This information is authenticated with a Message Authentication Code (MAC) to prevent forgery.</t>
            </li>
          </ul>
          <t>The SCION header is created by extracting the required Info Fields and Hop Fields from the corresponding path segments. The process of extracting is illustrated in <xref target="_figure-6"/> below. Note that ASes at the intersection of multiple segments are represented by two Hop Fields. Be aware that these Hop Fields are not equal!</t>
          <t>In the Hop Field that represents the last Hop in the first segment (seen in the direction of travel), only the ingress interface will be specified. However, in the hop Field that represents the first hop in the second segment (also in the direction of travel), only the egress interface will be defined. Thus, the two Hop Fields for this one AS build a full hop through the AS, specifying both the ingress and egress interface. As such, they bring the two adjacent segments together.</t>
          <figure anchor="_figure-6">
            <name>Path construction example</name>
            <artwork><![CDATA[
                   +-----------------+
                   |    ISD Core     |
  .--.    .--.     |  .--.     .--.  |     .--.    .--.
 (AS 3)--(AS 4)----|-(AS 1)---(AS 2)-|----(AS 5)--(AS 6)
  `--'    `--'     |  `--'     `--'  |     `--'    `--'
                   +-----------------+

 Up-Segment           Core-Segment        Down-Segment
+---------+           +---------+         +---------+
| +-----+ |           | +-----+ |         | +-----+ |
| + INF + |--------+  | + INF + |---+     | + INF + |--+
| +-----+ |        |  | +-----+ |   |     | +-----+ |  |
| +-----+ |        |  | +-----+ |   |     | +-----+ |  |
| | HF  | |------+ |  | | HF  | |---+-+   | | HF  | |--+-+
| +-----+ |      | |  | +-----+ |   | |   | +-----+ |  | |
| +-----+ |      | |  | +-----+ |   | |   | +-----+ |  | |
| | HF  | |----+ | |  | | HF  | |---+-+-+ | | HF  | |--+-+-+
| +-----+ |    | | |  | +-----+ |   | | | | +-----+ |  | | |
| +-----+ |    | | |  +---------+   | | | | +-----+ |  | | |
| | HF  | |--+ | | |                | | | | | HF  | |--+-+-+-+
| +-----+ |  | | | |  +----------+  | | | | +-----+ |  | | | |
+---------+  | | | |  | ++++++++ |  | | | +---------+  | | | |
             | | | |  | | Meta | |  | | |              | | | |
             | | | |  | ++++++++ |  | | |              | | | |
             | | | |  | +------+ |  | | |              | | | |
             | | | +->| + INF  + |  | | |              | | | |
             | | |    | +------+ |  | | |              | | | |
             | | |    | +------+ |  | | |              | | | |
             | | |    | + INF  + |<-+ | |              | | | |
             | | |    | +------+ |    | |              | | | |
             | | |    | +------+ |    | |              | | | |
             | | |    | + INF  + |<---+-+--------------+ | | |
             | | |    | +------+ |    | |                | | |
             | | |    | +------+ |    | |                | | |
             | | +--->| |  HF  | |    | |                | | |
             | |      | +------+ |    | |                | | |
             | |      | +------+ |    | |                | | |
             | +----->| |  HF  | |    | |                | | |
             |        | +------+ |    | |                | | |
             |        | +------+ |    | |                | | |
             +------->| |  HF  | |    | |                | | |
                      | +------+ |    | |                | | |
                      | +------+ |    | |                | | |
                      | |  HF  | |<---+ |                | | |
                      | +------+ |      |                | | |
                      | +------+ |      |                | | |
     Forwarding Path  | |  HF  | |<-----+                | | |
                      | +------+ |                       | | |
                      | +------+ |                       | | |
                      | |  HF  | |<----------------------+ | |
                      | +------+ |                         | |
                      | +------+ |                         | |
                      | |  HF  | |<------------------------+ |
                      | +------+ |                           |
                      | +------+ |                           |
                      | |  HF  | |<--------------------------+
                      | +------+ |
                      +----------+
]]></artwork>
          </figure>
          <section anchor="PathMetaHdr">
            <name>Path Meta Header Field</name>
            <t>The 4-byte Path Meta Header field (<tt>PathMetaHdr</tt>) defines meta information about the SCION path that is contained in the path header. It has the following format:</t>
            <figure anchor="_figure-7">
              <name>SCION path type - Format of the Path Meta Header field</name>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C |  CurrHF   |    RSV    |  Seg0Len  |  Seg1Len  |  Seg2Len  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <ul spacing="normal">
              <li>
                <t><tt>C</tt> (urrINF): Specifies a 2-bits index (0-based) pointing to the current Info Field for the packet on its way through the network. For details, see <xref target="offset-calc"/> below.</t>
              </li>
              <li>
                <t><tt>CurrHF</tt>: Specifies a 6-bits index (0-based) pointing to the current Hop Field for the packet on its way through the network. For details, see <xref target="offset-calc"/> below. Note that the <tt>CurrHF</tt> index <bcp14>MUST</bcp14> point to a Hop Field that is part of the current path segment, as indicated by the <tt>CurrINF</tt> index.</t>
              </li>
            </ul>
            <t>Both indices are used by SCION routers when forwarding data traffic through the network. The SCION routers also increment the indexes if required. For more details, see <xref target="process-router"/>.</t>
            <ul spacing="normal">
              <li>
                <t><tt>Seg{0,1,2}Len</tt>: The number of Hop Fields in a given segment. Seg{i}Len &gt; 0 implies that segment <em>i</em> contains at least one Hop Field, which means that Info Field <em>i</em> exists. (If Seg{i}Len = 0 then segment <em>i</em> is empty, meaning that this path does not include segment <em>i</em>, and therefore there is no Info Field <em>i</em>.) The following rules apply:  </t>
                <ul spacing="normal">
                  <li>
                    <t>The total number of Hop Fields in an end-to-end path <bcp14>MUST</bcp14> be equal to the sum of all <tt>Seg{0,1,2}Len</tt> contained in this end-to-end path.</t>
                  </li>
                  <li>
                    <t>It is an error to have Seg{X}Len &gt; 0 AND Seg{Y}Len == 0, where 2 &gt;= <em>X</em> &gt; <em>Y</em> &gt;= 0. That is, if path segment Y is empty, the following path segment X <bcp14>MUST</bcp14> also be empty.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>RSV</tt>: Unused and reserved for future use.</t>
              </li>
            </ul>
          </section>
          <section anchor="offset-calc">
            <name>Path Offset Calculations</name>
            <t>The path offset calculations are used by the SCION border routers to determine the Info Field and Hop Field that are currently valid for the packet on its way through the network.</t>
            <t>The following rules apply when calculating the path offsets:</t>
            <artwork><![CDATA[
   if Seg2Len > 0: NumINF = 3
   else if Seg1Len > 0: NumINF = 2
   else if Seg0Len > 0: NumINF = 1
   else: invalid
]]></artwork>
            <t>The offsets of the current Info Field and current Hop Field (relative to the end of the address header) are now calculated as:</t>
            <artwork><![CDATA[
   B = byte
   InfoFieldOffset = 4B + 8B * CurrINF
   HopFieldOffset = 4B + 8B.NumINF + 12B * CurrHF
]]></artwork>
            <t>To check that the current Hop Field is in the segment of the current Info Field, the <tt>CurrHF</tt> needs to be compared to the <tt>SegLen</tt> fields of the current and preceding Info Fields.</t>
          </section>
          <section anchor="inffield">
            <name>Info Field</name>
            <t>The 8-byte Info Field (<tt>InfoField</tt>) has the following format:</t>
            <figure anchor="_figure-8">
              <name>SCION path type - Format of the Info Field</name>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RSV    |P|C|      RSV      |             Acc               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <ul spacing="normal">
              <li>
                <t><tt>RSV</tt>: Unused and reserved for future use.</t>
              </li>
              <li>
                <t><tt>P</tt>: Peering flag. If the flag has value "1", the segment represented by this Info Field contains a peering Hop Field, which requires special processing in the data plane. For more details, see <xref target="peerlink"/> and <xref target="packet-verif"/>.</t>
              </li>
              <li>
                <t><tt>C</tt>: Construction direction flag. If the flag has value "1", the Hop Fields in the segment represented by this Info Field are arranged in the direction they have been constructed during beaconing.</t>
              </li>
              <li>
                <t><tt>Acc</tt>: Accumulator. This updatable field/counter is <bcp14>REQUIRED</bcp14> for calculating the MAC in the data plane. For more details, see <xref target="auth-chained-macs"/>.</t>
              </li>
              <li>
                <t><tt>Timestamp</tt>: Timestamp created by the initiator of the corresponding beacon. The timestamp is defined as the number of seconds elapsed since the POSIX Epoch (1970-01-01 00:00:00 UTC), encoded as a 32-bit unsigned integer. This timestamp enables the validation of a Hop Field in the segment represented by this Info Field, by verifying the expiration time and MAC set in the Hop Field - the expiration time of a Hop Field is calculated relative to the timestamp. A Info field with a timestamp in the future is invalid. For the purpose of validation, a timestamp is considered "future" if it is later than the locally available current time plus 337.5 seconds (i.e. the minimum time to live of a hop).</t>
              </li>
            </ul>
          </section>
          <section anchor="hopfld">
            <name>Hop Field</name>
            <t>The 12-byte Hop Field (<tt>HopField</tt>) has the following format:</t>
            <figure anchor="_figure-9">
              <name>SCION path type - Format of the Hop Field</name>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RSV    |I|E|    ExpTime    |           ConsIngress         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        ConsEgress             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              MAC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <ul spacing="normal">
              <li>
                <t><tt>RSV</tt>: Unused and reserved for future use.</t>
              </li>
              <li>
                <t><tt>I</tt>: The Ingress Router Alert flag. If this has value "1" and the packet is received on the interface with ID  corresponding to the value of <tt>ConsIngress</tt>, the router <bcp14>SHOULD</bcp14> process the L4 payload in the packet.</t>
              </li>
              <li>
                <t><tt>E</tt>: The Egress Router Alert flag. If this has value "1" and the packet is received on the interface with ID  corresponding to the value of <tt>ConsEgress</tt>, the router <bcp14>SHOULD</bcp14> process the L4 payload in the packet.</t>
              </li>
              <li>
                <t><tt>ExpTime</tt>: Expiration time of a Hop Field. This field is 1-byte long, and the expiration time specified in this field is relative. An absolute expiration time in seconds is computed in combination with the <tt>Timestamp</tt> field (from the corresponding Info Field), as follows:  </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>Timestamp</tt> + (1 + <tt>ExpTime</tt>) * (3600/256)</t>
                  </li>
                </ul>
              </li>
              <li>
                <t><tt>ConsIngress</tt>, <tt>ConsEgress</tt>: The 16-bits ingress/egress interface IDs in construction direction, that is, the direction of beaconing.</t>
              </li>
              <li>
                <t><tt>MAC</tt>: The 6-byte Message Authentication Code to authenticate the Hop Field. For details on how this MAC is calculated, see <xref target="hf-mac-overview"/>.</t>
              </li>
            </ul>
            <t>The Ingress Router (respectively Egress Router) is the router owning the Ingress interface (respectively, Egress interface) when the packet is traveling in the <em>construction direction</em> of the path segment (i.e. the direction of beaconing). When the packet is traveling in the opposite direction, the meanings are reversed.</t>
            <t>Router alert flags work similarly to <xref target="RFC2711"/> and allow a sender to address a specific router on the path without knowing its address. Processing the L4 payload in the packet means that the router will treat the payload of the packet as a message to itself and parse it according to the value of the <tt>NextHdr</tt> field. Such messages include <xref target="traceroute-request">Traceroute Requests</xref></t>
            <t>Setting multiple router alert flags on a path <bcp14>SHOULD</bcp14> be avoided. This is because the router for which the corresponding Router Alert flag is set to "1" may process the request without further forwarding it along the path. Use cases that require multiple routers/hops on the path to process a packet <bcp14>SHOULD</bcp14> rely on a hop-by-hop extension (see <xref target="ext-header"/>).</t>
          </section>
        </section>
        <section anchor="onehop">
          <name>One-Hop Path Type</name>
          <t>The <tt>OneHopPath</tt> path type (<tt>PathType=2</tt>) is currently used to bootstrap beaconing between neighboring ASes. This is necessary as neighbor ASes do not have a forwarding path before beaconing is started.</t>
          <t>A one-hop path has exactly one Info Field and two Hop Fields with the specialty that the second Hop Field is not known a priori, but is instead created by the ingress SCION border router of the neighboring AS while processing the one-hop path. Any entity with access to the forwarding key of the source endpoint AS can create a valid info and Hop Field as described in <xref target="inffield"/> and <xref target="hopfld"/>, respectively.</t>
          <t>Upon receiving a packet containing a one-hop path, the ingress border router of the destination AS fills in the <tt>ConsIngress</tt> field in the second Hop Field of the one-hop path with the ingress interface ID. It sets the <tt>ConsEgress</tt> field to an invalid value (e.g. unspecified value 0), ensuring the path cannot be used beyond the destination AS. Then it calculates and appends the appropriate MAC for the Hop Field.</t>
          <t><xref target="_figure-10"/> below shows the layout of a SCION one-hop path type. There is only a single Info Field; the appropriate Hop Field can be processed by a border router based on the source and destination address. In this context, the following rules apply:</t>
          <ul spacing="normal">
            <li>
              <t>At the source endpoint AS, <em>CurrHF := 0</em>.</t>
            </li>
            <li>
              <t>At the destination endpoint AS, <em>CurrHF := 1</em>.</t>
            </li>
          </ul>
          <figure anchor="_figure-10">
            <name>Layout of the SCION one-hop path type</name>
            <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           InfoField                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </section>
        <section anchor="reverse">
          <name>Path Reversal</name>
          <t>When a destination endpoint receives a SCION packet, it <bcp14>MAY</bcp14> use the path information in the SCION header for sending the reply packets. To reverse a path, the destination endpoint <bcp14>MUST</bcp14> perform the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Reverse the order of the Info Fields;</t>
            </li>
            <li>
              <t>Reverse the order of the Hop Fields;</t>
            </li>
            <li>
              <t>For each Info Field, negate the construction direction flag <tt>C</tt>; do not change the accumulator field <tt>Acc</tt>.</t>
            </li>
            <li>
              <t>In the <tt>PathMetaHdr</tt> field:  </t>
              <ul spacing="normal">
                <li>
                  <t>Set the <tt>CurrINF</tt> and <tt>CurrHF</tt> to "0".</t>
                </li>
                <li>
                  <t>Reverse the order of the non-zero <tt>SegLen</tt> fields.</t>
                </li>
              </ul>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="ext-header">
        <name>Extension Headers</name>
        <t>SCION provides two types of extension headers:</t>
        <ul spacing="normal">
          <li>
            <t>The Hop-by-Hop Options header is used to carry <bcp14>OPTIONAL</bcp14> information that <bcp14>MAY</bcp14> be examined and processed by every SCION router along a packet's delivery path. The Hop-by-Hop Options header is identified by value "200" in the <tt>NextHdr</tt> field of the SCION common header (see <xref target="common-header"/>).</t>
          </li>
          <li>
            <t>The End-to-End Options header is used to carry <bcp14>OPTIONAL</bcp14> information that <bcp14>MAY</bcp14> be examined and processed by the sender and/or the receiving endpoints of the packet. The End-to-End Options header is identified by value "201" in the <tt>NextHdr</tt> field of the SCION common header (see <xref target="common-header"/>).</t>
          </li>
        </ul>
        <t>If both headers are present, the Hop-by-Hop Options header <bcp14>MUST</bcp14> come before the End-to-End Options header.</t>
        <t><strong>Note:</strong> The SCION extension headers are defined and used based on and similar to the IPv6 extensions as specified in section 4 of <xref target="RFC8200"/>. The SCION Hop-by-Hop Options header and End-to-End Options header resemble the IPv6 Hop-by-Hop Options Header (section 4.3 in the RFC) and Destination Options Header (section 4.6), respectively.</t>
        <t>The SCION Hop-by-Hop Options and End-to-End Options headers are aligned to 4 bytes and have the following format:</t>
        <figure anchor="_figure-11">
          <name>Extension headers: Options header</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    NextHdr    |     ExtLen    |            Options            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>NextHdr</tt>: Unsigned 8-bit integer. Identifies the type of header immediately following the Hop-by-Hop/End-to-End Options header. Values of this field respect the Assigned SCION Protocol Numbers (see also <xref target="protnum"/>).</t>
          </li>
          <li>
            <t><tt>ExtLen</tt>: 8-bit unsigned integer. The length of the Hop-by-hop or End-to-end options header in 4-octet units, not including the first 4 octets. That is: <tt>ExtLen = uint8(((L + 2) / 4) - 1)</tt>, where <tt>L</tt> is the size of the header in bytes, assuming that <tt>L + 2</tt> is a multiple of 4.</t>
          </li>
          <li>
            <t><tt>Options</tt>: This is a variable-length field. The length of this field <bcp14>MUST</bcp14> be such that the complete length of the Hop-by-Hop/End-to-End Options header is an integer multiple of 4 bytes. This can be achieved by using options of type 0 or 1 (see <xref target="_table-4"/>) . The <tt>Options</tt> field contains one or more Type-Length-Value (TLV) encoded options. For details, see <xref target="optfld"/>.</t>
          </li>
        </ul>
        <section anchor="optfld">
          <name>Options Field</name>
          <t>The <tt>Options</tt> field of the Hop-by-Hop Options and the End-to-End Options headers carries a variable number of options that are type-length-value (TLV) encoded. Each TLV-encoded option has the following format:</t>
          <figure anchor="_figure-12">
            <name>Options field: TLV-encoded options</name>
            <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    OptType    |  OptDataLen   |            OptData            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <ul spacing="normal">
            <li>
              <t><tt>OptType</tt>: 8-bit identifier of the type of option. The following option types are assigned to the SCION HBH/E2E Options header:</t>
            </li>
          </ul>
          <table anchor="_table-5">
            <name>Option types of SCION Options header</name>
            <thead>
              <tr>
                <th align="left">Decimal</th>
                <th align="left">Option Type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">Pad1 (see <xref target="pad1"/>)</td>
              </tr>
              <tr>
                <td align="left">1</td>
                <td align="left">PadN (see <xref target="padn"/>)</td>
              </tr>
              <tr>
                <td align="left">2</td>
                <td align="left">SCION Packet Authenticator Option.<br/> Only used by the End-to-End Options header (experimental).</td>
              </tr>
              <tr>
                <td align="left">253</td>
                <td align="left">Used for experimentation and testing</td>
              </tr>
              <tr>
                <td align="left">254</td>
                <td align="left">Used for experimentation and testing</td>
              </tr>
              <tr>
                <td align="left">255</td>
                <td align="left">Reserved</td>
              </tr>
            </tbody>
          </table>
          <ul spacing="normal">
            <li>
              <t><tt>OptDataLen</tt>: Unsigned 8-bit integer denoting the length of the <tt>OptData</tt> field of this option in bytes.</t>
            </li>
            <li>
              <t><tt>OptData</tt>: Variable-length field. Option-type specific data.</t>
            </li>
          </ul>
          <t>The options within a header <bcp14>MUST</bcp14> be processed strictly in the order they appear in the header. This is to prevent a receiver from, for example, scanning through the header looking for a specific option and processing this option prior to all preceding ones.</t>
          <t>Individual options may have specific alignment requirements, to ensure that multibyte values within the <tt>OptData</tt> fields have natural boundaries. The alignment requirement of an option is specified using the notation "xn+y". This means that the <tt>OptType</tt> <bcp14>MUST</bcp14> appear at an integer multiple of x bytes from the start of the header, plus y bytes. For example:</t>
          <ul spacing="normal">
            <li>
              <t><tt>2n</tt>: means any 2-bytes offset from the start of the header.</t>
            </li>
            <li>
              <t><tt>4n+2</tt>: means any 4-bytes offset from the start of the header, plus 2 bytes.</t>
            </li>
          </ul>
          <t>There are two padding options to align subsequent options and to pad out the containing header to a multiple of 4 bytes in length - for details, see below. All SCION implementations <bcp14>MUST</bcp14> recognize these padding options.</t>
          <section anchor="pad1">
            <name>Pad1 Option</name>
            <t>Alignment requirement: none.</t>
            <figure anchor="_figure-13">
              <name>TLV-encoded options - Pad1 option</name>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|       0       |
+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <t><strong>Note:</strong> The format of the Pad1 option is a special case - it does not have length and value fields.</t>
            <t>The Pad1 option is used to insert 1 byte of padding into the <tt>Options</tt> field of an extension header. If more than one byte of padding is required, the PadN option <bcp14>MUST</bcp14> be used.</t>
          </section>
          <section anchor="padn">
            <name>PadN Option</name>
            <t>Alignment requirement: none.</t>
            <figure anchor="_figure-14">
              <name>TLV-encoded options - PadN option</name>
              <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       1       |  OptDataLen   |            OptData            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <t>The PadN option is used to insert two or more bytes of padding into the <tt>Options</tt> field of an extension header. For N bytes of padding, the <tt>OptDataLen</tt> field contains the value N-2, and the <tt>OptData</tt> consists of N-2 zero-valued bytes.</t>
          </section>
        </section>
      </section>
      <section anchor="pseudo">
        <name>Pseudo Header for Upper-Layer Checksum</name>
        <t>The SCION Data Plane does not provide payload integrity protection, as further clarified in <xref target="payload-integrity"/>.
Should any transport or other upper-layer protocols compute a checksum of the SCION header, then they <bcp14>SHOULD</bcp14> use the following pseudo header:</t>
        <figure anchor="_figure-15">
          <name>Layout of the pseudo header for the upper-layer checksum</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
|            DstISD             |                               |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               + SCION|
|                             DstAS                             |   ad-|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ dress|
|            SrcISD             |                               |  hea-|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +   der|
|                             SrcAS                             |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |
|                    DstHostAddr (variable Len)                 |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |
|                    SrcHostAddr (variable Len)                 |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
|                    Upper-Layer Packet Length                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      zero                     |  Next Header  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>DstISD</tt>, <tt>SrcISD</tt>, <tt>DstAS</tt>, <tt>SrcAS</tt>, <tt>DstHostAddr</tt>, <tt>SrcHostAddr</tt>: These values are taken from the SCION address header.</t>
          </li>
          <li>
            <t><tt>Upper-Layer Packet Length</tt>: The length of the upper-layer header and data. Some upper-layer protocols define headers that carry the length information explicitly (e.g. UDP). This information is used as the upper-layer packet length in the pseudo header for these protocols. The remaining protocols, which do not carry the length information directly, use the value from the <tt>PayloadLen</tt> field in the SCION common header, minus the sum of the extension header lengths.</t>
          </li>
          <li>
            <t><tt>Next Header</tt>: The protocol identifier associated with the upper-layer protocol (e.g., 17 for UDP - see also <xref target="protnum"/>). This field can differ from the <tt>NextHdr</tt> field in the SCION common header, if extensions are present.</t>
          </li>
        </ul>
        <t>This pseudo-header is used in current implementations of UDP on top of SCION. However, as checksums across layers are not recommended, this should be re-evaluated in future revisions.</t>
      </section>
    </section>
    <section anchor="life-of-a-packet">
      <name>Life of a SCION Data Packet</name>
      <t>This section gives a high-level description of the life cycle of a SCION packet: how it is created at its source endpoint, passes through a number of SCION routers, and finally reaches its destination endpoint. It is assumed that both source and destination are native SCION endpoints (i.e. they both run a native SCION network stack).</t>
      <t>This example illustrates an intra-ISD case, i.e. all communication happening within a single ISD. As the sample ISD only consists of one core AS, the end-to-end path only includes an up-path and down-path segment. In the case of inter-ISD forwarding, the complete end-to-end path from source endpoint to destination endpoint would always require a core path segment as well, although this makes no difference for the forwarding process which works the same in an intra-ISD and inter-ISD context.</t>
      <section anchor="description">
        <name>Description</name>
        <figure anchor="_figure-16">
          <name>Sample topology to illustrate the life cycle of a SCION packet. AS1 is the core AS of ISD 1, and AS2 and AS3 are non-core ASes of ISD 1.</name>
          <artwork><![CDATA[
                    +--------------------+
                    |                    |
                    |        AS1         |
                    |                    |
                    |                    |
                    |     198.51.100.4 .-+. i1b (1-1,198.51.100.17)
                    |          +------( R3 )---+
                   .+-.        |       `-+'    |
          +-------( R2 )-------+         |     |
          |    i1a `+-' 198.51.100.1     |     |
          |         |                    |     |
          |         +--------------------+     | (1-3,198.51.100.18)
          |                                    | i3a
          |                                   .+-.
    i2a .-+.                          +------( R4 )--------+
+------( R1 )--------+                |       `-+'         |
|       `-+'         |                |         |192.0.2.34|
|         |203.0.113.17               |         |          |
|         |          |                |         |    AS3   |
|         |    AS2   |                |         |          |
|         |          |                |       +---+        |
|       +---+        |                |       | B |        |
|       | A |        |                |       +---+        |
|       +---+        |                |   1-3,192.0.2.7    |
|  1-2,203.0.113.6   |                |                    |
|                    |                +--------------------+
+--------------------+
]]></artwork>
        </figure>
        <t>Based on the network topology in <xref target="_figure-16"/> above, this example shows the path of a SCION packet sent from its source at Endpoint A to its destination at Endpoint B, and how it will be processed by each router on the path using simplified snapshots of the packet header after each processing step. These snapshots, which are depicted in tables, show the most relevant information of the header, i.e. the SCION path and IP encapsulation for local communication.</t>
      </section>
      <section anchor="creating-an-end-to-end-scion-forwarding-path">
        <name>Creating an End-to-End SCION Forwarding Path</name>
        <t>In this example, Endpoint A in AS2 wants to send a data packet to Endpoint B in AS3. Both AS2 and AS3 are part of ISD 1. To create an end-to-end SCION forwarding path, Endpoint A first requests its own AS2 control service for up segments to the core AS in its ISD. The AS2 control service will return up segments from AS2 to the ISD core. Endpoint A will also query its AS2 control service for a down segment from its ISD core AS to AS3, in which Endpoint B is located. The AS2 control service will return down segments from the ISD core down to AS3.</t>
        <t><strong>Note:</strong> For more details on the lookup of path segments, see the section "Path Lookup" in the Control Plane specification (<xref target="I-D.dekater-scion-controlplane"/>).</t>
        <t>Based on its own selection criteria, Endpoint A selects the up segment (0,i2a)(i1a,0) and the down segment (0,i1b)(i3a,0) from the path segments returned by its own AS2 control service. The path segments consist of Hop Fields that carry the ingress and egress interfaces of each AS (e.g., i2a, i1a, ...), as described in detail in <xref target="header"/> - (x,y) represents one Hop Field.</t>
        <t>To obtain an end-to-end forwarding path from the source AS to the destination AS, Endpoint A combines the two path segments into the resulting SCION forwarding path, which contains the two Info Fields <em>IF1</em> and <em>IF2</em> and the Hop Fields (0,i2a), (i1a,0), (0,i1b), and (i3a,0).</t>
        <t><strong>Note:</strong> As this brief sample path does not contain a core segment, the end-to-end path only consists of two path segments.</t>
        <t>Endpoint A now adds this end-to-end forwarding path to the header of the packet that it wants to send to Endpoint B, and starts transferring the packet.</t>
      </section>
      <section anchor="step-by-step-explanation">
        <name>Step-by-Step Explanation</name>
        <t>This section explains what happens with the SCION packet header at each router, based on the network topology in described <xref target="_figure-16"/> above. Each step includes a table that represents a simplified snapshot of the packet header at the end of this specific step. Regarding the notation used in the figure/tables, each source and destination entry should be read as router (or endpoint) followed by its address. The current Info Field (with metadata on the current path segment) in the SCION header is depicted as italic/cursive in the tables. The current Hop Field, representing the current AS, is shown bold. The snapshot tables also include references to IP/UDP addresses. In this context, words "ingress" and "egress" refer to the direction of travel of SCION data packets.</t>
        <ul spacing="normal">
          <li>
            <t><em>Step 1</em> <br/> <strong>A-&gt;R1</strong>: The SCION-enabled Endpoint A in AS2 creates a new SCION packet destined for destination endpoint B in AS3, with payload P. Endpoint A sends the packet (for the chosen forwarding path) to the next SCION router as provided by its control service, which is in this case Router 1. Endpoint A encapsulates the SCION packet into an underlay UDP/IPv4 header for the local delivery to Router 1, utilizing AS2's internal routing protocol. The current Info Field is <em>IF1</em>. Upon receiving the packet, Router 1 will forward the packet on the egress interface that endpoint A has included into the first Hop Field of the SCION header.</t>
          </li>
        </ul>
        <table>
          <name>Snapshot header - step 1</name>
          <thead>
            <tr>
              <th align="left">A -&gt; R1</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SCION</td>
              <td align="left">SRC = 1-2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,192.0.2.7 (dest. Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">PATH = <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- <em>IF1</em> <strong>(0,i2a)</strong> (i1a,0) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- IF2 (0,i1b) (i3a,0) <br/></td>
            </tr>
            <tr>
              <td align="left">UDP</td>
              <td align="left">P<sub>S</sub> = 30041, P<sub>D</sub> = 30041 <br/></td>
            </tr>
            <tr>
              <td align="left">IP</td>
              <td align="left">SRC = 203.0.113.6 (Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 203.0.113.17 (Router 1) <br/></td>
            </tr>
            <tr>
              <td align="left">Link layer</td>
              <td align="left">SRC=A, DST=R1</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t><em>Step 2</em> <br/> <strong>R1-&gt;R2</strong>: Router 1 inspects the SCION header and considers the relevant Info Field of the specified SCION path, which is the Info Field indicated by the current Info Field pointer. In this case, it is the first Info Field <em>IF1</em>. The current Hop Field is the first Hop Field (0,i2a), which instructs router 1 to forward the packet on its interface i2a. After reading the current Hop Field, Router 1 moves the pointer forward by one position to the second Hop Field (i1a,0).  </t>
            <t>
The link shown here is an example of not using a UDP/IP underlay. Although most implementations use such an encapsulation, SCION only requires link-layer connectivity. What is used for one given inter-AS link is a function of the available implementations at each end, the available infrastructure, and the joint preference of the two ASes administrators.</t>
          </li>
        </ul>
        <table>
          <name>Snapshot header - step 2</name>
          <thead>
            <tr>
              <th align="left">R1 -&gt; R2</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SCION</td>
              <td align="left">SRC = 1-2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,192.0.2.7 (dest. Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">PATH = <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- <em>IF1</em> (0,i2a) <strong>(i1a,0)</strong>  <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- IF2 (0,i1b) (i3a,0) <br/></td>
            </tr>
            <tr>
              <td align="left">Link layer</td>
              <td align="left">SRC=R1, DST=R2</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t><em>Step 3</em> <br/> <strong>R2-&gt;R3</strong>: When receiving the packet, Router 2 of Core AS1 checks whether the packet has been received through the ingress interface i1a as specified by the current Hop Field. Otherwise, the packet is dropped by Router 2. The router notices that it has consumed the last Hop Field of the current path segment, and hence moves the pointer from the current Info Field to the next Info Field <em>IF2</em>. The corresponding current Hop Field is (0,i1b), which contains egress interface i1b. Router maps the i1b interface ID to egress Router 3, it therefore encapsulates the SCION packet inside an intra-AS underlay IP packet with the address of Router 3 as the underlay destination.</t>
          </li>
        </ul>
        <table>
          <name>Snapshot header - step 3</name>
          <thead>
            <tr>
              <th align="left">R2 -&gt; R3</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SCION</td>
              <td align="left">SRC = 1-2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,192.0.2.7 (dest. Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">PATH =  <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- IF1 (0,i2a) (i1a,0) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- <em>IF2</em> <strong>(0,i1b)</strong> (i3a,0) <br/></td>
            </tr>
            <tr>
              <td align="left">UDP</td>
              <td align="left">P<sub>S</sub> = 30041, P<sub>D</sub> = 30041 <br/></td>
            </tr>
            <tr>
              <td align="left">IP</td>
              <td align="left">SRC = 198.51.100.1 (Router 2) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 198.51.100.4 (Router 3) <br/></td>
            </tr>
            <tr>
              <td align="left">Link layer</td>
              <td align="left">SRC=R2, DST=R3</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t><em>Step 4</em> <br/> <strong>R3-&gt;R4</strong>: Router 3 inspects the current Hop Field in the SCION header, uses interface i1b to forward the packet to its neighbor SCION-enabled Router 4 of AS3, and moves the current hop-field pointer forward. It adds an IP header to reach Router 4.</t>
          </li>
        </ul>
        <table>
          <name>Snapshot header - step 4</name>
          <thead>
            <tr>
              <th align="left">R3 -&gt; R4</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SCION</td>
              <td align="left">SRC = 1-2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,192.0.2.7 (dest. Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">PATH =  <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- IF1 (0,i2a) (i1a,0) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- <em>IF2</em> (0,i1b) <strong>(i3a,0)</strong> <br/></td>
            </tr>
            <tr>
              <td align="left">UDP</td>
              <td align="left">P<sub>S</sub> = 30041, P<sub>D</sub> = 30041 <br/></td>
            </tr>
            <tr>
              <td align="left">IP</td>
              <td align="left">SRC = 1-1,198.51.100.17 (Router 3) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,198.51.100.18 (Router 4) <br/></td>
            </tr>
            <tr>
              <td align="left">Link layer</td>
              <td align="left">SRC=R3, DST=R4</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t><em>Step 5</em> <br/> <strong>R4-&gt;B</strong>: SCION-enabled Router 4 first checks whether the packet has been received through the ingress interface i3a as specified by the current Hop Field. Router 4 will then also realize, based on the fields <tt>CurrHF</tt> and <tt>SegLen</tt> in the SCION header, that the packet has reached the last hop in its SCION path. Therefore, instead of stepping up the pointers to the next Info Field or Hop Field, Router 4 inspects the SCION destination address and extracts the endpoint address 192.0.2.7. It creates a fresh underlay UDP/IP header with this address as destination and with itself as source. The intra-domain forwarding can now deliver the packet to its destination at Endpoint B.</t>
          </li>
        </ul>
        <table>
          <name>Snapshot header - step 5</name>
          <thead>
            <tr>
              <th align="left">R4 -&gt; B</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SCION</td>
              <td align="left">SRC = 1-2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,192.0.2.7 (dest. Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">PATH =  <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- IF1 (0,i2a) (i1a,0) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">- <em>IF2</em> (0,i1b) <strong>(i3a,0)</strong> <br/></td>
            </tr>
            <tr>
              <td align="left">UDP</td>
              <td align="left">P<sub>S</sub> = 30041, P<sub>D</sub> = 30041 <br/></td>
            </tr>
            <tr>
              <td align="left">IP</td>
              <td align="left">SRC = 192.0.2.34 (Router 4) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 192.0.2.7 (Endpoint B) <br/></td>
            </tr>
            <tr>
              <td align="left">Link layer</td>
              <td align="left">SRC=R4, DST=B</td>
            </tr>
          </tbody>
        </table>
        <t>When destination Endpoint B wants to respond to source Endpoint A, it can just swap the source and destination addresses in the SCION header, reverse the SCION path, and set the pointers to the Info Fields and Hop Fields at the beginning of the reversed path (see also <xref target="reverse"/>).</t>
      </section>
    </section>
    <section anchor="path-auth">
      <name>Path Authorization</name>
      <t>Path authorization guarantees that data packets always traverse the network along paths segments authorized by all on-path ASes in the control plane. In contrast to the IP-based Internet where forwarding decisions are made by routers based on locally stored information, SCION routers base their forwarding decisions purely on the forwarding information carried in the packet header and set by endpoints.</t>
      <t>SCION uses cryptographic mechanisms to efficiently provide path authorization. The mechanisms are based on <em>symmetric</em> cryptography in the form of Message Authentication Codes (MACs) in the data plane to secure forwarding information encoded in Hop Fields. This section first explains how Hop Field MACs are computed, then how they are validated as they traverse the network.</t>
      <section anchor="auth-chained-macs">
        <name>Authorizing Segments through Chained MACs</name>
        <t>When authorizing SCION PCBs and path segments in the control plane and forwarding information in the data plane, an AS authenticates not only its own hop information but also an aggregation of all upstream hops. This section describes how this works.</t>
        <section anchor="hf-mac-overview">
          <name>Hop Field MAC Overview</name>
          <t>The MAC in the Hop Fields of a SCION path has two purposes:</t>
          <ul spacing="normal">
            <li>
              <t>Preventing malicious endpoints from adding, removing or reordering hops within a path segment created during beaconing in the control plane. In particular, preventing path splicing, i.e. the combination of parts of different valid path segments into a new and unauthorized path segment.</t>
            </li>
            <li>
              <t>Authentication of the information contained in the Hop Field itself, in particular the <tt>ExpTime</tt>, <tt>ConsIngress</tt>, and <tt>ConsEgress</tt>.</t>
            </li>
          </ul>
          <t>To fulfill these purposes, the MAC for the Hop Field of AS<sub>i</sub> includes both the components of the current Hop Field HF<sub>i</sub> and an aggregation of the path segment identifier and all preceding Hop Fields/entries in the path segment. The aggregation is a 16-bit XOR-sum of the path segment identifier and the Hop Field MACs.</t>
          <t>When originating a path segment construction beacon PCB in the control plane, a core AS chooses a random 16-bit value as segment identifier <tt>SegID</tt> for the path segment and includes it in the PCB's <tt>Segment Info</tt> component. In the control plane, each AS<sub>i</sub> on the path segment computes the MAC for the current HF<sub>i</sub>, based on the value of <tt>SegID</tt> and the MACs of the preceding hop entries. Here, the full XOR-sum is computed explicitly.</t>
          <t>For high-speed packet processing in the data plane, computing even cheap operations such as the XOR-sum over a variable number of inputs is complicated, in particular for hardware router implementations. To avoid this overhead for the MAC chaining in path authorization in the data plane, the XOR-sum is tracked incrementally for each of the path segments in a path as a separate, updatable Accumulator Field <tt>Acc</tt>. The routers update <tt>Acc</tt> by adding/subtracting only a single 16-bit value each.</t>
          <t>When combining path segments to create a path to the destination endpoint, the source endpoint <bcp14>MUST</bcp14> also initialize the value of accumulator field <tt>Acc</tt> for each path segment. The <tt>Acc</tt> field <bcp14>MUST</bcp14> contain the correct XOR-sum of the path segment identifier and preceding Hop Field MACs expected by the first router that is traversed.</t>
          <t>The aggregated 16-bit path segment identifier and preceding MACs prevent splicing of different path segments unless there is a collision of the <tt>Acc</tt> value among compatible path segments in an AS. See <xref target="path-splicing"/> for more details.</t>
          <section anchor="hf-mac-calc">
            <name>Hop Field MAC - Calculation</name>
            <t>The Hop Field MAC is generally calculated at a current AS<sub>i</sub> as follows:</t>
            <ul spacing="normal">
              <li>
                <t>Consider a path segment with "n" hops, containing ASes AS<sub>0</sub>, ... , AS<sub>n-1</sub>, with forwarding keys K<sub>0</sub>, ... , K<sub>n-1</sub> in this order.</t>
              </li>
              <li>
                <t>AS<sub>0</sub> is the core AS that created the PCB representing the path segment and that added a random initial 16-bit segment identifier <tt>SegID</tt> to the <tt>Segment Info</tt> field of the PCB.</t>
              </li>
            </ul>
            <t>MAC<sub>i</sub> = <br/> Ck<sub>i</sub> (<tt>SegID</tt> XOR MAC<sub>0</sub> [:2] ... XOR MAC<sub>i-1</sub> [:2], Timestamp, ExpTime<sub>i</sub>, ConsIngress<sub>i</sub>, ConsEgress<sub>i</sub>)</t>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>k<sub>i</sub> = The forwarding key k of the current AS<sub>i</sub></t>
              </li>
              <li>
                <t>Ck<sub>i</sub> (...) = Cryptographic checksum C over (...) computed with forwarding key k<sub>i</sub></t>
              </li>
              <li>
                <t><tt>SegID</tt> = The random initial 16-bit segment identifier set by the core AS when creating the corresponding PCB</t>
              </li>
              <li>
                <t>XOR = The bitwise "exclusive or" operation</t>
              </li>
              <li>
                <t>MAC<sub>i</sub> [:2] = The Hop Field MAC for AS<sub>i</sub>, truncated to 2 bytes</t>
              </li>
              <li>
                <t>Timestamp = The timestamp set by the core AS when creating the corresponding PCB</t>
              </li>
              <li>
                <t>ExpTime<sub>i</sub>, ConsIngress<sub>i</sub>, ConsEgress<sub>i</sub> = The content of the Hop Field HF<sub>i</sub></t>
              </li>
            </ul>
            <t>Thus, the current MAC is based on the XOR-sum of the truncated MACs of all preceding Hop Fields in the path segment as well as the path segment's <tt>SegID</tt>. In other words, the current MAC is <em>chained</em> to all preceding MACs. In order to effectively prevent path-splicing, the cryptographic checksum function used <bcp14>MUST</bcp14> ensure that the truncation of the MACs is non-degenerate and roughly uniformly distributed (see <xref target="mac-requirements"/>).</t>
          </section>
          <section anchor="def-acc">
            <name>Accumulator Acc - Definition</name>
            <t>The Accumulator Acc<sub>i</sub> is an updatable counter introduced in the data plane to avoid the overhead caused by MAC-chaining for path authorization. This is achieved by incrementally tracking the XOR-sum of the previous MACs as a separate, updatable accumulator field <tt>Acc</tt>, which is part of the path segment's Info Field <tt>InfoField</tt> in the packet header (see also <xref target="inffield"/>). Routers update this field by adding/subtracting only a single 16-bit value each.</t>
            <t><xref target="hf-mac-calc"/> provides a general formula to compute MAC<sub>i</sub>, but at each SCION router the expression <tt>SegID XOR MAC_0 [:2] ... XOR MAC_i-1 [:2]</tt> is replaced by Acc<sub>i</sub>. This results in the following alternative procedure for the computation of MAC<sub>i</sub> at SCION routers:</t>
            <t>MAC<sub>i</sub> = Ck<sub>i</sub> (Acc<sub>i</sub>, Timestamp, ExpTime<sub>i</sub>, ConsIngress<sub>i</sub>, ConsEgress<sub>i</sub>)</t>
            <t>During forwarding, SCION routers at each AS<sub>i</sub> update the Acc field in the packet header so that it contains the correct input value of Acc for the next AS in the path segment to be able to calculate the MAC over its Hop Field. Note that the correct input value of the <tt>Acc</tt> field depends on the direction of travel.</t>
            <t>The value of Acc<sub>i+1</sub> is calculated based on the following definition (in the direction of beaconing):</t>
            <t>Acc<sub>i+1</sub> = Acc<sub>i</sub> XOR MAC<sub>i</sub> [:2]</t>
            <ul spacing="normal">
              <li>
                <t>XOR = The bitwise "exclusive or" operation</t>
              </li>
              <li>
                <t>MAC<sub>i</sub> [:2] = The Hop Field MAC for the current AS<sub>i</sub>, truncated to 2 bytes</t>
              </li>
            </ul>
          </section>
          <section anchor="default-hop-field-mac-algorithm">
            <name>Default Hop Field MAC Algorithm</name>
            <t>The algorithm used to compute the Hop Field MAC is an AS-specific choice. The operator of an AS can freely choose any MAC algorithm and the control service and routers of the AS do need to agree on the algorithm used, but all implementations <bcp14>MUST</bcp14> support the Default Hop Field MAC algorithm described below.</t>
            <t>The default MAC algorithm is AES-CMAC (<xref target="RFC4493"/>) truncated to 48-bits, computed over the Info Field and the first 6 bytes of the Hop Field with flags and reserved fields zeroed out. The input is padded to 16 bytes. The <em>first</em> 6 bytes of the AES-CMAC output are used as resulting Hop Field MAC.</t>
            <t><xref target="_figure-18"/> below shows the layout of the input data to calculate the Hop Field MAC.</t>
            <figure anchor="_figure-18">
              <name>Input data to calculate the Hop Field MAC for the default hop-field MAC algorithm</name>
              <artwork><![CDATA[
0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
|               0               |           Acc                 |  Info|
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Field|
|                           Timestamp                           |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| -----+
|       0       |    ExpTime    |          ConsIngress          |   Hop|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Field|
|          ConsEgress           |               0               |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
]]></artwork>
            </figure>
          </section>
          <section anchor="mac-requirements">
            <name>Alternative Hop Field MAC Algorithms</name>
            <t>For alternative algorithms, the following requirements <bcp14>MUST</bcp14> all be met:</t>
            <ul spacing="normal">
              <li>
                <t>The Hop Field MAC field is computed as a function of the secret forwarding key, the <tt>Acc</tt> and <tt>Timestamp</tt> fields of the Info Field, and the <tt>ExpTime</tt>, <tt>ConsIngress</tt> and <tt>ConsEgress</tt> fields of the Hop Field. Function is used in the mathematical sense that for for any values of these inputs there is exactly one result.</t>
              </li>
              <li>
                <t>The algorithm returns an unforgable 48-bit value. Unforgable specifically means "existentially unforgable under a chosen message attack" (<xref target="CRYPTOBOOK"/>). Informally, this means an attacker without access to the secret key has no computationally efficient means to create a valid MAC for some attacker chosen input values, even if it has access to an "oracle" providing a valid MAC for any other input values.</t>
              </li>
              <li>
                <t>The truncation of the result value to the first 16 bits of the result value:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>is not degenerate, i.e. any small change in any input value <bcp14>SHOULD</bcp14> have an "avalanche effect" on these bits, and</t>
                  </li>
                  <li>
                    <t>is roughly uniformly distributed when considering all possible input values.</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>This additional requirement is naturally satisfied for MAC algorithms based on typical block ciphers or hash algorithms. It ensures that the MAC chaining via the <tt>Acc</tt> field is not degenerate.</t>
          </section>
        </section>
        <section anchor="peerlink">
          <name>Peering Link MAC Computation</name>
          <t>The Hop Field MAC computation described in <xref target="hf-mac-calc"/> does not apply to a peering Hop Field, i.e. to a Hop Field that allows transiting from a child interface/link to a peering interface/link.</t>
          <t>The reason for this is that the MACs of the Hop Fields "after" the peering Hop Field (in beaconing direction) are not chained to the MAC of the peering Hop Field, but to the MAC of the main Hop Field in the corresponding AS entry. To make this work, the MAC of the peering Hop Field is also chained to the MAC of the main Hop Field - this allows for the validation of the chained MAC for both the peering Hop Field and the following Hop Fields by using the same <tt>Acc</tt> field value.</t>
          <t>The peering Hop Field is defined as follows:</t>
          <t>Hop Field<sup>Peer</sup><sub>i</sub> = (ExpTime<sup>Peer</sup><sub>i</sub>, ConsIngress<sup>Peer</sup><sub>i</sub>, ConsEgress<sup>Peer</sup><sub>i</sub>, MAC<sup>Peer</sup><sub>i</sub>)</t>
          <t>See <xref target="I-D.dekater-scion-controlplane"/> for more information.</t>
          <t>This results in the calculation of the MAC for the peering Hop Field<sup>Peer</sup><sub>i</sub> as follows:</t>
          <t>MAC<sup>Peer</sup><sub>i</sub> = <br/> Ck<sup>Peer</sup><sub>i</sub> (<tt>SegID</tt> XOR MAC<sub>0</sub> [:2] ... XOR MAC<sub>i</sub> [:2], Timestamp, ExpTime<sup>Peer</sup><sub>i</sub>, ConsIngress<sup>Peer</sup><sub>i</sub>, ConsEgress<sup>Peer</sup><sub>i</sub>)</t>
          <t><strong>Note:</strong> The XOR-sum of the MACs in the formula of the peering Hop Field <strong>also includes</strong> the MAC of the main Hop Field (whereas for the calculation of the MAC for the main Hop Field itself only the XOR-sum of the <em>previous</em> MACs is used).</t>
        </section>
      </section>
      <section anchor="packet-verif">
        <name>Path Initialization and Packet Processing</name>
        <t>As described in <xref target="header"/>, the path header of the data plane packets only contains a sequence of Info Fields and Hop Fields without any additional data from the corresponding PCBs. The SCION path also does not contain any AS numbers - except for the source and destination ASes - and there is no field explicitly defining the type of each segment (up, core, or down). This chapter describes the required steps for the source endpoint and SCION routers to respectively craft and forward a data packet.</t>
        <section anchor="initialization-at-source-endpoint">
          <name>Initialization at Source Endpoint</name>
          <t>The source endpoint <bcp14>MUST</bcp14> perform the following steps to correctly initialize a path:</t>
          <ol spacing="normal" type="1"><li>
              <t>Combine the preferred end-to-end path from the path segments obtained during path lookup.</t>
            </li>
            <li>
              <t>Extract the Info Fields and Hop Fields from the different path segments that together build the end-to-end path to the destination endpoint. Then insert the relevant information from the Info Fields and Hop Fields into the corresponding <tt>InfoFields</tt> and <tt>Hopfields</tt> in the data packet header.</t>
            </li>
            <li>
              <t>Each 8-byte Info Field <tt>InfoField</tt> in the packet header contains the updatable <tt>Acc</tt> field as well as a Peering flag <tt>P</tt> and a Construction Direction flag <tt>C</tt> (see also <xref target="inffield"/>). As a next step in the path initialization process, the source <bcp14>MUST</bcp14> correctly set the flags and the <tt>Acc</tt> field of all <tt>InfoFields</tt> included in the path, according to the following rules:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The Construction Direction flag <tt>C</tt> <bcp14>MUST</bcp14> be set to "1" whenever the corresponding segment is traversed in construction direction, i.e., for down-path segments and potentially for core segments. It <bcp14>MUST</bcp14> be set to "0" for up-path segments and "reversed" core segments.</t>
                </li>
                <li>
                  <t>The Peering flag <tt>P</tt> <bcp14>MUST</bcp14> be set to "1" for up-segments and down-segments if the path contains a peering Hop Field.</t>
                </li>
              </ul>
              <t>
The following <tt>InfoField</tt> settings are possible, based on the following cases:  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>Case 1</strong> <br/> The path segment is traversed in construction direction and includes no peering Hop Field. It starts at the <em>i</em>-th AS of the full segment discovered in beaconing. In this case:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>The Peering flag <tt>P</tt> = "0"</t>
                    </li>
                    <li>
                      <t>The Construction Direction flag <tt>C</tt> = "1"</t>
                    </li>
                    <li>
                      <t>The value of the <tt>Acc</tt> = Acc<sub>i</sub>. For more details, see <xref target="def-acc"/>.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Case 2</strong> <br/> The path segment is traversed in construction direction and includes a peering Hop Field (which is the first Hop Field of the segment). It starts at the <em>i</em>-th AS of the full segment discovered in beaconing. In this case:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>The Peering flag <tt>P</tt> = "1"</t>
                    </li>
                    <li>
                      <t>The Construction Direction flag <tt>C</tt> = "1"</t>
                    </li>
                    <li>
                      <t>The value of the <tt>Acc</tt> = Acc<sub>i+1</sub>. For more details, see <xref target="def-acc"/>.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>UCase 3</strong> <br/> The path segment is traversed against construction direction. The full segment has "n" hops. In this case:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>The Peering flag <tt>P</tt> = "0" or "1" (depending on whether the last Hop Field in the up-segment is a peering Hop Field)</t>
                    </li>
                    <li>
                      <t>The Construction Direction flag <tt>C</tt> = "0"</t>
                    </li>
                    <li>
                      <t>The value of the <tt>Acc</tt> = Acc<sub>n-1</sub>. This is because seen from the direction of beaconing, the source endpoint is the last AS in the path segment. For more details, see <xref target="hf-mac-calc"/> and <xref target="def-acc"/>.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Besides setting the flags and the <tt>Acc</tt> field, the source endpoint <bcp14>MUST</bcp14> also set the pointers in the <tt>CurrInf</tt> and <tt>CurrHF</tt> fields of the Path Meta Header <tt>PathMetaHdr</tt> (see <xref target="PathMetaHdr"/>). As the source endpoint builds the starting point of the forwarding, both pointers <bcp14>MUST</bcp14> be set to "0".</t>
            </li>
          </ol>
        </section>
        <section anchor="process-router">
          <name>Processing at Routers</name>
          <t>During forwarding, each SCION router verifies the path contained in the packet header. Each SCION router also <bcp14>MUST</bcp14> correctly verify or set the value of the Accumulator in the <tt>Acc</tt> field for the next AS to be able to verify its Hop Field. The exact operations differ based on the location of the AS on the path.</t>
          <t>The processing of SCION packets for ASes where a peering link is crossed between path segments is a special case. A path containing a peering link contains exactly two path segments, one against construction direction (up) and one in construction direction (down). On the path segment against construction direction (up), the peering Hop Field is the last hop of the segment. In construction direction (down), the peering Hop Field is the first hop of the segment.</t>
          <t>The following sections describe the tasks to be performed by the ingress and egress border routers (see ) of each on-path AS. Each operation is described from the perspective of AS<sub>i</sub>, where i belongs to [0 ... n-1], and n == the number of ASes in the path segment (counted from the first AS in the beaconing direction).</t>
          <t>The following figure provides a simplified representation of the processing at routers both in construction direction and against construction direction.</t>
          <figure anchor="_figure-19">
            <name>A simplified representation of the processing at routers in both directions.</name>
            <artwork><![CDATA[
                              .--.
                             ( RR )  = Router
Processing in                 `--'
construction
direction

      1. Verify MAC of AS1          1. Verify MAC of AS2
      2. Update Acc for AS2         2. Update Acc for AS3
                 |                            |
>>>--------------o----------------------------o---------------------->>>

+-------------+  |           +-------------+  |          +-------------+
|             |              |             |             |             |
|           .--. |          .--.         .--. |         .--.           |
|   AS1    ( RR )o---------( RR )  AS2  ( RR )o--------( RR )  AS3     |
|           `--' |          `--'         `--' |         `--'           |
|             |              |             |             |             |
+-------------+  |           +-------------+  |          +-------------+

                 |                            |
<<<--------------o----------------------------o----------------------<<<
                 |                            |
      1. Update Acc for AS1         1. Update Acc for AS2
      2. Verify MAC of AS1          2. Verify MAC of AS2

                                                      Processing against
                                                            construction
                                                               direction
]]></artwork>
          </figure>
          <section anchor="process-router-ingress">
            <name>Steps at Ingress Border Router</name>
            <t>A SCION ingress border router <bcp14>MUST</bcp14> perform the following steps when it receives a SCION packet:</t>
            <ol spacing="normal" type="1"><li>
                <t>Check that the interface through which the packet was received is equal to the ingress interface in the current Hop Field. If not, the router <bcp14>MUST</bcp14> drop the packet.</t>
              </li>
              <li>
                <t>If there is a segment switch at the current router, check that the ingress and egress interface links are either:</t>
              </li>
            </ol>
            <ul spacing="normal">
              <li>
                <t>Both core</t>
              </li>
              <li>
                <t>Parent-child or vice-versa</t>
              </li>
              <li>
                <t>Peering-child or vice-versa</t>
              </li>
            </ul>
            <t>Link types above are defined in <xref target="I-D.dekater-scion-controlplane"/> section "Paths and Links". This check prevents valley use of peering links or hair-pin segments.
3. Check if the current Hop Field is expired or originated in the future, i.e. the current Info Field <bcp14>MUST NOT</bcp14> have a timestamp in the future, as defined in <xref target="inffield"/>. If either is true, the router <bcp14>MUST</bcp14> drop the packet.</t>
            <t>The next steps depend on the direction of travel and whether this segment includes a peering Hop Field. Both features are indicated by the settings of the Construction Direction flag <tt>C</tt> and the Peering flag <tt>P</tt> in the current Info Field, so the settings of both flags <bcp14>MUST</bcp14> be checked. The following combinations are possible:</t>
            <ul spacing="normal">
              <li>
                <t>The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1" and <tt>P</tt> = "0" or "1"). In this case, proceed with step 4.</t>
              </li>
              <li>
                <t>The packet traverses the path segment <strong>against construction direction</strong> (<tt>C</tt> = "0"). The following cases are possible:  </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Case 1</strong> <br/> The path segment includes <strong>no peering Hop Field</strong> (<tt>P</tt> = "0"). In this case, the ingress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute the value of the Accumulator Acc as follows:          </t>
                        <t>
Acc = Acc<sub>i+1</sub> XOR MAC<sub>i</sub> <br/>
  where <br/>
  Acc<sub>i+1</sub> = the current value of the field <tt>Acc</tt> in the current Info Field <br/>
  MAC<sub>i</sub> = the value of MAC<sub>i</sub> in the current Hop Field representing AS<sub>i</sub>          </t>
                        <t><strong>Note:</strong> In the case described here, the packet travels against direction of beaconing, i.e. the packet comes from AS<sub>i+1</sub> and will enter AS<sub>i</sub>. This means that the <tt>Acc</tt> field of this incoming packet represents the value of Acc<sub>i+1</sub>, but to compute the MAC<sub>i</sub> for the current AS<sub>i</sub>, we need the value of Acc<sub>i</sub> (see <xref target="def-acc"/>). As the border router knows that the formula for Acc<sub>i+1</sub> = Acc<sub>i</sub> XOR MAC<sub>i</sub> [:2] (see also <xref target="def-acc"/>), and because the values of Acc<sub>i+1</sub> and MAC<sub>i</sub> are known, the router will be able to recover the value Acc<sub>i</sub> based on the aforementioned formula for Acc.</t>
                      </li>
                      <li>
                        <t>Replace the current value of the field <tt>Acc</tt> in the current Info Field with the newly calculated value of Acc.</t>
                      </li>
                      <li>
                        <t>Compute the MAC<sup>Verify</sup><sub>i</sub> over the Hop Field of the current AS<sub>i</sub>. For this, use the formula in <xref target="hf-mac-calc"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of Acc as just set in the <tt>Acc</tt> field in the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the current Hop Field does not match the just calculated MAC<sup>Verify</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>If the current Hop Field is the last Hop Field in the path segment as determined by the value of the current <tt>SegLen</tt> and other metadata in the path meta header, increment both <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 2</strong> <br/> The path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), but the current hop is <strong>not</strong> the peering hop (i.e. the current hop is <strong>neither</strong> the last hop of the first segment <strong>nor</strong> the first hop of the second segment). In this case, the ingress border router needs to perform the steps previously described for the path segment without peering Hop Field, but the border router <bcp14>MUST NOT</bcp14> increment <tt>CurrInf</tt> and <bcp14>MUST NOT</bcp14> increment <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                  </li>
                  <li>
                    <t><strong>Case 3</strong> <br/> The path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), and the current Hop Field <em>is</em> the peering Hop Field (i.e. the current hop is <strong>either</strong> the last hop of the first segment <strong>or</strong> the first hop of the second segment). In this case, the ingress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Peer</sup><sub>i</sub>. For this, use the formula in <xref target="peerlink"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i [:2]</tt> in the formula with the value of Acc as set in the <tt>Acc</tt> field in the current Info Field (this is the value of Acc as it comes with the packet).</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the current Hop Field does not match the just calculated MAC<sup>Peer</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>Increment both <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
            <ol spacing="normal" type="1"><li>
                <t>Forward the packet to the egress border router (based on the egress interface ID in the current Hop Field) or to the destination endpoint, if this is the destination AS.</t>
              </li>
            </ol>
          </section>
          <section anchor="steps-at-egress-border-router">
            <name>Steps at Egress Border Router</name>
            <t>A SCION egress border router <bcp14>MUST</bcp14> perform the following steps when it receives a SCION packet:</t>
            <ol spacing="normal" type="1"><li>
                <t>Check the settings of the Construction Direction flag <tt>C</tt> and the Peering flag <tt>P</tt> in the currently valid Info Field. The following cases are possible:  </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Case 1</strong> <br/> The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1"). The path segment either includes <strong>no peering Hop Field</strong> (<tt>P</tt> = "0") or the path segment does include a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), but the current hop is not the peering hop (i.e. the current hop is <strong>neither</strong> the last hop of the first segment <strong>nor</strong> the first hop of the second segment). In this case, the egress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Verify</sup><sub>i</sub> over the Hop Field of the current AS<sub>i</sub>. For this, use the formula in <xref target="hf-mac-calc"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of Acc as set in the <tt>Acc</tt> field in the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the just calculated MAC<sup>Verify</sup><sub>i</sub> does not match the MAC<sub>i</sub> in the Hop Field of the current AS<sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>Compute the value of Acc<sub>i+1</sub>. For this, use the formula in <xref target="def-acc"/>. Replace Acc<sub>i</sub> in the formula with the current value of Acc as set in the <tt>Acc</tt> field of the current Info Field.</t>
                      </li>
                      <li>
                        <t>Replace the value of the <tt>Acc</tt> field in the current Info Field with the just calculated value of Acc<sub>i+1</sub>.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 2</strong> <br/> The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1") where the path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1") and the current Hop Field <em>is</em> the peering Hop Field (i.e. the current hop is <strong>either</strong> the last hop of the first segment <strong>or</strong> the first hop of the second segment). In this case, the egress border router <bcp14>MUST</bcp14> take the following steps:      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Peer</sup><sub>i</sub>. For this, use the formula in <xref target="peerlink"/>, but replace <tt>SegID XOR MAC_0 [:2] ... XOR MAC_i [:2]</tt> with the value in the <tt>Acc</tt> field of the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the Hop Field of the current AS<sub>i</sub> does not match the just calculated MAC<sup>Peer</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 3</strong> <br/> The packet traverses the path segment <strong>against construction direction</strong> (<tt>C</tt> = "0" and <tt>P</tt> = "0" or "1"). In this case, proceed with Step 3.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Increment <tt>CurrHF</tt> in the path meta header.</t>
              </li>
              <li>
                <t>Forward the packet to the neighbor AS.</t>
              </li>
            </ol>
          </section>
          <section anchor="effects-of-clock-inaccuracy">
            <name>Effects of Clock Inaccuracy</name>
            <t>A PCB originated by a given control service is used to construct data plane paths. Specifically, the timestamp in the Info Field and the expiry time of Hop Fields are used for Hop Field MAC computation, see <xref target="hf-mac-calc"/>, which is used to validate paths at each on-path SCION router. A segment's originating control service and the routers that the segment refers to all have different clocks. Their differences affect the validation process:</t>
            <ul spacing="normal">
              <li>
                <t>A fast clock at origination or a slow clock at validation will yield a lengthened expiration time for hops, and possibly an origination time in the future.</t>
              </li>
              <li>
                <t>A slow clock at origination or a fast clock at validation will yield a shortened expiration time for hops, and possibly an expiration time in the past.</t>
              </li>
            </ul>
            <t>This bias comes in addition to a structural delay: PCBs are propagated at a configurable interval (typically, one minute). As a result of this and the way they are iteratively constructed, PCBs with N hops may become available for path construction up to N intervals (so typically N minutes) after origination which creates a constraint on the expiration of hops. Hops of the minimal expiration time (337.5 seconds - see <xref target="hopfld"/>) would render useless any path segment longer than 5 hops. For this reason, it is unadvisable to create hops with a short expiration time. The norm is 6 hours.</t>
            <t>In comparison to these time scales, clock offsets in the order of minutes are immaterial.</t>
            <t>Each administrator of SCION control services and routers is responsible for maintaining sufficient clock accuracy. No particular method is assumed for this.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="mtu">
        <name>MTU</name>
        <t>SCION requires its underlay protocol to provide a minimum MTU of 1232 bytes. This number results from 1280, the minimum IPv6 MTU as of <xref target="RFC2460"/>), minus 48, assuming UDP/IPv6 as underlay. Higher layer protocols such as SCMP rely only on such minimum MTU.</t>
        <t>The MTU of a SCION path is defined as the minimum of the MTUs of the links traversed by that path. The control plane disseminates such values and makes them available to endpoints (see: <xref target="I-D.dekater-scion-controlplane"/>, Path MTU).</t>
        <t>The MTU of each link may be discovered or administratively configured (current practice is for it to be configured). It must be less than or equal to the MTU of the link's underlay encapsulation or native link-layer in either direction.</t>
        <t>SCION assumes that the MTUs of a path segment remains correct for the life time of that segment. This is generally a safe assumption because:</t>
        <ul spacing="normal">
          <li>
            <t>Intra-AS network MTUs are a result of the network configuration of each AS and therefore predictable.</t>
          </li>
          <li>
            <t>Inter-AS links MTU are normally under the joint control of the administrators of the two ASes involved and therefore equally predictable.</t>
          </li>
        </ul>
        <t>Should the inter-AS link MTU be unpredictable (e.g. because the inter-AS link is deployed as an overlay), then the link's MTU <bcp14>MUST</bcp14> be configured statically to a conservative value. For a UDP/IP underlay, 1232 is a safe value.</t>
      </section>
      <section anchor="fragmentation">
        <name>Packet Fragmentation</name>
        <t>The SCION network layer does not support packet fragmentation; not even at the source endpoint. Upper layer protocols and applications <bcp14>MUST</bcp14> comply with the MTU of the paths that they use.</t>
        <t>SCION is agnostic to datagram fragmentation by the underlay network layer, (e.g. used for intra-AS communication). Implementations <bcp14>SHOULD</bcp14> allow MTU discovery mechanisms such as <xref target="RFC4821"/> to be enabled in the underlay and avoid fragmentation. For inter-AS links, using a different configuration is the joint decision of the administrators of the two ASes involved. For intra-AS interfaces using a different configuration is the choice of that AS' administrator alone.</t>
      </section>
      <section anchor="sig">
        <name>SCION IP Gateway</name>
        <t>The SCION IP Gateway (SIG) enables IP packets to be tunneled over SCION to support communication between hosts that do not run a SCION implementation. A SIG acts as a router from the perspective of IP, whilst acting as SCION endpoint from the perspective of the SCION network. It is typically deployed inside the same AS-internal network as its non-SCION hosts, or at the edge of an enterprise network. Tunneling IP traffic over SCION requires a pair of SIGs: at the ingress and egress points of the SCION network.</t>
        <t>IP tunneling over SCION is an application from the perspective of the Data Plane and is outwith the scope of this document.</t>
      </section>
    </section>
    <section anchor="scmp">
      <name>SCMP</name>
      <t>The SCION Control Message Protocol (SCMP) is analogous to the Internet Control Message Protocol (ICMP). It provides functionality for network diagnostics, such as traceroute, and error messages that signal packet processing or network-layer problems. SCMP is a helpful tool for network diagnostics and, in the case of External Interface Down and Internal Connectivity Down messages, a signal for endpoints to detect network failures more rapidly and fail-over to different paths. However, SCION nodes should not strictly rely on the availability of SCMP, as this protocol may not be supported by all devices and/or may be subject to rate limiting.</t>
      <t>This document specifies only messages <bcp14>RECOMMENDED</bcp14> for the purposes of path diagnosis and recovery. An extended specification, still a work in progress, can be found in <xref target="SCMP"/>.</t>
      <section anchor="general-format">
        <name>General Format</name>
        <t>Every SCMP message is preceded by a SCION header, and zero or more SCION extension headers. The SCMP header is identified by a <tt>NextHdr</tt> value of <tt>202</tt> in the immediately preceding header.</t>
        <t>The messages have the following general format:</t>
        <figure anchor="_figure-scmp-format">
          <name>SCMP message format</name>
          <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Type-dependent Block                    |
    +                                                               +
    |                         (variable length)                     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t><tt>Type</tt>: it indicates the type of SCMP message. Its value determines the format of the type-dependent block.</t>
          </li>
          <li>
            <t><tt>Code</tt>: it provides additional granularity to the SCMP type.</t>
          </li>
          <li>
            <t><tt>Checksum</tt>: it is used to detect data corruption.</t>
          </li>
          <li>
            <t><tt>Type-dependent Block</tt>: optional field of variable length which format is dependent on the message type.</t>
          </li>
        </ul>
      </section>
      <section anchor="message-types">
        <name>Message Types</name>
        <t>SCMP messages are grouped into two classes: error messages and informational messages. Error messages are identified by a zero in the high-order bit of the type value. I.e., error messages have a type value in the range of 0-127. Informational messages have type values in the range of 128-255.</t>
        <t>This specification defines the message formats for the following SCMP messages:</t>
        <table>
          <name>error messages types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">
                <xref target="packet-too-big">Packet Too Big</xref></td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Reserved for future use</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">
                <xref target="external-interface-down">External Interface Down</xref></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">
                <xref target="internal-connectivity-down">Internal Connectivity Down</xref></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">100</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left">101</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">127</td>
              <td align="left">Reserved for expansion of SCMP error messages</td>
            </tr>
          </tbody>
        </table>
        <table>
          <name>informational messages types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">128</td>
              <td align="left">
                <xref target="echo-request">Echo Request</xref></td>
            </tr>
            <tr>
              <td align="left">129</td>
              <td align="left">
                <xref target="echo-reply">Echo Reply</xref></td>
            </tr>
            <tr>
              <td align="left">130</td>
              <td align="left">
                <xref target="traceroute-request">Traceroute Request</xref></td>
            </tr>
            <tr>
              <td align="left">131</td>
              <td align="left">
                <xref target="traceroute-reply">Traceroute Reply</xref></td>
            </tr>
            <tr>
              <td align="left">200</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left">201</td>
              <td align="left">Private Experimentation</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left">Reserved for expansion of SCMP informational messages</td>
            </tr>
          </tbody>
        </table>
        <t>Type values 100, 101, 200, and 201 are reserved for private experimentation.</t>
        <t>All other values are reserved for future use.</t>
      </section>
      <section anchor="checksum-calculation">
        <name>Checksum Calculation</name>
        <t>The checksum is the 16-bit one's complement of the one's complement sum of the
entire SCMP message, starting with the SCMP message type field, and prepended
with a "pseudo-header" consisting of the SCION address header and the Layer 4
protocol type as defined in <xref target="pseudo"/>.</t>
      </section>
      <section anchor="processing-rules">
        <name>Processing Rules</name>
        <t>Implementations <bcp14>MUST</bcp14> respect the following rules when processing SCMP messages:</t>
        <ul spacing="normal">
          <li>
            <t>If an SCMP error message of unknown type is received at its destination, it <bcp14>MUST</bcp14> be passed to the upper-layer process that originated the packet that caused the error, if it can be identified.</t>
          </li>
          <li>
            <t>If an SCMP informational message of unknown type is received, it <bcp14>MUST</bcp14> be silently dropped.</t>
          </li>
          <li>
            <t>Every SCMP error message <bcp14>MUST</bcp14> include as much of the offending SCION packet as possible. The error message packet - including the SCION header and all extension headers - <bcp14>MUST NOT</bcp14> exceed <strong>1232 bytes</strong> in order to fit into the minimum MTU (see <xref target="mtu"/>).</t>
          </li>
          <li>
            <t>In case the implementation is required to pass an SCMP error message to the upper-layer process, the upper-layer protocol type is extracted from the original packet in the body of the SCMP error message and used to select the appropriate process to handle the error. In case the upper-layer protocol type cannot be extracted from the SCMP error message body, the SCMP message <bcp14>MUST</bcp14> be silently dropped.</t>
          </li>
          <li>
            <t>An SCMP error message <bcp14>MUST NOT</bcp14> be originated in response to any of the following:
            </t>
            <ul spacing="normal">
              <li>
                <t>An SCMP error message.</t>
              </li>
              <li>
                <t>A packet which source address does not uniquely identify a single node. E.g., an IPv4 or IPv6 multicast address.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The maximum size 1232 bytes is chosen so that the entire datagram, if encapsulated in UDP and IPv6, does not exceed 1280 bytes (L2 Header excluded). 1280 bytes is the minimum MTU required by IPv6 and it is assumed that, nowadays, this MTU can also be safely expected when using IPv4.</t>
      </section>
      <section anchor="scmp-notification">
        <name>Error Messages</name>
        <section anchor="packet-too-big">
          <name>Packet Too Big</name>
          <figure>
            <name>Packet-too-big format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |            reserved           |             MTU               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                As much of the offending packet                |
    +              as possible without the SCMP packet              +
    |                    exceeding 1232 bytes.                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">2</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">MTU</td>
                <td align="left">The Maximum Transmission Unit of the next-hop link.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>Packet Too Big</strong> message <bcp14>SHOULD</bcp14> be originated by a router in response to a
packet that cannot be forwarded because the packet is larger than the MTU of the
outgoing link. The MTU value is set to the maximum size a SCION packet can have
to still fit on the next-hop link, as the sender has no knowledge of the
underlay.</t>
        </section>
        <section anchor="external-interface-down">
          <name>External Interface Down</name>
          <figure anchor="_figure-22">
            <name>External-interface-down format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              ISD              |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         AS                    +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                        Interface ID                           +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                As much of the offending packet                |
    +              as possible without the SCMP packet              +
    |                    exceeding 1232 bytes.                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">5</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">The interface ID of the external link with connectivity issue.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>External Interface Down</strong> message <bcp14>SHOULD</bcp14> be originated by a router in response
to a packet that cannot be forwarded because the link to an external AS is broken.
The ISD and AS identifier are set to the ISD-AS of the originating router.
The interface ID identifies the link of the originating AS that is down.</t>
          <t>Recipients can use this information to route around broken data-plane links.</t>
        </section>
        <section anchor="internal-connectivity-down">
          <name>Internal Connectivity Down</name>
          <figure anchor="_figure-23">
            <name>Internal-connectivity-down format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              ISD              |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         AS                    +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                   Ingress Interface ID                        +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                   Egress Interface ID                         +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                As much of the offending packet                |
    +              as possible without the SCMP packet              +
    |                    exceeding 1232 bytes.                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">6</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Ingress ID</td>
                <td align="left">The interface ID of the ingress link.</td>
              </tr>
              <tr>
                <td align="left">Egress ID</td>
                <td align="left">The interface ID of the egress link.</td>
              </tr>
            </tbody>
          </table>
          <t>A <strong>Internal Connectivity Down</strong> message <bcp14>SHOULD</bcp14> be originated by a router in
response to a packet that cannot be forwarded inside the AS because because the
connectivity between the ingress and egress routers is broken. The ISD and AS
identifier are set to the ISD-AS of the originating router. The ingress
interface ID identifies the interface on which the packet enters the AS. The
egress interface ID identifies the interface on which the packet is destined to
leave the AS, but the connection is broken to.</t>
          <t>Recipients can use this information to route around a broken data plane inside an
AS.</t>
        </section>
      </section>
      <section anchor="scmp-information">
        <name>Informational Messages</name>
        <section anchor="echo-request">
          <name>Echo Request</name>
          <figure anchor="_figure-26">
            <name>Echo-request format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Identifier          |        Sequence Number        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Data (variable Len)                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


]]></artwork>
          </figure>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">128</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">A 16-bit identifier to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">A 16-bit sequence number to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Data</td>
                <td align="left">Variable length of arbitrary data</td>
              </tr>
            </tbody>
          </table>
          <t>Every node <bcp14>SHOULD</bcp14> implement a SCMP Echo responder function that receives Echo Requests and originates corresponding Echo replies.</t>
        </section>
        <section anchor="echo-reply">
          <name>Echo Reply</name>
          <figure anchor="_figure-27">
            <name>Echo-reply format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Identifier          |        Sequence Number        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Data (variable Len)                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">129</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">The identifier of the Echo Request</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">The sequence number of the Echo Request</td>
              </tr>
              <tr>
                <td align="left">Data</td>
                <td align="left">The data of the Echo Request</td>
              </tr>
            </tbody>
          </table>
          <t>Every node <bcp14>SHOULD</bcp14> implement a SCMP Echo responder function that receives Echo Requests and originates corresponding Echo replies.</t>
          <t>The data received in the SCMP Echo Request message <bcp14>MUST</bcp14> be returned entirely and unmodified in the SCMP Echo Reply message.</t>
        </section>
        <section anchor="traceroute-request">
          <name>Traceroute Request</name>
          <figure anchor="_figure-24">
            <name>Traceroute-request format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Identifier          |        Sequence Number        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              ISD              |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         AS                    +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                          Interface ID                         +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <t>Given a SCION path constituted of hop fields, traceroute allows to identify the corresponding on-path ISD-ASes.</t>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">130</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">A 16-bit identifier to aid matching replies with requests</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">A 16-bit sequence number to aid matching replies with request</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">Place holder set to zero by SCMP sender</td>
              </tr>
            </tbody>
          </table>
          <t>A border router is alerted of a Traceroute Request message through the Ingress or Egress Router Alert flag set to 1 in the hop field that describes the traversal of that router in a packet's path (See <xref target="hopfld"/>). When such a packet is received, the border router <bcp14>SHOULD</bcp14> reply with a <xref target="traceroute-reply">Traceroute Reply message</xref>.</t>
        </section>
        <section anchor="traceroute-reply">
          <name>Traceroute Reply</name>
          <figure anchor="_figure-25">
            <name>Traceroute-reply format</name>
            <artwork><![CDATA[
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Code      |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Identifier          |        Sequence Number        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              ISD              |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         AS                    +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                          Interface ID                         +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <table>
            <name>field values</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Type</td>
                <td align="left">131</td>
              </tr>
              <tr>
                <td align="left">Code</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Identifier</td>
                <td align="left">The identifier set in the Traceroute Request</td>
              </tr>
              <tr>
                <td align="left">Sequence Nr.</td>
                <td align="left">The sequence number of the Tracroute Request</td>
              </tr>
              <tr>
                <td align="left">ISD</td>
                <td align="left">The 16-bit ISD identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">AS</td>
                <td align="left">The 48-bit AS identifier of the SCMP originator</td>
              </tr>
              <tr>
                <td align="left">Interface ID</td>
                <td align="left">The interface ID of the SCMP originating router</td>
              </tr>
            </tbody>
          </table>
          <t>The identifier is set to the identifier value from the <xref target="traceroute-request">Traceroute Request message</xref>. The ISD and AS identifiers are set to the ISD-AS of the originating border router.</t>
        </section>
      </section>
      <section anchor="scmp-authentication">
        <name>SCMP Authentication</name>
        <t>Authentication of SCMP packets is not specified here. In current deployments it is still experimental. Endpoints should therefore validate link down messages (<xref target="external-interface-down">External Interface Down</xref> and <xref target="internal-connectivity-down">Internal Connectivity Down</xref>) with additional signals for reliable operations.</t>
      </section>
    </section>
    <section anchor="handling-link-failures">
      <name>Handling Link Failures</name>
      <section anchor="scion-bfd">
        <name>Link Failure Detection - BFD</name>
        <t>To detect link failures quickly and reliably, SCION uses the Bidirectional Forwarding Detection (BFD) protocol (<xref target="RFC5880"/>) on links between SCION routers. If a router does not receive a BFD message from its peer at some regular interval, it considers the link to be down (in both directions) until messages are received again.</t>
        <t>A SCION BFD message consists of a SCION packet with a <tt>NextHdr</tt> value of <tt>203</tt> (<tt>BFD/SCION</tt>) and a path type of either <tt>00</tt> (<tt>Empty</tt> - used on intra-AS links) or <tt>2</tt> (<tt>OneHopPath</tt> - used on inter-AS links). The BFD header itself is a BFD Control Header as described in <xref target="RFC5880"/>. More information on one-hop and empty paths is available in <xref target="onehop"/> and <xref target="empty"/>.</t>
        <t>A SCION router <bcp14>SHOULD</bcp14> accept BFD connections from its peers and <bcp14>SHOULD</bcp14> attempt to establish BFD connections to its peers. While a link is considered to be down, a SCION router should drop packets destined to that link. In that case, it <bcp14>SHOULD</bcp14> send a <xref target="link-down-notification">notification</xref> to the originator.</t>
      </section>
      <section anchor="link-down-notification">
        <name>Link Failure Notification - SCMP</name>
        <t>In SCION, an intermediate router cannot change the path followed by a packet, only the source endpoint can chose a different path. Therefore, to enable fast recovery, a router <bcp14>SHOULD</bcp14> signal forwarding failures to the source, via a <xref target="scmp-notification">SCMP notification</xref>. This allows the source endpoint to quickly switch to a different path.</t>
        <t>Sending an SCMP error notification is <bcp14>OPTIONAL</bcp14>. Endpoints should therefore implement additional mechanisms to validate or detect link down signals. To reduce exposure to denial-of-service attacks, SCION routers <bcp14>SHOULD</bcp14> employ rate limiting when sending recommended SCMP notifications (especially identical ones). Rate limit policies are up to each AS' administrator.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section describes the possible security risks and attacks that the SCION Data Plane may be prone to, and how these attacks may be mitigated. It first discusses security risks that pertain to path authorization, followed by a section on other forwarding related security considerations.</t>
      <section anchor="path-authorization-1">
        <name>Path Authorization</name>
        <t>A central property of the SCION path-aware data plane is path authorization. Path authorization guarantees that data packets always traverse the network along path segments authorized in the control plane by all on-path ASes. This section discusses how an adversary may attempt to violate the path authorization property, as well as SCION's prevention mechanisms; either an attacker can attempt to create unauthorized Hop Fields, or they can attempt to create illegitimate paths assembled from authentic individual Hop Fields.</t>
        <t>The main protection mechanism is the Hop Field MAC (see <xref target="auth-chained-macs"/>) that authenticates the Hop Field content comprised of ingress/egress interface identifiers, creation and expiration timestamp and the preceding Hop Field MACs in the path segment. Each Hop Field MAC is computed using the secret forwarding key of the respective AS, which is shared across the SCION routers and control plane services within each AS.</t>
        <section anchor="forwarding-key-compromise">
          <name>Forwarding key compromise</name>
          <t>For the current default MAC algorithm - AES-CMAC truncated to 48 bits - key recovery attacks from (any number of) known plaintext/MAC combinations is computationally infeasible as far as publicly known. In addition, the MAC algorithm can be freely chosen by each AS, enabling algorithmic agility for MAC computations. Should a MAC algorithm be discovered to be weak or insecure, each AS can quickly switch to a secure algorithm without the need for coordination with other ASes.</t>
          <t>A more realistic risk to the secrecy of the forwarding key is exfiltration from a compromised router or control plane service. An AS can optionally rotate its forwarding key at regular intervals to limit the exposure after a temporary device compromise. However, such a key rotation scheme cannot mitigate the impact of an undiscovered compromise of a device.</t>
          <t>When an AS's forwarding key is compromised, an attacker can forge Hop Field MACs and undermine path authorization. As path segments are checked for validity and policy compliance during the path discovery phase and during forwarding, routers only validate the MAC and basic validity of the current the Hop Field. Consequently, creating fraudulent Hop Fields with valid MACs allows an attacker to bypass most path segment validity checks and to create path segments that violate the AS's local policy and/or general path segment validity requirements. In particular, an attacker could create paths that include loops (limited by the maximum number of Hop Fields of a path).</t>
          <t>Unless an attacker has access to the forwarding keys of all ASes on the illegitimate path it wants to fabricate, it will need to splice fragments of two legitimate path segments with an illegitimate Hop Field. For this, it needs to create a Hop Field with a MAC that fits into the MAC chain expected by the second path segment fragment. The only input that the attacker can vary relatively freely is the 8-bit <tt>ExpTime</tt>, but the resulting MAC needs to match a specific 16 bit <tt>Acc</tt> value. While there is a low probability of this working for a specific attempt (1/256), the attack will succeed eventually if the attacker can keep retrying over a longer time period or with many different path segment fragments.</t>
          <t>While a forwarding key compromise and the resulting loss of path authorization is a serious degradation of SCION's routing security properties, this does not affect access control or data security for the hosts in the affected AS. Unauthorized paths are available to the attacker, but the routing of packets from legitimate senders is not affected.</t>
        </section>
        <section anchor="forging-hop-field-mac">
          <name>Forging Hop Field MAC</name>
          <t>Another method to break path authorization is to directly forge a Hop Field in an online attack, using the router as an oracle to determine the validity of the Hop Field MAC. The adversary needs to send one packet per guess for verification and for 6-byte MAC, an adversary would need an expected 2<sup>47</sup> (~140 trillion) tries to successfully forge the MAC of a single Hop Field.</t>
          <t>As the router only checks MACs during the encoded validity period of the Hop Field, which is limited by the packet header format to at most 24 hours, these tries need to occur in a limited time period. This results in a seemingly infeasible number of ~1.6e9 guesses per second.</t>
          <t>In the unlikely case that an online brute-force attack succeeds, the obtained Hop Field can be used until its inevitable expiration after the just mentioned 24 hour limit.</t>
        </section>
        <section anchor="path-splicing">
          <name>Path Splicing</name>
          <t>In a path splicing attack, an adversary source endpoint takes valid Hop Fields of multiple path segments and splices them together to obtain a new unauthorized path.</t>
          <t>Candidate path segments for splicing must have at least one AS interface in common as a connection point, and the same origination timestamp as this is directly protected by the Hop Field MAC. This can occur by chance or if the two candidate path segments were originated as the same segment that diverged and converged back.</t>
          <t>The Hop Field MAC protects the 16-bit aggregation of path segment identifier and preceding MACs, see <xref target="auth-chained-macs"/>. This MAC chaining prevents splicing even in the case that the AS interface and segment timestamp match.</t>
          <t>As the segment identifier and aggregation of preceding MACs is only 16-bits wide, a chance collision among compatible path segments can occur rarely. Successful path splicing would allow an attacker to briefly use a path that violates an ASes path policy, e.g. making a special transit link available to a customer AS that is not billed accordingly, or violate general path segment validity requirements. In particular, a spliced path segment could traverse one or multiple links twice. However, creating a loop traversing a link an arbitrary number of times would involve multiple path splices and therefore multiple random collisions happening simultaneously, which is exceedingly unlikely. A wider security margin against path splicing could be obtained by increasing the width of the segment identifier / <tt>Acc</tt> field, e.g. by extending it into the 8-bit reserved field next to it in the Info Field.</t>
        </section>
      </section>
      <section anchor="on-path-attacks">
        <name>On-Path Attacks</name>
        <t>When an adversary sits on the path between the source and destination endpoint, it is able to intercept the data packets that are being forwarded and would allow the adversary to hijack traffic onto a path that is different from the intended one selected by the source endpoint. Possible on-path attacks in the data plane are modifications of the SCION path header and SCION address header, or by simply dropping packets. This kind of attack generally cannot be prevented, although anendpoint can use SCION's path awareness to immediately select an alternate path if available.</t>
        <section anchor="modification-of-the-path-header">
          <name>Modification of the Path Header</name>
          <t>An on-path adversary could modify the SCION path header and replace the remaining part of path segments to the destination with different segments. Such replaced segments must include authorized segments as otherwise the packet would be simply dropped on its way to the destination.</t>
          <t>The already traversed portion of the current segment and past segments can also be modified by the adversary (e.g. by deleting and adding valid and invalid Hop Fields). On reply packets from the destination, the adversary can transparently revert the changes to the path header again. For instance, if an adversary M is an intermediate AS on the path of a packet from A to B, then M can replace the packet’s past path (leading up to, but not including M) where the new path may not be a valid end-to-end path. However, when B reverses the path and sends a reply packet, that packet would go via M which can then transparently change the invalid path back to the valid path to A. In addition, the endpoint address header can also be modified.</t>
          <t>Modifications of the SCION path and address header can be discovered by the destination endpoint by a data integrity protection system. Such a data integrity protection system, loosely analogous to the IPSec Authentication Header, exists for SCION but is out of scope for this document. This is described as the SCION Packet Authentication Option (SPAO) in <xref target="CHUAT22"/>.</t>
          <t>Moreover, packet integrity protection is not enough if there are two colluding adversaries on the path. These colluding adversaries can forward the packet between them using a different path than selected by the source endpoint: The first on-path attacker remodels the packet header arbitrarily, and the second on-path attacker changes the path back to the original source-selected path, such that the integrity check by the destination endpoint succeeds. However, such an attack is of little value. An on-path adversary may inspect/copy/disrupt its traffic without diverting it away from the sender-chosen path. For this reason proof-of-transit, which would be required to detect such an attack, has marginal benefit in the context of SCION and it is not in scope for this document.</t>
        </section>
        <section anchor="payload-integrity">
          <name>Payload Integrity</name>
          <t>An on-path attacker can modify the payload of a SCION packet. Existing higher layer protocols can easily defend against such an attack without any cooperation by the SCION network. For that reason, payload integrity is not in scope for this specification. However, there exists a proposal for an experimental extension to authenticate addresses, provide integrity protection for payloads, and replay protection: SPAO . This is still very experimental and it not used in the production network.</t>
        </section>
      </section>
      <section anchor="off-path-attacks">
        <name>Off-Path Attacks</name>
        <t>SCION's path awareness limits the abilities of an off-path adversary to influence forwarding in the data plane. Once a packet is en-route it will follow its determined path regardless of the actions of the adversary. An adversary can attempt to disrupt the connectivity of the path by flooding a link with excessive traffic (see <xref target="dos"/> below), but after detecting congestion, the endpoint can switch to another non-congested path for subsequent packets.</t>
      </section>
      <section anchor="dos">
        <name>Volumetric Denial of Service Attacks</name>
        <t>An adversary can attempt to disrupt the connectivity of a network path by flooding a link with excessive traffic. In this case, the endpoint can switch to another non-congested path for subsequent packets.</t>
        <t>SCION provides protection against certain reflection-based DoS attacks. Here, the adversary sends requests to a server with the source address set to the address of the victim, and the server will send a reply that is typically larger than the request to the victim. This can be prevented in SCION as long as the attacker and the victim are located in different ASes as the reply packets are simply returned along reversed path to the actual sender regardless of the source address information. Thus, the reply packets will be forwarded to the attacker's AS where they will be discarded because the destination AS does not match.</t>
        <t>However, the path choice of the endpoint may possibly be exploited by an attacker to create intermittent congestion with a relatively low send rate. The attacker can exploit the latency differences of the available paths, sending at precisely timed intervals to cause short, synchronized bursts of packets near the victim.</t>
        <t><strong>Note</strong> SCION does not protect against two other types of DoS attacks, namely transport protocol attacks and application layer attacks. Such attacks are out of SCION's scope although additional information contained in the SCION header enables more targeted filtering, e.g. by ISD, AS or path length.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>The SCION AS and ISD number are SCION-specific numbers. They are currently allocated by Anapaya Systems, a provider of SCION-based networking software and solutions (see <xref target="ISD-AS-assignments"/>). This task is currently being transitioned from Anapaya to the SCION Association.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.dekater-scion-pki">
          <front>
            <title>SCION Control Plane PKI</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="19" month="October" year="2024"/>
            <abstract>
              <t>   This document presents the trust concept and design of the SCION
   _Control Plane Public Key Infrastructure (CP-PKI)_. SCION
   (Scalability, Control, and Isolation On Next-generation networks) is
   a path-aware, inter-domain network architecture where the Control
   Plane PKI handles cryptographic material and lays the foundation for
   the authentication procedures in SCION.  It is used by SCION's
   Control Plane to authenticate and verify path information, and builds
   the basis for SCION's trust model based on Isolation Domains.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-07"/>
        </reference>
        <reference anchor="I-D.dekater-scion-controlplane">
          <front>
            <title>SCION Control Plane</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="19" month="October" year="2024"/>
            <abstract>
              <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 that can choose between multiple path options,
   enabling the optimization of network paths.  The Control Plane is
   responsible for discovering these paths and making them available to
   the endpoints.

   The main goal of the SCION 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 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 and can specify which
   path properties and algorithm(s) to use in the selection procedure.
   The document also describes the path lookup process whereby endpoints
   obtain path segments - a fundamental building block for the
   construction of end-to-end paths.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-controlplane-06"/>
        </reference>
        <reference anchor="RFC2460">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6), also sometimes referred to as IP Next Generation or IPng. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2460"/>
          <seriesInfo name="DOI" value="10.17487/RFC2460"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="RFC4493">
          <front>
            <title>The AES-CMAC Algorithm</title>
            <author fullname="JH. Song" initials="JH." surname="Song"/>
            <author fullname="R. Poovendran" initials="R." surname="Poovendran"/>
            <author fullname="J. Lee" initials="J." surname="Lee"/>
            <author fullname="T. Iwata" initials="T." surname="Iwata"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>The National Institute of Standards and Technology (NIST) has recently specified the Cipher-based Message Authentication Code (CMAC), which is equivalent to the One-Key CBC MAC1 (OMAC1) submitted by Iwata and Kurosawa. This memo specifies an authentication algorithm based on CMAC with the 128-bit Advanced Encryption Standard (AES). This new authentication algorithm is named AES-CMAC. The purpose of this document is to make the AES-CMAC algorithm conveniently available to the Internet Community. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4493"/>
          <seriesInfo name="DOI" value="10.17487/RFC4493"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC6437">
          <front>
            <title>IPv6 Flow Label Specification</title>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="J. Rajahalme" initials="J." surname="Rajahalme"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>This document specifies the IPv6 Flow Label field and the minimum requirements for IPv6 nodes labeling flows, IPv6 nodes forwarding labeled packets, and flow state establishment methods. Even when mentioned as examples of possible uses of the flow labeling, more detailed requirements for specific use cases are out of the scope for this document.</t>
              <t>The usage of the Flow Label field enables efficient IPv6 flow classification based only on IPv6 main header fields in fixed positions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6437"/>
          <seriesInfo name="DOI" value="10.17487/RFC6437"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.dekater-panrg-scion-overview">
          <front>
            <title>SCION Overview</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Adrian Perrig" initials="A." surname="Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date day="7" month="May" year="2024"/>
            <abstract>
              <t>   The Internet has been successful beyond even the most optimistic
   expectations and is intertwined with many aspects of our society.
   But although the world-wide communication system guarantees global
   reachability, the Internet has not primarily been built with security
   and high availability in mind.  The next-generation inter-network
   architecture SCION (Scalability, Control, and Isolation On Next-
   generation networks) aims to address these issues.  SCION was
   explicitly designed from the outset to offer security and
   availability by default.  The architecture provides route control,
   failure isolation, and trust information for end-to-end
   communication.  It also enables multi-path routing between hosts.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-panrg-scion-overview-06"/>
        </reference>
        <reference anchor="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="ISD-AS-assignments" target="https://docs.anapaya.net/en/latest/resources/isd-as-assignments/">
          <front>
            <title>SCION ISD and AS Assignments</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RFC1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </reference>
        <reference anchor="RFC1918">
          <front>
            <title>Address Allocation for Private Internets</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="B. Moskowitz" initials="B." surname="Moskowitz"/>
            <author fullname="D. Karrenberg" initials="D." surname="Karrenberg"/>
            <author fullname="G. J. de Groot" initials="G. J." surname="de Groot"/>
            <author fullname="E. Lear" initials="E." surname="Lear"/>
            <date month="February" year="1996"/>
            <abstract>
              <t>This document describes address allocation for private internets. 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="5"/>
          <seriesInfo name="RFC" value="1918"/>
          <seriesInfo name="DOI" value="10.17487/RFC1918"/>
        </reference>
        <reference anchor="RFC2711">
          <front>
            <title>IPv6 Router Alert Option</title>
            <author fullname="C. Partridge" initials="C." surname="Partridge"/>
            <author fullname="A. Jackson" initials="A." surname="Jackson"/>
            <date month="October" year="1999"/>
            <abstract>
              <t>This memo describes a new IPv6 Hop-by-Hop Option type that alerts transit routers to more closely examine the contents of an IP datagram. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2711"/>
          <seriesInfo name="DOI" value="10.17487/RFC2711"/>
        </reference>
        <reference anchor="RFC4821">
          <front>
            <title>Packetization Layer Path MTU Discovery</title>
            <author fullname="M. Mathis" initials="M." surname="Mathis"/>
            <author fullname="J. Heffner" initials="J." surname="Heffner"/>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document describes a robust method for Path MTU Discovery (PMTUD) that relies on TCP or some other Packetization Layer to probe an Internet path with progressively larger packets. This method is described as an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Discovery for IP versions 4 and 6, respectively. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4821"/>
          <seriesInfo name="DOI" value="10.17487/RFC4821"/>
        </reference>
        <reference anchor="RFC9217">
          <front>
            <title>Current Open Questions in Path-Aware Networking</title>
            <author fullname="B. Trammell" initials="B." surname="Trammell"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>In contrast to the present Internet architecture, a path-aware internetworking architecture has two important properties: it exposes the properties of available Internet paths to endpoints, and it provides for endpoints and applications to use these properties to select paths through the Internet for their traffic. While this property of "path awareness" already exists in many Internet-connected networks within single domains and via administrative interfaces to the network layer, a fully path-aware internetwork expands these concepts across layers and across the Internet.</t>
              <t>This document poses questions in path-aware networking, open as of 2021, that must be answered in the design, development, and deployment of path-aware internetworks. It was originally written to frame discussions in the Path Aware Networking Research Group (PANRG), and has been published to snapshot current thinking in this space.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9217"/>
          <seriesInfo name="DOI" value="10.17487/RFC9217"/>
        </reference>
        <reference anchor="RFC9473">
          <front>
            <title>A Vocabulary of Path Properties</title>
            <author fullname="R. Enghardt" initials="R." surname="Enghardt"/>
            <author fullname="C. Krähenbühl" initials="C." surname="Krähenbühl"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>Path properties express information about paths across a network and the services provided via such paths. In a path-aware network, path properties may be fully or partially available to entities such as endpoints. This document defines and categorizes path properties. Furthermore, the document identifies several path properties that might be useful to endpoints or other entities, e.g., for selecting between paths or for invoking some of the provided services. This document is a product of the Path Aware Networking Research Group (PANRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9473"/>
          <seriesInfo name="DOI" value="10.17487/RFC9473"/>
        </reference>
        <reference anchor="SCMP" target="https://docs.scion.org/en/latest/protocols/scmp.html">
          <front>
            <title>SCMP Documentation</title>
            <author initials="" surname="Anapaya" fullname="Anapaya Systems">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="" surname="ETH" fullname="ETH Zuerich">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="" surname="SCION" fullname="SCION Association">
              <organization>SCION Association</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="CRYPTOBOOK" target="https://toc.cryptobook.us/">
          <front>
            <title>A Graduate Course in Applied Cryptography</title>
            <author initials="D." surname="Boneh" fullname="Dan Boneh">
              <organization/>
            </author>
            <author initials="V." surname="Shoup" fullname="Victor Shoup">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="SCIONLAB" target="https://ieeexplore.ieee.org/abstract/document/9259355">
          <front>
            <title>SCIONLAB - A Next-Generation Internet Testbed</title>
            <author initials="J." surname="Kown" fullname="Jonghoon Kwon">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="J." surname="García-Pardo" fullname="Juan A. García-Pardo">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="F." surname="Wirz" fullname="François Wirz">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Frei" fullname="Matthias Frei">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="SCIONLAB_WEBSITE" target="https://www.scionlab.org/">
          <front>
            <title>SCIONLab website</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1915?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Matthias Frei (SCION Association), Juan A. Garcia Prado (ETH Zurich) and Kevin Meynell (SCION Association) 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 Data Plane, as well as to the authors of <xref target="CHUAT22"/> - the book is an important source of input and inspiration for this draft.</t>
    </section>
    <section numbered="false" anchor="deployment-testing-scionlab">
      <name>Deployment Testing: SCIONLab</name>
      <t>SCIONLab is a global research network that is available to test the SCION architecture. You can create and use your ASes using your own computation resources which allows you to gain real-world experience of deploying and managing a SCION network.</t>
      <t>More information can be found at <xref target="SCIONLAB_WEBSITE"/> and in the <xref target="SCIONLAB"/> paper.</t>
    </section>
    <section numbered="false" anchor="protnum">
      <name>Assigned SCION Protocol Numbers</name>
      <t>This appendix lists the assigned SCION protocol numbers.</t>
      <section numbered="false" anchor="considerations">
        <name>Considerations</name>
        <t>SCION attempts to take the IANA's assigned Internet protocol numbers into consideration. Widely employed protocols have the same protocol number as the one assigned by IANA. SCION specific protocol numbers start at 200.</t>
        <t>The protocol numbers are used in the SCION header to identify the upper layer protocol.</t>
      </section>
      <section numbered="false" anchor="assignment">
        <name>Assignment</name>
        <table>
          <name>The assigned SCION protocol numbers</name>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Keyword</th>
              <th align="left">Protocol</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-5</td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">TCP/SCION</td>
              <td align="left">Transmission Control Protocol over SCION</td>
            </tr>
            <tr>
              <td align="left">7-16</td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
            </tr>
            <tr>
              <td align="left">17</td>
              <td align="left">UDP/SCION</td>
              <td align="left">User Datagram Protocol over SCION</td>
            </tr>
            <tr>
              <td align="left">18-199</td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
            </tr>
            <tr>
              <td align="left">200</td>
              <td align="left">HBH</td>
              <td align="left">SCION Hop-by-Hop Options</td>
            </tr>
            <tr>
              <td align="left">201</td>
              <td align="left">E2E</td>
              <td align="left">SCION End-to-End Options</td>
            </tr>
            <tr>
              <td align="left">202</td>
              <td align="left">SCMP</td>
              <td align="left">SCION Control Message Protocol</td>
            </tr>
            <tr>
              <td align="left">203</td>
              <td align="left">BFD/SCION</td>
              <td align="left">BFD over SCION</td>
            </tr>
            <tr>
              <td align="left">204-252</td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
            </tr>
            <tr>
              <td align="left">253</td>
              <td align="left"> </td>
              <td align="left">Use for experimentation and testing</td>
            </tr>
            <tr>
              <td align="left">254</td>
              <td align="left"> </td>
              <td align="left">Use for experimentation and testing</td>
            </tr>
            <tr>
              <td align="left">255</td>
              <td align="left"> </td>
              <td align="left">Reserved</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>Changes made to drafts since ISE submission. This section is to be removed before publication.</t>
      <section numbered="false" anchor="draft-dekater-scion-dataplane-03">
        <name>draft-dekater-scion-dataplane-03</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>Introduction: clarified document goal and added Figure showing SCION Header within the stack</t>
          </li>
          <li>
            <t>Added section with SCMP specification</t>
          </li>
          <li>
            <t>Added section on Handling Link Failures and BFD</t>
          </li>
          <li>
            <t>Added sections on MTU and fragmentation</t>
          </li>
          <li>
            <t>Clarified router checks in Processing at Routers</t>
          </li>
          <li>
            <t>Security Considerations: add section on Payload Modifications</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Added short section mentioning SCION IP Gateway</t>
          </li>
          <li>
            <t>Clarified the router alert flags and relationship to the ConsIngress/Egress fields.</t>
          </li>
          <li>
            <t>Clarifications in the SCION Header Specification section (router alert flags, service addresses, one-hop paths, text clarifications, validity of peering links)</t>
          </li>
          <li>
            <t>Added mention of why proof of transit is not needed.</t>
          </li>
          <li>
            <t>Rename flow ID to Flow Label and document by reference to <xref target="RFC6437"/>.</t>
          </li>
          <li>
            <t>Added reference to SCIONLab as a testbed for implementors</t>
          </li>
          <li>
            <t>Added J. C. Hugly as author.</t>
          </li>
          <li>
            <t>Introduced this change log</t>
          </li>
          <li>
            <t>Clarify addressing and avoid confusing claim of communication between two endpoints with the same IP (section 1.3.1)</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-dataplane-02">
        <name>draft-dekater-scion-dataplane-02</name>
        <t>Major changes:</t>
        <ul spacing="normal">
          <li>
            <t>Added overview of SCION components to Introduction section.</t>
          </li>
          <li>
            <t>Introduced AES-CMAC as default MAC algorithm and elaborated on MAC chaining and path splicing.</t>
          </li>
          <li>
            <t>Added section to describe Effects of Clock Inaccuracy / time synchronization requirements</t>
          </li>
          <li>
            <t>Added section to describe required router Configuration</t>
          </li>
          <li>
            <t>Added service field table.</t>
          </li>
        </ul>
        <t>Minor changes:</t>
        <ul spacing="normal">
          <li>
            <t>Removed forward references.</t>
          </li>
          <li>
            <t>General edits to make terminology consistent, remove duplication and rationalize text.</t>
          </li>
          <li>
            <t>Added and capitalized RFC2119 compliant terminology.</t>
          </li>
          <li>
            <t>Clarified implications of AS forwarding key compromise and path splicing in security considerations</t>
          </li>
          <li>
            <t>Clarified the computation of ExtLen.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
rsqYp9uue8VRTcjgwReSGYuke4rDwqxd5Bn7lKPWjHLh6iKpTJCiDdSp3NAt
NYE52SRNKh8W1lkF7/bFDjh5wdF/9tRTP52gF6yqQWTma3Z/EYR36n+MVmgN
Rm0o+WaSUa2qxuYoakqx8KZarou8Gn5gXba618xYvLqwrArGk9lCaybte3hB
HXg3hlcfhILEkyQLScJytEbYcXC9GnSc+KG5j0zIiRO/psl6eY8lCk8cFI3L
jxeGao5P9EJ+IrnoOYDqVVzY8Lgy8UKFqNBhxZf3v1GWXBzaQhY1c0CE/HUU
+DSiyUt7iP5Wmb7yklNxoeeuuFG6YGRhh5Ion9m7NHESt0qfFysnJz5qdnYl
plqzmck6dHPXm14NsnV2otvDk1+KDd7feAv3iBgwbhLzxmFEHnq4u7eMXNiO
e7JgqjtE8cm33TLK64oYTCpbnZmStDiTePIbfJNVDu7NzwmPrMhrVlfd3G/6
jGg3qnVNso+bDUynwak19F/KIaC/8y83kfsB/rsRdWBvdrr9Pv67S/mcbuj3
If6Ov4y6fdI54e8P5cNHmCrgtM9R//ovZ3IwaQI0p4P/4brL3sB0kJrb1/7g
isPHmC9SnzkhN/cbR7jf9Ay4ofvy1uWLmp46z7BVdPj2Jfz3xunef3pfW9ln
jcPdhMPd1Kdw8y0Nb6JXL/HxTd957j29L6k8nGf3myZ70zTmTW3Mpunepak3
4fvaNJiwvHAnXJ/yTdu4N7Vx65OWxj4ErWjsTkYb+z835v/8aYcTv6mPzfDV
PLYXb+Z8h5/Kj/226cuNxlnSf5Aptn/dNK6ntXl99Ls174cLXbf5/f6vevGi
r2gefdvo36W5mfwvegW+dvTo79/cmTyDuPdz/9tGj35Qc2z3K30ut/NuzaNv
G/2bmnOrr5580M9dR/+m5gobXzl5593XjP79mtvJ/2J7+drRox/Z3C0xhcJU
bfI+B/UVozd88gObh5Ov/dz/ttGjH9n81skzw/kNo0c/rvkak28RZILRWz5x
2Z+azvCR6gyPRKNllTnirEzawnv31CJLrIyYZVmI/XzP0fuJzW63j5bFegu2
pnY8TWFXpNGyHk9vNWCu+VZcFkVz1hICLZbQf3Z/kH0EHwzwRBBiABSvjxt0
Ejnfpkha/n3o/D7i33+AFvpxSyhGRIWTJFQIj6UZOAjc+tHp/mnUgWUBC9R1
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
6+Y52DQH/wtME++I2EcCAA==

-->

</rfc>
