<?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.7 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-01"/>
    <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="S." surname="Hitz" fullname="Samuel Hitz">
      <organization>Anapaya Systems</organization>
      <address>
        <email>hitz@anapaya.net</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 153?>

<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 responsibility of the <strong>SCION data plane</strong> 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 first provides a detailed specification of the SCION data packet format as well as the structure of the SCION header. SCION also supports extension headers - these are described, too. The document then shows the life cycle of a SCION packet while traversing the SCION Internet. This is followed by a specification of the SCION path authorization mechanisms and the packet processing at routers. SCION also includes its own protocol to communicate failures to endpoints, the SCION Control Message Protocol (SCMP). This protocol will be described in a separate document, which will follow later.</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 160?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SCION leverages source-based path selection, where path information is embedded in the packet header - this is called packet-carried forwarding state (PCFS). This section explains how data packets are forwarded through the network, how the SCION inter-domain routing differs from intra-domain routing, and how endpoints can construct end-to-end paths from path segments. It also briefly touches the concept of path authorization, which ensures that data packets always traverse the network along authorized paths.</t>
      <t><strong>Note:</strong> This is the very first version of the SCION Data Plane document. We are aware that the draft is far from perfect, and hope to improve the content in later versions of the document. To reach this goal, any feedback is welcome and much appreciated. Thanks!</t>
      <t><strong>Note:</strong> It is assumed that readers of this draft are familiar with the basic concepts of the SCION next-generation inter-domain network architecture. If not, please find more detailed information in the IETF Internet Drafts <xref target="I-D.scion-overview"/>, <xref target="I-D.scion-components"/>, <xref target="I-D.scion-cppki"/>, and <xref target="I-D.scion-cp"/>, as well as in <xref target="CHUAT22"/>, especially Chapter 2. A short description of the SCION basic terms and elements can be found in <xref target="terms"/> below.</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t><strong>Autonomous System (AS)</strong>: An autonomous system is a network under a common administrative control. For example, the network of an Internet service provider, company, or university can constitute an AS.</t>
        <t><strong>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 -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 according to such information by the data plane.</t>
        <t><strong>Endpoint</strong>: An endpoint is the start- or the endpoint of a SCION path. For example, an endpoint can be a host as defined in <xref target="RFC1122"/>, or a gateway bridging a SCION and an IP domain. This definition is based on the definition in <xref target="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 hosts, which is used to transmit packets in the data plane and can be created with a combination of up to three path segments (an up-segment, a core-segment, and a down-segment).</t>
        <t><strong>Hop Field (HF)</strong>: As they traverse the network, path-segment construction beacons (PCBs) accumulate cryptographically protected AS-level path information in the form of hop fields. In the data plane, hop fields are used for packet forwarding: they contain the incoming and outgoing interface IDs of the ASes on the forwarding path.</t>
        <t><strong>Info Field (INF)</strong>: Each path-segment construction beacon (PCB) contains a single info field, which provides basic information about the PCB. Together with hop fields (HFs), info fields are used to create forwarding paths.</t>
        <t><strong>Isolation Domain (ISD)</strong>: In SCION, autonomous systems (ASes) are organized into logical groups called isolation domains or ISDs. Each ISD consists of ASes that span an area with a uniform trust environment (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>Packet-Carried Forwarding State (PCFS)</strong>: Rather than relying on inter-domain forwarding tables, SCION data packets contain all the necessary, cryptographically-protected path information. This property is referred to as packet-carried forwarding state.</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 ASes generate PCBs to explore paths within their isolation domain (ISD) and among different ISDs. ASes further propagate selected PCBs to their neighboring ASes. As a PCB traverses the network, it carries path segments, which can subsequently be used for traffic forwarding.</t>
        <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>SCMP</strong>: SCION Control Message Protocol. SCMP is used for signaling connectivity problems, analogous to the Internet Control Message Protocol (ICMP). SCMP provides network diagnostic and error messages.</t>
        <t><strong>Valley Route</strong>: A valley route contains ASes that do not profit economically from traffic on this route. The name comes from the fact that such routes go "down" (following parent-child links) before going "up" (following child-parent links).</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 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- as well as an egress interface ID, which univocally identify 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 SCION is used exclusively for inter-domain forwarding, and re-uses the intra-domain network fabric to provide connectivity among all SCION infrastructure services, border routers, and endpoints. As a consequence, minimal change to the infrastructure is required for ISPs when deploying SCION.</t>
          <t>Although a complete SCION address is composed of the &lt;ISD, AS, endpoint address&gt; 3-tuple, the endpoint address is not used for inter-domain routing or forwarding. This implies that the endpoint addresses are not required to be globally unique or globally routable, they can be selected independently by the corresponding ASes. This means, for example, that an endpoint identified by a link-local IPv6 address in the source AS can directly communicate with an endpoint identified by a globally routable IPv4 address via SCION. Alternatively, it is possible for two SCION hosts with the same IPv4 address 10.0.0.42 but located in different ASes to communicate with each other via SCION (<xref target="RFC1918"/>).</t>
        </section>
        <section anchor="intra-domain-forwarding-process">
          <name> Intra-Domain Forwarding Process</name>
          <t>The full forwarding process for a packet transiting an intermediate AS consists of the following steps.</t>
          <t><strong>Note:</strong> In this context, a border router is called <strong>ingress</strong> border router when it refers to an entrance border router to an AS, as seen from the direction of travel of the SCION packet. A border router is called <strong>egress</strong> border router when it refers to an exit border router of an AS, as seen from the direction of travel of the SCION packet.</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 "intra-protocol" address of the egress border router (where "intra-protocol" is the intra-domain forwarding protocol, e.g., MPLS or IP).</t>
            </li>
            <li>
              <t>The packet is forwarded within the AS by routers and switches based on the "intra-protocol" header.</t>
            </li>
            <li>
              <t>Upon receiving the packet, the SCION egress router strips off the "intra-protocol" header, again validates and updates the SCION header, and forwards the packet to the neighboring SCION router.</t>
            </li>
          </ol>
          <t><strong>Note:</strong> The current SCION implementation uses the UDP/IP protocol as underlay. However, the use of other underlay protocols is possible and allowed.</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.scion-cp"/>, 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 can be at most one of each type of segment (up-, core-, and down-segment). 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.</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><strong>Note:</strong> The type of segment is known to the endpoint but is not visible in the path header of data packets. Therefore, a SCION router needs to explicitly verify that these rules were followed correctly.</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. The name comes 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 the different allowed 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 possible 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>The following path-segment combinations are allowed:</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 required to connect the source's up- 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-segment(s) are required to connect the respective AS(es) 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. The 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 and can even be in different ISDs (if the AS at the intersection is part of multiple ISDs).</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. 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>This section provides a detailed specification of the SCION packet header. SCION also supports extension headers - these are described, too.</t>
      <section anchor="format">
        <name>SCION Packet Header Format</name>
        <t>The SCION packet header 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 like a version number and 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>Finally, the optional <em>extension</em> header contains a variable number of hop-by-hop and end-to-end options, similar to the extensions in the IPv6 header <xref target="RFC8200"/>. For more details, see <xref target="ext-header"/>.</t>
        <section anchor="header-alignment">
          <name> Header Alignment</name>
          <t>The SCION header is aligned to 4 bytes.</t>
        </section>
      </section>
      <section anchor="scion-header-structure">
        <name> SCION Header Structure</name>
        <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      |                FlowID                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    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 or fragment 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>FlowID</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.</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. All SCION header fields are 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. It is possible to specify up to 256 different types. 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.</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 some address has a length different from the supported values, the next larger size can 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 in combination with address length 16, it stands for IPv6. Per address length, several sub-types are possible. <xref target="_table-3"/> shows the currently valid allocations of type values to length values.</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"> Type/Length (binary)</th>
                <th align="left">Interpretation</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">0b1100</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>
          <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><strong>Note:</strong> For more information on addressing in SCION, see the introduction of the SCION Control Plane Specification (<xref target="I-D.scion-cp"/>).</t>
        </section>
        <section anchor="path-header">
          <name> Path Header</name>
          <t>The path header of a SCION packet differs for each SCION path type.</t>
          <t><strong>Note:</strong> The path type is set in the <tt>PathType</tt> field of the SCION common header.</t>
          <t>Currently, SCION supports three path types:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>Empty</tt> path type (<tt>PathType=0</tt>). For more information, see <xref target="empty"/>.</t>
            </li>
            <li>
              <t>The <tt>SCION</tt> path type (<tt>PathType=1</tt>). This is the standard path type in SCION. For a detailed description, see <xref target="scion-path-type"/>.</t>
            </li>
            <li>
              <t>The <tt>OneHopPath</tt> path type (<tt>PathType=2</tt>). For more information, see <xref target="onehop"/>.</t>
            </li>
          </ul>
          <section anchor="empty">
            <name> Empty Path Type</name>
            <t>The <tt>Empty</tt> path type 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 link-failure detection. To this end, SCION uses the Bidirectional Forwarding Detection (BFD) protocol (<xref target="RFC5880"/> and <xref target="RFC5881"/>). BFD is a protocol intended to detect faults in the bidirectional path between two forwarding engines, with typically very low latency. It operates independently of media, data protocols, and routing protocols. SCION uses the <tt>Empty</tt> path type, together with <tt>OneHopPath</tt> path type, to bootstrap BFD within SCION. (For more information on the <tt>OneHopPath</tt> path type, see <xref target="onehop"/>.)</t>
          </section>
          <section anchor="scion-path-type">
            <name> SCION Path Type</name>
            <t>This section specifies the standard <tt>SCION</tt> 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>The path meta header (<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>The number of info fields (<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>Each hop field (<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 joints of multiple segments are represented by two hop fields. Be aware that these hop fields are not equal! 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|r r r r r r P C|      RSV      |             Acc               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
              </figure>
              <ul spacing="normal">
                <li>
                  <t><tt>r</tt>: The <tt>r</tt> bits are 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>RSV</tt>: Unused and reserved for future use.</t>
                </li>
                <li>
                  <t><tt>Acc</tt>: This updatable field/counter is required for calculating the MAC in the data plane. <tt>Acc</tt> stands for "Accumulator". 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.</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|r r r r r r I E|    ExpTime    |           ConsIngress         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        ConsEgress             |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                              MAC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
              </figure>
              <ul spacing="normal">
                <li>
                  <t><tt>r</tt>: The <tt>r</tt> bits are unused and reserved for future use.</t>
                </li>
                <li>
                  <t><tt>I</tt>: The ConsIngress Router Alert flag. If the ConsIngress Router Alert flag has value "1", the ingress router (in construction direction) will process the L4 payload in the packet. The construction direction is the direction of beaconing.</t>
                </li>
                <li>
                  <t><tt>E</tt>: The ConsEgress Router Alert flag. If the ConsEgress Router Alert flag has value "1", the egress router (in construction direction) will process the L4 payload in the packet.</t>
                </li>
              </ul>
              <t><strong>Note:</strong> A sender cannot rely on multiple routers retrieving and processing the payload even if it sets multiple router alert flags. This is use-case dependent: In the case of Traceroute informational messages, for example, the router for which the traceroute request is intended will process the request (if the corresponding Router Alert flag is set to "1") and reply to it without further forwarding the request along the path. Use cases that require multiple routers/hops on the path to process a packet have to instead rely on a hop-by-hop extension (see <xref target="ext-header"/>). For general information on router alerts, see <xref target="RFC2711"/>.</t>
              <ul spacing="normal">
                <li>
                  <t><tt>ExpTime</tt>: Expiry time of a hop field. The field is 1-byte long, thus there are 256 different values available to express an expiration time. The expiration time specified in this field is relative. An absolute expiration time in seconds is computed in combination with the <tt>Timestamp</tt> field (from the corresponding info field), as follows:  </t>
                  <ul spacing="normal">
                    <li>
                      <t><tt>Timestamp</tt> + (1 + <tt>ExpTime</tt>) * (24 hours/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-calc"/>.</t>
                </li>
              </ul>
            </section>
          </section>
          <section anchor="onehop">
            <name>One-Hop Path Type</name>
            <t>The one-hop path type <tt>OneHopPath</tt> is currently used to bootstrap beaconing between neighboring ASes. This is necessary, as neighbor ASes do not have a forwarding path yet 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 "0", indicating that 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 can use the path information in the SCION header for sending the reply packets. For this, 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>
                <t>
<strong>Note:</strong> For more information on the <tt>PathMetaHdr</tt> field, see <xref target="PathMetaHdr"/>.</t>
              </li>
            </ol>
            <t>A similar mechanism is possible for on-path routers, for example to send SCION Control Message Protocol (SCMP) messages to the sender of the original packet.</t>
          </section>
        </section>
      </section>
      <section anchor="ext-header">
        <name>Extension Headers</name>
        <t>This section specifies the SCION extension headers. SCION currently provides two types of extension headers: the Hop-by-Hop (HBH) Options header and the End-to-End (E2E) Options header.</t>
        <ul spacing="normal">
          <li>
            <t>The Hop-by-Hop Options header is used to carry optional information that may 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 optional information that may be examined and processed by the sender and/or the receiver 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 HBH Options header <bcp14>MUST</bcp14> come before the E2E 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>
        <section anchor="oh-format">
          <name> Format of the SCION Options Headers</name>
          <t>The SCION Hop-by-Hop Options and End-to-End Options headers 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>: Unsigned 8-bit integer. The value of this field is computed as the length of the complete Hop-by-Hop/End-to-End Options header in multiples of 4-bytes minus 1.</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. The <tt>Options</tt> field contains one or more Type-Length-Value (TLV) encoded options. For details, see <xref target="optfld"/>.</t>
            </li>
          </ul>
          <t>The Hop-by-Hop/End-to-End Options header is aligned to 4 bytes.</t>
          <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-4">
              <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>SHOULD</bcp14> be used, rather than multiple Pad1 options. See the next section for more information on the PadN option.</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>
      <section anchor="upper-layer-protocol-issues">
        <name>Upper-Layer Protocol Issues</name>
        <section anchor="pseudo">
          <name> Pseudo Header for Upper-Layer Checksum</name>
          <t>Any transport or other upper-layer protocol that includes addresses from the SCION header in the checksum computation <bcp14>MUST</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 (e.g., the SCION Control Message Protocol SCMP), 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>
        </section>
      </section>
    </section>
    <section anchor="life-of-a-scion-data-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 crafted at its source endpoint, passes through a number of 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>To keep it brief, the example illustrates an intra-ISD case, i.e., all communication happens 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, too. But this makes no difference for the forwarding process, which works the same in an intra- and inter-ISD context. We therefore abstain from describing the inter-ISD forwarding.</t>
      <section anchor="description">
        <name> Description</name>
        <figure anchor="_figure-16">
          <name>Sample topology to illustrate the life cycle of a SCION packet. AS 1 is the core AS of ISD 1, and AS 2 and AS 3 are non-core ASes of ISD 1.</name>
          <artwork><![CDATA[
                    +--------------------+
                    |                    |
                    |        AS 1        |
                    |                    |
                    |                    |
                    |     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               |         |          |
|         |          |                |         |    AS 3  |
|         |    AS 2  |                |         |          |
|         |          |                |       +---+        |
|       +---+        |                |       | 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 source endpoint A to destination endpoint B, and how it will be processed by each router on the path. This is done by means of simplified snapshots of the packet header after each such 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, source endpoint A in AS 2 wants to send a data packet to destination endpoint B in AS 3. Both AS 2 and AS 3 are part of ISD 1. To create an end-to-end SCION forwarding path, source endpoint A first requests its own AS-2 control service for up-segments to the core AS in its ISD. The AS-2 control service will return up-segments from AS 2 to the ISD core. Endpoint A will also query its AS-2 control service for a down-segment from its ISD core AS to AS 3, in which destination endpoint B is located. The AS-2 control service (possibly after connecting to the core control service) will return down-segments from the ISD core down to AS 3.</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.scion-cp"/>).</t>
        <t>Based on its own selection criteria, source endpoint A selects the up-segment (0,i2a)(i1a,0) and the down-segment (0,i1b)(i3a,0) from the path segments returned by its own AS-2 control service. The path segments consist of hop fields that carry the ingress and egress interfaces of each AS (e.g., i2a, i1a, ...), as described in detail in <xref target="format"/> - (x,y) represents one hop field.</t>
        <t>To obtain an end-to-end forwarding path from the source AS to the destination AS, source 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>Source endpoint A now adds this end-to-end forwarding path to the header of the packet that A wants to send to destination endpoint B, and starts transferring the packet. The following section describes what happens with the SCION packet header on the packet's way from A to B.</t>
      </section>
      <section anchor="step-by-step-explanation">
        <name> Step-by-Step Explanation</name>
        <t>This section explains the packet header modifications at each router, based on the network topology in <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 SRC and DST 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 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.</t>
        <t><strong>Note:</strong> In this context, a border router is called <strong>ingress</strong> border router when it refers to an entrance border router to an AS, as seen from the direction of travel of the SCION packet. So in the context here, the ingress border router is the <em>(packet) incoming</em> border router. A border router is called <strong>egress</strong> border router when it refers to an exit border router of an AS, as seen from the direction of travel of the SCION packet. So in this context, the egress border router is the <em>(packet) leaving</em> border router.</t>
        <ul spacing="normal">
          <li>
            <t><em>Step 1</em> <br/> <strong>A-&gt;R1</strong>: The SCION-enabled source endpoint A in AS 2 creates a new SCION packet destined for destination endpoint B in AS 3, with payload P. Endpoint A sends the packet (for the chosen forwarding path) to the next SCION router as provided by its control service, which is in this case R1. A encapsulates the SCION packet into an underlay UDP/IPv4 header for the local delivery to R1, utilizing AS 2's internal routing protocol. The current info field is <em>IF1</em>. Upon receiving the packet, R1 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 R1) <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 R1 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 R1 to forward the packet on its interface i2a. After reading the current hop field, R1 moves the pointer forward by one position to the second hop field (i1a,0). Note that, at this point, no underlay IP header is necessary, since the routers R1 and R2 are directly connected over layer 2.  </t>
            <t><strong>Note:</strong> Although technically there is no need for a UDP/IP underlay if two routers are directly connected, the SCION implementation always uses a UDP/IP underlay in practice. This is to enable a common interface for all routers.</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 R2 of core AS 1 checks whether the packet has been received through the ingress interface i1a as specified by the current hop field. Otherwise, the packet is dropped by router R2. 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. R2 maps the i1b interface ID to egress router R3, it therefore encapsulates the SCION packet inside an intra-AS underlay IP packet with the address of R3 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 R2) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 198.51.100.4 (router R3) <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 R3 inspects the current hop field in the SCION header, uses interface i1b to forward the packet to its neighbor SCION router R4 of AS 3, and moves the current hop-field pointer forward. It adds an IP header to reach R4.</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 R3) <br/></td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">DST = 1-3,198.51.100.18 (router R4) <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 router R4 first checks whether the packet has been received through the ingress interface i3a as specified by the current hop field. R4 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 or hop field, router R4 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 destination 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 R4) <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 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 chapter 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-calc">
          <name> Hop Field MAC Computation</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 illegally adding, removing, or reordering hops within a path segment created during beaconing in the control plane.</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 the above 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 <strong>control plane</strong>, 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 hop 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 <strong>data plane</strong>, 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 up to three) path segments in a path, as a separate, updatable accumulator field <tt>Acc</tt>. The routers update the accumulator field <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>In the following, the computation of the hop field MAC as well as the accumulator field <tt>Acc</tt> is explained.</t>
          <t><strong>Note:</strong> The algorithm used by SCION to compute the hop field MAC is based on the AES-CMAC algorithm, truncated to 48-bits - see also <xref target="RFC4493"/>. In principle, the computation of the MAC is an AS-specific choice; only the control service and routers of the AS need to agree on keys, algorithm, and input for the MAC. However, note that we do not provide nor specify any mechanism to coordinate AS-specific choices between the routers and the control services of the AS.</t>
          <section anchor="def-mac">
            <name> MAC - Definition</name>
            <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>The MAC<sub>i</sub> of the hop field of AS<sub>i</sub> is now calculated based on the following definition:</t>
            <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> (...) = 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>The above definition implies that 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.</t>
          </section>
          <section anchor="layout-of-the-input-data-for-the-mac-calculation">
            <name> Layout of the Input Data for the MAC Calculation</name>
            <t><xref target="_figure-17"/> below shows the layout of the input data to calculate the hop field MAC in the data plane. The input layout represents the 8 bytes of the info field and the first 8 bytes of the hop field, with some fields zeroed out.</t>
            <t>Note that the MAC field itself is only 6 bytes long - see also <xref target="hopfld"/>.</t>
            <figure anchor="_figure-17">
              <name>Input data to calculate the hop field MAC</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                 |   Hop|
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Field|
|                           Timestamp                           |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| -----+
|       0       |    ExpTime    |          ConsIngress          |  Info|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Field|
|          ConsEgress           |               0               |      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
]]></artwork>
            </figure>
          </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 reduce 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>
            <figure anchor="_figure-18">
              <name>The Info Field of a specific path segment in the packet header, with the updatable accumulator field `Acc`.</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|r r r r r r P C|      RSV      |             Acc               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure>
            <t>This is how it works:</t>
            <t><xref target="def-mac"/> defines MAC<sub>i</sub> as follows:</t>
            <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>In the data plane, 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> used in the data plane:</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 in the data plane, each AS<sub>i</sub> updates the <tt>Acc</tt> field in the packet header, such, that it contains the correct input value of the Accumulator 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 the accumulator 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>
        <section anchor="peerlink">
          <name> Peering Links</name>
          <t>The above described computation of a hop field MAC 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 to validate 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>This results in the following definition for the calculation of the MAC for a peering hop field.</t>
          <t>The Control Plane Internet-Draft defines a peering hop field 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>This definition, the general definition of a hop field MAC and the explanation above leads to the following definition of the MAC for a peering hop field<sup>Peer</sup><sub>i</sub>:</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>
          <t><strong>Note:</strong> The Control-Plane Internet-Draft is available here: <xref target="I-D.scion-cp"/>.</t>
        </section>
      </section>
      <section anchor="packet-verif">
        <name> Path Initialization and Packet Processing</name>
        <t>As is described in <xref target="format"/>, 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. Also, the SCION path 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 each SCION router to ensure that a data packet only traverses authorized segments. The chapter first specifies the initialization of a path at the source endpoint, followed by the steps that the SCION routers needs to perform when a data-plane packet traverses an AS on its way to the destination.</t>
        <section anchor="initialization-at-source-endpoint">
          <name> Initialization at Source Endpoint</name>
          <t>The source endpoint needs to initialize a path correctly for the SCION routers to be able to verify the hop fields in the data plane. To this end, the source endpoint <bcp14>MUST</bcp14> perform the following steps:</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 path segments' info and hop fields into the corresponding <tt>InfoFields</tt> and <tt>Hopfields</tt>, respectively, 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>
              <t><strong>Note:</strong> As already stated above, the type of segment is not visible directly in the forwarding path but can be inferred from flags and other information. See also <xref target="process-router"/>.  </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- and down-segments if, and only if, the path contains a peering hop field.</t>
                </li>
                <li>
                  <t>The field <tt>Acc</tt> field is an updatable field. It is used to compute the MAC over the current hop field. The value of the field <tt>Acc</tt> field corresponds to the value of the Accumulator Acc<sub>i</sub> for AS<sub>i</sub>.  It is initialized based on the location of the sender in relation to path construction.</t>
                </li>
              </ul>
              <t>
The following <tt>InfoField</tt> settings are possible, based on the following possible use cases:  </t>
              <ul spacing="normal">
                <li>
                  <t><strong>Use 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>Use 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>Use case 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="def-mac"/> 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 AS<sub>i</sub> verifies the path contained in the packet header with the help of the current value of the MAC in the current hop field, and the current value of the Accumulator in the <tt>Acc</tt> field of the current info field. Additionally, each AS has to correctly 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 special cased. 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 router 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><strong>Note:</strong> In this context, a border router is called <strong>ingress</strong> border router when it refers to an entrance border router to an AS, as seen from the direction of travel of the SCION packet. So in the context here, the ingress border router is the <em>(packet) incoming</em> border router. A border router is called <strong>egress</strong> border router when it refers to an exit border router of an AS, as seen from the direction of travel of the SCION packet. So in this context, the egress border router is the <em>(packet) leaving</em> border router.</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="steps-ingress-border-router">
            <name>Steps Ingress Border Router</name>
            <t>This section describes the steps that a SCION ingress border router <bcp14>MUST</bcp14> perform 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.</t>
              </li>
              <li>
                <t>Check that the current hop field is not expired and within its validity period.</t>
              </li>
              <li>
                <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. Therefore, check the settings of both flags. 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 use cases are possible:      </t>
                    <ul spacing="normal">
                      <li>
                        <t><strong>Use 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. That is, the packet comes from AS<sub>i+1</sub> and is going to enter AS<sub>i</sub>. This means that the <tt>Acc</tt> field of this incoming packet represents the value of Accumulator Acc<sub>i+1</sub>. However, to compute the MAC<sub>i</sub> for the current AS<sub>i</sub>, we need the value of Accumulator Acc<sub>i</sub> (see <xref target="def-acc"/>). Because 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 just-mentioned 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="def-mac"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of the accumulator Acc as just set in the <tt>Acc</tt> field in the current info field.</t>
                          </li>
                          <li>
                            <t>Check that the MAC<sub>i</sub> in the current hop field matches the just-calculated MAC<sup>Verify</sup><sub>i</sub>. If yes, it is fine. Otherwise, drop the packet, and reply with a "parameter problem" type of SCMP message.</t>
                          </li>
                          <li>
                            <t>Check whether the current hop field is the last hop field in the path segment. For this, look at the value of the current <tt>SegLen</tt> and other metadata in the path meta header. If yes, 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>Use 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, that is, the current hop field is <strong>not</strong> the <em>last</em> hop field of the segment, seen from the direction of travel - this can be determined by looking at the value of the current <tt>SegLen</tt> and other metadata in the path meta header. In this case, the ingress border router needs to perform the steps previously described for the path segment without peering hop field. However, 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>Use 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. This would be the case if the current hop field is the <em>last</em> hop field of the segment, seen from the direction of travel - to find out whether this is true, check the value of the current <tt>SegLen</tt> and other metadata in the path meta header. 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 the accumulator Acc as set in the <tt>Acc</tt> field in the current info field (this is the value of the accumulator Acc as it comes with the packet).</t>
                          </li>
                          <li>
                            <t>Check that the MAC<sub>i</sub> in the current hop field matches the just-calculated MAC<sup>Peer</sup><sub>i</sub>. If yes, it is fine. Otherwise, drop the packet, and reply with a "parameter problem" type of SCMP message.</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>
              </li>
              <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>
            <t><strong>Note:</strong> For more information on the path meta header, see <xref target="PathMetaHdr"/>.</t>
          </section>
          <section anchor="steps-egress-border-router">
            <name>Steps Egress Border Router</name>
            <t>This section describes the steps that a SCION egress border router <bcp14>MUST</bcp14> perform when it receives a SCION packet.</t>
            <ol spacing="normal" type="1"><li>
                <t>Parse the SCION packet.</t>
              </li>
              <li>
                <t>The next steps depend on the direction of travel and whether this segment includes a peering link. Both features are indicated by the settings of the Construction Direction flag <tt>C</tt> and the Peering flag <tt>P</tt> in the currently valid info field. Therefore, first check the settings of both flags. The following use cases are possible:  </t>
                <ul spacing="normal">
                  <li>
                    <t><strong>Use 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 <strong>not</strong> the peering hop, that is, the current hop field is <strong>not</strong> the <em>first</em> hop field of the segment, seen from the direction of travel. To check whether this is true, look at the value of the current <tt>SegLen</tt> and other metadata in the path meta header. 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="def-mac"/>, but replace <tt>SegID XOR MAC_0[:2] ... XOR MAC_i-1 [:2]</tt> in the formula with the value of the accumulator Acc as set in the <tt>Acc</tt> field in the current info field.</t>
                      </li>
                      <li>
                        <t>Check that the just-calculated MAC<sup>Verify</sup><sub>i</sub> matches MAC<sub>i</sub> in the hop field of the current AS<sub>i</sub>. If yes, it is fine. Otherwise, drop the packet, and reply with a "parameter problem" type of SCMP message.</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 the accumulator 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>
                      <li>
                        <t>Proceed with step 3.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Use case 2</strong> <br/> The packet traverses the path segment in <strong>construction direction</strong> (<tt>C</tt> = "1"). 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. This would be the case if the current hop field is the <em>first</em> hop field of the segment, seen from the direction of travel - to find out whether this is true, check the value of the current <tt>SegLen</tt> and other metadata in the path meta header. 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>Check that the MAC<sub>i</sub> in the hop field of the current AS<sub>i</sub> matches the just-calculated MAC<sup>Peer</sup><sub>i</sub>. If yes, it is fine - proceed with step 3. Otherwise, drop the packet, and reply with a "parameter problem" type of SCMP message.</t>
                      </li>
                    </ul>
                  </li>
                  <li>
                    <t><strong>Use 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 the next step, 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>
            <t><strong>Note:</strong> For more information on the path meta header, see <xref target="PathMetaHdr"/>.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section describes the possible security risks and attacks that SCION's 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 to these attacks; 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 here is the hop field MAC (see <xref target="auth-chained-macs"/>), authenticating the hop field content, consisting of ingress/egress interface identifiers, creation and expiration timestamp and, virtually, the preceding hop field MACs in the path segment.
Recall that each hop field MAC is computed using the respective AS's secret forwarding key, 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, as is perhaps self-evident, such a key rotation scheme cannot mitigate the impact of an undiscovered, permanent compromise of a device.</t>
        </section>
        <section anchor="forging-hop-field-mac">
          <name>Forging hop field MAC</name>
          <t>As a second 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. For a 6-byte MAC, the adversary would need an expected 2<sup>47</sup> (~140 trillion) tries to successfully forge the MAC of a single hop field.
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.
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. However, SCION’s MAC-chaining mechanism prevents from this kind of attacks. MAC validation for spliced segments would fail at SCION routers and the corresponding packets would be dropped. For details, see <xref target="auth-chained-macs"/>.</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. This 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. In addition, an on-path adversary can always simply drop packets. This kind of attack is fundamental and generally cannot be prevented. However, in this case, the endpoint 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. The already traversed portion of the current segment and past segments can also be modified by the adversary (for instance, 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). 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. To prevent this attack and to defend against multiple on-path adversaries in general, proof of transit is required, which is not in scope for this document.</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 "in flight", it will follow its set route, no matter what an adversary may do.
An adversary can attempt to disrupt the connectivity of said path by flooding a link with excessive traffic (see <xref target="dos"/> below). 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. The server will send a reply, typically larger than the request, to the victim. As long as the attacker and the victim are located in different ASes, this can be prevented in SCION. The reply packets are simply returned along reversed path to the actual sender, regardless of the source address information. Thus, the reflected will be forwarded to the attackers AS (where it will be discarded because the destination AS does not match).</t>
        <t>On the flip side, the path choice of the endpoint may possibly be exploited by an attacker to create intermittent congestion with relatively low send rate; the attacker can abuse 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> that 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. However, the 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 <eref target="https://docs.anapaya.net/en/latest/resources/isd-as-assignments/">Anapaya ISD AS assignments</eref>). This task is currently being transitioned from Anapaya to the SCION Association.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </reference>
        <reference anchor="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="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="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="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="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="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="RFC5881">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)</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 the use of the Bidirectional Forwarding Detection (BFD) protocol over IPv4 and IPv6 for single IP hops. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5881"/>
          <seriesInfo name="DOI" value="10.17487/RFC5881"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="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="I-D.scion-cp" target="https://datatracker.ietf.org/doc/draft-dekater-scion-controlplane/">
          <front>
            <title>SCION Control Plane</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CHUAT22" target="https://doi.org/10.1007/978-3-031-05288-0">
          <front>
            <title>The Complete Guide to SCION</title>
            <author initials="L." surname="Chuat" fullname="Laurent Chuat">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="M." surname="Legner" fullname="Markus Legner">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Basin" fullname="David Basin">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="D." surname="Hausheer" fullname="David Hausheer">
              <organization>Otto von Guericke University Magdeburg</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <author initials="P." surname="Mueller" fullname="Peter Mueller">
              <organization>ETH Zuerich</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="ISBN" value="978-3-031-05287-3"/>
        </reference>
        <reference anchor="I-D.scion-components" target="https://datatracker.ietf.org/doc/draft-rustignoli-panrg-scion-components/">
          <front>
            <title>SCION Components Analysis</title>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-cppki" target="https://datatracker.ietf.org/doc/draft-dekater-scion-pki/">
          <front>
            <title>SCION Control-Plane PKI</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="S." surname="Hitz" fullname="Samuel Hitz">
              <organization>Anapaya Systems</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="I-D.scion-overview" target="https://datatracker.ietf.org/doc/draft-dekater-panrg-scion-overview/">
          <front>
            <title>SCION Overview</title>
            <author initials="C." surname="de Kater" fullname="Corine de Kater">
              <organization>SCION Association</organization>
            </author>
            <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
              <organization>SCION Association</organization>
            </author>
            <author initials="A." surname="Perrig" fullname="Adrian Perrig">
              <organization>ETH Zuerich</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1445?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Matthias Frei (SCION Association), Juan A. Garcia Prado (ETH Zurich), Kevin Meynell (SCION Association) and Jean-Christophe Hugly (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="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 next level 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>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
