<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-eip-headers-definitions-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="EIP Headers">Extensible In-band Processing (EIP) Headers Definitions</title>
    <seriesInfo name="Internet-Draft" value="draft-eip-headers-definitions-00"/>
    <author initials="S." surname="Salsano" fullname="Stefano Salsano">
      <organization>Univ. of Rome Tor Vergata / CNIT</organization>
      <address>
        <email>stefano.salsano@uniroma2.it</email>
      </address>
    </author>
    <author initials="A." surname="Mayer" fullname="Andrea Mayer">
      <organization>Univ. of Rome Tor Vergata / CNIT / Common Net</organization>
      <address>
        <email>andrea.mayer@uniroma2.it</email>
      </address>
    </author>
    <date year="2026" month="March" day="19"/>
    <area>AREA</area>
    <workgroup>SIG on EIP</workgroup>
    <keyword>IPv6</keyword>
    <keyword>Extension Headers</keyword>
    <abstract>
      <?line 64?>

<t>This document discusses the format of EIP protocol elements and the
transport of EIP in different IPv6-based protocol headers.</t>
      <t>In particular, this document defines the standalone EIP formats for the
IPv6 Hop-by-Hop Options Header and for the Segment Routing Header, and
it defines the generic format of EIP Information Elements. Other
approaches to transport EIP, including integration with the IOAM
framework through the Global Opaque Block (GOB), are described in
separate documents.</t>
      <t>Caveat: this document is still in brainstorming stage,
it is distributed to stimulate discussion.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://eip-home.github.io/eip-headers/draft-eip-headers-definitions.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-eip-headers-definitions/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EIP SIG mailing list (<eref target="mailto:eip@cnit.it"/>),
        which is archived at <eref target="http://postino.cnit.it/cgi-bin/mailman/private/eip/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/eip-home/eip-headers"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The EIP header is used to carry information that IPv6 nodes (hosts and routers) can read and write to support different use cases. The use cases for EIP are discussed in <xref target="id-eip-use-cases"/>.
EIP provides a common architecture and framework which can be extended/tailored for the different use cases. The EIP architecture is discussed in <xref target="I-D.draft-eip-arch"/>.</t>
      <t>The present document focuses on the standalone EIP formats and on the
generic definition of EIP Information Elements, while other documents
describe additional approaches to transport EIP.</t>
      <t>The design of the EIP header takes into account the requirement to be
efficient and "hardware friendly" (i.e. the effort and cost to implement EIP
in hardware achieving line rate forwarding needs to be reasonable).</t>
      <t>The benefits of having EIP as a common header and framework to support
multiple use cases are discussed in <xref target="I-D.draft-eip-arch"/>.</t>
      <t>EIP can be transported in different ways within IPv6. This document
defines two standalone approaches: 1) an EIP Option for the Hop-by-Hop
Options Header; and 2) an EIP TLV for the Segment Routing Header.
Additional approaches to transport EIP are also possible. In
particular, EIP Information Elements can be carried within the IOAM
framework through the Global Opaque Block (GOB) of the IOAM
Pre-allocated Trace Option, as described in <xref target="I-D.draft-mayer-ioam-gob"/>.</t>
    </section>
    <section anchor="standalone-eip-transport-in-the-hop-by-hop-options-header">
      <name>Standalone EIP Transport in the Hop-by-Hop Options Header</name>
      <t>The EIP header can be carried as an Option in the Hop by Hop Extension Header, as shown in the following figure.</t>
      <artwork><![CDATA[
                                   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                   | Option type   |Opt Data Len=xx|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   EIP Information Elements (variable in number and length)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         ......                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         ......                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>Option type</t>
      <artwork><![CDATA[
   +-+-+-+-+-+-+-+-+
   |0|0|1|EIP code |
   +-+-+-+-+-+-+-+-+
]]></artwork>
      <t>First 3 bits in Option type field:</t>
      <ul spacing="normal">
        <li>
          <t>0 0 Skip if not implemented</t>
        </li>
        <li>
          <t>1 Content might change at every hop</t>
        </li>
      </ul>
      <t>(eventually) EIP code needs to be allocated by IANA
   for the time being we use 11110, so overall the Option Type for EIP is</t>
      <t>0x3E (001 11110) RFC3692-style Experiment</t>
      <t>Opt Data Len is the length in bytes of the rest of the EIP Option</t>
      <t>Within the EIP Option, we have a LTV structure:</t>
      <artwork><![CDATA[
  EIP-LTV a code that is specific of each EIP LTV
  LTV Len is the length in bytes of the rest of the LTV
]]></artwork>
    </section>
    <section anchor="standalone-eip-transport-in-the-segment-routing-header">
      <name>Standalone EIP Transport in the Segment Routing Header</name>
      <t>The EIP header can be carried as a TLV in the Segment Routing Header. A generic TLV in the SRH is defined as follows.</t>
      <artwork><![CDATA[
    0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----------------------
   |     Type      |    Length     | Variable-length data
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----------------------
]]></artwork>
      <t>First bit in type field:
   1 - Content might change at every hop</t>
      <t>type code needs (eventually) to be allocated by IANA
   for the time being we use 252 for the EIP TLV.
   This is part of the experimental range</t>
      <t>252-254  Experimentation and Test  <xref target="RFC8754"/></t>
      <t>NB current IANA allocation for Types starting with 1 is
   (see https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#segment-routing-header-tlvs)</t>
      <artwork><![CDATA[
   127 possible Option Types starting with 1
   123 not allocated
   3 allocated for Experimentation and Test
   1 Reserved
]]></artwork>
      <t>128-251  Unassigned</t>
      <t>252-254  Experimentation and Test  <xref target="RFC8754"/></t>
      <t>255  Reserved  <xref target="RFC8754"/></t>
      <t>The EIP TLV for SRH will carry a set of EIP Information Elements as shown hereafter.</t>
      <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|   EIP       |    Length     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   EIP Information Elements (variable in number and length)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         ......                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         ......                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
    </section>
    <section anchor="other-approaches-to-transport-eip">
      <name>Other Approaches to Transport EIP</name>
      <t>The standalone formats defined in this document are not the only
possible ways to transport EIP Information Elements.</t>
      <t>As discussed in <xref target="I-D.draft-eip-arch"/>, EIP is an architectural framework for
structured in-band metadata and processing, and it can be mapped onto
different IPv6-based protocol containers.</t>
      <t>In addition to the standalone EIP Option for the Hop-by-Hop Options
Header and the standalone EIP TLV for the Segment Routing Header,
another important approach is to carry EIP Information Elements within
the IOAM framework through the Global Opaque Block (GOB) of the IOAM
Pre-allocated Trace Option, as described in <xref target="I-D.draft-mayer-ioam-gob"/>.</t>
      <t>For this reason, this document should be read as defining the generic
EIP Information Elements and two standalone transport formats, rather
than as restricting EIP to a single protocol representation.</t>
    </section>
    <section anchor="generic-format-of-eip-information-elements">
      <name>Generic Format of EIP Information Elements</name>
      <t>EIP Information Elements are used to carry the information needed by the
different use cases. The same Information Element can be reused across
multiple use cases. The same EIP Information Elements can also be used
across different approaches to transport EIP, including the standalone
formats defined in this document and other mappings such as the
IOAM/GOB-based approach.</t>
      <t>A fundamental requirement for EIP is to be "Extensible", therefore we need to have a potentially large number of different Information Elements. On the other hand, we may need to be efficient, limiting the overhead in bytes for carrying a given information. In order to have the possibility to find the optimal trade-off between these contrasting requirements, the Codes or "Tags" for the Information Elements can have different sizes. In particular, we select a solution in which the Codes can have three different lengths (respectively one byte, two bytes or three bytes).</t>
      <t>In order to support the variability in the size of the Code of the Information Element, we use an LTV (Length-Tag-Value) approach instead of TLVs (Tag-Length-Value).</t>
      <t>We have considered two approaches for the structure of the EIP Information Elements or EIP LTVs.</t>
      <section anchor="proposed-approach-1-for-eip-ltvs">
        <name>Proposed approach #1 for EIP LTVs.</name>
        <t>In this approach, we have one byte LTV Data Length field. The LTV Data Len is in octets (up to 255 bytes for the LTV Data Length).</t>
        <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |LTV Data Len=xx|0| EIP-LTV Code|       LTV content             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          LTV content (optional, variable length)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |LTV Data Len=xx|1|  EIP extended LTV Code      | LTV content   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          LTV content (optional, variable length)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>In this approach, we can have 128 codes of one byte and 32768 codes of 2 bytes.</t>
      </section>
      <section anchor="proposed-approach-2-for-eip-ltvs">
        <name>Proposed approach #2 for EIP LTVs.</name>
        <t>In this second approach, the first two bits of the Len field can differentiate the code length,
and the remaining 6 bits will specify the length of the optional part of the LTV content in 32 bits units (4-octets units). The LTV Data length can be up to 63x4=252 bytes (covering the optional part).</t>
        <t>Note that when the Data Len is 0, the optional part of the LTV content is not present, and the Information Element is made only of 4 bytes (i.e. one row in the figures below).</t>
        <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 1| Data Len  | EIP-LTV Code  |        LTV content            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          LTV content (optional, variable length)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    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 0| Data Len  |    EIP extended LTV Code      | LTV content   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          LTV content (optional, variable length)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    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 1| Data Len  |       EIP double-extended LTV Code            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          LTV content (optional, variable length)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>In this approach, we can have 256 codes of one byte, 65536 codes of 2 bytes
and 2^24 codes of 3 bytes. The codes of one byte will be referred to as "Short codes", the codes of two bytes will be referred to as "Extended codes", the codes of three bytes will be referred to as "Double extended codes".</t>
      </section>
      <section anchor="decision-on-the-approach-for-eip-ltvs">
        <name>Decision on the approach for EIP LTVs</name>
        <t>The selected approach is the #2, because it is more flexible and it supports a much higher number of Information Elements Codes.</t>
      </section>
    </section>
    <section anchor="definition-of-eip-information-elements-aka-eip-ltvs">
      <name>Definition of EIP Information Elements (a.k.a. EIP LTVs)</name>
      <section anchor="hmac-ltv">
        <name>HMAC LTV</name>
        <t>Alignment requirement: 8n (TODO: maybe it will be 4n)</t>
        <t>The keyed Hashed Message Authentication Code (HMAC) LTV is <bcp14>OPTIONAL</bcp14>
and has the following format:</t>
        <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 0|  Data Len |    EIP extended LTV code      |  RESERVED     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      HMAC Key ID (4 octets)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                              //
   |                      HMAC (variable)                         //
   |                                                              //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>EIP extended LTV code:  HMAC (see <xref target="ltv-ext-codes"/> in <xref target="sec-ext-ltv-codes"/>)</t>
        <t>Data Len:  the length of HMAC LTV in 4-bytes units, excluding the first row:
the counting starts from the second row (HMAC Key ID).</t>
        <t>RESERVED:  8 bits.  <bcp14>MUST</bcp14> be 0 on transmission.</t>
        <t>HMAC Key ID:  A 4-octet opaque number that uniquely identifies the
pre-shared key and algorithm used to generate the HMAC.</t>
        <t>HMAC:  Keyed HMAC, in multiples of 8 octets, at most 32 octets.</t>
        <t>The details of the use of the HMAC LTV (HMAC Generation and Verification and
HMAC Algorithms) are borrowed from section 2.1.2 of RFC 8754 <xref target="RFC8754"/>.</t>
      </section>
      <section anchor="eip-identifiers-ltvs">
        <name>EIP Identifiers LTVs</name>
        <t>EIP identifiers can be used for different use-cases. For example, they can be used to
identify a "slice", or a Customer, or they can be used to carry a "Contract Identifier".
Two classes of EIP Identifies are defined, Short and Long Identifiers. Short Identifiers
are 16 bits Identifiers. Long Identifiers are Nx32 bits long (N&gt;=1).
Long Identifiers can be further structured according to the specific use case.
EIP Long Identifiers can also be used to carry sequence numbers or transaction identifiers
to identify a specific packet or a specific transaction.</t>
        <section anchor="eip-short-identifier-ltv">
          <name>EIP Short Identifier LTV</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 1| Data Len  | EIP-LTV code  |    Short  Identifier          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t>EIP-LTV code: Short Identifier (see <xref target="ltv-codes"/> in <xref target="sec-ltv-codes"/>)</t>
          <t>Data Len:  The length of the variable-length data in 4-bytes units is
zero in this case.</t>
          <t>Short Identifier: it is a 16 bits identifier, useful when up to 65536
different Identifiers are needed.</t>
        </section>
        <section anchor="eip-long-identifier-ltv">
          <name>EIP Long Identifier LTV</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 0| Data Len  |     EIP extended LTV code     |    ID type    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              EIP Long Identifier   (variable length)          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t>EIP extended LTV code: Long Identifier (see <xref target="ltv-ext-codes"/> in <xref target="sec-ext-ltv-codes"/>)</t>
          <t>Data Len:  The length of the variable-length part of the data in 4-bytes units.</t>
          <t>ID type: maybe used to qualify different types of identifiers. By default it is zero.
An ID type can be used to specify a structure for the variable length part of
the Long Identifier.</t>
          <t>EIP Long Identifier: an identifier of variable length (in multiple of 4 bytes)</t>
          <artwork><![CDATA[
ID type = 0 : Generic Long Identifier
ID type = 1 : Sequence Number only
ID type = 2 : Sequence Number and Generic Long Identifier
]]></artwork>
          <t>The EIP Long Identifier LTV only carrying a Sequence Number is shown hereafter.</t>
          <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 0| DataLen=1 |  EIP_ext_cod=Long Identifier  |  ID type = 1  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Sequence number                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t>The EIP Long Identifier LTV carrying a Sequence Number in addition to a generic Long
identifier is shown hereafter.</t>
          <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 0| DataLen>1 |  EIP_ext_cod=Long Identifier  |  ID type = 2  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Sequence number                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              EIP Long Identifier   (variable length)          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </section>
      </section>
      <section anchor="timestamps-ltv">
        <name>Timestamps LTV:</name>
        <t>The Timestamp Information Element can used to collect timing information in different
nodes along the packet path (source, destination, intermediate nodes), according to
different use cases.</t>
        <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 1| Data Len  | EIP-LTV code  |  Timestamps TLV Parameters    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Timestamps TLV content (variable length)            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>EIP-LTV code: Timestamps (see <xref target="ltv-codes"/> in <xref target="sec-ltv-codes"/>)</t>
        <t>The "Timestamps TLV Parameters" is a 16 bits field, it is split into two 8 bits
fields as follows:</t>
        <artwork><![CDATA[
    0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Type       | Parameters    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Type : it further characterizes the format and the content of Timestamps</t>
        <t>Timestamp Type: Basic = 1</t>
        <artwork><![CDATA[
    0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Type=1     |LEN|Format |RES|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>LEN: the length of each timestamp</t>
        <artwork><![CDATA[
00 : 1 byte
01 : 2 bytes
10 : 4 bytes
11 : 8 bytes
]]></artwork>
        <t>Format: indicates the format of the timestamp</t>
        <artwork><![CDATA[
0001 :   1 ns
0010 :  10 ns
0011 : 100 ns
0100 :   1 us
0101 :  10 us
0110 : 100 us
0111 :   1 ms
1000 : NTP (only for 8 bytes)
1001 : Linux epoch (only for 8 bytes)
]]></artwork>
        <t>RES: Reserved, set to 0 0</t>
        <t>Example of a Timestamp TLV of type basic, that carries 8 timestamps
of length 2 bytes, each one representing a time granularity of 10 us.</t>
        <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|0|1|   EIP   |Opt Data Len=20|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0 1| Len=4     |  Timestamps   |    Type=1     |0 1|0 1 0 1|0 0|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               1               |               2               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               3               |               4               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               5               |               6               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               7               |               8               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>NB using this granularity (10 us) and timestamp size (2 bytes), assuming that
all node clocks are synchronized with a maximum error E [ms] it is possible to
correctly evaluate hop-by-hop delays up to (655-E) [ms]</t>
        <t>The entire timestamp will be reconstructed at last node using system
time and subtracting intermediate timestamps.</t>
      </section>
      <section anchor="node-selection-and-identification-ltv">
        <name>Node selection and identification LTV</name>
        <t>This Information Element can be used for two purposes:</t>
        <t>1) associate some instruction contained in the EIP header to one or more
target nodes in the "downstream" path of the packet</t>
        <t>example 1.1: ask a specific node to write some information in the EIP header, if this specific
node will be crossed by the packet</t>
        <t>example 1.2: ask one node every N hops to write some information in the EIP header</t>
        <t>2) identify the nodes that have inserted some information in the EIP header</t>
        <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 1| Data Len  | EIP-LTV code  |    Type       |     Scope     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Hop Count   |    Param_1    |    Param_2    |F| Back counter|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Target node list (optional, variable length)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Collected information list (optional, variable length)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <artwork><![CDATA[
Type = All nodes (Skip M), Param_1 : M, Param_2 : limit (num. of nodes)
Type = Modulus, Param_1 : modulus, Param_2 : limit
Type = Destination only
Type = Segment End only, Param_2 is the limit
Type = Segment End Modulus, Param_1 : modulus, Param_2 : limit
Type = Target Node(s), Param_2 is the number of nodes
]]></artwork>
        <t>Scope : If Scope = 0x00 the node selection applies to all the following EIP Information Elements (LTVs)
If Scope = N &gt; 0x00 only to the first N LTVs following the Scope are affected by the selection.</t>
      </section>
      <section anchor="processing-accelerator-ltv">
        <name>Processing Accelerator LTV</name>
        <t>The purpose of this LTV is to identify a portion of the EIP Header that has a fixed pre-known format so that it can be processed in a more efficient way, rather than proceeding with a "sequential" parsing.
This is can be used for parallel hardware processing, but also software processing can be optimized.
For example, a pre-known sequence of LTVs following the Processing Accelerator LTV can be processed in parallel. The Processing Accelerator LTV can be used to know in advance the size and type of some fields of the following LTVs in order to speed up the processing.</t>
        <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 1|  Len = 0  | Proc. Accel.  | Processing Acceleration ID    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Proc. Accel. : EIP Short code (see <xref target="ltv-codes"/> in <xref target="sec-ltv-codes"/>)</t>
        <t>The Processing Acceleration ID is an opaque identifier, its definition is domain-specific.</t>
      </section>
      <section anchor="compact-path-tracing-cpt-ltv">
        <name>Compact Path Tracing (CPT) LTV</name>
        <t>This LTV is a porting of the Internet Draft "draft-filsfils-spring-path-tracing" <xref target="I-D.filsfils-spring-path-tracing"/> into the EIP framework. It contains a stack of "MCD" (Midpoint Compressed Data) representing information inserted by every transit router for path tracing purposes.</t>
        <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 0|  Length   |         Compact PT            |Type |A|HML|RES|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                          MCD  Stack                           ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Compact PT: EIP extended code (see <xref target="ltv-ext-codes"/> in <xref target="sec-ext-ltv-codes"/>)</t>
        <t>Type: 3 bits, specifies the content of the CPT LTV including the format of the MCD element.</t>
        <t>A: Authenticated, set to 1 in Authenticated Mode, 0 otherwise.</t>
        <t>HML: HMAC Length, set to 00 in unauthenticated mode. In authenticated mode, it stores the length of the HMAC field in 8 octets.\
<tt>MAC length = (HML + 1) * 8 bytes</tt>.\
Max length of the HMAC will be 32 octets.</t>
        <t>RES: Reserved, set to 00.</t>
        <artwork><![CDATA[
Ultra Compact (Type = 000)
MCD 24 Bits (3 bytes)
Timestamp (8 bit) | Interface ID (12 bit) | Load (4 bit)
]]></artwork>
        <artwork><![CDATA[
Compact (Type = 001)
MCD 32 Bits (4 bytes)
Timestamp (10 bit) | Interface ID (16 bit) | Load (4 bit) | Timeshift (2 bit)
]]></artwork>
        <t>The MCD Stack has variable size. <xref target="I-D.filsfils-spring-path-tracing"/> recommends 36 octets for a MCD of 3 bytes (12 MCDs).</t>
        <t>In our case, taking into account the alignment requirements, we have the following recommendation.</t>
        <t>When MCD is 3 bytes, we recommend 13 MCDs for a total of 39 bytes.
When MCD is 4 bytes, we recommend an even number of MCD, for example 10 for a total of 40 bytes or 12 for a total of 48 bytes.</t>
        <section anchor="authenticated-mode-for-compact-path-tracing">
          <name>Authenticated mode for Compact Path Tracing</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 0| Data Len  |         Compact PT            |Type |A|HML|RES|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                          MCD  Stack                           ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                             HMAC                              ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t>In the authenticated mode, an HMAC is appended at the end of the MCD Stack. The size of the HMAC is a multiple of 8 octets (maximum 32 octets).</t>
          <t>Each intermediate node calculates the HMAC for the whole CPT LTV, including the HMAC field. The newly calculated HMAC then overwrites the previous node's HMAC. The first node will just use an HMAC field set to all zeros.
An identifier for every single node is not needed, because it can be derived from the MCD Stack.
The destination node can reconstruct the different HMAC fields at each hop to check if the final HMAC is consistent.</t>
        </section>
        <section anchor="geotagged-compact-path-tracing">
          <name>Geotagged Compact Path Tracing</name>
          <artwork><![CDATA[
TODO
]]></artwork>
        </section>
      </section>
      <section anchor="geotagging-ltv">
        <name>Geotagging LTV</name>
        <t>We describe an LTV for Semantic Routing use case.</t>
        <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 0|  Length   |        Geotagging             |S|D|Form.| RES |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Position(s) (Variable)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Geotagging for Semantic Routing: EIP extended code (see <xref target="ltv-ext-codes"/> in <xref target="sec-ext-ltv-codes"/>)</t>
        <t>S: (for Source) the Position includes the Source Location</t>
        <t>D: (for Destination) the Position includes the Destination Location</t>
        <t>Format: 3 bits, specifies the encoding used to represent the geographical location(s).</t>
        <t>RES: Reserved, set to 0.</t>
        <t>Position(s): Contains the geographical location data. Its length must be a multiple of 4 octets.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Format</th>
              <th align="left">Encoding</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Quantized Long: Latitude 32 bits, Longitude 32 bits</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">Quantized Short: Latitude 16 bits, Longitude 16 bits</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Geohash Long 60 bits (padded to 64 bits)</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Geohash Short 30 bits (padded to 32 bits)</td>
            </tr>
          </tbody>
        </table>
        <t>Quantized format as described in https://mmcloughlin.com/posts/geohash-assembly. Latitude and longitude are quantized by mapping to the unit interval [0, 1] and multiplying by 2^32 for Long format (32+32=64 bits) and by 2^16 for Short format (16+16=32 bits), as illustrated in the following formulas:</t>
        <artwork><![CDATA[
lat_long = floor( 2^32 * (lat + 90) / 180 )
lon_long = floor( 2^32 * (lon + 180) / 360 )

lat_short = floor( 2^16 * (lat + 90) / 180 )
lon_short = floor( 2^16 * (lon + 180) / 360 )
]]></artwork>
        <t>Geohash format is an open source format specified in https://en.wikipedia.org/wiki/Geohash</t>
        <artwork><![CDATA[
Quantized Long (Format = 0)
64 bits (32 lat + 32 lon)
LAT error: ± 2.3 mm
LONG max error: ± 4.6 mm
]]></artwork>
        <artwork><![CDATA[
Quantized Short (Format = 1)
32 bits (16 lat + 16 lon)
LAT error: ± 153 m
LONG max error: ± 305 m
]]></artwork>
        <artwork><![CDATA[
Geohash Long (Format = 2)
60 bits + 4 bits padding
LAT error: ± 18.6 mm
LONG max error: ± 9.3 mm
]]></artwork>
        <artwork><![CDATA[
Geohash Short (Format = 3)
30 bits + 2 bits padding
LAT error: ± 610 m
LONG max error: ± 305 m
]]></artwork>
      </section>
      <section anchor="simple-two-way-active-measurement-protocol-stamp-ltv">
        <name>Simple Two-Way Active Measurement Protocol (STAMP) LTV</name>
        <t>This is a porting to EIP of the STAMP implementation from <eref target="https://www.rfc-editor.org/rfc/rfc8972.html">RFC8972</eref>.</t>
        <t>The original implementation writes the STAMP data in the UDP payload, if the data is carried by EIP instead, the delay measurement can be performed in-band. This is true when the delay introduced by the reflector is not relevant for the purpose of the measurement. Indeed, the reflected STAMP data will be returned to the sender when another packet is available for piggy-backing the STAMP data.</t>
        <t>When the entire round-trip delay is relevant, at least the reflected packet should be sent out-of-band to achieve the smallest possible delay when the Reflector processes the packet.</t>
        <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 0|  Length   |             STAMP             |D|A|    RES    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   STAMP content (variable)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>D: Direction, set to 0 if it carries Sender data, 1 for Reflector data.</t>
        <t>A: Authenticated, set to 1 for Authenticated Mode.</t>
        <t>RES: Reserved, 6 bits set to 0.</t>
        <t>The STAMP content is variable. It changes depending on the Direction and Authenticated values.</t>
        <t>Following is an example of a Session-Sender STAMP Information Element in Unauthenticated Mode:</t>
        <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 0|  Length   |             STAMP             |D|A|    RES    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sequence Number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Timestamp                            |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Error Estimate        |             SSID              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                                                               |
   |                         MBZ (28 octets)                       |
   |                                                               |
   |                                                               |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                            TLVs                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>The detailed description of the remaining fields and of the other formats, for the Reflector and Authenticated mode, can be found in RFC8972.</t>
      </section>
    </section>
    <section anchor="code-assignment-for-eip-information-elements-aka-eip-ltvs">
      <name>Code assignment for EIP Information Elements (a.k.a. EIP LTVs)</name>
      <section anchor="sec-ltv-codes">
        <name>LTV Short Codes</name>
        <table anchor="ltv-codes">
          <name>Short Codes (1 bytes) for EIP LTVs</name>
          <thead>
            <tr>
              <th align="left">Information Element</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Short Identifier</td>
              <td align="left">0x01</td>
            </tr>
            <tr>
              <td align="left">Processing Accelerator</td>
              <td align="left">0x02</td>
            </tr>
            <tr>
              <td align="left">Timestamps</td>
              <td align="left">TBA</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-ext-ltv-codes">
        <name>LTV Extended Codes</name>
        <table anchor="ltv-ext-codes">
          <name>Extended Codes (2 bytes) for EIP LTVs</name>
          <thead>
            <tr>
              <th align="left">Information Element</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HMAC</td>
              <td align="left">0x0001</td>
            </tr>
            <tr>
              <td align="left">Compact Path Tracing (CPT)</td>
              <td align="left">0x0002</td>
            </tr>
            <tr>
              <td align="left">Long Identifier</td>
              <td align="left">0x0003</td>
            </tr>
            <tr>
              <td align="left">Geotagging</td>
              <td align="left">0x0004</td>
            </tr>
          </tbody>
        </table>
      </section>
    </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="security-considerations">
      <name>Security Considerations</name>
      <t>EIP introduces in-band information that may be inspected, inserted, or
updated by nodes along the packet path. As a consequence, unauthorized
access to, or modification of, EIP information can affect telemetry,
service behavior, or policy enforcement.</t>
      <t>For this reason, EIP is primarily intended for deployment in controlled
or limited domains, where the operator can manage protocol support and
trust relationships among participating nodes.</t>
      <t>The specific security implications may depend on the protocol container
used to transport EIP and on the semantics of the EIP Information
Elements carried in the packet.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This version of the document does not request IANA actions.</t>
      <t>Future versions may request IANA actions related to standalone EIP
transport codepoints or to EIP Information Element code assignments.
Other approaches to transport EIP, such as IOAM/GOB-based transport,
are handled by their corresponding specifications.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.filsfils-spring-path-tracing">
          <front>
            <title>Path Tracing in SRv6 networks</title>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Ahmed Abdelsalam" initials="A." surname="Abdelsalam">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Pablo Camarillo" initials="P." surname="Camarillo">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Mark Yufit" initials="M." surname="Yufit">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <author fullname="Yuanchao Su" initials="Y." surname="Su">
              <organization>Alibaba, Inc</organization>
            </author>
            <author fullname="Satoru Matsushima" initials="S." surname="Matsushima">
              <organization>SoftBank</organization>
            </author>
            <author fullname="Mike Valentine" initials="M." surname="Valentine">
              <organization>Goldman Sachs</organization>
            </author>
            <author fullname="Amit Dhamija" initials="" surname="Dhamija">
              <organization>Arrcus</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   Path Tracing provides a record of the packet path as a sequence of
   interface ids.  In addition, it provides a record of end-to-end
   delay, per-hop delay, and load on each egress interface along the
   packet delivery path.

   Path Tracing allows to trace 14 hops with only a 40-bytes IPv6 Hop-
   by-Hop extension header.

   Path Tracing supports fine grained timestamp.  It has been designed
   for linerate hardware implementation in the base pipeline.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-filsfils-spring-path-tracing-05"/>
        </reference>
        <reference anchor="I-D.draft-mayer-ioam-gob">
          <front>
            <title>Global Opaque Block for IOAM Pre-allocated Trace Option</title>
            <author fullname="Andrea Mayer" initials="A." surname="Mayer">
              <organization>Univ. of Rome Tor Vergata / CNIT / Common Net</organization>
            </author>
            <author fullname="Stefano Salsano" initials="S." surname="Salsano">
              <organization>Univ. of Rome Tor Vergata / CNIT</organization>
            </author>
            <date day="18" month="March" year="2026"/>
            <abstract>
              <t>   Extensible metadata carried within the IOAM Pre-allocated Trace
   Option (PTO) can support packet-level, flow-level, or path-level
   processing beyond per-node trace data.  This document defines the
   Global Opaque Block (GOB), an extension to the IOAM PTO that
   introduces a single pre-allocated global metadata region placed
   between the PTO fixed header and the node data list.  The GOB carries
   an explicit length and schema identifier, preserves the pre-allocated
   PTO processing model, and can be used to transport Extensible In-band
   Processing (EIP) Information Elements or other structured metadata
   formats.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mayer-ioam-gob-01"/>
        </reference>
        <reference anchor="I-D.draft-eip-arch">
          <front>
            <title>Extensible In-band Processing (EIP) Architecture and Framework</title>
            <author fullname="Stefano Salsano" initials="S." surname="Salsano">
              <organization>Univ. of Rome Tor Vergata / CNIT</organization>
            </author>
            <author fullname="Hesham ElBakoury" initials="H." surname="ElBakoury">
              <organization>Consultant</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica, I+D</organization>
            </author>
            <date day="16" month="March" year="2026"/>
            <abstract>
              <t>   Extensible In-band Processing (EIP) extends the functionality of the
   IPv6 protocol considering the needs of future Internet services and
   advanced in-band metadata processing.  This document discusses the
   architecture and framework of EIP.  Separate documents respectively
   analyze a number of use cases for EIP, provide protocol
   specifications for EIP, and describe the integration of EIP within
   the IOAM framework through the Global Opaque Block (GOB) of the IOAM
   Pre-allocated Trace Option.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-eip-arch-09"/>
        </reference>
        <reference anchor="id-eip-use-cases" target="https://eip-home.github.io/eip-headers/draft-eip-use-cases.txt">
          <front>
            <title>Extensible In-band Processing (EIP) Use Cases</title>
            <author initials="S." surname="Salsano" fullname="Stefano Salsano">
              <organization>Univ. of Rome Tor Vergata / CNIT</organization>
            </author>
            <author initials="H." surname="ElBakoury" fullname="Hesham ElBakoury">
              <organization>Consultant</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 859?>

<section numbered="false" anchor="acknowledgments-and-contributors">
      <name>Acknowledgments and Contributors</name>
      <t>The authors would like to thank the following people who contributed to this work.</t>
      <t>Giulio Sidoretti has contributed to the section on Compact Path Tracing and to a prototype eBPF-based implementation of EIP.</t>
      <t>Carmine Scarpitta has contributed to an early prototype implementation of EIP encoding in Linux.</t>
      <t>Hesham ElBakoury has contributed to the design of the EIP framework.</t>
      <t>Contributors' Addresses</t>
      <t>Hesham ElBakoury
Consultant
EMail: helbakoury@gmail.com</t>
      <t>Giulio Sidoretti
Univ. of Rome Tor Vergata / CNIT
EMail: giulio.sidoretti@uniroma2.it</t>
      <t>Carmine Scarpitta
Univ. of Rome Tor Vergata / CNIT (at the time of contribution)
Current affiliation: Cisco Systems
EMail: cscarpit@cisco.com</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+09/X7jtpH/8ylw3j8qN5IsyV7H0d3morW9Wf/O9u6ttdu7
S9MUoiCJZ4pUCNK2GifPcq9wr9Anu/kAQFCibG/rTffcus3aJPExGAzmC4NB
q9UK8iiPVV9sHd/kKtHRKFbiJGmNZDIWb7M0VFpHyVQ0jk/ebovXSo5VpsWR
mkRJlEdporcCORpl6gpbOHlrS2wFoczVNM2WfRElkzQIxmmYyDl0NM7kJG+p
aNGacdnWuGyt1ekEuhjNI+g1TfLlQmH9sVoo+CfJhXgmZKxT6Mx7u9UUWyeD
l/ArzeCvd8NX9OYYfgfRIuuLPCt03ut0vur0Apkp2ReDd8eD4DrNLqdZWiz6
4uLkW5EmAkYQXKolfBj3A9ESJ2+v9vG3wQ2UMOMLrlRSKCgjTANYUwgGGBqD
v+cyivsCxvlNCINrRzm8k1k464tZni/6OzuLVOdRkrbN551wGrVGUbKDFecy
2Vlk0RUgcQea2MGOonxWjKjF1iyd03uLQvgcQ1Gdc+MaWrfF2lyvHaV+hZ07
Z6E9y+dxEOgciOAHGacJDGqpdKDnMst/+LFIoau+SNJgEfXFd3kaNoVOszxT
Ew1/Lef4x/dBIIt8lmaIpJbgud+6yNVEJqm4gFmE31vwTcAEa/zUrr5Ns6lM
oj9JhAg+v0+iq7ZIJ+IdDEoMYaY/KCiRS7EjDs9PhlxJMda3NPfT1tziN0US
Zelc9gDPWz48g2QM9CDO5FJlPjCDtv/uI0HBX+l8DtRyrvIqXJL6a8+x7SpQ
wbNnz8QE2pqpeCGuYdJEPlOAzSSXN4BVpdzUmhkN0/lOKEfpzmUm5+P0Omll
kzAIkjSbA6RXRJ3vXh0efPl8rx8EuAq9Dyeto/YkijX+19JAasm0tZD5rJVn
MoQHW4bphOBtRamct6bpqPoNaYjoGt5GY3ostGqFUgOR0OA/hsO810ocYlXG
W0lC8NPiX/BzFzVtpqj1qbxvJl21B9JVHZCvlZ7JuTiOX8rLtMiWq1C+btd9
q8J5CIuyiGE55msQAbmMuPI3U3yFZMHNjIEj9EWv0+vRo1ZZpPQJkEHfNnKS
5CpLVN46wpn0WbObQSrKlOOqDf9jiB1/LKNxbbbzGyT4Vqsl5EgjweVBMJxF
WoCQKObI58eRDgsNZWkRcP84TyhiFlkKLCeNhYoVFtYCKQnKBdBUohfAiWzR
KIGWJhOVYZvIzIHqtBqXTRgo20FwkogFcLcoLGKZNaG5CjjIGw0wxBWJKVIX
DJumpYswYC/idbpojZYt+CXeLIilGsFBoJqi4kJNqfV3aZHjCuAiTSwTRNVO
pyqB6QtXMHFi1zSKLoOMtngDFbJALmCQMpxhA6koMQP1moCXMC7G2GcEJDDN
uAnHdE7eDM6CCXAVhSISXoGMm/Knb+N0JGMYlfyxUOJlnIaXovHtm5fbAHam
AGYdZtEIUBwlgVaAUSBCh0fE86G8UkBLKwiGv0EYxjHO2CiTsDJyGBkCCOie
qibiA8tHQC7RqMihAxgVVJkXMfXA9AKjaDNhzaPxOFbAVZHIs3RchDhEJDOe
Np54bLPQ3Fgos2wpIg+l+Uwy1YCog4GJxgwkNlMbIASWjt6GWokAjj6mt9dZ
BLAgYMWCkF0SH/QimPgFguAeiRgQIMKeoXrEnvjpp1Vu+vPP7cAsgKsIAZIi
ZDmD/Be6DvMCWiESc5N3PYvCGYE5UkIhBx6r8U4OnCLNVEmLGyFl2LzmeRp8
ONdlAUJKqF5kStMCshM9gT9w2ITejYsJh8AlAkv5pXpyF/U3cbwgX1JcAyXd
BZYuhRyPqRGg4TtWiIEeakVT6i+vkk0uL6EWrJ1UyDBMCxgYlsjUj0WUESTY
5EgFajKJwgifcUhbM5mNr3GmJ8CLk3G83BKNqK3aVBvKYvdYMARCwxai+YIH
RvolINs1AHBH6goXSAxMQtAyg+rwjZZ1otRYMwxInhoGDGJ324xrBDidRIBn
GNlMUis0zR5FzTx2VTICR9kBrLs8AuA8Sq6h4A2UgZ0ZinRo5yolGV7LpSaO
BG9xDSI1ehwjcNzxOvWpqJzUvuhuA/w0MmbCjthL9hxU2fM/04B7rt7w9MM9
3LodDB5EUYQdNF0EqP2kA7WBgANf5GyiaYsqZFARoMkg5S9l1Jacqe7bTLVk
DB8lTsAQRLEyyGoiOfjsvDKdVYWQJhVY7UV1NQ8dAgy4G8XiGl9eGTJSZmJn
sWxMjJb0a9U8I9j1DFRiW3iSwiCvcdom0RS4GMD7yy+/OGXqjp8vWvf87yGN
3FrY0UDEZ3gUR6hnnqrkxc3NbfCQnh4CyS38t5GQGlcyi5ARIFqSYj4yKzxW
yTSfbROkjwpJ/U+bfu7F2VODBAkuCDxCcDRYD3UH/te9JV4J6scGKLhV+PIq
ykBm7IoR8vUoqRDcJFLxuE/FWqID/7u4jBYimoBek5cyRo1NiS7aGznyunk0
neUinMlkCtwrF+pKgY40A76JJRvwmOQF8I/ltnBw+qKnZC2wUk8G5wOsZhkq
KG8oinBRXrMc6cJPB30JIoWOoDKVMyMZ0kiMthRpgqBzs3ssGp1Ol6tuo727
u/9Vr6XzJVD58c0CdAcSF1jaX3SoxmDjTPqkdi5zpS1zBLUl9+U+w0Ct/K5k
v+WXJg4BRCkMWZwOP4BEygpSlxjrvChb+EUylki3RK13ocIIdATsTIHooDah
nKmFNT4OWqz7EF5cL84ewohJKt7ZSlsMnMXiF373mrRHktzUFrNl7XHjTs36
65ovXdEDAt8Tz8W++FIciK/8dw9bo/U/JZMYMn+2z6eMb37+YJhny8wC2Nfy
r+q1unRHEc+Nt2Bx7LAeH7YaqaK3Aiur8y9ajr3nPffVaENtrEGKGPwflRdL
dsotNVA6MoSQgIImWr3ne8JbiiyTUOwMkWzFd8ZH9T1VOH8pwiJjex0AtCBb
7Q3nB01FVJsQULRYu8gNkB35PrLr6+t2JBPZTrPpjtSox5MM3IkWV/sttEvn
Ci241ef2Dfo+n2mm61bGdG28Ga08vtLbjli7vS+dNudzqTUAufAusVs3B/hy
15sSYm0bsMSU8A5sqewKalrC6fYOALtdId4nPETDwj8a673nz4VrvvKxZAhW
F8ZVfI2mOhvMUmh1p0Oi1MXAJFOgPKLSfPd6r3nXq3m3+xC+cN+7X08H7Frd
zDzjPz6D+YcOuI6zpwYJL91n7KMTg4q9OPTtRV53nmFrXSNWepJM9V1oaGAi
g0FunCbxMnCsiUzpNYO01nkYBIMHuXeaRgtDs8zzDgHvL61RaD5wehC2xS5/
4LMSRSdR3cL5/8ntKUAGGo1jDsa0Qi9QngZ3+3BDKCMBJ9aNa108NOR1H9NG
X4C1SQPPVVtT/36fQDOQCTugQLcGdEucHTPVpMlZZ+PGRcomfmDNdPGZmPiv
aNgwAnYprXrJgcsX8di4nMbcODrtADGeDzvYLCgQ4VV3Tkmyhv6b6OpC/zYo
0Al2gbovtJpbJxa65AQSVKxKEsmUcURSj+ys+NYoqK/udakHd4CcqRUHMo7U
dyKjMsYKF3ozN7pZNUxwXRd2OWSKupFhBqu6xvvmtXKnH4lcUCMGOuDWPKfb
AzcNqqsiuJ81oTuXFgSuamgBNIIC1oLUvGUCZLoDdGsWtgUCmZGYFNCLVSs9
92ppCBrd1ttd3ELChAFBGYW6LE4BljL22SJFbTpCxVjEMgNd2ohBIAGP09Tv
rbAlw4MBChyT4QdLxXUyIkcuO32bIo7mUW5RhkYtKpKl/YajILLBIlJMoyu0
9cqe0Uco0oxczgZ+bIg5exRH+RLfA9aZU6WwrOeAKJi4sWqlkwlAk18rRUAj
pQCnzKQmgDxkasIXmBm4p4AhFEM51VuOyW2kJYKnxJiO/oR0uLKRBujRKgbp
gMsyjQvrwuN9ibJf1yBwOOU3y4oJKC6wgsFYxg1smDhkDojDJnEMYw1npjI9
brM0cNizezLYJetAjEBjnCL0lm8iRI6Hro++aQ0kABkN9AZrcS1AW+uDjAu1
7bH7ROc45dAaCA4YBRYy5bksgPk74zuA+dERgKuYD3qr0c6Fk6e+c6J2gsz6
APhQLD57hlvtQDfe+hLPum4ZmWInZuXaIqVbw+KbBmydKKi6kqnK3Mf/hAsT
MJuGuUKls1jgFKCZURJ+PltrbftzswweR/f0R4ne3s6tcwchqVndFJ9DY+t/
At1TVLRgv7NGuuAdjKZw1oFnDzy+FvzE5xctPVxVdrtV2Jk2WFyZ6Sc3v2Tk
1PISx+W7vQNyVpEP0zEXVBR2e1/ue996zDE28rDeJh6mFQx/7HVP+0DkaiOR
YfY/iQsBvyI+RvA50RPhpip+J68aIwx1+7Fxus4lK7f73Bg5Rdifu/S9taYT
OwcVt5k/S8Aud3vcVJHgv429luGf9Ly9wmVN80ZBZA67v3uz9wL9dsxmGyHq
HE7/8CFAVnue5sYTfT1jJaHCvzvNBwKuyfA0KnbTGU516iyUncsxW6jY1p6F
lLbBkRCy9Nrt2tFenYbhxen1E5UN0NhtiXVRlQzeit4gHJ4c73hq89sVner8
ir9v2fD05re7Nr9misdpgdtFG2b6UbH6+czvA2R/7/n+uuxviv3nz3f31wQ/
ydveH3p75ZddoxKQOFxXIkgOk8sExHjGVrnUYutihuYflWcPQVm3tCE3VT62
k1hfvzQ7N7ZwRNRQrntuiPWaI1AaKH7FhMU59cbXbYxLmIxpXwUye8PPek3o
NpRomHK05Bz9H5NY3ZAX2LhXjRmM+7hz9MHMoin6MkoXSK01STY6+82OHhSI
JxqyfdmWbQf9Ng309dngkLeoB7HZkvM9EX1xkICJ/OboTR+dKiMaiUXoXrLN
KLhUSxj/a6ln8OtMaS2nSgwKQALobGazkNZZA7vbpuUA6Hjzdnjy5nxwShQ1
kza02AUGmSDnp6hkkBAquVS9EAo9ISTeHV8cv/twfPTpmJT/Q2Txb2opTo5A
6zVeg+2agr/GhtCDfnZ27huO22irG8cDGvk4SB6JcdcSRd+OCDfYf/opzq9Q
prWIgf38M+8bgLVFL/Gj+QCr1VIctFA1iCwfwMp7LWacZOQ0oXvfzcwGG9gE
/YA5bpHkJiwcmdgkS+fsGGNrD42HhkdNaDRYUgYgDsi8agtx9v5iiDylQxwX
/dzmyBmU96pDlYEwVhjYQbTPYjglmU0AMrwCSybCc2gR2JDs0QZTqKVnErk/
MCtivTKeplmUz+Zuv4D2Q6yJiZ2avqHTf2MOBw/odhfW3U+y5sAsjyaGgMwx
UBisRn7lwpYxvNtZtygQzJ8O7YyjbxkCGxnwAUzFiWWgeAiBCg0s4LAgcbtj
lGaAZQxYQNxrRYH1otfutnt0kubVocDYAaAJE0VAW0fA+0lUWDxl2sg0cuJ7
b605q01IRGXHxJwfwT0boBOJkWskiZeVankamBYxPGFLx1Go+HCgFIeFztM5
hoiyB3K1potq2DokZ3mYezCDtB6CphDGko6mWPFXzj0fgaBdkKZgfQMRe5oC
xXpDb5tv3is8lyi6xpNQKbpamTo5v7Gughg/N86/ftEFWl8rawY3KTLasfC2
YzFunWPF7TapjUSze0p82KC2SX8XqUSaBkGuktAuEXbI49qSTCPeNAcY3F7O
ket7IcNLXGqZ/9Jrg1QQQ0urOGS94glK740ugrB0ETAyfGy4n8dU7P2e++sz
4EmINemwUTIM11xlVzWRdmuSAqO+/qSy1G03Ms0Gq0D1jTYs3fIq6bCJFDwp
YvZ/GRcamiF+yMHK0uMN3XZJhysr5MmSYZ0n4w4tkr6DPmdC3j+d6lY3B8KL
c1qzdh95QdQpTKvw/FWq0/0LxPfM1i4W9IsfmePpbFhZ1v1jIWNkwiXB5xTC
CK1Fvhh6uUTJJkETMesJ1147GCRujlcEqfWES2/T0m77rcyNhZ9UvBXUmeNC
K2/7uPdawofQrrbZ8BQnz9Nswjct0C9gjfRdLMhKL16pLpS6sPLt3BjLGGVV
FunVFEHpv6lxoh8bXVnDRNhH7oUHrDYeffaBlY/MeHB7rSt4c+0HWDI/wHJ5
sbb0b0u2g/P26W3Gi6reU1/osRnPXYRzF81U4+Oki9PHdgJvRf09EtfXH0lc
vSdIXOuQ/E3lK1mOw2iuwOCfL8ho7DPxu5cbw+acdZLGFICUR3M+8l4W94+c
BnzKW5JFRWFWbIxgWgwQ4GmRhWBtQpE8SiTHT+Lp+WyuxrRTTNXxHLxnWdUG
/D3JdXS/keLNIsbQvnVnLj4d9a506fZE7toJ+XTmkgfNww0lJPWtjajbqlo2
FMTQNAqaXsR0pAjt++vU+L4CKqK9w1f3ebwf7fCVm5zykBU8/yVkYCQgNkPW
nXVvhDOJHhuQZ3+qZg6xEQmWADAaz6EUWnKsZEga8kupQSKC8vA3Qc0L5gC3
p8fntyY4+fbd8cXHoAaq9lc8rnS4MLcD5YF1UPftkl4cdFDDtXtuXfywZx/w
y4F5oOYZKsrMhe7CtSwt9jhZpSvqANlbouGJehDwLz/ht26Hn7oEFpYs6Klr
StIT1cMS/GTbnCPMVO98+FY0SHNGY+PAKv1d7v80SooboRYpIKOmFI0OcN13
h6GadLwJllBHdGA9s88Rxyg9AYRrEoeNBDlC2mmye5hPTWpoPy+pDQqaWTHY
bvLcUOyLjVNn5Y2O5E0zmWAoLcaqQl1CxOcmQu77edACuO/HHIgW9hBV9RB9
r/OIIoSEGba6xz1XJEnNUsXyiB7+/ZiQrOBgdWZXv6/O8qeDZPceSPZ+NUie
3wPJ/q8GyZf3QHLwaSAhrnX+EvgC75qB7PeZRoNYxjYLQcezKN69YVgQaq1a
F3OuL/MAz96jPitCPFXEjk+9TMJZliZQkZOQYAiBvInmxVyoLMNIBfH77+b6
998bBcQdQAM9GFTiDHRwYLjqSsYF6sszPnkFv0CpjvGMGjtgG/vPn7eOt01b
rAEhS8w8oeJFWWDQPDmYcFMjF7HUOYPO6NBLnat5QKwUMaCLEW3r2ORXTn0v
WTRvMohzbITDLewOmbWPzR4ZeXrpNPQdJ3fcThYqYYsiwwBWVLowO43WaUid
a8w/F5mBYCP2UNvYxkL62YdSEhbQJEZ4BDmeYclNjipTegvzAUJrSs632IAx
YpltmiAwu2ei2+72AY5Lf7+FsAedcDorA1rFZqoC1MRUEhxza5ogU8rNEZ0y
cmegakDoMQg4KKrIB9vPkUL0xwASBL3tclsJvzFSSBhT6BGgWFGuoYc09lmJ
2MdhWA/ZSqqo5/hzEabmzeOyTjxzeUjJs0xPZAv80BXVZ0Lr7atbUMvDS44A
UNknYOLDch2JONIPDZ17bEgO2VtBK78kz4cA9JjiBP8ZspdrYGQBWK2UN+YM
pIWdqb44a7pp6vNxN9FIijll1WSPiG3nLB0XcaH9yvPqK9eErXJUOlvY227e
23O3x5QnLl6WDdhEKX4rfum/AAhDFygOGnp7rasyco6Gy+jjJdMXJxOzel6I
zg3YJ5Yn+XJlAXY6H7i0GW/KoLTN4XUcU+e1fy6+5j7IrDGb+hw+c06xFl6z
dHaZ6lFassmECc4waAebEYRektZBGMLHTOZpZqWfskKNRUykbbxddYsfgw5N
zKDls+acteHO6MeYRDd0slu1LhP0PRuTUqcmX44TqubcOItHyZGOZa69a7m0
54QFnROm4mrsMnJgVAj5VfEYKArIDEfXDmxmk1XRjflBYFXGZf49/+D6qMg5
IkKnk3zlq22Kjmai5tQOKsEr0huti58AHNVM2OZpqMWKhZnDZO+vbL2lCAtv
E1xJBMYdjiT9EZcEgEfi07iSzIyWwBLskX/0coGHY1G7m/m4+dys2Mdh4iRi
Sbzi3iJ6uGDAbcZ62z6vTgWujJOjx2bilZ77XtAMSfuP80HeATWngTDhcX5w
RWQPhfN+Ex0Jx0NTLasncmDYYTpfYKDVW9RTh5x/WjQO3w63PQ3bMBXDSKCA
O5/LOYwF5TAGxZeSF9yV2nrLpDm4qwzhwvBQSkxqEzC0xUlulXNNe9uolAAs
W2eHR1uicRaNFylUpUFlvBhR39qu+naqmqfRSUdLo/lSwFOUmyyzhgNhbl6D
G2tFPM0FxMHKLjNOaUQ7Ohn60N+SmL4d3L4+O324n/RBkNTg6mN+CJJfNn8H
ihGYpw0IaPPPL48GySMxlXIW+tXon1Wm8sBAF3a5c+LCprUgjUvZ89fTuXyY
eQ4aroQIV/zOiFSTGBwTSPT9gwGeO7eLIFU+oWoIArnDyR2uIwomA5rqm6hZ
Pv7p3MEdbKBIZKUJUCUpr6tYf027MpjVWlVS+fmBuXwEFZq1Ib7t3wd/xA+m
7AsM2z0VX2Bi299ap/UfodCZvKlrz9rffnzwBud2x7CS9zHwGLfQGkYD7nQ6
2wEitrcnXtLJ1F3rMS+d4A3aYNoGWiWWPME8MxjO3+3Z96epHGN4Pz6WVsZ6
Z13uDMDmzvZqOut2NvS2X9cbPFLdWQQiotHzIBgakuFliFqos6xQ6Wk/TFag
F2oOJAfa0O6+TXowoShWbLw8s0TogFcuO0WR0aZwE1NKG5dUNae0rDsno8vE
DFXVywFiE938DgMbEQaQnbt2v+FalQVFd5cAMuDmKWZaQYC/sgev/Sb2apsA
6Y/JBj1TCIo3qUXn5OmsdrDXKdN2dHtrXw+8c9/PVlYqrieqUKc5PF2ZuH7K
8B8y8a+E5P8FToQ5f3Pnz+eEk/IMqKqVhMAvaEB8QpS1B8nsDtmJJ8mJEkxu
Ky9Bj6tdifA8cOlm7LaEk3zIbo85H89KxA6w3zikSyS0J4lNnOr1LI2d2rGa
AauU2Qxgoq4pXtM0x+d3sGRCmZ/Iia2NCayuorTQBMBvNB/+oTbYX1N6z/+7
0LlNNeTpCEZso78Iw3A1xeF6wXvEecmUMJnQqEWTp4ED2CuHRY0LAMz16Mqe
7KlOgb0PwbnjDO4SfweG449dxFMJsKZ0tYh/3O3BkKyZghUeGc9BhNkl7JxS
EiSds/6GvP9bBUJhOgW4atk9eSrfHL0xqRVdeeOJoOxK5fUPnLGJ8piquUS6
dMn7ynMvT1aC1FhVHrYqnODi9oiiT9q3eBb003PLt6kmL0FDb4vGhzuOTj4m
j/IGX0cSj2PggMLdoNYpgnCbfXlmtIalGL7AJUBz5f3FIDgyVT0/+F31fXd5
2YiN1qk3sVQCkBryJ/+f81OYpI3pNJOLGfDvWNhUzA29vdmUgC/eXNLdVews
2dgcHVlAx4q2Vswc2R4u15UIfmfGBLc2b+OtOLYjuIW35HET/17gPOI+NQau
9sUp9JMDmmyCnSa9r7yi2t2V2uQt86qbODu/ug29w+o9qg5EBXbEjGNm9zv8
ubGQ4zEjeJ9sEr2NNXYrNdg5t7texcAIVYISOBvbtpLD02bAns/DGFOFxlFC
V8XhdYN6Z8pdtfAE43wUL9vl4CgLsBsXurF/dH2NljZ1o91ZwGMlLE2vYCq/
6zRF93tqwswYxZ9Dtd4fdlm5J3QYmBu7vS92ey8sJqgelQVs0lKZlSk/0ab7
orv/wuKAspaCbCzw5rC83CCvnuQHEWwjG0EY/0AxvS/EJE7TrMEw/VY04AtY
0191tsWO6B50xHYA5TaVBTr9Akth4d19LEwtawLVKw5D2Nj0psLrbVv2RHRh
EGH9rKBQcDSy2x8xK7oy/yppX0eX0QJ1HcqCjk87pknGTHWZiIZZUmCDbwdm
bnCqBA8G/wD+E5wOhhzv0Rd//l/Ra++K+Tw4fXP+LUaDeF/22vv4xRn6K8vK
6w4MfrsK0YDn7vCP9e66z6G7ut52O8+F11llEZY99WBgZnl9IcwIcZmhIrHS
0QGDX9PVVzzktb5Wh7ULw3Kd9e7qbB/M4/tGharNBV3WIYbXaet3cikGlA1T
nCmpC5MX9a1Nedu4GA7O3voe9Ir3HFYxyjajT1PZ8iYQk28ftUBKBf/Vl73v
G35m/WwCgm4c5WlGlAWP+B+Wo6tD7T1TaRZNSbdbadlThblne2YN37w/egtY
WsapHDethsjftbuGYrQ01/tRck1OxkIxRGLu4cLuiqkM10mZgrrtbjAArVWV
uc+4hcjcF1fuh2ZqghuiaWY16EzF6kqaLLT56g6o8oFAb+BYKQOjaQmXQDnu
MpQpL7KEGT5vwya4f0bg2YTS5kgCTuWVjGLyU9H2QDSdLmFw4aXb3nUdWC9Q
XsZRZWmRjFt5Fi3soLUbFOUViBWGUVVBNn2XWZ5JSQBNqZVOOLU3ua7wXjKz
azjHDUhoxwWCcWcO4e8cYu3OpfYihP6+9HD64UmraLtHtwMqg0r442m/G/Rw
7n/tmERtBpPH1MNBzz2KMg468CKuYfVHZRT1Ba8HJGlQNojsSwIyhH6Hvx/L
rzv81/VYo8956uzQLScv46HFDW8I0p0sqIihN4N2J006RTsqUnGq3WMcJDk4
XznNhSW88qPMLxTlJWmZ0TMctZkVE7wGZG2ATzmh0We6ihiIlYOXG35+FS9k
uW9yx8/tZ+RArEByzLHFeNkrOu1sT5V+Ly44euLTQvJX4OQTN3L28r9Eo3dw
R+asXwuS/5eNPAqd3OnBp+Tvd//UXwX40ZC4bU1OAwVigN0DCz/8rkxebP2z
pd+dNU1334bVcUtZuy7K2K1vkw2hconiyJgOnDaQEvKVF3G5zIYPTR74U188
q0YmoUGEzlw2uyhDIfqF6mTjLXePHpe1nDVIQZ2bTpe+bgiTM2V6VMY7CgQP
LwfwEoFzgJkL719seYCBXWs2sSspHbd+DsqRVT2HdnQu8eRDB8hbRbcUC2pG
dUeAlSnHI1s95W0+7tJHz1dq3u95I3e+UDv4KtzlSZP18SNtJHhXHV0Ii8RV
ppjUNuGjuE4zINMtTNy21eTf4vwN/f3u+N/fn7w7PsK/L14PTk/dH4EpcfH6
zfvTo/Kvsubhm7Oz4/MjrgxvReVVsHU2+M8tzmi9ZfNHbtXfvcR3f5BHbAGm
HF1wGFQ8cy8P3/75f7qYGe2fYGn0ut2vfv7ZPBx0v9yDB7SMmub263hpHjFL
GV7nriSnb6Cr1xZRLmPdrF6uBivtt98hZr7vi38ZhYvu3tfmBQ648tLirPKS
cLb+Zq0yI7HmVU03DpuV9yuYrsI7+M/Ks8W79/Jf/pVuvW51D/71a77tUoUF
HXY6NFdoSKYeTi9nLXrtLqFau+Ydr3Ch6aM7RtAOsGF5mCkuKBZje2/iHVkC
2mLAV2gnNpS3aUKEUjySjBfuIHcBUmny6Z1xeZYonZg7tTzIKNUaBWeLnGKa
8mzZDNBQiUK8qxHv7k45ld0ijaNwCfY91A5t9NPafU3mxpxFBqpUFsXk7OBV
Sqn21CJOl9aYoMti8CzCOIBvFBGPsoQCOOmedZUpkx/ecEkEdy4TzMbqbl6y
t65gOsE8Q7d+pmKenFkEHFTOEY98YUwEOKTLy02y2aGflU7bGUZfkkGapmlj
o8taXOvXggV2Z2PlQu6yjjb7PtqPTvfYbOBde8MOKOOrco6KZ3xb5Sr1kZ/p
SmXaE72OaYxTZd1JQCzaXnhJ5iKZhQXlTDLVeax1RRmjJulS5a6yoBwx8mYK
TOWsfOkm2cubXN6Fme2A76q782ooe5vTyk1OrlST0hvifUmxc6tFQDB4KBAK
sMlsp1paBAStVkugTwvxOwgxMB2qT8vLwihFYzQqgPg0SCIOP1LjF1sT4I0K
hcvQRCBAAZAg6LeKo0vFHjaZXK5sHCxUinb39Sxl6semrT8uwgaySwDr26iI
o1RcROMU+HweUdTYWnnlUmNSNuIaAWw9ZkyyFFmvXr59ZXC34jLlXJPQ+6HM
5sj7LoAUQQjksq57dCLIDNZ32XRte+XuHxA0nY3HmEelZ3IOBPFSXqYF3jBb
Pz5YpEAk/pIpo6QxTLScm9+IwXhMwdB6vXksqYsYb8kLjs9AY+2DLItH/PGb
KbCbGPev1vEevE+iKzpn9A5PIwyBrj+obIou1R1xeH4ytM1NqWJb24rfFEmU
AR/rtaO8BqH3tgvqae5yHGA5hxzcnw0Ozf21wLmjOCJ098VhpEOAnQ6jagtY
qLnPb0L8SqP8P5uqY+WSjQAA

-->

</rfc>
