<?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.6.43 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekater-scion-dataplane-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="SCION DP">SCION Data Plane</title>
    <seriesInfo name="Internet-Draft" value="draft-dekater-scion-dataplane-00"/>
    <author initials="C." surname="de Kater" fullname="Corine de Kater">
      <organization>SCION Association</organization>
      <address>
        <email>cdk@scion.org</email>
      </address>
    </author>
    <author initials="N." surname="Rustignoli" fullname="Nicola Rustignoli">
      <organization>SCION Association</organization>
      <address>
        <email>nic@scion.org</email>
      </address>
    </author>
    <date year="2023" month="September" day="28"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 140?>

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

<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>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>It provides control and transparency over forwarding paths to endpoints.</li>
          <li>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.</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>The AS's SCION ingress router receives a SCION packet from the neighboring AS.</li>
            <li>The SCION router parses, validates, and authenticates the SCION header.</li>
            <li>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).</li>
            <li>The packet is forwarded within the AS by routers and switches based on the "intra-protocol" header.</li>
            <li>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.</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. The source endpoint that constructs a forwarding path must obey the following rules:</t>
        <ul spacing="normal">
          <li>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.</li>
          <li>If an up-segment is present, it must be the first segment in the path.</li>
          <li>If a down-segment is present, it must be the last segment in the path.</li>
          <li>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.</li>
          <li>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.</li>
          <li>Additionally, all segments without any peering possibility need to consist of at least two hop fields.</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. A SCION router must therefore 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>
                <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.</li>
              <li>
                <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.</li>
            </ul>
          </li>
          <li>
            <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.</li>
          <li>
            <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).</li>
          <li>
            <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.</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 optional 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                       |
|                                                        |
+--------------------------------------------------------+
|              Extensions 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>
              <tt>Version</tt>: The version of the SCION common header. Currently, only version "0" is supported.</li>
            <li>
              <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"/>.</li>
            <li>
              <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.</li>
            <li>
              <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"/>).</li>
            <li>
              <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.</li>
            <li>
              <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.</li>
            <li>
              <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.</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>
              <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.</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>
              <tt>RSV</tt>: These bits are currently reserved for future use.</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>
              <tt>DstISD, SrcISD</tt>: The 16-bit ISD identifier of the destination/source.</li>
            <li>
              <tt>DstAS, SrcAS</tt>: The 48-bit AS identifier of the destination/source.</li>
            <li>
              <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.</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>The <tt>Empty</tt> path type (<tt>PathType=0</tt>). For more information, see <xref target="empty"/>.</li>
            <li>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"/>.</li>
            <li>The <tt>OneHopPath</tt> path type (<tt>PathType=2</tt>). For more information, see <xref target="onehop"/>.</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>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.</li>
              <li>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 must be traversed in construction direction, the other whether the first or last hop field in the segment represents a peering hop field.</li>
              <li>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.</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>
                  <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.</li>
                <li>
                  <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 must point to a hop field that is part of the current path segment, as indicated by the <tt>CurrINF</tt> index.</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>The total number of hop fields in an end-to-end path must equal the sum of all <tt>Seg{0,1,2}Len</tt> contained in this end-to-end path.</li>
                    <li>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 must also be empty.</li>
                  </ul>
                </li>
                <li>
                  <tt>RSV</tt>: Unused and reserved for future use.</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>
                  <tt>r</tt>: The <tt>r</tt> bits are unused and reserved for future use.</li>
                <li>
                  <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"/>.</li>
                <li>
                  <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.</li>
                <li>
                  <tt>RSV</tt>: Unused and reserved for future use.</li>
                <li>
                  <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"/>.</li>
                <li>
                  <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.</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>
                  <tt>r</tt>: The <tt>r</tt> bits are unused and reserved for future use.</li>
                <li>
                  <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.</li>
                <li>
                  <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.</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 should 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>
                      <tt>Timestamp</tt> + (1 + <tt>ExpTime</tt>) * (24 hours/256)</li>
                  </ul>
                </li>
                <li>
                  <tt>ConsIngress</tt>, <tt>ConsEgress</tt>: The 16-bits ingress/egress interface IDs in construction direction, that is, the direction of beaconing.</li>
                <li>
                  <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"/>.</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>At the source endpoint AS, <em>CurrHF := 0</em>.</li>
              <li>At the destination endpoint AS, <em>CurrHF := 1</em>.</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 must perform the following steps:</t>
            <ol spacing="normal" type="1"><li>Reverse the order of the info fields;</li>
              <li>Reverse the order of the hop fields;</li>
              <li>For each info field, negate the construction direction flag <tt>C</tt>; do not change the accumulator field <tt>Acc</tt>.</li>
              <li>
                <t>In the <tt>PathMetaHdr</tt> field:  </t>
                <ul spacing="normal">
                  <li>Set the <tt>CurrINF</tt> and <tt>CurrHF</tt> to "0".</li>
                  <li>Reverse the order of the non-zero <tt>SegLen</tt> fields.</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>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"/>).</li>
          <li>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"/>).</li>
        </ul>
        <t>If both headers are present, the HBH Options header must 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>
              <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"/>).</li>
            <li>
              <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.</li>
            <li>
              <tt>Options</tt>: This is a variable-length field. The length of this field must 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"/>.</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>
                <tt>OptType</tt>: 8-bit identifier of the type of option. The following option types are assigned to the SCION HBH/E2E Options header:</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>
                <tt>OptDataLen</tt>: Unsigned 8-bit integer denoting the length of the <tt>OptData</tt> field of this option in bytes.</li>
              <li>
                <tt>OptData</tt>: Variable-length field. Option-type specific data.</li>
            </ul>
            <t>The options within a header must 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> must appear at an integer multiple of x bytes from the start of the header, plus y bytes. For example:</t>
            <ul spacing="normal">
              <li>
                <tt>2n</tt>: means any 2-bytes offset from the start of the header.</li>
              <li>
                <tt>4n+2</tt>: means any 4-bytes offset from the start of the header, plus 2 bytes.</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 should 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 should 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>
              <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.</li>
            <li>
              <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.</li>
            <li>
              <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.</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>
            <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.</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>
            <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.</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>
            <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.</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>
            <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.</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>Preventing malicious endpoints from illegally adding, removing, or reordering hops within a path segment created during beaconing in the control plane.</li>
            <li>Authentication of the information contained in the hop field itself, in particular the <tt>ExpTime</tt>, <tt>ConsIngress</tt>, and <tt>ConsEgress</tt>.</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 must also initialize the value of accumulator field <tt>Acc</tt> for each path segment. This must be done such, that the <tt>Acc</tt> field contains 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>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.</li>
              <li>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.</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>k<sub>i</sub> = The forwarding key k of the current AS<sub>i</sub></li>
              <li>Ck<sub>i</sub> (...) = Checksum C over (...) computed with forwarding key k<sub>i</sub></li>
              <li>
                <tt>SegID</tt> = The random initial 16-bit segment identifier set by the core AS when creating the corresponding PCB</li>
              <li>XOR = The bitwise "exclusive or" operation</li>
              <li>MAC<sub>i</sub> [:2] = The hop field MAC for AS<sub>i</sub>, truncated to 2 bytes</li>
              <li>Timestamp = The timestamp set by the core AS when creating the corresponding PCB</li>
              <li>ExpTime<sub>i</sub>, ConsIngress<sub>i</sub>, ConsEgress<sub>i</sub> = The content of the hop field HF<sub>i</sub></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>XOR = The bitwise "exclusive or" operation</li>
              <li>MAC<sub>i</sub> [:2] = The hop field MAC for the current AS<sub>i</sub>, truncated to 2 bytes</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 must be performed by the SCION routers 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 must 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 must perform the following steps:</t>
          <ol spacing="normal" type="1"><li>Combine the preferred end-to-end path from the path segments obtained during path lookup.</li>
            <li>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.</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 must 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 must be inferred from flags and other information. See also <xref target="process-router"/>.  </t>
              <ul spacing="normal">
                <li>The Construction Direction flag <tt>C</tt> must 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 must be set to "0" for up-path segments and "reversed" core-segments.</li>
                <li>The Peering flag <tt>P</tt> must be set to "1" for up- and down-segments if, and only if, the path contains a peering hop field.</li>
                <li>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.</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>The Peering flag <tt>P</tt> = "0"</li>
                    <li>The Construction Direction flag <tt>C</tt> = "1"</li>
                    <li>The value of the <tt>Acc</tt> = Acc<sub>i</sub>. For more details, see <xref target="def-acc"/>.</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>The Peering flag <tt>P</tt> = "1"</li>
                    <li>The Construction Direction flag <tt>C</tt> = "1"</li>
                    <li>The value of the <tt>Acc</tt> = Acc<sub>i+1</sub>. For more details, see <xref target="def-acc"/>.</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>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)</li>
                    <li>The Construction Direction flag <tt>C</tt> = "0"</li>
                    <li>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"/>.</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>Besides setting the flags and the <tt>Acc</tt> field, the source endpoint must 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 must be set to "0".</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 must perform when it receives a SCION packet.</t>
            <ol spacing="normal" type="1"><li>Check that the interface through which the packet was received is equal to the ingress interface in the current hop field.</li>
              <li>Check that the current hop field is not expired and within its validity period.</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>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.</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 must 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>Replace the current value of the field <tt>Acc</tt> in the current info field with the newly calculated value of Acc.</li>
                          <li>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.</li>
                          <li>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.</li>
                          <li>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.</li>
                        </ul>
                      </li>
                      <li>
                        <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 - 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 ingress border router must perform the steps previously described for the path segment without peering hop field. However, the border router <em>must not</em> increment <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with step 4.</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 must take the following step(s):          </t>
                        <ul spacing="normal">
                          <li>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).</li>
                          <li>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.</li>
                          <li>Increment both <tt>CurrInf</tt> and <tt>CurrHF</tt> in the path meta header. Proceed with the next step.</li>
                        </ul>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
              <li>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.</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 must perform when it receives a SCION packet.</t>
            <ol spacing="normal" type="1"><li>Parse the SCION packet.</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 must take the following step(s):      </t>
                    <ul spacing="normal">
                      <li>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.</li>
                      <li>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.</li>
                      <li>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.</li>
                      <li>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>.</li>
                      <li>Proceed with step 3.</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 must take the following steps:      </t>
                    <ul spacing="normal">
                      <li>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.</li>
                      <li>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.</li>
                    </ul>
                  </li>
                  <li>
                    <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.</li>
                </ul>
              </li>
              <li>Increment <tt>CurrHF</tt> in the path meta header.</li>
              <li>Forward the packet to the neighbor AS.</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>TODO security considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO IANA considerations.</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>
            <date year="2023"/>
          </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>
            <date year="2023"/>
          </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 1371?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks go to Matthias Frei (SCION Association), Juan A. Garcia Prado (ETH Zurich), Jean-Christophe Hugly (SCION Association), and Samuel Hitz (Anapaya) 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:
H4sIAAAAAAAAA+2963rb2JEo+l9PgVH/aFImaJGS3W6n23vLkh3rxBcdS84k
O3u+EUhCEmKS4ACgZcbyeZY8S57s1HXdAFCSLXd6eqLMtCVgYV1q1apV94rj
eKPKqmn6ONo83j988zo6SKokOpom83RzIxmNivSDfXW0uTFOqvQ8L1aPo2x+
lm+Uy9EsK8ssn1erRYoPJ+kihf/Mq42NST6eJzN4OimSsyqepO/h4yIux9A8
nsA4Cxwm3t7egDF2Nr6LkiJNYLTDtyfPN+HPy7x4f17kywU8O0qqi2jvElpE
r9MK32Tz8+jt7zc33qcr+HPyODqcQ+/ztIoPcLiND+l8mT6GbqLr+4BGPP/N
t2mZJsX4Ivo9fkRvZkk2hTeLZF6c/++sqM76eXFOb7AhvLmoqkX5+P79y8vL
fpby+/v4VYwNsg/p/ct0dJ++v7+5AfPJqovlCD4kSCRlmY+zpIJf7wtoFv95
GB9gyykArKycIcIv+txXP8u9b++vhXj/oppNNzc2kmV1kRePN6I4imDnysfR
fj+apNEf8CMYHX54//bzIpunwStY5OOIEWPPTojfpQyz8eT9/6axESIbzjiv
+9HbZVll5/N8mrkjvc7G+TSpvbzBWPNs7I61Mc+LGbT6ACgQRW+f7w8Gw6H+
+uPgkfw6HAx+1F93f9jVX38YDOTXncFDbbu7++OO/Prg0aNt+6u2fTQwPTwa
bmuDH3d/oM9gW/q8EePFY5q6HDxe1z4coSKf8tGj17Bf8Ha4Pdzh1klxngIu
KCrgdlZFMn6fFhbr4Mg17v2Ye6ftv0/dmc2nn1j+bcOD9ahwzQ6FvTfs/nUI
0D7CBtIhZ6v3X7zbO+GtNhDePLlIYeazxTSt0uj3ywymX+Xc2aYP62EzrPOM
wDvY7g+2t3+4/+MPj+KdeHtnEG8/GD56FG/TV2VaZGmJ81GwHh4/ff048lv/
EO9cvwEv+9H+xTKpAui8TJYFkNbgHUHm2cmL6P8sYQbji+YuX/Wjl+n5vLaj
r5Li/bIM392sz4N+9DSBFQddHiQfsknw5sYdvkiW5UVamyb3WXtJ3b6pYDc/
5HPYWuz7fRq9mwM6FGVWrWB955N0tASi0DjiMYyYVX8LRjtOZst06r+hofbm
ySJZJdHxqqzSWdnc51E/egWfT2uLOAL8K2rvbgaavT58XhTZedDn3qTIknn4
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
HOsyK0XuUaYTBNEiXyz4UzNfcfLiPzGocKxpczOeJF4m4jmDyfuaGLeWCmBI
+cjDooFummSt9SvEZcr9e2Ko94SX4bXx1jBasUDtVuNYoVUft20GOMGgH4y8
BIxEb7y00m936EKz/h3Xcft4GVuXEUAMl8BLK6NZUs9EgO3bHePMpx844pHQ
tiHRtp0bHeTaofoq0va1lO1rCVsbXbspYWukSgND1NbxxW3fs96WuWtAP+Ku
W2nbHfDGLZyx52BiGNthfRZtW+B63Zjvd5q/r9PlodDl65HyBmR5xyPLu5Ys
7wBZ3nXZ4h2fLW6gC3X9XI9ZD48etPCOlJLcSSXsKQzeUlIpVlEg4bMkz5lG
7PHIOgZ5KJJqHEiE5fhgOPJthK5RDYNHfYeO+u61UG2C87+Ouvf9XR11ZWGQ
A9oRDuiXPeqhJ1zbeV27BY4/mP1+t/Z9/ajvyFG/HilvcNR3vaP+wB713fjJ
Uzzp4ZFjufAOmaydGzNZMDopxyrKrIo6djit0+xvaWCAEbudydtJSTw1GWcj
QXKyN5tFsJdzwIOJG4IV3SVvMvIkPZMcHN1dAJwLZJWWC5cLK+usFpA11/Rg
AN2gb2jIlMwW4Y9YNEKamrOsLcxpJ6pnlcJn8PYiVIgqeghvlJV2IN/ZG8el
RgCPdHpGe0iUiPlF5rsm+YyccK0SGH3s0S4pCtaA2DdrooXr2kVS/PRapG88
B/8ixd73vx1SbJxG22ho2xKU6zLgb5Tjve/rpHiXSfENkPIGpPgBkWISeFss
MsYIL6IY2eNDnDNJpP+KqULKy2Th+mG0JFxPy2bCWDhZjl19JVn5JVtySNrq
xQVKNUqP0vOME8aIGCv9i5+Dn+xP3nW51gVn2sbESHmR/S0xGQeqixjLbADo
qEHiNThfJgXALFX52nGTK1UPRgY+XaPa7jmrLvZeWscT7VvS28NNpHmVybnT
sYKi0UpK+B3O+QneICZpKhcjh3doREJdBlcudsttw3Vo44hmsBtWhVDa646s
VdMVIFBepBPXp7EX1OLGT3D0rGgeZrHUMjt0hdomrp8kZ7oLqjW5anDECXQP
1fgd9EuhaRDLPy5Wiyo/L5LFRTa26apZv4iFxTMvk7P4Xbo7ypeL8yVCx0Bj
q1zNZlgFarzljmUSIFF+c8A8yWEdJ37ZFkxVUEadV3v7pXEssNUY2fllvCxa
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
z9fbFMugXLsqv47qyfWkHijN/w/8gPuup5QBAA==

-->

</rfc>
