<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-05" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-05"/>
    <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="March" day="03"/>
    <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 which the SCION Control Plane relies upon for the authentication of messages that is used for the SCION control plane. See <xref target="I-D.dekater-scion-pki"/></t>
      <t><em>Control Plane</em> - performs inter-domain routing by discovering and securely disseminating path information between ASes. The core ASes use Path-segment Construction Beacons (PCBs) to explore intra-ISD paths, or to explore paths across different ISDs. See <xref target="I-D.dekater-scion-controlplane"/></t>
      <t><em>Data Plane</em> - carries out secure packet forwarding between SCION-enabled ASes over paths selected by endpoints. A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS.</t>
      <t>This document describes the SCION Data Plane component. It should be read in conjunction with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-controlplane"/>.</t>
      <t>The SCION architecture was initially developed outside of the IETF by ETH Zurich with significant contributions from Anapaya Systems. It is deployed in the Swiss finance sector to provide resilient connectivity between financial institutions. The aim of this document is to document the existing protocol specification as deployed, to encourage interoperability among implementations, and to introduce new concepts that can potentially be further improved to address particular problems with the current Internet architecture.</t>
      <t>==Note (to be removed before publication): this document, together with the other components <xref target="I-D.dekater-scion-pki"/> and <xref target="I-D.dekater-scion-controlplane"/>, deprecates <xref target="I-D.dekater-panrg-scion-overview"/>.==</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t><strong>Autonomous System (AS)</strong>: An autonomous system is a network under a common administrative control. For example, the network of an Internet service provider or organization can constitute an AS.</t>
        <t><strong>Core AS</strong>: Each SCION isolation domain (ISD) is administered by a set of distinguished autonomous systems (ASes) called core ASes, which are responsible for initiating the path discovery and path construction process (in SCION called "beaconing").</t>
        <t><strong>Data Plane</strong>: The data plane (sometimes also referred to as the forwarding plane) is responsible for forwarding data packets that endpoints have injected into the network. After routing information has been disseminated by the control plane, packets are forwarded by the data plane in accordance with such information.</t>
        <t><strong>Egress/Ingress</strong>: refers to the direction of travel. In SCION, path construction with beaconing happens in one direction, while actual traffic might follow the opposite direction. This document clarifies on a case-by-case basis whether 'egress' or 'ingress' refers to the direction of travel of the SCION packet or to the direction of beaconing.</t>
        <t><strong>Endpoint</strong>: An endpoint is the start or the end of a SCION path, as defined in <xref target="RFC9473"/>.</t>
        <t><strong>Forwarding Key</strong>: A forwarding key is a symmetric key that is shared between the control service (control plane) and the routers (data plane) of an AS. It is used to authenticate Hop Fields in the end-to-end SCION path. The forwarding key is an AS-local secret and is not shared with other ASes.</t>
        <t><strong>Forwarding Path</strong>: A forwarding path is a complete end-to-end path between two SCION endpoints which is used to transmit packets in the data plane. It can be created with a combination of up to three path segments (an up segment, a core segment, and a down segment).</t>
        <t><strong>Hop Field (HF)</strong>: As they traverse the network, path segment construction beacons (PCBs) accumulate cryptographically protected AS-level path information in the form of Hop Fields. In the data plane, Hop Fields are used for packet forwarding: they contain the incoming and outgoing interface IDs of the ASes on the forwarding path.</t>
        <t><strong>Info Field (INF)</strong>: Each path segment construction beacon (PCB) contains a single Info field, which provides basic information about the PCB. Together with Hop Fields (HFs), these are used to create forwarding paths.</t>
        <t><strong>Interface Identifier (Interface ID)</strong>: A 16-bit identifier that designates a SCION interface at the end of a link connecting two SCION ASes, with each interface belonging to one border router. Hop fields describe the traversal of an AS by a pair of interface IDs called <tt>ConsIngress</tt> and <tt>ConsEgress</tt>, as they refer to the ingress and egress interfaces in the direction of path construction (beaconing). The Interface ID <bcp14>MUST</bcp14> be unique within each AS. Interface ID 0 is not a valid identifier as implementations <bcp14>MAY</bcp14> use it as the "unspecified" value.</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, Autonomous Systems (ASes) are organized into logical groups called Isolation Domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (e.g. a common jurisdiction). A possible model is for ISDs to be formed along national boundaries or federations of nations.</t>
        <t><strong>Leaf AS</strong>: An AS at the "edge" of an ISD, with no other downstream ASes.</t>
        <t><strong>MAC</strong>: Message Authentication Code. In the rest of this document, "MAC" always refers to "Message Authentication Code" and never to "Medium Access Control". When "Medium Access Control address" is implied, the phrase "Link Layer Address" is used.</t>
        <t><strong>Path Authorization</strong>: A requirement for the data plane is that endpoints can only use paths that were constructed and authorized by ASes in the control plane. This property is called path authorization. The goal of path authorization is to prevent endpoints from crafting Hop Fields (HFs) themselves, modifying HFs in authorized path segments, or combining HFs of different path segments.</t>
        <t><strong>Path Control</strong>: Path control is a property of a network architecture that gives endpoints the ability to select how their packets travel through the network. Path control is stronger than path transparency.</t>
        <t><strong>Path Segment</strong>: Path segments are derived from path segment construction beacons (PCBs). A path segment can be (1) an up segment (i.e. a path between a non-core AS and a core AS in the same ISD), (2) a down segment (i.e. the same as an up segment, but in the opposite direction), or (3) a core segment (i.e., a path between core ASes). Up to three path segments can be used to create a forwarding path.</t>
        <t><strong>Path-Segment Construction Beacon (PCB)</strong>: Core AS control planes generate PCBs to explore paths within their isolation domain (ISD) and among different ISDs. ASes further propagate selected PCBs to their neighboring ASes. As a PCB traverses the network, it carries path segments, which can subsequently be used for traffic forwarding.</t>
        <t><strong>Path Transparency</strong>: Path transparency is a property of a network architecture that gives endpoints full visibility over the network paths their packets are taking. Path transparency is weaker than path control.</t>
        <t><strong>Peering Link</strong>: A link between two SCION border routers of different ASes that can be used as a shortcut. Peering link information is added to segment information during the beaconing process and used to shorten paths while assembling them from segments. It is possible to construct a path out of only two partial segments which top-most hops are joined by a peering link. Two peering ASes may be in different ISDs and may exist between any ASes, including core ASes.</t>
        <t><strong>SCMP</strong>: A signaling protocol analogous to the Internet Control Message Protocol (ICMP). This is described in <xref target="I-D.dekater-scion-controlplane"/>.</t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="overview">
        <name>Overview</name>
        <t>The SCION Data Plane forwards inter-domain packets between SCION-enabled ASes. SCION routers are normally deployed at the edge of an AS, and peer with neighbor SCION routers. Inter-domain forwarding is based on end-to-end path information contained in the packet header. This path information consists of a sequence of Hop Fields (HFs). Each Hop Field corresponds to an AS on the path, and it includes an ingress interface ID as well as an egress interface ID, which unequivocally identifies the ingress and egress interfaces within the AS. The information is authenticated with a Message Authentication Code (MAC) to prevent forgery.</t>
        <t>This concept allows SCION routers to forward packets to a neighbor AS without inspecting the destination address and also without consulting an inter-domain forwarding table. Intra-domain forwarding and routing are based on existing mechanisms (e.g. IP). A SCION border router reuses existing intra-domain infrastructure to communicate to other SCION routers or SCION endpoints within its AS. The last SCION router at the destination AS therefore uses the destination address to forward the packet to the appropriate local endpoint.</t>
        <t>This SCION design choice has the following advantages:</t>
        <ul spacing="normal">
          <li>
            <t>It provides control and transparency over forwarding paths to endpoints.</t>
          </li>
          <li>
            <t>It simplifies the packet processing at routers. Instead of having to perform longest prefix matching on IP addresses which requires expensive hardware and substantial amounts of energy, a router can simply access the next hop from the packet header after having verified the authenticity of the Hop Field's MAC.</t>
          </li>
        </ul>
        <section anchor="inter-and-intra-domain-forwarding">
          <name>Inter- and Intra-Domain Forwarding</name>
          <t>As SCION is an inter-domain network architecture, it is not concerned with intra-domain forwarding. This corresponds to the general practice today where BGP and IP are used for inter-domain routing and forwarding, respectively, but ASes use an intra-domain protocol of their choice - for example OSPF or IS-IS for routing and IP, MPLS, and various Layer 2 protocols for forwarding. In fact, even if ASes use IP forwarding internally today, they typically encapsulate the original IP packet they receive at the edge of their network into another IP packet with the destination address set to the egress border router, to avoid full inter-domain forwarding tables at internal routers.</t>
          <t>SCION emphasizes this separation as it is used exclusively for inter-domain forwarding; re-using the intra-domain network fabric to provide connectivity amongst all SCION infrastructure services, border routers, and endpoints. As a consequence, minimal change to the infrastructure is required for ISPs when deploying SCION. In practice, in most existing SCION deployments, SCION routers communicate among themselves and with endpoints by enclosing the SCION header inside an UDP/IPv6 or UDP/IPv4 packet. The choice of using an UDP/IP as an intra-domain protocol between routers was driven by the need to maximize compatibility with existing networks. This does not exclude that a SCION packet may be enclosed directly on top of a L2 protocol, since the choice of intra-domain protocol is AS specific.</t>
          <t><xref target="_figure-30"/> shows the SCION header within the protocol stack, in an AS where the SCION deployment uses UDP/IP as an intra-domain protocol. A similar model may be used for inter-domain links, depending on the individual choice of the two interconnected SCION router operators. A full example of the life of a SCION packet is later presented in <xref target="life-of-a-packet"/>. A list of currently used upper layer protocols on top of SCION is presented in <xref target="protnum"/>.</t>
          <figure anchor="_figure-30">
            <name>The SCION header within the protocol stack in a typical deployment.</name>
            <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |
|                             |
|        Payload (L4)         |
|                             |
|                             |
|                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             |
|            SCION            |
|                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  --------------+
|             UDP             |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  Intra-domain  |
|             IP              |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    protocol    |
|         Link Layer          |                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  --------------+
]]></artwork>
          </figure>
          <t>A complete SCION address is composed of the &lt;ISD, AS, endpoint address&gt; 3-tuple. The ISD-AS part is used for inter-domain routing. The endpoint address part is only used for intra-domain forwarding at the source and destination ASes. This implies that endpoint addresses are only required to be globally unique within each SCION AS. This means, for example, that an endpoint running a SCION stack using a <xref target="RFC1918"/> could directly communicate with another SCION endpoint using a <xref target="RFC1918"/> endpoint address in a different SCION AS.</t>
          <t>The data transmission order for SCION is the same as for IPv6 as defined in Introduction of <xref target="RFC8200"/>.</t>
        </section>
        <section anchor="intra-domain-forwarding-process">
          <name>Intra-Domain Forwarding Process</name>
          <t>When transiting an intermediate SCION AS, a packet gets forwarded by at most two SCION routers. The forwarding process consists of the following steps.</t>
          <ol spacing="normal" type="1"><li>
              <t>The AS's SCION ingress router receives a SCION packet from the neighboring AS.</t>
            </li>
            <li>
              <t>The SCION router parses, validates, and authenticates the SCION header.</t>
            </li>
            <li>
              <t>The SCION router maps the egress interface ID in the current Hop Field of the SCION header to the destination address of the intra-domain protocol (e.g. MPLS or IP) of the egress border router.</t>
            </li>
            <li>
              <t>The packet is forwarded within the AS by SCION-unaware routers and switches based on the header of the intra-domain protocol.</t>
            </li>
            <li>
              <t>Upon receiving the packet, the SCION egress router strips off the header of the intra-domain protocol, again validates and updates the SCION header, and forwards the packet to the neighboring SCION router.</t>
            </li>
            <li>
              <t>The last SCION router on the path forwards the packet to the packet's destination endpoint indicated by the field <tt>DstHostAddr</tt> of <xref target="address-header">the Address Header</xref>.</t>
            </li>
          </ol>
        </section>
        <section anchor="configuration">
          <name>Configuration</name>
          <t>Border routers require mappings from SCION interface IDs to underlay addresses and such information <bcp14>MUST</bcp14> be supplied to each router in an out of band fashion (e.g in a configuration file). For each link to a neighbor, these values <bcp14>MUST</bcp14> be configured. A typical implementation will require:</t>
          <ul spacing="normal">
            <li>
              <t>Interface ID.</t>
            </li>
            <li>
              <t>Link type (core, parent, child, peer). Link type depends on mutual agreements between the organizations operating the ASes at each end of each link.</t>
            </li>
            <li>
              <t>Neighbor ISD-AS number.</t>
            </li>
            <li>
              <t>For the router that manages the interface: the neighbor interface underlay address.</t>
            </li>
            <li>
              <t>For the routers that do not manage the interface:  the address of the intra-domain protocol on the router that does.</t>
            </li>
          </ul>
          <t>In order to forward traffic to a service endpoint address (<tt>DT/DS</tt> == 0b01 in the <xref target="common-header">common header</xref>), a border router translates the service number into a specific destination address. The method used to accomplish the translation is not defined by this document and is only dependent on the implementation and the choices of each AS's administrator. In current practice this is accomplished by way of a configuration file.</t>
          <t><strong>Note:</strong> The current SCION implementation runs over the UDP/IP protocol. However, the use of other lower layers protocols is possible.</t>
        </section>
      </section>
      <section anchor="construction">
        <name>Path Construction (Segment Combinations)</name>
        <t>Paths are discovered by the SCION Control Plane which makes them available to SCION endpoints in the form of path segments. As described in <xref target="I-D.dekater-scion-controlplane"/>, there are three kinds of path segments: up, down, and core. In the data plane, a SCION endpoint creates end-to-end paths from the path segments by combining multiple path segments. Depending on the network topology, a SCION forwarding path can consist of one, two, or three segments. Each path segment contains several Hop Fields representing the ASes on the segment as well as one Info Field with basic information about the segment, such as a timestamp.</t>
        <t>Segments cannot be combined arbitrarily. To construct a valid forwarding path, the source endpoint <bcp14>MUST</bcp14> obey the following rules:</t>
        <ul spacing="normal">
          <li>
            <t>There <bcp14>MUST</bcp14> be at most one of each type of segment (up, core, and down). Allowing multiple up or down segments would decrease efficiency and the ability of ASes to enforce path policies.</t>
          </li>
          <li>
            <t>If an up segment is present, it <bcp14>MUST</bcp14> be the first segment in the path.</t>
          </li>
          <li>
            <t>If a down segment is present, it <bcp14>MUST</bcp14> be the last segment in the path.</t>
          </li>
          <li>
            <t>If there are two path segments (one up and one down segment) that both announce the same peering link, then a shortcut via this peering link is possible.</t>
          </li>
          <li>
            <t>If there are two path segments (one up and one down segment) that share a common ancestor AS (in the direction of beaconing), then a shortcut via this common ancestor AS is possible. The Up-then-Down constraint still applies.</t>
          </li>
          <li>
            <t>Additionally, all segments without any peering possibility <bcp14>MUST</bcp14> consist of at least two Hop Fields.</t>
          </li>
        </ul>
        <t>Note that the type of segment is known to the endpoint but it is not explicitly visible in the path header of data packets. Therefore, a SCION router needs to explicitly verify that these rules were followed correctly by performing checks described in <xref target="process-router-ingress"/>.</t>
        <t>Besides enabling the enforcement of path policies, the above rules also protect the economic interest of ASes as they prevent building "valley paths". A valley path contains ASes that do not profit economically from traffic on this route, with the name coming from the fact that such paths go "down" (following parent-child links) before going "up" (following child-parent links).</t>
        <t><xref target="_figure-1"/> below shows valid segment combinations.</t>
        <t><strong>Note:</strong> It is assumed that the source and destination endpoints are in different ASes (as endpoints from the same AS use an empty forwarding path to communicate with each other).</t>
        <figure anchor="_figure-1">
          <name>Illustration of valid path segment combinations. Each node represents a SCION Autonomous System.</name>
          <artwork><![CDATA[
                                  ------- = end-to-end path
   C = Core AS                    - - - - = unused links
   * = source/destination AS      ------> = direction of beaconing


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



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


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

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

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

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

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

                                                      Processing against
                                                            construction
                                                               direction
]]></artwork>
          </figure>
          <section anchor="process-router-ingress">
            <name>Steps at Ingress Border Router</name>
            <t>A SCION ingress border router <bcp14>MUST</bcp14> perform the following steps when it receives a SCION packet:</t>
            <ol spacing="normal" type="1"><li>
                <t>Check that the interface through which the packet was received is equal to the ingress interface in the current Hop Field. If not, the router <bcp14>MUST</bcp14> drop the packet.</t>
              </li>
              <li>
                <t>If there is a segment switch at the current router, check that the ingress and egress interface links are either:</t>
              </li>
            </ol>
            <ul spacing="normal">
              <li>
                <t>Both core</t>
              </li>
              <li>
                <t>Parent-child or vice-versa</t>
              </li>
              <li>
                <t>Peering-child or vice-versa</t>
              </li>
            </ul>
            <t>Link types above are defined in <xref target="I-D.dekater-scion-controlplane"/> section "Paths and Links". This check prevents valley use of peering links or hair-pin segments.
3. Check if the current Hop Field is expired or originated in the future, i.e. the current Info Field <bcp14>MUST NOT</bcp14> have a timestamp in the future, as defined in <xref target="inffield"/>. If either is true, the router <bcp14>MUST</bcp14> drop the packet.</t>
            <t>The next steps depend on the direction of travel and whether this segment includes a peering Hop Field. Both features are indicated by the settings of the Construction Direction flag <tt>C</tt> and the Peering flag <tt>P</tt> in the current Info Field, so the settings of both flags <bcp14>MUST</bcp14> be checked. The following combinations are possible:</t>
            <ul spacing="normal">
              <li>
                <t>The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1" and <tt>P</tt> = "0" or "1"). In this case, proceed with step 4.</t>
              </li>
              <li>
                <t>The packet traverses the path segment <strong>against construction direction</strong> (<tt>C</tt> = "0"). The following cases are possible:  </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Case 1</strong> <br/> The path segment includes <strong>no peering Hop Field</strong> (<tt>P</tt> = "0"). In this case, the ingress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute the value of the Accumulator Acc as follows:          </t>
                        <t>
Acc = Acc<sub>i+1</sub> XOR MAC<sub>i</sub> <br/>
  where <br/>
  Acc<sub>i+1</sub> = the current value of the field <tt>Acc</tt> in the current Info Field <br/>
  MAC<sub>i</sub> = the value of MAC<sub>i</sub> in the current Hop Field representing AS<sub>i</sub>          </t>
                        <t><strong>Note:</strong> In the case described here, the packet travels against direction of beaconing, i.e. the packet comes from AS<sub>i+1</sub> and will enter AS<sub>i</sub>. This means that the <tt>Acc</tt> field of this incoming packet represents the value of Acc<sub>i+1</sub>, but to compute the MAC<sub>i</sub> for the current AS<sub>i</sub>, we need the value of Acc<sub>i</sub> (see <xref target="def-acc"/>). As the border router knows that the formula for Acc<sub>i+1</sub> = Acc<sub>i</sub> XOR MAC<sub>i</sub> [:2] (see also <xref target="def-acc"/>), and because the values of Acc<sub>i+1</sub> and MAC<sub>i</sub> are known, the router will be able to recover the value Acc<sub>i</sub> based on the aforementioned formula for Acc.</t>
                      </li>
                      <li>
                        <t>Replace the current value of the field <tt>Acc</tt> in the current Info Field with the newly calculated value of Acc.</t>
                      </li>
                      <li>
                        <t>Compute the MAC<sup>Verify</sup><sub>i</sub> over the Hop Field of the current AS<sub>i</sub>. For this, use the formula in <xref target="hf-mac-calc"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of Acc as just set in the <tt>Acc</tt> field in the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the current Hop Field does not match the just calculated MAC<sup>Verify</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>If the current Hop Field is the last Hop Field in the path segment as determined by the value of the current <tt>SegLen</tt> and other metadata in the path meta header, increment both <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 2</strong> <br/> The path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), but the current hop is <strong>not</strong> the peering hop (i.e. the current hop is <strong>neither</strong> the last hop of the first segment <strong>nor</strong> the first hop of the second segment). In this case, the ingress border router needs to perform the steps previously described for the path segment without peering Hop Field, but the border router <bcp14>MUST NOT</bcp14> increment <tt>CurrInf</tt> and <bcp14>MUST NOT</bcp14> increment <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                  </li>
                  <li>
                    <t><strong>Case 3</strong> <br/> The path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), and the current Hop Field <em>is</em> the peering Hop Field (i.e. the current hop is <strong>either</strong> the last hop of the first segment <strong>or</strong> the first hop of the second segment). In this case, the ingress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Peer</sup><sub>i</sub>. For this, use the formula in <xref target="peerlink"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i [:2]</tt> in the formula with the value of Acc as set in the <tt>Acc</tt> field in the current Info Field (this is the value of Acc as it comes with the packet).</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the current Hop Field does not match the just calculated MAC<sup>Peer</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>Increment both <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
            <ol spacing="normal" type="1"><li>
                <t>Forward the packet to the egress border router (based on the egress interface ID in the current Hop Field) or to the destination endpoint, if this is the destination AS.</t>
              </li>
            </ol>
          </section>
          <section anchor="steps-at-egress-border-router">
            <name>Steps at Egress Border Router</name>
            <t>A SCION egress border router <bcp14>MUST</bcp14> perform the following steps when it receives a SCION packet:</t>
            <ol spacing="normal" type="1"><li>
                <t>Check the settings of the Construction Direction flag <tt>C</tt> and the Peering flag <tt>P</tt> in the currently valid Info Field. The following cases are possible:  </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Case 1</strong> <br/> The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1"). The path segment either includes <strong>no peering Hop Field</strong> (<tt>P</tt> = "0") or the path segment does include a <strong>peering Hop Field</strong> (<tt>P</tt> = "1"), but the current hop is not the peering hop (i.e. the current hop is <strong>neither</strong> the last hop of the first segment <strong>nor</strong> the first hop of the second segment). In this case, the egress border router <bcp14>MUST</bcp14> take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Verify</sup><sub>i</sub> over the Hop Field of the current AS<sub>i</sub>. For this, use the formula in <xref target="hf-mac-calc"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of Acc as set in the <tt>Acc</tt> field in the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the just calculated MAC<sup>Verify</sup><sub>i</sub> does not match the MAC<sub>i</sub> in the Hop Field of the current AS<sub>i</sub>, drop the packet.</t>
                      </li>
                      <li>
                        <t>Compute the value of Acc<sub>i+1</sub>. For this, use the formula in <xref target="def-acc"/>. Replace Acc<sub>i</sub> in the formula with the current value of Acc as set in the <tt>Acc</tt> field of the current Info Field.</t>
                      </li>
                      <li>
                        <t>Replace the value of the <tt>Acc</tt> field in the current Info Field with the just calculated value of Acc<sub>i+1</sub>.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 2</strong> <br/> The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1") where the path segment includes a <strong>peering Hop Field</strong> (<tt>P</tt> = "1") and the current Hop Field <em>is</em> the peering Hop Field (i.e. the current hop is <strong>either</strong> the last hop of the first segment <strong>or</strong> the first hop of the second segment). In this case, the egress border router <bcp14>MUST</bcp14> take the following steps:      </t>
                    <ul spacing="normal">
                      <li>
                        <t>Compute MAC<sup>Peer</sup><sub>i</sub>. For this, use the formula in <xref target="peerlink"/>, but replace <tt>SegID XOR MAC_0 [:2] ... XOR MAC_i [:2]</tt> with the value in the <tt>Acc</tt> field of the current Info Field.</t>
                      </li>
                      <li>
                        <t>If the MAC<sub>i</sub> in the Hop Field of the current AS<sub>i</sub> does not match the just calculated MAC<sup>Peer</sup><sub>i</sub>, drop the packet.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Case 3</strong> <br/> The packet traverses the path segment <strong>against construction direction</strong> (<tt>C</tt> = "0" and <tt>P</tt> = "0" or "1"). In this case, proceed with Step 3.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Increment <tt>CurrHF</tt> in the path meta header.</t>
              </li>
              <li>
                <t>Forward the packet to the neighbor AS.</t>
              </li>
            </ol>
          </section>
          <section anchor="effects-of-clock-inaccuracy">
            <name>Effects of Clock Inaccuracy</name>
            <t>A PCB originated by a given control service is used to construct data plane paths. Specifically, the timestamp in the Info Field and the expiry time of Hop Fields are used for Hop Field MAC computation, see <xref target="hf-mac-calc"/>, which is used to validate paths at each on-path SCION router. A segment's originating control service and the routers that the segment refers to all have different clocks. Their differences affect the validation process:</t>
            <ul spacing="normal">
              <li>
                <t>A fast clock at origination or a slow clock at validation will yield a lengthened expiration time for hops, and possibly an origination time in the future.</t>
              </li>
              <li>
                <t>A slow clock at origination or a fast clock at validation will yield a shortened expiration time for hops, and possibly an expiration time in the past.</t>
              </li>
            </ul>
            <t>This bias comes in addition to a structural delay: PCBs are propagated at a configurable interval (typically, one minute). As a result of this and the way they are iteratively constructed, PCBs with N hops may become available for path construction up to N intervals (so typically N minutes) after origination which creates a constraint on the expiration of hops. Hops of the minimal expiration time (337.5 seconds - see <xref target="hopfld"/>) would render useless any path segment longer than 5 hops. For this reason, it is unadvisable to create hops with a short expiration time. The norm is 6 hours.</t>
            <t>In comparison to these time scales, clock offsets in the order of minutes are immaterial.</t>
            <t>Each administrator of SCION control services and routers is responsible for maintaining sufficient clock accuracy. No particular method is assumed for this.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="mtu">
        <name>MTU</name>
        <t>SCION requires its underlay protocol to provide a minimum MTU of 1232 bytes. This number results from 1280, the minimum IPv6 MTU as of <xref target="RFC2460"/>), minus 48, assuming UDP/IPv6 as underlay. Higher layer protocols such as SCMP rely only on such minimum MTU.</t>
        <t>The MTU of a SCION path is defined as the minimum of the MTUs of the links traversed by that path. The control plane disseminates such values and makes them available to endpoints (see: <xref target="I-D.dekater-scion-controlplane"/>, Path MTU).</t>
        <t>The MTU of each link may be discovered or administratively configured (current practice is for it to be configured). It must be less than or equal to the MTU of the link's underlay encapsulation or native link-layer in either direction.</t>
        <t>SCION assumes that the MTUs of a path segment remains correct for the life time of that segment. This is generally a safe assumption because:</t>
        <ul spacing="normal">
          <li>
            <t>Intra-AS network MTUs are a result of the network configuration of each AS and therefore predictable.</t>
          </li>
          <li>
            <t>Inter-AS links MTU are normally under the joint control of the administrators of the two ASes involved and therefore equally predictable.</t>
          </li>
        </ul>
        <t>Should the inter-AS link MTU be unpredictable (e.g. because the inter-AS link is deployed as an overlay), then the link's MTU <bcp14>MUST</bcp14> be configured statically to a conservative value. For a UDP/IP underlay, 1232 is a safe value.</t>
      </section>
      <section anchor="fragmentation">
        <name>Packet Fragmentation</name>
        <t>The SCION network layer does not support packet fragmentation; not even at the source endpoint. Upper layer protocols and applications <bcp14>MUST</bcp14> comply with the MTU of the paths that they use.</t>
        <t>SCION is agnostic to datagram fragmentation by the underlay network layer, (e.g. used for intra-AS communication). Implementations <bcp14>SHOULD</bcp14> allow MTU discovery mechanisms such as <xref target="RFC4821"/> to be enabled in the underlay and avoid fragmentation. For inter-AS links, using a different configuration is the joint decision of the administrators of the two ASes involved. For intra-AS interfaces using a different configuration is the choice of that AS' administrator alone.</t>
      </section>
      <section anchor="sig">
        <name>SCION IP Gateway</name>
        <t>The SCION IP Gateway (SIG) enables IP packets to be tunneled over SCION to support communication between hosts that do not run a SCION implementation. A SIG acts as a router from the perspective of IP, whilst acting as SCION endpoint from the perspective of the SCION network. It is typically deployed inside the same AS-internal network as its non-SCION hosts, or at the edge of an enterprise network. Tunneling IP traffic over SCION requires a pair of SIGs: at the ingress and egress points of the SCION network.</t>
        <t>IP tunneling over SCION is an application from the perspective of the Data Plane and is outwith the scope of this document.</t>
        <t>More information about the reference open source SCION IP Gateway implementation can be found at <xref target="SIG"/>.</t>
      </section>
    </section>
    <section anchor="handling-link-failures">
      <name>Handling Link Failures</name>
      <section anchor="scion-bfd">
        <name>Link Failure Detection - BFD</name>
        <t>To detect link failures quickly and reliably, SCION uses the Bidirectional Forwarding Detection (BFD) protocol (<xref target="RFC5880"/>) on links between SCION routers. If a router does not receive a BFD message from its peer at some regular interval, it considers the link to be down (in both directions) until messages are received again.</t>
        <t>A SCION BFD message consists of a SCION packet with a <tt>NextHdr</tt> value of <tt>203</tt> (<tt>BFD/SCION</tt>) and a path type of either <tt>00</tt> (<tt>Empty</tt> - used on intra-AS links) or <tt>2</tt> (<tt>OneHopPath</tt> - used on inter-AS links). The BFD header itself is a BFD Control Header as described in <xref target="RFC5880"/>. More information on one-hop and empty paths is available in <xref target="onehop"/> and <xref target="empty"/>.</t>
        <t>A SCION router <bcp14>SHOULD</bcp14> accept BFD connections from its peers and <bcp14>SHOULD</bcp14> attempt to establish BFD connections to its peers. While a link is considered to be down, a SCION router should drop packets destined to that link. In that case, it <bcp14>SHOULD</bcp14> send a <xref target="link-down-notification">notification</xref> to the originator.</t>
      </section>
      <section anchor="link-down-notification">
        <name>Link Failure Notification - SCMP</name>
        <t>In SCION, an intermediate router cannot change the path followed by a packet, only the source endpoint can chose a different path. Therefore, to enable fast recovery, a router <bcp14>SHOULD</bcp14> signal forwarding failures to the source, via a SCMP notification (see <xref target="I-D.dekater-scion-controlplane"/> section "SCMP/Error Messages"). This allows the source endpoint to quickly switch to a different path. To that end, the source end-point <bcp14>SHOULD</bcp14> give lower preference to the broken path. Current implementations use a negative cache with entries retained for 10s.</t>
        <t>Sending an SCMP error notification is <bcp14>OPTIONAL</bcp14>. Endpoints should therefore implement additional mechanisms to validate or detect link down signals. To reduce exposure to denial-of-service attacks, SCION routers <bcp14>SHOULD</bcp14> employ rate limiting when sending recommended SCMP notifications (especially identical ones). Rate limit policies are up to each AS' administrator.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section describes the possible security risks and attacks that the SCION Data Plane may be prone to, and how these attacks may be mitigated. It first discusses security risks that pertain to path authorization, followed by a section on other forwarding related security considerations.</t>
      <section anchor="path-authorization-1">
        <name>Path Authorization</name>
        <t>A central property of the SCION path-aware data plane is path authorization. Path authorization guarantees that data packets always traverse the network along path segments authorized in the control plane by all on-path ASes. This section discusses how an adversary may attempt to violate the path authorization property, as well as SCION's prevention mechanisms; either an attacker can attempt to create unauthorized Hop Fields, or they can attempt to create illegitimate paths assembled from authentic individual Hop Fields.</t>
        <t>The main protection mechanism is the Hop Field MAC (see <xref target="auth-chained-macs"/>) that authenticates the Hop Field content comprised of ingress/egress interface identifiers, creation and expiration timestamp and the preceding Hop Field MACs in the path segment. Each Hop Field MAC is computed using the secret forwarding key of the respective AS, which is shared across the SCION routers and control plane services within each AS.</t>
        <section anchor="forwarding-key-compromise">
          <name>Forwarding key compromise</name>
          <t>For the current default MAC algorithm - AES-CMAC truncated to 48 bits - key recovery attacks from (any number of) known plaintext/MAC combinations is computationally infeasible as far as publicly known. In addition, the MAC algorithm can be freely chosen by each AS, enabling algorithmic agility for MAC computations. Should a MAC algorithm be discovered to be weak or insecure, each AS can quickly switch to a secure algorithm without the need for coordination with other ASes.</t>
          <t>A more realistic risk to the secrecy of the forwarding key is exfiltration from a compromised router or control plane service. An AS can optionally rotate its forwarding key at regular intervals to limit the exposure after a temporary device compromise. However, such a key rotation scheme cannot mitigate the impact of an undiscovered compromise of a device.</t>
          <t>When an AS's forwarding key is compromised, an attacker can forge Hop Field MACs and undermine path authorization. As path segments are checked for validity and policy compliance during the path discovery phase and during forwarding, routers only validate the MAC and basic validity of the current the Hop Field. Consequently, creating fraudulent Hop Fields with valid MACs allows an attacker to bypass most path segment validity checks and to create path segments that violate the AS's local policy and/or general path segment validity requirements. In particular, an attacker could create paths that include loops (limited by the maximum number of Hop Fields of a path).</t>
          <t>Unless an attacker has access to the forwarding keys of all ASes on the illegitimate path it wants to fabricate, it will need to splice fragments of two legitimate path segments with an illegitimate Hop Field. For this, it needs to create a Hop Field with a MAC that fits into the MAC chain expected by the second path segment fragment. The only input that the attacker can vary relatively freely is the 8-bit <tt>ExpTime</tt>, but the resulting MAC needs to match a specific 16 bit <tt>Acc</tt> value. While there is a low probability of this working for a specific attempt (1/256), the attack will succeed eventually if the attacker can keep retrying over a longer time period or with many different path segment fragments.</t>
          <t>While a forwarding key compromise and the resulting loss of path authorization is a serious degradation of SCION's routing security properties, this does not affect access control or data security for the hosts in the affected AS. Unauthorized paths are available to the attacker, but the routing of packets from legitimate senders is not affected.</t>
        </section>
        <section anchor="forging-hop-field-mac">
          <name>Forging Hop Field MAC</name>
          <t>Another method to break path authorization is to directly forge a Hop Field in an online attack, using the router as an oracle to determine the validity of the Hop Field MAC. The adversary needs to send one packet per guess for verification and for 6-byte MAC, an adversary would need an expected 2<sup>47</sup> (~140 trillion) tries to successfully forge the MAC of a single Hop Field.</t>
          <t>As the router only checks MACs during the encoded validity period of the Hop Field, which is limited by the packet header format to at most 24 hours, these tries need to occur in a limited time period. This results in a seemingly infeasible number of ~1.6e9 guesses per second.</t>
          <t>In the unlikely case that an online brute-force attack succeeds, the obtained Hop Field can be used until its inevitable expiration after the just mentioned 24 hour limit.</t>
        </section>
        <section anchor="path-splicing">
          <name>Path Splicing</name>
          <t>In a path splicing attack, an adversary source endpoint takes valid Hop Fields of multiple path segments and splices them together to obtain a new unauthorized path.</t>
          <t>Candidate path segments for splicing must have at least one AS interface in common as a connection point, and the same origination timestamp as this is directly protected by the Hop Field MAC. This can occur by chance or if the two candidate path segments were originated as the same segment that diverged and converged back.</t>
          <t>The Hop Field MAC protects the 16-bit aggregation of path segment identifier and preceding MACs, see <xref target="auth-chained-macs"/>. This MAC chaining prevents splicing even in the case that the AS interface and segment timestamp match.</t>
          <t>As the segment identifier and aggregation of preceding MACs is only 16-bits wide, a chance collision among compatible path segments can occur rarely. Successful path splicing would allow an attacker to briefly use a path that violates an ASes path policy, e.g. making a special transit link available to a customer AS that is not billed accordingly, or violate general path segment validity requirements. In particular, a spliced path segment could traverse one or multiple links twice. However, creating a loop traversing a link an arbitrary number of times would involve multiple path splices and therefore multiple random collisions happening simultaneously, which is exceedingly unlikely. A wider security margin against path splicing could be obtained by increasing the width of the segment identifier / <tt>Acc</tt> field, e.g. by extending it into the 8-bit reserved field next to it in the Info Field.</t>
        </section>
      </section>
      <section anchor="on-path-attacks">
        <name>On-Path Attacks</name>
        <t>When an adversary sits on the path between the source and destination endpoint, it is able to intercept the data packets that are being forwarded and would allow the adversary to hijack traffic onto a path that is different from the intended one selected by the source endpoint. Possible on-path attacks in the data plane are modifications of the SCION path header and SCION address header, or by simply dropping packets. This kind of attack generally cannot be prevented, although anendpoint can use SCION's path awareness to immediately select an alternate path if available.</t>
        <section anchor="modification-of-the-path-header">
          <name>Modification of the Path Header</name>
          <t>An on-path adversary could modify the SCION path header and replace the remaining part of path segments to the destination with different segments. Such replaced segments must include authorized segments as otherwise the packet would be simply dropped on its way to the destination.</t>
          <t>The already traversed portion of the current segment and past segments can also be modified by the adversary (e.g. by deleting and adding valid and invalid Hop Fields). On reply packets from the destination, the adversary can transparently revert the changes to the path header again. For instance, if an adversary M is an intermediate AS on the path of a packet from A to B, then M can replace the packet’s past path (leading up to, but not including M) where the new path may not be a valid end-to-end path. However, when B reverses the path and sends a reply packet, that packet would go via M which can then transparently change the invalid path back to the valid path to A. In addition, the endpoint address header can also be modified.</t>
          <t>Modifications of the SCION path and address header can be discovered by the destination endpoint by a data integrity protection system. Such a data integrity protection system, loosely analogous to the IPSec Authentication Header, exists for SCION but is out of scope for this document. This is described as the SCION Packet Authentication Option (SPAO) in <xref target="CHUAT22"/>.</t>
          <t>Moreover, packet integrity protection is not enough if there are two colluding adversaries on the path. These colluding adversaries can forward the packet between them using a different path than selected by the source endpoint: The first on-path attacker remodels the packet header arbitrarily, and the second on-path attacker changes the path back to the original source-selected path, such that the integrity check by the destination endpoint succeeds. However, such an attack is of little value. An on-path adversary may inspect/copy/disrupt its traffic without diverting it away from the sender-chosen path. For this reason proof-of-transit, which would be required to detect such an attack, has marginal benefit in the context of SCION and it is not in scope for this document.</t>
        </section>
        <section anchor="payload-integrity">
          <name>Payload Integrity</name>
          <t>An on-path attacker can modify the payload of a SCION packet. Existing higher layer protocols can easily defend against such an attack without any cooperation by the SCION network. For that reason, payload integrity is not in scope for this specification. However, there exists a proposal for an experimental extension to authenticate addresses, provide integrity protection for payloads, and replay protection: SPAO . This is still very experimental and it not used in the production network.</t>
        </section>
      </section>
      <section anchor="off-path-attacks">
        <name>Off-Path Attacks</name>
        <t>SCION's path awareness limits the abilities of an off-path adversary to influence forwarding in the data plane. Once a packet is en-route it will follow its determined path regardless of the actions of the adversary. An adversary can attempt to disrupt the connectivity of the path by flooding a link with excessive traffic (see <xref target="dos"/> below), but after detecting congestion, the endpoint can switch to another non-congested path for subsequent packets.</t>
      </section>
      <section anchor="dos">
        <name>Volumetric Denial of Service Attacks</name>
        <t>An adversary can attempt to disrupt the connectivity of a network path by flooding a link with excessive traffic. In this case, the endpoint can switch to another non-congested path for subsequent packets.</t>
        <t>SCION provides protection against certain reflection-based DoS attacks. Here, the adversary sends requests to a server with the source address set to the address of the victim, and the server will send a reply that is typically larger than the request to the victim. This can be prevented in SCION as long as the attacker and the victim are located in different ASes as the reply packets are simply returned along reversed path to the actual sender regardless of the source address information. Thus, the reply packets will be forwarded to the attacker's AS where they will be discarded because the destination AS does not match.</t>
        <t>However, the path choice of the endpoint may possibly be exploited by an attacker to create intermittent congestion with a relatively low send rate. The attacker can exploit the latency differences of the available paths, sending at precisely timed intervals to cause short, synchronized bursts of packets near the victim.</t>
        <t><strong>Note</strong> SCION does not protect against two other types of DoS attacks, namely transport protocol attacks and application layer attacks. Such attacks are out of SCION's scope although additional information contained in the SCION header enables more targeted filtering, e.g. by ISD, AS or path length.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>The SCION AS and ISD number are SCION-specific numbers. They are currently allocated by Anapaya Systems, a provider of SCION-based networking software and solutions (see <xref target="ISD-AS-assignments"/>). This task is currently being transitioned from Anapaya to the SCION Association.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.dekater-scion-pki">
          <front>
            <title>SCION Control Plane PKI</title>
            <author fullname="Corine de Kater" initials="C." surname="de Kater">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Nicola Rustignoli" initials="N." surname="Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author fullname="Samuel Hitz" initials="S." surname="Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date day="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="3" month="March" 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-08"/>
        </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 1554?>

<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-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:
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
9ySyryUb6uviDZHNZXGoGWI9MRBEIBcnLm7E9Z6Y2D+KWQvfBNTFDbMEjgKx
hyNvS5rDy6Iliy75tDSeliPjUTf7MkcECmABstFgD0ruI3CeGUwtP1vSy8ta
StvcFNYxpFj2gf/q3SZmWTU7iaQV2VYKzesR8bfCnOYGJylbK/RAF80Op3AY
A7i0rn+YojlMb0iw6yYY4ADFRNyzMFvgT8umeW3+N0Zl9twkXqUSMNu7fa/O
xM4D5sEqI72nH5VDeQWBsnkkc/smW05TmP1VkDybqlnS4jkeQsRz7RqYqQgp
fgYqga+eXyiZj3IFptlfmr3kYSmojEGZxLoPHMmHYBdPBX5mXHOED+bPY+2d
2rsKVqRn+bMb0a2yakFTq3K1UyQ/dq05yuaN3WZ1thGNcZjtO8osnEiYxd5c
PP77j88eX7149ez9ez0ErDr8nX6/y3ZcIg0XG3yksAjFS5MN3wqPk0ZWPR3F
++kTkRyvHXoSv51VZWf2UTquyxzjnaKaD5j18TM3NVzo0woHMhv/pAvfQoGN
uuhHn5MQWpILQ0yB/p9YpCQ5sRLmRjrgCx7aHwxmSh46nNqXWTLRZE51uS4q
RhNB610+sPO7d0N31/QZr+Q2JSnZqpTwodZymKgtIWbthYuI6Y299Y5u4Apl
prhZ3dfFgYgtl04o7wIlfOzfu1vv4g58aWO8wY8f+sfdBO8u7tuog48wRs42
+6PzmT2IXnz15KVkF+uPLAu3ZQdnhSX3+mKjRHoe5/PF2YPfYz5nn0cvPk3m
8wNZOuDFKNcxNZF4nD8uzh4+/O3zIeLzF58/fh6PI9983uwWy8OCw0Diae6O
jHPmLz47fzYe55kEPeg/HxnnPHrx8uVoHDsoTS+dok4Z5zN/0bPK/ceJTT26
P/cW5/fPZ795n++H+QzH6cQFFzmuHIfYizSMx7n3O41z9H59b6iCj/17x10W
tbXiq49zenAa4vQSePqm2Uwzoyfqat9muaA/WU3oGBXJNeGvnrF7Q2/tIJWv
tAon7PV/A0NVqi8hcci0WeKHGHKRZjSzEw4+uMXd+9MTW8wulpx8uuofGcyP
lFt1MmplFDUuDGFbB0F0RcpRTvbzr5nAvckJkNJ1iWXhXiS+Wt+nxfE07V/z
4c+OqfM/Nx4DQX84rpRlLtRHs1WVtRJt9h3wjSEjkH7/hbRlJgsYSrmyFpFj
msMGKcumJW80XrJzleqvo0WPnuMI3GSFEEyErv3wDQSxUHyrHhQWoief+KIs
yV8QtzTVyV739MqRdORHvAnxLC0AkYRDaZvLerDNOltUVbT3lfTCNoZaKsms
+whQXXG4XdoCanUT+eZ1uTM1n6f8QpMstR3CWlNAfVQL3CbaiJ7iVUKPNtmT
8QzmoQZsCAhYbQz1qyC8s0o+Ok+A30m7y9u+U3Yt6Ymb64MEombS7hFgO72X
DFbmeDTXGmenCHtob7jfBO3FF/y/ZFhod0gn6OVhllQSQLmPB/c++5xr09j3
kyfcRAG0lTmwtcjx5P4GZCPvfnU6e3I6e75nHFpmmc2n0V3DmaIPKBhoRQzU
TuZge+lwDtTK4sJTYq/QXpYoizhd3Yk9R6F2YfDZ8t4QeZ3YcZ6dfnZ6dvvX
cJLzX8tJZPEsj9lij8t0kkVZG6Qn5jdGXIO98YxV6Ss6kdWKpGAyA5sWbhm+
+zH8NfPMH4X1nY44DOKVEpv/UJXo2R2tYuqePjMQAwTzg2N7gFSvz5O4glj0
ptwjQf9ZQb8xF/lexaEF4Z1Kcbe/VNRokZe9ZhyxUYXAUkNEdrCSPgXj+0S0
zvJ9cBJm4leFo6/8R4HLG7YOwOdsV/b4Yz7jKqJnZw89L7GPP3WacDD0ao7A
IhdXH0n/SUGZ6H07WfxgxCdjK54+9Oxt/03BusJ/AUCmVdda+gEA

-->

</rfc>
