<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-06" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-06"/>
    <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="2025" month="July" day="07"/>
    <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>
      <t>This document contains new approaches to secure path aware networking. It is not an Internet Standard, has not received any formal review of the IETF, nor was the work developed through the rough consensus process. The approaches offered in this work are offered to the community for its consideration in the further evolution of the Internet.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://scionassociation.github.io/scion-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 170?>

<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 used for the authentication of messages used by the SCION Control Plane.</t>
      <t><em>Control Plane</em> - performs inter-domain routing by discovering and securely disseminating path information between ASes. The core ASes use Path-segment Construction Beacons (PCBs) to explore intra-ISD paths, or to explore paths across different ISDs.</t>
      <t><em>Data Plane</em> - carries out secure packet forwarding between SCION-enabled ASes over paths selected by endpoints. A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS.</t>
      <t>This document describes the SCION 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.</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). Each Interface ID <bcp14>MUST</bcp14> be unique within each AS. 0 is a reserved value that indicates the lack of an Interface ID. It is used as the unspecified Interface ID (e.g., in <xref target="onehop"/>).</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, Autonomous Systems (ASes) are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (e.g. a common jurisdiction). A possible model is for ISDs to be formed along national boundaries or federations of nations.</t>
        <t><strong>Leaf AS</strong>: An AS at the "edge" of an ISD, with no other downstream ASes.</t>
        <t><strong>Message Authentication Code (MAC)</strong>: In the rest of this document, "MAC" always refers to "Message Authentication Code" and never to "Medium Access Control". When "Medium Access Control address" is implied, the phrase "Link Layer Address" is used.</t>
        <t><strong>Path 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>SCION Control Message Protocol (SCMP)</strong>: A signaling protocol analogous to the Internet Control Message Protocol (ICMP), as 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>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="392" viewBox="0 0 392 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,304" fill="none" stroke="black"/>
                  <path d="M 248,32 L 248,304" fill="none" stroke="black"/>
                  <path d="M 280,208 L 280,304" fill="none" stroke="black"/>
                  <path d="M 8,32 L 248,32" fill="none" stroke="black"/>
                  <path d="M 8,144 L 248,144" fill="none" stroke="black"/>
                  <path d="M 8,208 L 248,208" fill="none" stroke="black"/>
                  <path d="M 264,208 L 280,208" fill="none" stroke="black"/>
                  <path d="M 8,240 L 248,240" fill="none" stroke="black"/>
                  <path d="M 8,272 L 248,272" fill="none" stroke="black"/>
                  <path d="M 8,304 L 248,304" fill="none" stroke="black"/>
                  <path d="M 264,304 L 280,304" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="272,304 260,298.4 260,309.6" fill="black" transform="rotate(180,264,304)"/>
                  <polygon class="arrowhead" points="272,208 260,202.4 260,213.6" fill="black" transform="rotate(180,264,208)"/>
                  <g class="text">
                    <text x="104" y="84">Payload</text>
                    <text x="156" y="84">(L4)</text>
                    <text x="128" y="180">SCION</text>
                    <text x="128" y="228">UDP</text>
                    <text x="340" y="244">Intra-domain</text>
                    <text x="124" y="260">IP</text>
                    <text x="332" y="260">protocol</text>
                    <text x="100" y="292">Link</text>
                    <text x="144" y="292">Layer</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+-----------------------------+
|                             |
|                             |
|        Payload (L4)         |
|                             |
|                             |
|                             |
+-----------------------------+
|                             |
|            SCION            |
|                             |
+-----------------------------+ <-+
|             UDP             |   |
+-----------------------------+   | Intra-domain
|             IP              |   |  protocol
+-----------------------------+   |
|         Link Layer          |   |
+-----------------------------+ <-+
]]></artwork>
            </artset>
          </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 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.</t>
        <t>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 consists of at least one and up to 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[
 +---+
 | 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   |     |
|     |         |     |     |      |          |     |         |     |
|   +-+-+     +-+-+   |     |    +-+-+        |   +-+-+     +-+-+   |
|   |   |     |   |   |     |    |   |        |   |   +p---p+   |   |
|   +-+-+     +-+-+   |     |    +-+-+        |   +-+-+     +-+-+   |
|     |         |     |     |      |          |     │         │     |
|     |         |     |     |      |          |     │         │     |
|     |         |     |     |      |          |     │         │     |
|   +-+-+     +-+-+   |     |    +-+-+        |   +-+-+     +-+-+   |
+-->| * |     | * |<--+     +--->| * |        +-->| * |     | * |<--+
    +---+     +---+              +---+            +---+     +---+

         Core                                      Core
     ---------->                               ---------->
   +---+     +---+             +---+         +---+     +---+      +---+
+--+ C + - - + C +--+   +------+ C +------+  | C ├ - - ┤ C │  +---+ C |
|  +-+-+     +-+-+  |   |      +-+-+      |  +-+-+     +-+-+  |   +-+-+
|    |    3b   |    |   |        |   4a   |    |   4b    |    |  5  |
|                   |   |        |        |                   |
|    |         |    |   |        |        |    |         |    |     |
|  +-+-+     +-+-+  |   |      +-+-+      |    +- +---+ -+    |   +-+-+
|  |   +p---p+   │  |   |    +-+   +-+    |       |   |       |   | * |
|  +-+-+     +─+─+  |   |    | +---+ |    |    +- +---+ -+    |   +-+-+
|    |         |    |   |    |       |    |    |         |    |     │
|    |         |    |   |    |       |    |                   |     │
|    |         |    |   |    |       |    |    |         |    |     │
|  +-+-+     +-+-+  |   |  +-+-+   +-+-+  |  +-+-+     +-+-+  |   +-+-+
+->| * |     | * |<-+   +->| * |   │ * |<-+  | * |     | * |  +-->| * |
   +---+     +---+         +---+   +---+     +---+     +---+      +---+

]]></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, non-byte aligned</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="472" viewBox="0 0 472 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,224" fill="none" stroke="black"/>
              <path d="M 464,32 L 464,224" fill="none" stroke="black"/>
              <path d="M 8,32 L 464,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 464,80" fill="none" stroke="black"/>
              <path d="M 8,128 L 464,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 464,176" fill="none" stroke="black"/>
              <path d="M 8,224 L 464,224" fill="none" stroke="black"/>
              <g class="text">
                <text x="204" y="52">Common</text>
                <text x="260" y="52">header</text>
                <text x="208" y="100">Address</text>
                <text x="268" y="100">header</text>
                <text x="204" y="148">Path</text>
                <text x="252" y="148">header</text>
                <text x="168" y="196">Extension</text>
                <text x="236" y="196">header</text>
                <text x="308" y="196">(OPTIONAL)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+--------------------------------------------------------+
|                     Common header                      |
|                                                        |
+--------------------------------------------------------+
|                     Address header                     |
|                                                        |
+--------------------------------------------------------+
|                      Path header                       |
|                                                        |
+--------------------------------------------------------+
|               Extension header (OPTIONAL)              |
|                                                        |
+--------------------------------------------------------+

]]></artwork>
        </artset>
      </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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 72,64 L 72,96" fill="none" stroke="black"/>
                <path d="M 136,96 L 136,160" fill="none" stroke="black"/>
                <path d="M 168,128 L 168,160" fill="none" stroke="black"/>
                <path d="M 200,64 L 200,96" fill="none" stroke="black"/>
                <path d="M 200,128 L 200,160" fill="none" stroke="black"/>
                <path d="M 232,128 L 232,160" fill="none" stroke="black"/>
                <path d="M 264,96 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="40" y="84">Version</text>
                  <text x="132" y="84">TrafficClass</text>
                  <text x="348" y="84">Flow</text>
                  <text x="392" y="84">Label</text>
                  <text x="72" y="116">NextHdr</text>
                  <text x="196" y="116">HdrLen</text>
                  <text x="388" y="116">PayloadLen</text>
                  <text x="76" y="148">PathType</text>
                  <text x="148" y="148">DT</text>
                  <text x="180" y="148">DL</text>
                  <text x="212" y="148">ST</text>
                  <text x="244" y="148">SL</text>
                  <text x="392" y="148">RSV</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| TrafficClass  |                Flow Label             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    NextHdr    |    HdrLen     |          PayloadLen           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    PathType   |DT |DL |ST |SL |              RSV              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </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>: 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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="528" viewBox="0 0 528 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,256" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,256" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,224 L 520,224" fill="none" stroke="black"/>
                <path d="M 8,256 L 520,256" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="132" y="84">DstISD</text>
                  <text x="264" y="116">DstAS</text>
                  <text x="132" y="148">SrcISD</text>
                  <text x="264" y="180">SrcAS</text>
                  <text x="216" y="212">DstHostAddr</text>
                  <text x="272" y="212">(</text>
                  <text x="316" y="212">variable</text>
                  <text x="372" y="212">Len.</text>
                  <text x="400" y="212">)</text>
                  <text x="216" y="244">SrcHostAddr</text>
                  <text x="272" y="244">(</text>
                  <text x="316" y="244">variable</text>
                  <text x="372" y="244">Len.</text>
                  <text x="400" y="244">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DstISD             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                             DstAS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SrcISD             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                             SrcAS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    DstHostAddr ( variable Len. )              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    SrcHostAddr ( variable Len. )              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="528" viewBox="0 0 528 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="112" y="84">Service</text>
                  <text x="172" y="84">Number</text>
                  <text x="392" y="84">RSV</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Service Number        |              RSV              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </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, see the (<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>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="528" viewBox="0 0 528 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,432" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,432" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,240 L 520,240" fill="none" stroke="black"/>
                  <path d="M 8,304 L 520,304" fill="none" stroke="black"/>
                  <path d="M 8,368 L 520,368" fill="none" stroke="black"/>
                  <path d="M 8,432 L 520,432" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="264" y="84">PathMetaHdr</text>
                    <text x="264" y="116">InfoField</text>
                    <text x="264" y="164">...</text>
                    <text x="264" y="212">InfoField</text>
                    <text x="260" y="260">HopField</text>
                    <text x="260" y="324">HopField</text>
                    <text x="264" y="388">...</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          PathMetaHdr                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           InfoField                           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           InfoField                           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           HopField                            |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </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   +-+   AS   +---+   AS   +-+   AS   +---+   AS   +-+   AS   |
|ff00:0:3| |ff00:0:4| | |ff00:0:1| +ff00:0:2| | |ff00:0:5| |ff00:0: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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="528" viewBox="0 0 528 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                    <path d="M 40,64 L 40,96" fill="none" stroke="black"/>
                    <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                    <path d="M 232,64 L 232,96" fill="none" stroke="black"/>
                    <path d="M 328,64 L 328,96" fill="none" stroke="black"/>
                    <path d="M 424,64 L 424,96" fill="none" stroke="black"/>
                    <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                    <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                    <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="16" y="36">0</text>
                      <text x="176" y="36">1</text>
                      <text x="336" y="36">2</text>
                      <text x="496" y="36">3</text>
                      <text x="16" y="52">0</text>
                      <text x="32" y="52">1</text>
                      <text x="48" y="52">2</text>
                      <text x="64" y="52">3</text>
                      <text x="80" y="52">4</text>
                      <text x="96" y="52">5</text>
                      <text x="112" y="52">6</text>
                      <text x="128" y="52">7</text>
                      <text x="144" y="52">8</text>
                      <text x="160" y="52">9</text>
                      <text x="176" y="52">0</text>
                      <text x="192" y="52">1</text>
                      <text x="208" y="52">2</text>
                      <text x="224" y="52">3</text>
                      <text x="240" y="52">4</text>
                      <text x="256" y="52">5</text>
                      <text x="272" y="52">6</text>
                      <text x="288" y="52">7</text>
                      <text x="304" y="52">8</text>
                      <text x="320" y="52">9</text>
                      <text x="336" y="52">0</text>
                      <text x="352" y="52">1</text>
                      <text x="368" y="52">2</text>
                      <text x="384" y="52">3</text>
                      <text x="400" y="52">4</text>
                      <text x="416" y="52">5</text>
                      <text x="432" y="52">6</text>
                      <text x="448" y="52">7</text>
                      <text x="464" y="52">8</text>
                      <text x="480" y="52">9</text>
                      <text x="496" y="52">0</text>
                      <text x="512" y="52">1</text>
                      <text x="24" y="84">C</text>
                      <text x="84" y="84">CurrHF</text>
                      <text x="184" y="84">RSV</text>
                      <text x="280" y="84">Seg0Len</text>
                      <text x="376" y="84">Seg1Len</text>
                      <text x="472" y="84">Seg2Len</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C |  CurrHF   |    RSV    |  Seg0Len  |  Seg1Len  |  Seg2Len  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
              </artset>
            </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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="528" viewBox="0 0 528 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                    <path d="M 104,64 L 104,96" fill="none" stroke="black"/>
                    <path d="M 120,64 L 120,96" fill="none" stroke="black"/>
                    <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                    <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                    <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                    <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                    <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                    <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="16" y="36">0</text>
                      <text x="176" y="36">1</text>
                      <text x="336" y="36">2</text>
                      <text x="496" y="36">3</text>
                      <text x="16" y="52">0</text>
                      <text x="32" y="52">1</text>
                      <text x="48" y="52">2</text>
                      <text x="64" y="52">3</text>
                      <text x="80" y="52">4</text>
                      <text x="96" y="52">5</text>
                      <text x="112" y="52">6</text>
                      <text x="128" y="52">7</text>
                      <text x="144" y="52">8</text>
                      <text x="160" y="52">9</text>
                      <text x="176" y="52">0</text>
                      <text x="192" y="52">1</text>
                      <text x="208" y="52">2</text>
                      <text x="224" y="52">3</text>
                      <text x="240" y="52">4</text>
                      <text x="256" y="52">5</text>
                      <text x="272" y="52">6</text>
                      <text x="288" y="52">7</text>
                      <text x="304" y="52">8</text>
                      <text x="320" y="52">9</text>
                      <text x="336" y="52">0</text>
                      <text x="352" y="52">1</text>
                      <text x="368" y="52">2</text>
                      <text x="384" y="52">3</text>
                      <text x="400" y="52">4</text>
                      <text x="416" y="52">5</text>
                      <text x="432" y="52">6</text>
                      <text x="448" y="52">7</text>
                      <text x="464" y="52">8</text>
                      <text x="480" y="52">9</text>
                      <text x="496" y="52">0</text>
                      <text x="512" y="52">1</text>
                      <text x="56" y="84">RSV</text>
                      <text x="112" y="84">P</text>
                      <text x="128" y="84">C</text>
                      <text x="200" y="84">RSV</text>
                      <text x="384" y="84">Acc</text>
                      <text x="264" y="116">Timestamp</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RSV    |P|C|      RSV      |             Acc               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
              </artset>
            </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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                    <path d="M 104,64 L 104,96" fill="none" stroke="black"/>
                    <path d="M 120,64 L 120,96" fill="none" stroke="black"/>
                    <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                    <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                    <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                    <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                    <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                    <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
                    <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="16" y="36">0</text>
                      <text x="176" y="36">1</text>
                      <text x="336" y="36">2</text>
                      <text x="496" y="36">3</text>
                      <text x="16" y="52">0</text>
                      <text x="32" y="52">1</text>
                      <text x="48" y="52">2</text>
                      <text x="64" y="52">3</text>
                      <text x="80" y="52">4</text>
                      <text x="96" y="52">5</text>
                      <text x="112" y="52">6</text>
                      <text x="128" y="52">7</text>
                      <text x="144" y="52">8</text>
                      <text x="160" y="52">9</text>
                      <text x="176" y="52">0</text>
                      <text x="192" y="52">1</text>
                      <text x="208" y="52">2</text>
                      <text x="224" y="52">3</text>
                      <text x="240" y="52">4</text>
                      <text x="256" y="52">5</text>
                      <text x="272" y="52">6</text>
                      <text x="288" y="52">7</text>
                      <text x="304" y="52">8</text>
                      <text x="320" y="52">9</text>
                      <text x="336" y="52">0</text>
                      <text x="352" y="52">1</text>
                      <text x="368" y="52">2</text>
                      <text x="384" y="52">3</text>
                      <text x="400" y="52">4</text>
                      <text x="416" y="52">5</text>
                      <text x="432" y="52">6</text>
                      <text x="448" y="52">7</text>
                      <text x="464" y="52">8</text>
                      <text x="480" y="52">9</text>
                      <text x="496" y="52">0</text>
                      <text x="512" y="52">1</text>
                      <text x="56" y="84">RSV</text>
                      <text x="112" y="84">I</text>
                      <text x="128" y="84">E</text>
                      <text x="200" y="84">ExpTime</text>
                      <text x="400" y="84">ConsIngress</text>
                      <text x="116" y="116">ConsEgress</text>
                      <text x="264" y="148">MAC</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RSV    |I|E|    ExpTime    |           ConsIngress         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        ConsEgress             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              MAC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
              </artset>
            </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 'SCMP/Traceroute request' in <xref target="I-D.dekater-scion-controlplane"/>).</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. The second Hop Field is created by the ingress SCION border router of the neighboring AS while processing the one-hop path. 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>
          <t>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 the 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>
        </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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="528" viewBox="0 0 528 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="72" y="84">NextHdr</text>
                  <text x="204" y="84">ExtLen</text>
                  <text x="392" y="84">Options</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    NextHdr    |     ExtLen    |            Options            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </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>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="528" viewBox="0 0 528 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                  <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="72" y="84">OptType</text>
                    <text x="196" y="84">OptDataLen</text>
                    <text x="392" y="84">OptData</text>
                    <text x="256" y="116">.</text>
                    <text x="272" y="116">.</text>
                    <text x="288" y="116">.</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    OptType    |  OptDataLen   |            OptData            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                              . . .                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
            </artset>
          </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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="520" viewBox="0 0 520 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                    <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                    <path d="M 8,64 L 136,64" fill="none" stroke="black"/>
                    <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="16" y="36">0</text>
                      <text x="176" y="36">1</text>
                      <text x="336" y="36">2</text>
                      <text x="496" y="36">3</text>
                      <text x="16" y="52">0</text>
                      <text x="32" y="52">1</text>
                      <text x="48" y="52">2</text>
                      <text x="64" y="52">3</text>
                      <text x="80" y="52">4</text>
                      <text x="96" y="52">5</text>
                      <text x="112" y="52">6</text>
                      <text x="128" y="52">7</text>
                      <text x="144" y="52">8</text>
                      <text x="160" y="52">9</text>
                      <text x="176" y="52">0</text>
                      <text x="192" y="52">1</text>
                      <text x="208" y="52">2</text>
                      <text x="224" y="52">3</text>
                      <text x="240" y="52">4</text>
                      <text x="256" y="52">5</text>
                      <text x="272" y="52">6</text>
                      <text x="288" y="52">7</text>
                      <text x="304" y="52">8</text>
                      <text x="320" y="52">9</text>
                      <text x="336" y="52">0</text>
                      <text x="352" y="52">1</text>
                      <text x="368" y="52">2</text>
                      <text x="384" y="52">3</text>
                      <text x="400" y="52">4</text>
                      <text x="416" y="52">5</text>
                      <text x="432" y="52">6</text>
                      <text x="448" y="52">7</text>
                      <text x="464" y="52">8</text>
                      <text x="480" y="52">9</text>
                      <text x="496" y="52">0</text>
                      <text x="512" y="52">1</text>
                      <text x="72" y="84">0</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|       0       |
+-+-+-+-+-+-+-+-+

]]></artwork>
              </artset>
            </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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,80 L 8,144" fill="none" stroke="black"/>
                    <path d="M 136,80 L 136,112" fill="none" stroke="black"/>
                    <path d="M 264,80 L 264,112" fill="none" stroke="black"/>
                    <path d="M 520,80 L 520,144" fill="none" stroke="black"/>
                    <path d="M 8,80 L 520,80" fill="none" stroke="black"/>
                    <path d="M 8,112 L 264,112" fill="none" stroke="black"/>
                    <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="16" y="52">0</text>
                      <text x="176" y="52">1</text>
                      <text x="336" y="52">2</text>
                      <text x="496" y="52">3</text>
                      <text x="16" y="68">0</text>
                      <text x="32" y="68">1</text>
                      <text x="48" y="68">2</text>
                      <text x="64" y="68">3</text>
                      <text x="80" y="68">4</text>
                      <text x="96" y="68">5</text>
                      <text x="112" y="68">6</text>
                      <text x="128" y="68">7</text>
                      <text x="144" y="68">8</text>
                      <text x="160" y="68">9</text>
                      <text x="176" y="68">0</text>
                      <text x="192" y="68">1</text>
                      <text x="208" y="68">2</text>
                      <text x="224" y="68">3</text>
                      <text x="240" y="68">4</text>
                      <text x="256" y="68">5</text>
                      <text x="272" y="68">6</text>
                      <text x="288" y="68">7</text>
                      <text x="304" y="68">8</text>
                      <text x="320" y="68">9</text>
                      <text x="336" y="68">0</text>
                      <text x="352" y="68">1</text>
                      <text x="368" y="68">2</text>
                      <text x="384" y="68">3</text>
                      <text x="400" y="68">4</text>
                      <text x="416" y="68">5</text>
                      <text x="432" y="68">6</text>
                      <text x="448" y="68">7</text>
                      <text x="464" y="68">8</text>
                      <text x="480" y="68">9</text>
                      <text x="496" y="68">0</text>
                      <text x="512" y="68">1</text>
                      <text x="72" y="100">1</text>
                      <text x="196" y="100">OptDataLen</text>
                      <text x="392" y="100">OptData</text>
                      <text x="256" y="132">.</text>
                      <text x="272" y="132">.</text>
                      <text x="288" y="132">.</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
        
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       1       |  OptDataLen   |            OptData            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              . . .                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
              </artset>
            </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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="624" viewBox="0 0 624 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,320" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,160" fill="none" stroke="black"/>
                <path d="M 392,288 L 392,320" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,320" fill="none" stroke="black"/>
                <path d="M 552,64 L 552,256" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 536,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,224 L 520,224" fill="none" stroke="black"/>
                <path d="M 8,256 L 520,256" fill="none" stroke="black"/>
                <path d="M 536,256 L 552,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                <path d="M 8,320 L 520,320" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="544,256 532,250.4 532,261.6" fill="black" transform="rotate(180,536,256)"/>
                <polygon class="arrowhead" points="544,64 532,58.4 532,69.6" fill="black" transform="rotate(180,536,64)"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="132" y="84">DstISD</text>
                  <text x="264" y="116">DstAS</text>
                  <text x="132" y="148">SrcISD</text>
                  <text x="584" y="148">SCION</text>
                  <text x="592" y="164">address</text>
                  <text x="264" y="180">SrcAS</text>
                  <text x="588" y="180">header</text>
                  <text x="216" y="212">DstHostAddr</text>
                  <text x="272" y="212">(</text>
                  <text x="316" y="212">variable</text>
                  <text x="372" y="212">Len.</text>
                  <text x="400" y="212">)</text>
                  <text x="216" y="244">SrcHostAddr</text>
                  <text x="272" y="244">(</text>
                  <text x="316" y="244">variable</text>
                  <text x="372" y="244">Len.</text>
                  <text x="400" y="244">)</text>
                  <text x="216" y="276">Upper-Layer</text>
                  <text x="292" y="276">Packet</text>
                  <text x="348" y="276">Length</text>
                  <text x="204" y="308">zero</text>
                  <text x="428" y="308">Next</text>
                  <text x="476" y="308">Header</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|            DstISD             |                               |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +   |
|                             DstAS                             |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
|            SrcISD             |                               |   | SCION
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +   | address
|                             SrcAS                             |   | header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
|                    DstHostAddr ( variable Len. )              |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
|                    SrcHostAddr ( variable Len. )              |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|                    Upper-Layer Packet Length                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      zero                     |  Next Header  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </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. AS ff00:0:1 is the core AS of ISD 1, and AS ff00:0:2 and AS ff00:0:3 are non-core ASes of ISD 1.</name>
          <artwork><![CDATA[
                  +-------------------------+
                  |                         |
                  |       AS ff00:0:1       |
                  |                         | (1-ff00:0:1,
                  |                         | 198.51.100.17)
                  |          198.51.100.4 +-+-+ i1b
                  |            +----------+R3 +#-+
            i1a +-+-+          |          +-+-+  |
             +-#+R2 +----------+            |    |
             |  +-+-+ 198.51.100.1          |    |
             |    |                         |    |
             |    +-------------------------+    | (1-ff00:0:3,
             *                                   * 198.51.100.18)
       i2a +-+-+                               +-+-+ i3a
+----------+R1 +----------+         +----------+R4 +----------+
|          +-+-+          |         |          +-+-+          |
|            |203.0.113.17|         |            |192.0.2.34  |
|            |            |         |            |            |
|     +------+-----+      |         |      +-----+------+     |
|     | Endpoint A |      |         |      | Endpoint B |     |
|     +------------+      |         |      +------------+     |
| 1-ff00:0:2,203.0.113.6  |         |  1-ff00:0:3,192.0.2.7   |
|                         |         |                         |
|       AS ff00:0:2       |         |       AS ff00:0:3       |
|                         |         |                         |
+-------------------------+         +-------------------------+

]]></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 AS ff00:0:2 wants to send a data packet to Endpoint B in AS ff00:0:3. Both AS ff00:0:2 and AS ff00:0:3 are part of ISD 1. To create an end-to-end SCION forwarding path, Endpoint A first requests its own AS ff00:0:2 control service for up segments to the core AS in its ISD. The AS ff00:0:2 control service will return up segments from AS ff00:0:2 to the ISD core AS ff00:0:1. Endpoint A will also query its AS ff00:0:2 control service for a down segment from its ISD core AS ff00:0:1 to AS ff00:0:3, in which Endpoint B is located. The AS ff00:0:3 control service will return down segments from the ISD core down to AS ff00:0:3.</t>
        <t><strong>Note:</strong> For more details on the lookup of path segments, see 'Path Lookup' in <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 AS ff00:0:2 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 AS ff00:0:2 creates a new SCION packet destined for destination Endpoint B in AS ff00:0:3, 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 AS ff00:0:2'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-ff00:0:2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-ff00:0: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-ff00:0:2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-ff00:0: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 AS ff00:0:1 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-ff00:0:2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-ff00:0: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 AS ff00:0:3, 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-ff00:0:2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-ff00:0: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 = 198.51.100.17 (Router 3) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 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-ff00:0:2,203.0.113.6 (source Endpoint A) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-ff00:0: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>
              <artset>
                <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="608" viewBox="0 0 608 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                    <path d="M 136,128 L 136,160" fill="none" stroke="black"/>
                    <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                    <path d="M 264,128 L 264,192" fill="none" stroke="black"/>
                    <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                    <path d="M 552,64 L 552,192" fill="none" stroke="black"/>
                    <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                    <path d="M 536,64 L 552,64" fill="none" stroke="black"/>
                    <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                    <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                    <path d="M 536,128 L 552,128" fill="none" stroke="black"/>
                    <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                    <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                    <path d="M 536,192 L 552,192" fill="none" stroke="black"/>
                    <polygon class="arrowhead" points="544,192 532,186.4 532,197.6" fill="black" transform="rotate(180,536,192)"/>
                    <polygon class="arrowhead" points="544,128 532,122.4 532,133.6" fill="black" transform="rotate(180,536,128)"/>
                    <polygon class="arrowhead" points="544,64 532,58.4 532,69.6" fill="black" transform="rotate(180,536,64)"/>
                    <g class="text">
                      <text x="16" y="36">0</text>
                      <text x="176" y="36">1</text>
                      <text x="336" y="36">2</text>
                      <text x="496" y="36">3</text>
                      <text x="16" y="52">0</text>
                      <text x="32" y="52">1</text>
                      <text x="48" y="52">2</text>
                      <text x="64" y="52">3</text>
                      <text x="80" y="52">4</text>
                      <text x="96" y="52">5</text>
                      <text x="112" y="52">6</text>
                      <text x="128" y="52">7</text>
                      <text x="144" y="52">8</text>
                      <text x="160" y="52">9</text>
                      <text x="176" y="52">0</text>
                      <text x="192" y="52">1</text>
                      <text x="208" y="52">2</text>
                      <text x="224" y="52">3</text>
                      <text x="240" y="52">4</text>
                      <text x="256" y="52">5</text>
                      <text x="272" y="52">6</text>
                      <text x="288" y="52">7</text>
                      <text x="304" y="52">8</text>
                      <text x="320" y="52">9</text>
                      <text x="336" y="52">0</text>
                      <text x="352" y="52">1</text>
                      <text x="368" y="52">2</text>
                      <text x="384" y="52">3</text>
                      <text x="400" y="52">4</text>
                      <text x="416" y="52">5</text>
                      <text x="432" y="52">6</text>
                      <text x="448" y="52">7</text>
                      <text x="464" y="52">8</text>
                      <text x="480" y="52">9</text>
                      <text x="496" y="52">0</text>
                      <text x="512" y="52">1</text>
                      <text x="136" y="84">0</text>
                      <text x="368" y="84">Acc</text>
                      <text x="580" y="84">Info</text>
                      <text x="584" y="100">Field</text>
                      <text x="264" y="116">Timestamp</text>
                      <text x="72" y="148">0</text>
                      <text x="200" y="148">ExpTime</text>
                      <text x="392" y="148">ConsIngress</text>
                      <text x="576" y="148">Hop</text>
                      <text x="584" y="164">Field</text>
                      <text x="132" y="180">ConsEgress</text>
                      <text x="392" y="180">0</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|               0               |           Acc                 |   | Info
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   | Field
|                           Timestamp                           |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|       0       |    ExpTime    |          ConsIngress          |   | Hop
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   | Field
|          ConsEgress           |               0               |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+

]]></artwork>
              </artset>
            </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>
          <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 'Path and Links' in <xref target="I-D.dekater-scion-controlplane"/>. 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 'Path MTU in <xref target="I-D.dekater-scion-controlplane"/>).</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 'SCMP/Error messages' in <xref target="I-D.dekater-scion-controlplane"/>). 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="3" month="March" year="2025"/>
            <abstract>
              <t>   This document presents the trust concept and design of the SCION
   _Control Plane Public Key Infrastructure (CP-PKI)_. SCION
   (Scalability, Control, and Isolation On Next-generation networks) is
   a path-aware, inter-domain network architecture where the Control
   Plane PKI handles cryptographic material and lays the foundation for
   the authentication procedures in SCION.  It is used by SCION's
   Control Plane to authenticate and verify path information, and
   provisions SCION's trust model based on Isolation Domains.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-pki-09"/>
        </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="7" month="July" year="2025"/>
            <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).  A fundamental characteristic
   of SCION is that it gives path control to SCION-capable endpoints
   that can choose between multiple path options, thereby enabling the
   optimization of network paths.  The Control Plane is responsible for
   discovering these paths and making them available to the endpoints.

   The SCION Control Plane creates and securely disseminates path
   segments between SCION Autonomous Systems (AS) which can then be
   combined into forwarding paths to transmit packets in the data plane.
   This document describes mechanisms of path exploration through
   beaconing and path registration.  In addition, it describes how
   Endpoints construct end-to-end paths from a set of possible path
   segments through a path lookup process.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekater-scion-controlplane-09"/>
        </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 1541?>

<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-06">
        <name>draft-dekater-scion-dataplane-06</name>
        <ul spacing="normal">
          <li>
            <t>Figures: redraw and add aasvg version when possible</t>
          </li>
          <li>
            <t>Clarify 0 as "unspecified" Interface ID</t>
          </li>
          <li>
            <t>Use ASes within the documentation range in examples</t>
          </li>
          <li>
            <t>Remove one-hop path type figure</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="draft-dekater-scion-dataplane-05">
        <name>draft-dekater-scion-dataplane-05</name>
        <ul spacing="normal">
          <li>
            <t>Abstract: mention goal and that document is not an Internet Standard</t>
          </li>
        </ul>
      </section>
      <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:
H4sIAAAAAAAAA+y923Yb2ZUg+M6viKYekqAAiCAppVK2souiJIttpcQRmS57
3LXMABAgwwIiUBEBUrCoWr36uR/moR7nYR5mrXman5j+k/qS2ddz9okIgKQu
rmy7aGcmCUScyz777Pul1+ttVGk1TZ5EmyeHR2/fRM/jKo6Op3GWbG7Ew2GR
XPqvjjc3RnGVnOfF8kmUZpN8o1wMZ2lZpnlWLecJfjhO5gn8K6s2Nsb5KItn
8Om4iCdVb5y8h5eLXjmCx3tjmGeO0/R2Hm3AHHsb96K4SGKY7ejd6ctN+PMq
L96fF/liDp8dx9VFdHAFT0Rvkgq/SbPz6N1vNjfeJ0v4c/wkOspg9Cypes9x
uo3LJFskT2CY6OYx4CFe/+a7pEziYnQR/QZfom9mcTqFb+ZxVpz/Q1pUk35e
nNM3+CB8c1FV8/LJgwdXV1f9NOHvH+BbPXwgvUweXCXDB/T+g80NWE9aXSyG
8CJBIi7LfJTGFfz6QEAz/9NR7zk+OQWAlZWZov5Gn8fqp3nw7oO1EO9fVLPp
5sZGvKgu8uLJRtSLIji58kl02I/GSfRbfAlmhx8+v8O8SLOk9hVs8knEiHHg
F8TfJQyz0Z/GyZ9oCf9wPvvQH11smLne9KN3i7JKz7N8mtrZ3qSjfBo3vrzF
fFk6+gfaK56Aneu/9HFrrxbn06Wd6b8kcdY7vCjSssrnF4l94Baz/Xl00T7b
CUyVVn+xM53Es0UyNR/T+AdZPI+XcXSyLKtkVgajX8Cj/xDzA33A6o2NLC9m
sIpLQOoogkPuh8c7f5+2fzGCy1nkUzp6fOLdy8Pd/Uc77tfv9+XXvcGjx/Lr
/v4Pe/Lrw93H+uzDx+7XR/t738uvj3d34NMNpAcrFkioL6vJL5PiMk2u8JnD
Vz8fnO7uPqGNKxk6hYM4zGfzaVIl0W8WKWBdlfNRbNKDgMfw3O7O7i6/Fxfn
CdwRvSLjPKULONjpD3Z2vn/ww/ePe3u9nb1Bbwe28ri3Q2+VSZEmJa6ZZ4cF
nzx78yQKn/6+t0ffuptCPz35rxz3a0Cui0VcuU/5yF/HiwLIYO07OvcXp6+i
/30BK4Ab0TrkT/3odXKe6VVzY/4UF+8XZf272435vB89i2HHtSGfx5fpuPbN
rQd8FS/Ki6SxTB6z8SUN+7aC07zMMzhaHPt9Ev2cAcoUZVotYX/n42S4gOvU
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
KKZIsaxqy0v14rCGboTPR7aP1tep6LDsf5SEZ4GJs4Mm45IjjDW6Pgwz4lBq
NdsllCImPj1Mi9TsoYOf2QVruIaQH8ZhzHmKZ9I2U0yNQF/aVbPrpq4QU5hu
G62TsR2qiryJj6s16P397/V8+hrrHfYLzLa6CAbpP0GDRlf3MKvyNeYHPxD1
q1aeZNGtXg2q2ix+98Vtss9yCmQbrDA6OGJOhMhTQK7HVTCDLkpaYidmuVUs
AsbW8YVGQ5aSQ1DSqEnDF6+vXh7C01fGDmFjEW6F12ffno1jws0UhIFZ1fJJ
1ZJHcSmllm/TUyxCzS+Mv00cNaFdcnGihH8kcC5y9NL7QZxVOZk0ZCLCr2Sz
xkRxoKVQaavaAzHretEBaA33n5SXYulb6bB99XJydjXJW8b6IwIUai24Yw9g
aD4dCbNas3rhDEcsRGemYkBfvm3rWWnhqTuTyQQODy/t2Yzhl6tiLkGnO/88
lUUo5l/cXdBxL+6S7rxgW5XFMJ2TZc1jX9CxuWbqmC+boiRntf8YMgi+3nL6
5Cj7Km/ol9llk8/r7OD8zavsr1tS2ddSCPWn4h0dm4tiVzHEemQgqEBmJi5u
JPSeuNg/iFuL2ATMxSWLBM4CcYRj3pQ0h8uiIY8uebQ0/ZQt41GX23KODBTA
AuSjwR+UskfgPHO4Wr63ZJeXlfDa3BTWLqSYdkH+6t0mYbmqN5JJK/K1sMzr
FvGzwpwODU5SNsbxQBfNNqdwGAOktL5/vzqzX96QYNdNMSAAiol4ZCGb4E/T
uv7Z4m+Myuy4Qa9qJWC2N9tOg4mtJ8yDV8b9lgdcKG+gUJanMrdv8un4CbO/
CpJnuaqn9PKcD6HDc+0WmJkIKX4GJoG/PX+hZDnK9EvZX+qtlGApqIxBmSS6
d5zJh2KXSAV+ZlxzhA/mx+PdW/V3FaxIn+XHLsW2ylcTmpo0xSaJZv2+pTzZ
orHrvMqXYjH2C30HRYUjtbJYm7Pnf//h/PnV6zfnHz/qJuCtw9/p95t8w/xo
uNiQI4VlKC5NN3yrncDRv6qjrfg4viNS47VBP8j32apszT9Kx3WdY7JTTPOe
sN6/52aGy/k01kAW479rw7PArVEV3eBxkkJLamFIKND/k4iUIic2wtxJB3zB
U/u9wczIQ3c5ezJrJprMkb6uq4rBRND2kDfs5MGD0Fkv/YzTuI1pSvYqJX2o
NA4jtBLi1p65ihhf2Dsf6AbOwDGVZR9IxO7osM2lDcqHcBJu+/fhzodJ+PeH
SfKv9+On/tE42YPJYxu19xDGyNli3zqf7En0xTcvLqWwWH9kXbguWwQrrK7X
Xzaqoedxnk6On/wW8zl+Gn3xZTKft+TpQBaDqWNsIvE4f5wcP3v26+dDh8+/
+Or5q3gceearejOZ7iacBpJIc7tnnGP/4vnJ+XCcc0l60H9uGeck+uLF5WAc
26gLLTUfOZ0yzkP/oheU+48ji7p3fR5NTh6fZL96nR+H+fTHaSUEFwWuHIfY
iTaMx3n0G42z9359b6iC2/59IGlC3k63Kr64++Z2SQ9JQ5JeEk/f1MtxYfRC
Q+3rfC7oTzYTWkZFMiH81TmHN/TW9kr5SiM34aj/OziqQryEwiGzZkkeYshJ
WrPMQTjE4CYPnoxPbEI2HLMTtadcUdvkN5auyvK8fbfMAHIB4R9HxhVAQN96
scrRlPUB64u720pVAnd1j5nu6ZO8g9I9Vcq6hqZbg7UDcj3nCuH2DpMl89s6
s0AgSxAypc9548f73vhsyuW2s+7UgI1kzmtYVWlg1J0yTHEVVO8VmYPzvJl/
zgQejU6AzMwLbCQkQRKd9pMx2V96/jkPfrjPgfmp9qwP2uExLZgFjU+zGfaU
8+u+Ar4wdCLo93JW2OeHG6LCVDR3tL0tO9O80PiSnWQhux289OBznHMcpUPB
REjQ9b+BtB2Yxqoei5If1DLUeSnGmKY62lmZvrKnAPsU1yKapaVckgQwLXNZ
9ZZZZwsSSfu+Hr2wjIE4Jpl1F0HIVwwwCI2yJRZEz7wuN+bY8JRfa1mpdn9Y
aNGrj2qp6sT+0l28Ss6jTfZgOIPDQHkbUiDxdeVIHSe0ZslDDxOoe9Ld856v
lF1L+sTN9U5Sb5l0twS8UO8lw7M5A8/SgsNAHJO+4fYatBZf8v+SK6XNMP1A
T3dZwp0AbpMnjx4+ZSIee37yCXfKAOZlnWMdgZzOoMaxke9+fZS9OMpebRl5
l1st91F017CnaHsKsbcilRHEqa6lA1hADMYsW+Kh0VqWYIEcp7LiWFmgagxR
al4bOl4Htp3HRw+Pju99jiQ5+VxJIi/PFgjHKGJWUvKhKwMxxfLGDldvbbxG
V9qojtTxogyaHN+6QSCK734M+M291kmBjEcDCYMMrbaC/gQpdnZfSVs9tmku
cQCdfnJsTwnr9XkR06VF35R7JHhHYy8cSpHv1QAw2IGfUtztrxQnW8zLTmus
2I1EKq2mQ7Yz/qKCEY1iTGTzbQiL5hJJRmiz/EeByxuWDlDvfFN2+OM8Y9LU
4+NnXonZxY86SiQYX5MYHnN2dUvBUwpDRavfUbqHgZyM4xb0oPP33TcFna//
Aj37ynng9AEA

-->

</rfc>
