<?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.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pinkert-ippm-inter-layer-protocol-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="I-L-Proto">Inter-layer Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-pinkert-ippm-inter-layer-protocol-01"/>
    <author fullname="Tjeerd J. Pinkert">
      <organization>Siemens Mobility GmbH</organization>
      <address>
        <postal>
          <street>Ackerstrasse 22</street>
          <city>Braunschweig</city>
          <code>38126</code>
          <country>Germany</country>
        </postal>
        <email>tjeerd.pinkert@siemens.com</email>
        <uri>https://www.mobility.siemens.com</uri>
      </address>
    </author>
    <date year="2026" month="April" day="30"/>
    <area>Operations and Management</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>extension</keyword>
    <keyword>ip header</keyword>
    <keyword>ip option</keyword>
    <abstract>
      <?line 43?>

<t>This document describes an inter-layer protocol, that can be used to insert an
arbitrary number of headers between the internet protocol (IPv4, IPv6) header
and a layer four header like the UDP or TCP header. By doing so, it consumes
part of the space available for IP payload data. It is, in particular, useful
to extend the space reserved for IP options as defined in the IPv4 protocol <xref target="RFC791"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://DutchyatWork.github.io/rfc-draft-inter-layer-protocol/draft-pinkert-ippm-inter-layer-protocol.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-pinkert-ippm-inter-layer-protocol/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/DutchyatWork/rfc-draft-inter-layer-protocol"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The inter-layer protocol is a somewhat dirty protocol. A handler for it is
written as part of the lower protocol layer. The inter-layer protocol is
identified by a protocol identifier at that layer.</t>
      <t>In the original scope the protocol was designed to be placed in between the IP
layer and a transport layer protocol like UDP or TCP. In that scope an IP
protocol number is to be assigned to this protocol by IANA.</t>
      <t>The protocol handler takes over from the IP protocol handler when the IP
Protocol indicates the inter-layer protocol. Since inter-layer protocol blocks,
may be concatenated, the protocol handler keeps parsing inter-layer protocol
blocks, until the next protocol field (IP Protocol) identifies a different
next layer protocol (typically UDP or TCP). It hands back control to the IP
handler, that invokes the next protocol handler.</t>
      <t>Since the inter-layer protocol is highly related to the lower layer handler,
another implementation option, is an extension of the lower layer handler, in
the scope of this document, this would be the IPv4 protocol handler.</t>
      <t>One of the goals of the inter-layer protocol, is to open up freely useable
space / header extension, of the lower layer protocol. This can be flexibly
used if the lower layer protocol has no, or not enough, flexibility in the
protocol header. In case of the IPv4 header, the use of IPv4 options is
possible, but the space in the IPv4 header for IP options is limited to 10
words, or 40 octets, of data. For some applications this may simply be to
limited.</t>
      <t>E.g., routing options requesting routers to place a tag in an IPv4 option, may
allow for only 9 router IP addresses. In an inter-layer implementation, this
space can be much larger, e.g., allowing 100 routers to place their addresses
in the table. Another use case, can be the use of IP options that have a
native length that extends beyond 10 words. Securing IP option contents by use
of encryption, or digital signatures, may be such a case. A ciphertext of 40
octets may already be limited for use of state-of-the-art encryption
methods.</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 <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="generic-properties-of-an-inter-layer-protocol-in-the-stack">
      <name>Generic properties of an inter-layer protocol in the stack</name>
      <t>The inter-layer protocol is designated by use of the next protocol number to
implement a recursive / repetitive block structure between the lower layer
and upper layer protocol. The entire data structure can, however, not grow
beyond the boundary set by the upper data unit size of the lower layer
protocol. In case of the IPv4 protocol that upper limit is 64 kilobytes.</t>
      <t>An inter-layer protocol header <bcp14>MUST</bcp14> at least contain the following to
function:</t>
      <ol spacing="normal" type="1"><li>
          <t>A field repeating the lower protocol number,
          </t>
          <ul spacing="normal">
            <li>
              <t>In case of IPv4, the Protocol field</t>
            </li>
          </ul>
        </li>
        <li>
          <t>A field indicating the length of the inter-layer protocol block
          </t>
          <ul spacing="normal">
            <li>
              <t>The length includes the header of this block.</t>
            </li>
            <li>
              <t>The length can be indicated in bits, octets, or words as is seen fit by
the protocol designer.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>A field indicating the type of contents of the inter-layer data,
          </t>
          <ul spacing="normal">
            <li>
              <t>In some cases, the type is the data.</t>
            </li>
            <li>
              <t>In other cases, the type specifies which parser is to be used for the
inter-layer data.</t>
            </li>
          </ul>
        </li>
      </ol>
      <t>The following fields COULD be contained:</t>
      <ol spacing="normal" type="1"><li>
          <t>An (optional) inter-layer user data block,</t>
        </li>
        <li>
          <t>An (optional) Checksum block,</t>
        </li>
      </ol>
      <t>In many cases the checksum block can be skipped, since the lower layer
protocol already includes a checksum over the protocol data unit transported.
This checksum then includes the data of the inter-layer blocks, which are not
seen separately from the upper layer protocol data unit.</t>
      <t>The length of the lower layer protocol data unit is the length of the upper
layer protocol data unit plus the length of all inter-layer protocol blocks.</t>
    </section>
    <section anchor="inter-layer-protocol-for-ipv4">
      <name>Inter-layer protocol for IPv4</name>
      <t>It is proposed to shape the inter-layer header for the IPv4 protocol as
follows. A 10-bit inter-layer protocol type allows for 1024 inter-layer
protocol types. Since it is proposed to reuse the IP option types, 256 of
these protocol numbers are already taken, still leaving sufficient space for
new protocol definitions.</t>
      <t>The length is defined in octets, a 16-bit length identifier would allow to use
the entire IP user data space as inter-layer space. This is not deemed useful.
A length of 16 kbyte, is deemed sufficient. Then 8 bits are left for the IP
Protocol number, needed to jump back from parsing inter-layer protocol blocks
to the normal protocol stack parsing. A 16-bit checksum, such as used in the
UDP protocol is the last part of the inter-layer protocol data unit, and is
included in the length of the protocol data unit. The inter-layer data is not
necessarily word aligned. The total length indication is typically used by the
protocol handlers to indicate the start position of the next protocol data
unit.</t>
      <t>The inter protocol data unit now looks as follows. The minimum length is 4,
when only the header is present.</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | IL Protocol type  |        Total length       |  IP Protocol  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 .                                                               .
 .                        Inter-layer data                       .
 .                                                               .
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |          Checksum             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>IL Protocol type (10 bits):</t>
      <ul empty="true">
        <li>
          <t>inter-layer protocol type, designates how to interpret the inter-layer data
defined by a separate inter-layer protocol specification.</t>
        </li>
      </ul>
      <t>Total length (14 bits):</t>
      <ul empty="true">
        <li>
          <t>Length of the inter-layer protocol unit in words.</t>
        </li>
      </ul>
      <t>IP Protocol (8 bits):</t>
      <ul empty="true">
        <li>
          <t>IP protocol type of the next IP header part.</t>
        </li>
      </ul>
      <t>Inter-layer data:</t>
      <ul empty="true">
        <li>
          <t>inter-layer protocol specific data part defined by a separate inter-layer
protocol specification.</t>
        </li>
      </ul>
      <t>Checksum (16 bits):</t>
      <ul empty="true">
        <li>
          <t>16-bit checksum over the inter-layer protocol data unit.</t>
        </li>
      </ul>
    </section>
    <section anchor="ipv4-inter-layer-protocol-usage">
      <name>IPv4 inter-layer protocol usage.</name>
      <t>In the figure below an IP header with a UDP packet is depicted.</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |Version|  IHL  |Type of Service|          Total Length         |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |         Identification        |Flags|      Fragment Offset    |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |  Time to Live |Protocol = 0x11|         Header Checksum       |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                       Source Address                          |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                    Destination Address                        |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                    Options                    |    Padding    |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Source Port           |        Destination Port       |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   UDP
 |             Length            |           Checksum            |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   UDP
 |                                                               |   UDP
 .                       UDP data octets                         .   UDP
 |                                                               |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>We see that the Protocol number in the IP protocol header indicates the use of
the UDP protocol as next protocol in the stack. The IP protocol handler will
hand the IP user data to the UDP handler based on that number.</t>
      <t>For the inter-layer protocol, it would look as follows. We assume the IL
Protocol number for the IPv4 Protocol field is 0xFF. The IL protocol types are
taken as 0xFFE and 0xFFF. Each of these protocols has an own handler. Protocol
0x11 is the UDP protocol again.</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |Version|  IHL  |Type of Service|          Total Length         |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |         Identification        |Flags|      Fragment Offset    |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |  Time to Live |Protocol = 0xFF|         Header Checksum       |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                       Source Address                          |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                    Destination Address                        |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   IPv4
 |                    Options                    |    Padding    |   IPv4
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |IL Protocol = 0xFFF|       Total length        |Protocol = 0xFF|   ILP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ILP
 |                                                               |   ILP
 .       Inter-layer data for protocol number 0xFFF              .   ILP
 |                                                               |   ILP
 |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ILP
 |                               |            Checksum           |   ILP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |IL Protocol = 0xFFE|       Total length        |Protocol = 0x11|   ILP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ILP
 |                                                               |   ILP
 .       Inter-layer data for protocol number 0xFFE              .   ILP
 |                                                               |   ILP
 |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ILP
 |                               |            Checksum           |   ILP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Source Port           |        Destination Port       |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   UDP
 |             Length            |           Checksum            |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   UDP
 |                                                               |   UDP
 .                       UDP data octets                         .   UDP
 |                                                               |   UDP
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>In the IP header, the protocol type 0xFF hands control for the next layer
protocol to the inter-layer protocol handler. This handler interprets the first
block of inter-layer protocol data. It then reads the IP Protocol number from
the inter-layer protocol header, the next protocol being 0xFF. Thus the
inter-layer protocol handler also interprets the next block of inter-layer
protocol data. After that it reads the IP Protocol number from the header of
the second block of inter-layer protocol data, it being 0x11. The inter-layer
protocol handler knows that no more inter-layer blocks of data are to be
expected, and either hands control back to the IP layer handler, or to the
next layer handler. These make the decision based on the last Protocol type
handed to them by the inter-layer protocol layer handler, that the UDP protocol
handler must be invoked.</t>
      <t>Note that for convenience the inter-layer header blocks are word aligned in the
drawing. This must not be the case in reality.</t>
    </section>
    <section anchor="encoding-existing-ip-options-in-the-inter-layer-block">
      <name>Encoding existing IP options in the inter-layer block.</name>
      <t>One of the applications of the inter-layer protocol is a redefinition of IP
options to reach more flexibility. Since the IP option type is encoded in one
byte, it is proposed to use the 0x0xx block of codes for the already specified
IP options. For the one octet IP options (option type only) the inter-layer
length becomes 6 octets. E.g., the No Operation IP option <xref target="RFC791"/> would be
encoded as follows in the inter-layer protocol.</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 0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 1 0 1|  IP Protocol  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |            Checksum           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>The next layer protocol being left open, and the checksum correctly calculated
over the first 4 octets.</t>
      <t>The record route option with a storage space of 64 octets of IP addresses
would look as follows. We encode the length octet in the Total length field of
the inter-layer protocol data unit.</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 0 0 0 0 0 1 1 1|    Total length = 0x47    |  IP Protocol  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    pointer    |    IP address 1                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |               |    IP address 2                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 .               .                                               .
 .               .                                               .
 .               .                                               .
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |               |            Checksum           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <t>Also, here it must be noted that the option data are not aligned. However, this
should not be a problem in modern computer systems that have sufficient
processing power.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>No special considerations are needed regarding this protocol. It has no
fundamental differences to known protocols without security such as IPv4,
IPv6, UDP, or TCP.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests an IP Protocol number to be assigned by IANA with the
following properties:</t>
      <ul spacing="normal">
        <li>
          <t>keyword: I-L-Proto</t>
        </li>
        <li>
          <t>Protocol: Inter-Layer Protocol</t>
        </li>
      </ul>
      <t>It also requests the creation of a registry for Inter-Layer Protocol numbers.
Table 00 of this registry is to be reserved for use with existing IP option
numbers as listed in the IP Option Numbers registry.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC791">
        <front>
          <title>Internet Protocol</title>
          <author fullname="J. Postel" initials="J." surname="Postel"/>
          <date month="September" year="1981"/>
        </front>
        <seriesInfo name="STD" value="5"/>
        <seriesInfo name="RFC" value="791"/>
        <seriesInfo name="DOI" value="10.17487/RFC0791"/>
      </reference>
      <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
      </referencegroup>
    </references>
    <?line 364?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Tjeerd Pinkert wants to thank Gert Bolz, and Benjamin Schilling for their
support of the hybrid network measurements innovation project, and Sascha
Liebscher, Achim Willers, Tobias Grosch, and Jaime Lazaro Calderon for their
support to make this work possible within Siemens Mobility.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
L0UAAA==

-->

</rfc>
