<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-04" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-04"/>
    <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="December" day="24"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 162?>

<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 168?>

<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>SCION has been developed with the following goals:</t>
      <t><em>Availability</em> - to provide highly available communication that can send traffic over paths with optimal or required characteristics, quickly handle inter-domain link or router failures (both on the last hop or anywhere along the path) and provide continuity in the presence of adversaries.</t>
      <t><em>Security</em> - to introduce a new approach to inter-domain path security that leverages path awareness in combination with a unique trust model. The goal is to provide higher levels of trust in routing information to prevent traffic hijacking, and enable users to decide where their data travels based on routing information that can be unambiguously attributed to an AS, ensuring that packets are only forwarded along authorized path segments. A particular use case is to enable geofencing.</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, to encourage interoperability among implementations, and to introduce new concepts that can potentially be further improved to address particular problems with the current Internet architecture. This document is not an Internet Standards Track specification; it does not have IETF consensus and it is published for informational purposes.</t>
      <t>==Note (to be removed before publication): this document, together with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-controlplane"/>, deprecates <xref target="I-D.dekater-panrg-scion-overview"/>.==</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t><strong>Autonomous System (AS)</strong>: An autonomous system is a network under a common administrative control. For example, the network of an Internet service provider 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>
        <t><strong>SCMP</strong>: A signaling protocol analogous to the Internet Control Message Protocol (ICMP). This is described in <xref target="I-D.dekater-scion-controlplane"/>.</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>
          <t>The data transmission order for SCION is the same as for IPv6 as defined in Introduction of <xref target="RFC8200"/>.</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 and expressed in units of 256th of a day. 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>) * (86400/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 Traceroute Requests (see <xref target="I-D.dekater-scion-controlplane"/> section "SCMP/Traceroute Request").</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 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>
        <t>More information about the reference open source SCION IP Gateway implementation can be found at <xref target="SIG"/>.</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 SCMP notification (see <xref target="I-D.dekater-scion-controlplane"/> section "SCMP/Error Messages"). This allows the source endpoint to quickly switch to a different path. To that end, the source end-point <bcp14>SHOULD</bcp14> give lower preference to the broken path. Current implementations use a negative cache with entries retained for 10s.</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="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="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>
        <reference anchor="SIG" target="https://docs.scion.org/en/latest/sig.html">
          <front>
            <title>SCION IP Gateway Documentation</title>
            <author initials="" surname="Anapaya">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="" surname="ETH">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="" surname="SCION">
              <organization>SCION Association</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1552?>

<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-04">
        <name>draft-dekater-scion-dataplane-04</name>
        <ul spacing="normal">
          <li>
            <t>Moved SCMP specification to draft-dekater-scion-controlplane</t>
          </li>
        </ul>
      </section>
      <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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
aPrQ2Yfu25xF9X8B0CqUkxD5AQA=

-->

</rfc>
