<?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.36 (Ruby 3.2.3) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bhatti-ilnp-ip6-apps-00" category="exp" submissionType="independent" updates="6740, 6741, 6748" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="ILNP IPv6 apps">ILNP usage by IPv6 applications</title>
    <seriesInfo name="Internet-Draft" value="draft-bhatti-ilnp-ip6-apps-00"/>
    <author initials="S. N." surname="Bhatti" fullname="Saleem N. Bhatti">
      <organization>University of St Andrews, UK</organization>
      <address>
        <email>saleem@st-andrews.ac.uk</email>
      </address>
    </author>
    <author initials="G. T." surname="Haywood" fullname="Gregor T. Haywood">
      <organization>Abertay University, UK</organization>
      <address>
        <email>g.haywood@abertay.ac.uk</email>
      </address>
    </author>
    <author initials="R." surname="Yanagida" fullname="Ryo Yanagida">
      <organization>University of St Andrews, UK</organization>
      <address>
        <email>ryo@htonl.net</email>
      </address>
    </author>
    <author initials="R. W." surname="Grimes" fullname="Rodney W. Grimes">
      <organization>Independent, USA</organization>
      <address>
        <email>rgrimes@FreeBSD.org</email>
      </address>
    </author>
    <date year="2026" month="May" day="08"/>
    <area>Network</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>Identifier Locator Network Protocol (ILNP)</keyword>
    <keyword>Identifier-Locator Vector (I-LV)</keyword>
    <keyword>Locator (L64)</keyword>
    <keyword>Node Identifier (NID)</keyword>
    <keyword>DNS</keyword>
    <abstract>
      <?line 137?>

<t>The Identifier Locator Network Protocol (ILNP) for IPv6 is described in Experimental RFCs 6740-6744.
ILNP uses a different architecture to IPv6 but is implemented to work with IPv6.
This document describes how unmodified IPv6 applications running on an ILNP-capable node can make use of ILNP.
This document updates RFC6740, RFC6741, RFC6748.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bhatti-ilnp-ip6-apps/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Network Working Group mailing list (<eref target="mailto:saleem@st-andrews.ac.uk"/>).
      </t>
    </note>
  </front>
  <middle>
    <?line 144?>

<section anchor="s-introduction">
      <name>Introduction</name>
      <t>ILNP is designed to be backwards compatible "on-the-wire" with IPv6, and to be incrementally deployable such that only nodes that need to use ILNP need to be modified, typically end-systems only. No modifications are required to switches or routers.
Additionally, ILNP is designed to be backwards compatible with <em>IPv6 applications</em>.
For many IPv6 applications, there should be no requirements for re-engineering or re-compilation of existing program binaries: existing IPv6 programs should be able to run on a node that has been updated with an ILNP-capable network stack.</t>
      <t>When an IPv6 application uses ILNP communication, it is important that such usage is:</t>
      <ul spacing="normal">
        <li>
          <t><em>intentional</em>: comes from explicit actions taken to use ILNP, e.g. there is a clear choice about the use of ILNP communication for IPv6 applications from systems configuration; and</t>
        </li>
        <li>
          <t><em>predictable</em>: avoids surprises, as much as is possible, from the use of ILNP, e.g. that ILNP communication does not result in the IPv6 application entering unsupported states or undesirable modes of operation.</t>
        </li>
      </ul>
      <t>However, even with carefully planned and intentional usage, the wide diversity of applications means that it is possible that the behaviour of some applications is not predictable.</t>
      <t>ILNP is defined for use with IPv6 and for use with IPv4, but all references in this document to ILNP are for IPv6 only.</t>
      <section anchor="ss-purpose">
        <name>Purpose</name>
        <t>The purpose of this document is to describe how unmodified IPv6 applications can use ILNP-based communication:</t>
        <ol spacing="normal" type="1"><li>
            <t>The mechanisms by which ILNP communication is possible for unmodified IPv6 applications.</t>
          </li>
          <li>
            <t>How unmodified IPv6 applications can run on an ILNP-capable node.</t>
          </li>
          <li>
            <t>Which IPv6 applications should work with ILNP, and which are unlikely to work.</t>
          </li>
        </ol>
        <t>The mechanism by which an ILNP-capable node communicates with a non-ILNP capable node is to fall back to using IPv6, as described in <xref section="8" sectionFormat="of" target="RFC6740"/>, <xref section="10" sectionFormat="of" target="RFC6741"/>, <xref section="5" sectionFormat="of" target="RFC6743"/>, and <xref section="6" sectionFormat="of" target="RFC6744"/>.</t>
        <t>This document discusses only communication based on unicast addressing: multicast communication for ILNP is as for IPv6.</t>
      </section>
      <section anchor="ss-rationale">
        <name>Rationale</name>
        <t>It is expected that new <em>ILNP-aware</em> applications will in the future make use of access to the new addressing data-types in ILNP to have more flexible connectivity and control of traffic flows.
This will depend on the availability of suitable a API for access to ILNP-specific addressing information.</t>
        <t>In parallel, existing <em>IPv6 applications</em> should be able to make use of ILNP because it was designed to be backwards compatible with IPv6.
Indeed, it would be beneficial if as many as possible of the benefits of ILNP could be used by <em>unmodified</em> IPv6 applications.
So, this document describes how existing IPv6 applications can use ILNP without being modified.</t>
      </section>
    </section>
    <section anchor="s-motivation">
      <name>Motivation</name>
      <t><em>Why should an IPv6 application use ILNP?</em></t>
      <t>A complete answer to this question, and any detailed discussion, is beyond the scope of this document.</t>
      <t>As a short answer to the question above, the different approach to addressing and connectivity in ILNP means that, for example, an existing, unmodified IPv6 application could gain in the following ways:</t>
      <ul spacing="normal">
        <li>
          <t>Improved privacy and security at the packet level <xref target="BHY2021"/> <xref target="HB2024"/> <xref target="HB2025"/>.</t>
        </li>
        <li>
          <t>Combined mobility-multihoming capability under end-system control <xref target="YB2024"/>.</t>
        </li>
        <li>
          <t>Provision of multipath connectivity for existing transport protocols <xref target="YB2019"/>.</t>
        </li>
      </ul>
      <t>This additional control for connectivity and communication for an application with ILNP is designed using an end-to-end approach, allowing all the functionality to work together harmoniously.
Also, the end-to-end approach means the functionality can be implemented without requiring the use of proxies, tunnelling, or address translation mechanisms.</t>
      <t>Complete solutions for unmodified IPv6 applications to use ILNP in this way are being developed and tested at the time of writing.
Meanwhile, the work cited above, using results from ILNP implementations in FreeBSD and Linux, with ongoing testing and experiments over international connectivity at IETF meetings and IETF Hackathon events, show that there are realistic possibilities for ILNP to operate across global IPv6 connectivity, and that many existing IPv6 applications could work unmodified over ILNP.</t>
    </section>
    <section anchor="conventions">
      <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 anchor="ss-previous_definitions">
        <name>Definitions from other documents</name>
        <t>The following terms are defined in <xref target="RFC6740"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Locator, L64</t>
          </li>
          <li>
            <t>Node Identifier, NID</t>
          </li>
          <li>
            <t>Identifier-Locator Vector, I-LV</t>
          </li>
          <li>
            <t>I-L Communications Cache, ILCC</t>
          </li>
        </ul>
        <t>The following term is defined in <xref target="draft-bhatti-ilnp-preference"/>:</t>
        <ul spacing="normal">
          <li>
            <t>ordered I-LV sequence, <tt>{A_a}</tt></t>
          </li>
        </ul>
        <t>The notation for textual representations for I-LV values is defined in <xref target="draft-bhatti-ilnp-textual-representations"/>.</t>
        <t>The reference to the C <tt>sockets</tt> API extensions for IPv6 is in relation to <xref target="RFC3493"/>, particularly the use of:</t>
        <ul spacing="normal">
          <li>
            <t>the <tt>struct addrinfo</tt> data structure.</t>
          </li>
          <li>
            <t>the <tt>struct sockaddr_in6</tt> data structure.</t>
          </li>
          <li>
            <t>the <tt>getaddrinfo(3)</tt> C library function call.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="s-examples">
      <name>Examples used in this document</name>
      <t>In order to describe the interactions for communication, a client-server mode of operation is assumed in the explanations and descriptions.
However, the approach is general: the ILNP client is a communication initiator, the ILNP server is a communication responder.
The communication process is described in terms of:</t>
      <ol spacing="normal" type="1"><li>
          <t>An ILNP-capable node waiting to accept incoming communication requests from a remote ILNP-capable node, e.g. incoming TCP connections or UDP sessions.
For the purposes of this document, such a node is called an <em>ILNP server node</em>.</t>
        </li>
        <li>
          <t>An ILNP-capable node wishing to initiate communication to a remote ILNP-capable node.
For the purposes of this document, such a node is called an <em>ILNP client node</em>.</t>
        </li>
      </ol>
      <t>So, for our purposes, an IPv6 server application is running on an ILNP server node, and an IPv6 client application is running on an ILNP client node.</t>
      <section anchor="ss-sockets">
        <name>Use of the <tt>sockets</tt> API</name>
        <t>This document makes use of the <tt>sockets</tt> API and related family of function calls, data structures, data-types, and value definitions in C (which are also defined as part of POSIX.1-2008 / POSIX.1-2017 / POSIX-1.2024).</t>
        <t>In the <tt>sockets</tt> API, <em>address family</em> definitions exist for use with the function calls and data structures to identify the type of addressing being used: <tt>AF_INET</tt> for IPv4, <tt>AF_INET6</tt> for IPv6 <xref target="RFC3493"/>.
In the future, new addressing extensions for <tt>sockets</tt> might be defined for ILNP, just as extensions were defined for IPv6 in addition to IPv4.
For now, this document describes how ILNP is used for backwards compatibility with IPv6 applications only, with any ILNP I-LV values presented to applications as type <tt>AF_INET6</tt> so that I-LV values can be used as IPv6 addresses.</t>
      </section>
    </section>
    <section anchor="s-addr_name">
      <name>Practical addressing and naming for ILNP</name>
      <t>The key mechanisms by which unmodified IPv6 applications can make use of ILNP is through the syntactic compatibility in naming and addressing formats between ILNP and IPv6.
For name resolution, ILNP uses the same sources as for IPv6, e.g. entries in <tt>/etc/hosts</tt> or responses from DNS.
I-LV values are 128-bit values that are syntactically equivalent to an IPv6 address.
So, for carrying addressing information across the network, an ILNP packet uses the address fields in the IPv6 packet header to carry I-LV values.</t>
      <t>As ILNP packets are "on-the-wire" identical to IPv6 packets, network components, such as routers and switches, can forward ILNP packets, and I-LV values can be handled like IPv6 addresses.
However, ILNP operates end-to-end, so ILNP-aware nodes can act upon the semantics of L64 and NID values end-to-end to enable the various functionality that is possible for ILNP, as described in <xref target="RFC6740"/> and <xref target="RFC6741"/>.</t>
      <section anchor="ss-name_res_process">
        <name>Name resolution process</name>
        <t>It is possible for an ILNP-capable node to determine if a remote node is also ILNP-capable through name resolution using existing mechanisms, and so initiate ILNP communication.</t>
        <t>When a name, such as a fully-qualified domain name (FQDN), is passed by an application to a node, name resolution is performed using <tt>/etc/hosts</tt> or DNS.
The resolution of a name to an address selects the type of communication -- IPv4 or IPv6 -- that is possible and could be initiated by an application.
The type information is part of the name resolution, the most common examples being:</t>
        <ul spacing="normal">
          <li>
            <t>the implicit type information in the textual representation of an address value in <tt>/etc/hosts</tt>:
            </t>
            <ul spacing="normal">
              <li>
                <t>decimal-dot notation for IPv4, such as "<tt>123.12.34.45</tt>".</t>
              </li>
              <li>
                <t>hexadecimal-colon notation for IPv6, such as "<tt>2001:db8:12:34::abcd:1</tt>".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>the explicit type value of a DNS Resource Record (RR) returned in a DNS response:
            </t>
            <ul spacing="normal">
              <li>
                <t>type <tt>A</tt> for IPv4.</t>
              </li>
              <li>
                <t>type <tt>AAAA</tt> for IPv6.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>So, similarly, for ILNP we have type information included with addressing values:</t>
        <ul spacing="normal">
          <li>
            <t>notations for the textual representations of L64, NID, and I-LV values for use in <tt>/etc/hosts</tt> as defined in <xref target="draft-bhatti-ilnp-textual-representations"/>, such as "<tt>2001-db8-12-34.0+0+abcd+1</tt>" for an I-LV.</t>
          </li>
          <li>
            <t>DNS RRs for L64 and NID values, with type values assigned by IANA, as documented in <xref target="RFC6742"/>.</t>
          </li>
        </ul>
        <t>Although it is expected that normal operation for name resolution will be using DNS, the use of <tt>/etc/hosts</tt> can be a convenient method in some cases, e.g. for experimentation and debugging, especially on a local testbed.
Some guidance on the use of <tt>/etc/hosts</tt> is provided in <xref target="ss-server_etc_hosts"/> and <xref target="ss-client_etc_hosts"/>.
Also, server systems especially might need application-specific addressing configuration, and that is out of scope for this document.</t>
      </section>
      <section anchor="ss-name_res_app">
        <name>Name resolution for an application</name>
        <t>The <tt>socket(2)</tt> API uses the <tt>getaddrinfo(3)</tt> library function to resolve names and provide for IPv6 applications a list of 128-bit IPv6 address in an instance of a <tt>struct addrinfo</tt> list.
<tt>getaddrinfo(3)</tt> has the function prototype:</t>
        <sourcecode type="c"><![CDATA[
int getaddrinfo(const char *nodename, const char *servname,
                const struct addrinfo *hints, struct addrinfo **res);
]]></sourcecode>
        <t>The typical code pattern for name resolution is:</t>
        <ol spacing="normal" type="1"><li>
            <t>The <tt>ai_family</tt> member of <tt>hints</tt> is set to <tt>AF_UNSPEC</tt> (or <tt>AF_INET6</tt> for IPv6 only) before invoking <tt>getaddrinfo(3)</tt> with a value for <tt>nodename</tt> to resolve. (<tt>servname</tt> might also be used but is not relevant for this document.)</t>
          </li>
          <li>
            <t>Upon successful return, <tt>res</tt> holds a <tt>struct addrinfo</tt> list with a sequence of IPv6 address values that could be used by the application.</t>
          </li>
          <li>
            <t>A value from <tt>res</tt> is copied into a <tt>struct sockaddr_in6</tt> instance for use in <tt>socket(2)</tt>.</t>
          </li>
        </ol>
        <t>For an ILNP-capable node, to allow unmodified IPv6 applications to use ILNP, the behaviour of <tt>getaddrinfo(3)</tt> <bcp14>MUST</bcp14> be:</t>
        <ol spacing="normal" type="1"><li>
            <t>upon invocation:
            </t>
            <ul spacing="normal">
              <li>
                <t>if the <tt>nodename</tt> provided matches I-LV entries from <tt>/etc/hosts</tt>, then an <em>ordered I-LV sequence</em>, <tt>{A_a}</tt>, <bcp14>MUST</bcp14> be constructed from the matching entries;</t>
              </li>
              <li>
                <t>otherwise <tt>nodename</tt> is used in DNS queries so that <tt>L64</tt> and <tt>NID</tt> RRs can be retrieved (as well as <tt>AAAA</tt> and <tt>A</tt> RRs, if defined, for backwards compatibility), and the returned <tt>L64</tt> and <tt>NID</tt> RRs <bcp14>MUST</bcp14> be used to construct an <em>ordered I-LV sequence</em>, <tt>{A_a}</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>upon successful return for the API user, the list in <tt>res</tt> <bcp14>MUST</bcp14> contain at its <em>start</em> the list of the I-LV values from <tt>{A_a}</tt> with the <tt>struct addrinfo</tt> instances marked as <tt>AF_INET6</tt> as if they are IPv6 addresses.</t>
          </li>
          <li>
            <t>below the API, the ILCC and internal state for the ILNP node <bcp14>MUST</bcp14> record that the name resolution did include I-LV values, so that a subsequent <tt>socket(2)</tt> invocation with a <tt>struct addrinfo_in6</tt> instance containing an I-LV value from <tt>res</tt> will return a descriptor to a socket that will be an ILNP communication end-point.</t>
          </li>
        </ol>
        <t>The <em>ordered I-LV sequence</em>, <tt>{A_a}</tt>, contains I-LV values in a preferred ordering for the remote node.
The process for constructing <tt>{A_a}</tt> is described in <xref target="draft-bhatti-ilnp-preference"/>, but that process is not visible to the user.</t>
        <t>So, the <tt>socket(2)</tt> family of calls using <tt>res</tt> will have the correct type information for an IPv6 application, and API calls will also result in an ILNP communication end-point.
That is, the application will have a reference to an IPv6 communication end-point (the socket descriptor that is returned), but the type of the socket that will be created will be for ILNP communication.
Hence, an unmodified IPv6 application will be able to engage in ILNP-based communication.</t>
      </section>
      <section anchor="ss-ordering">
        <name>DNS queries for L64 and NID RRs</name>
        <t>A simple way to implement a DNS query to select <tt>L64</tt>, <tt>NID</tt>, <tt>AAAA</tt>, and <tt>A</tt> RRs that match the same <tt>nodename</tt> is to use DNS query type of <tt>ANY</tt>, i.e. <tt>QTYPE=ANY</tt>.
While a DNS query with <tt>QTYPE=ANY</tt> is still possible for deployed DNS resolvers, its use is subject to variable and non-consistent behaviour in responses, as described in <xref target="RFC8482"/>. This non-consistent response behaviour could be due to a number of reasons, e.g. to avoid traffic amplification attacks <xref target="RFC5358"/> when using UDP for DNS queries, or due to local policy.</t>
        <t>Alternatively, parallel DNS queries with different <tt>QTYPE</tt> values could be made by an implementation of <tt>getaddrinfo(3)</tt>, e.g. multiple queries with <tt>QTYPE</tt> set, in turn, to <tt>L64</tt>, <tt>NID</tt>, <tt>AAAA</tt>, and <tt>A</tt>.
However, <tt>L64</tt> and <tt>NID</tt> RRs might not be returned first -- one of the other parallel queries could be answered first and that could be enough for the call to <tt>getaddrinfo(3)</tt> to complete successfully.</t>
        <t>As the ordering, delay, and content of DNS responses to <tt>QTYPE=ANY</tt> or to multiple parallel queries are not well-defined, <tt>res</tt> might not contain I-LV values, even if L64 and NID RRs are defined for <tt>nodename</tt> in the DNS.
This means that an I-LV might not always be selected after a call to <tt>getaddrinfo(3)</tt> when DNS is used.</t>
        <t>Even if I-LV values are included in <tt>res</tt>, with the added recommendation for "Happy Eyeballs" <xref target="RFC8305"/>, an ILNP communication might not always be initiated between IPv6 applications running on ILNP-capable nodes.
This is not an issue particular to ILNP: the same is true for IPv6 and IPv4, i.e. the combination of the non-consistent DNS responder behaviour and the "Happy Eyeballs" recommendation could mean that IPv4 is selected for communication between IPv6-capable applications both running on IPv6-capable nodes.</t>
      </section>
    </section>
    <section anchor="s-ilnp_server">
      <name>IPv6 server application using ILNP</name>
      <t>For an ILNP server node, the IPv6 server application needs to establish a communication end-point that can accept incoming ILNP communication requests.</t>
      <t>An ILNP server node, or individual IPv6 application, might be invoked via local or application-specific configuration, and be initialised with a communication end-point to accept incoming communication requests in the following ways:</t>
      <ul spacing="normal">
        <li>
          <t>Case 0: Use of "wildcard" addressing, i.e. no ILNP-specific information is configured when the IPv6 server application is invoked.</t>
        </li>
        <li>
          <t>Case 1: Predefined I-LV values are used directly, e.g. the ILNP server node has defined for it one or more specific whole I-LV values (or names that resolve to whole I-LV values) in place of IPv6 addresses in the application-specific configuration.</t>
        </li>
        <li>
          <t>Case 2: Separate L64 and NID values, e.g. the ILNP server node is configured with multiple L64 and NID values and so can form I-LV values, which can then be used by the IPv6 application as if the I-LV values are IPv6 addresses.</t>
        </li>
      </ul>
      <section anchor="ss-case-0">
        <name> Case 0: "Wildcard" addressing</name>
        <t>It is <bcp14>NOT RECOMMENDED</bcp14> that IPv6 server applications make use of ILNP communication as described in this sub-section.
The usage of ILNP will not be intentional and is unlikely to be predictable.</t>
        <t>An IPv6 server application code pattern might typically invoke <tt>bind(2)</tt> using <tt>IN6ADDR_ANY_INIT</tt> for IPv6, so that it can accept incoming connections for any and all IPv6 addresses that it currently has configured, IPv4 and / or IPv6.</t>
        <t>For an IPv6 server application running on an ILNP server node, it is <bcp14>RECOMMENDED</bcp14> that the server application is invoked using a locally defined I-LV (or name resolving to an I-LV) -- please see <xref target="ss-case-1"/>.
This could be achieved through local configuration files or command-line arguments for invocation of the server application.</t>
      </section>
      <section anchor="ss-case-1">
        <name>Case 1: Predefined I-LV values</name>
        <t>It is <bcp14>RECOMMENDED</bcp14> that an IPv6 server application running on an ILNP server node is configured and invoked as described in this sub-section.
This usage is intentional and should result in predictable behaviour.
For practical purposes, it is also the easiest and clearest method of enabling unmodified IPv6 server applications to make use of ILNP communication.</t>
        <t>The scenario described here is for the case when I-LV values are to be used directly in place of IPv6 addresses:</t>
        <ol spacing="normal" type="1"><li>
            <t>It is <bcp14>RECOMMENDED</bcp14> that predefined I-LV values, or names resolving to such I-LV values, should be configured for the ILNP server node.</t>
          </li>
          <li>
            <t>It is <bcp14>RECOMMENDED</bcp14> that these predefined I-LV values, or names resolving to such I-LV values, should be used when starting an IPv6 application to explicitly make use of ILNP-based communication.</t>
          </li>
        </ol>
        <t>As an example, predefined I-LV values could be configured as described in <xref target="ss-server_etc_hosts"/>.</t>
        <t>When a predefined I-LV, or a name resolution resulting in a predefined I-LV, is used in the invocation to <tt>bind(2)</tt>, the ILNP server node:</t>
        <ol spacing="normal" type="1"><li>
            <t><bcp14>SHOULD</bcp14> allow ILNP communication for that I-LV at the time of invocation.</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> maintain ILNP communication for that I-LV value after invocation, consistent with the validity of the L64 value for the I-LV.</t>
          </li>
        </ol>
        <t>The "<bcp14>SHOULD</bcp14>" in points 1 and 2 above allows flexibility for application-specific behaviour or local policy.
Also, it allows flexibility for whether or not such communication end-points are to be made discoverable to remote client applications for ILNP communication, e.g. by a Dynamic Secure DNS update <xref target="RFC3007"/> that creates or updates <tt>L64</tt> and <tt>NID</tt> RRs for that I-LV through some out-of-application mechanism.</t>
        <t>For point 2 above, it is possible that a L64 value becomes unavailable and then becomes available again, e.g. due to presence (or not) of IPv6 prefix values in IPv6 Routing Advertisements (RAs) coupled with the behaviour of ILNP dynamic multihoming and mobility capability <xref target="YB2019"/> <xref target="YB2024"/>.
The "<bcp14>SHOULD</bcp14>" in point 2 gives flexibility for application-specific behaviour or local policy in this respect.
If the behaviour is implemented and utilised, the IPv6 application gains connectivity capability it would never have had.
If the behaviour is not implemented or utilised, nothing has been lost with respect to the normal expected operation of the IPv6 server application, but client applications would still gain from using ILNP communication -- please see <xref target="s-motivation"/>.
However, when the behaviour is implemented, and the I-LV lifetime expires, a previously bound <tt>socket</tt> becomes invalid, and the behaviour for such a situation is system-specific.</t>
      </section>
      <section anchor="ss-case-2">
        <name>Case 2: Predefined L64 and NID values</name>
        <t>It is <bcp14>NOT RECOMMENDED</bcp14> that an IPv6 server application running on an ILNP server node is configured and invoked as described in this sub-section.
Although the usage is intentional, it might result in behaviour that is not predictable.</t>
        <t>The scenario described here is a possibility.
However, it is not expected that unmodified IPv6 server applications will be invoked in such a configuration.</t>
        <t>An ILNP server node might have defined for it multiple L64 and NID values from which it can form I-LV values as described in <xref target="draft-bhatti-ilnp-preference"/>.
These could be configured locally or learned dynamically from DNS.
L64 and NID values from DNS RRs have a Time-To-Live (TTL) value, but it is possible that local mechanisms also allow L64 and NID values to have limited lifetimes much like the DNS TTL.
If separate L64 and NID values are defined without specific lifetimes, then the behaviour will be as for predefined I-LV values as in <xref target="ss-case-1"/>.</t>
        <t>It is possible that, for example, predefined NID values are configured locally with no expiry time, while L64 values are discovered dynamically (typically as address prefix values from IPv6 RAs) and might have a limited lifetime.
In this case I-LV values could be transient because of the L64 lifetime.
If a NID value is defined without a specific lifetime, and the L64 value is learned dynamically (e.g. an address prefix from an IPv6 RA) but has a "long" lifetime (e.g. a day, or a week), this behaviour is similar to the use of SLAAC <xref target="RFC4862"/>, and so, with care, the scenario of <xref target="ss-case-1"/> could still be employed for an ILNP server node.</t>
        <t>However, if the L64 and NID values each have limited lifetimes, then this impacts the overall lifetimes of the I-LVs that are formed from those L64 and NID values.
The IPv6 application will, effectively, be using addresses that will "expire" to create sockets on which to accept incoming communication sessions.</t>
        <t>When the invocation of <tt>bind(2)</tt> is made with a specific I-LV formed from the separate L64 and NID values (as described in <xref target="draft-bhatti-ilnp-preference"/>), the ILNP server node:</t>
        <ol spacing="normal" type="1"><li>
            <t><bcp14>SHOULD</bcp14> allow ILNP communication for that I-LV at the time of invocation; and</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> maintain ILNP communication for that I-LV consistent with the validity of those L64 and NID values that constitute that I-LV.</t>
          </li>
        </ol>
        <t>The "<bcp14>SHOULD</bcp14>" in point 1 and 2 above allows flexibility for application-specific behaviour or local policy.
Also, it allows flexibility for whether or not such communication end-points are to be made discoverable to remote client applications for ILNP communictaion, e.g. by a Dynamic Secure DNS update <xref target="RFC3007"/> that creates or updates to L64 and NID RRs through some out-of-application mechanism.
However, when the behaviour is implemented, and the I-LV lifetime expires, a previously bound <tt>socket</tt> becomes invalid, and the behaviour for such a situation is system-specific.</t>
      </section>
      <section anchor="ss-server_etc_hosts">
        <name>Server-side use of <tt>/etc/hosts</tt></name>
        <t>A name could be defined for lookup of an I-LV before <tt>bind(2)</tt> is invoked.
This could be in DNS, as a client application would also need that information to initiate communication.
However, a name could (also) be a local name defined in <tt>/etc/hosts</tt> for an I-LV that the IPv6 server application is configured to use, the local name being provided via command-line arguments or application-specific configuration files.
Care should be taken if I-LV entries are used in <tt>/etc/hosts</tt> with corresponding L64 and NID entries in DNS: the latter will be required for client applications under normal operation.
Examples of names and I-LV entries in <tt>/etc/hosts</tt> are given in <xref target="f-server_side_ilv"/>. This could be for two different servers on the same physical / virtual node, or some other arrangement, but that choice is left to the user.</t>
        <figure anchor="f-server_side_ilv">
          <name>Example entries in the `/etc/hosts` file for I-LV values for ILNP server nodes.</name>
          <artwork><![CDATA[
2001-db8-0-1.abcd+0+a+1     server-a1.local  # a local I-LV
2001-db8-0-1.abcd+0+a+2     server-a2.local  # another local I-LV
]]></artwork>
        </figure>
        <t>This does not preclude any application-specific configuration or local policy control for I-LV selection.</t>
      </section>
      <section anchor="ss-server_exceptions">
        <name>Server-side exceptions</name>
        <t>With use of ILNP communication for IPv6 applications, care is needed in choosing I-LV values for initial configuration and instantiation.
There are situations where ILNP communication cannot be initiated transparently for an IPv6 server.
In most cases, this is likely to be where the server application (or accompanying client application) uses IPv6 address values directly, e.g. within the code base or in configuration files.
For example, if a server application expects to <tt>bind(2)</tt> to a "hard-coded" address, or to use a specific interface on a node, or if a server application manipulates address bits directly in user-space as part of its behaviour.
This could be true especially for some control-plane and management-plane applications.</t>
      </section>
    </section>
    <section anchor="s-ilnp_client">
      <name>IPv6 client application using ILNP</name>
      <t>Typically, an IPv6 client application will invoke <tt>getaddrinfo(3)</tt> with a <tt>nodename</tt> for a remote node, then use a value from the <tt>res</tt> list, often the first value in the <tt>res</tt> list, to make a call to <tt>socket(2)</tt>, and then start a communication session.
Using the mechanism described in <xref target="ss-name_res_app"/>, the first value in <tt>res</tt> will be for an I-LV.
There might also be other I-LVs in <tt>res</tt>, but it is not possible for the IPv6 application to know that.
A subsequent call, e.g. to <tt>connect(2)</tt> with that first value from <tt>res</tt> will create an ILNP communication end-point.</t>
      <section anchor="ss-client_etc_hosts">
        <name>Client-side use of <tt>/etc/hosts</tt></name>
        <t>If DNS is not configured or if the use of <tt>/etc/hosts</tt> is desired, examples of names and I-LVs for ILNP server nodes that could be used by the IPv6 client application are given in <xref target="f-client_side_ilv"/>.
Care should be taken if I-LV entries are used in <tt>/etc/hosts</tt> with corresponding L64 and NID entries in DNS: it is <bcp14>RECOMMENDED</bcp14> that client systems use DNS under normal operation.</t>
        <figure anchor="f-client_side_ilv">
          <name>Example entries in the `/etc/hosts` for use by a client to lookup I-LV values for a remote ILNP server node.</name>
          <artwork><![CDATA[
2001-db8-0-1.abcd+0+a+1     server-a1.ilnp  # a remote server
2001-db8-0-1.abcd+0+a+2     server-a2.ilnp  # another remote server
]]></artwork>
        </figure>
        <t>This does not preclude any application-specific configuration or local policy control for I-LV selection.</t>
      </section>
      <section anchor="ss-client_exceptions">
        <name>Client-side exceptions</name>
        <t>In most cases, client applications initiate communication after a name resolution is performed to find addressing information and initiate a communication end-point, as described in <xref target="ss-name_res_app"/>.
Then, the client application typically only uses a reference to the communication end-point (a socket descriptor), and is usually not concerned with the exact values in the addressing information.
So, it is expected that most IPv6 client applications will be able to make use of ILNP-based communication.</t>
        <t>However, after using <tt>getaddrinfo(3)</tt>, if the client application chooses a value from the <tt>res</tt> list that is not an I-LV, then ILNP communication will not be initiated.</t>
        <t>Also, as is true for the server-side, as described in <xref target="ss-server_exceptions"/>, if the client application (or accompanying server application) uses IPv6 address values directly, e.g. within the code base or in configuration files, ILNP communication might not work correctly.
Again, this could be true especially for some control-plane and management-plane applications.</t>
        <t>Additionally, as already discussed in <xref target="ss-ordering"/>, the effects of the DNS responder behaviour coupled with the "Happy Eyeballs" recommendations might result in ILNP not being initiated by a client application even though it is possible.</t>
      </section>
    </section>
    <section anchor="session">
      <name>Communication session management</name>
      <t>Once a communication session is successfully initiated (e.g. a TCP connection), the handling of addressing for each end-point can be summarised as:</t>
      <ol spacing="normal" type="1"><li>
          <t>There is a Source I-LV and a Destination I-LV, consisting, respectively of L64_s and NID_s, and L64_d and NID_d.</t>
        </li>
        <li>
          <t>NID_s and NID_d values <bcp14>MUST</bcp14> remain constant for the duration of the session.</t>
        </li>
        <li>
          <t>The Source node or Destination node <bcp14>MAY</bcp14> signal changes, respectively, to their L64_s or L64_d values by the use of Locator Update (LU) message <xref target="RFC6743"/>.</t>
        </li>
      </ol>
      <t>Please note that this is a summary only, full details of the state management process for L64 and NID values are given in <xref target="RFC6740"/> <xref target="RFC6741"/>.</t>
      <t>However, the user-level control of the session via the <tt>sockets</tt> API is unchanged for the IPv6 application.</t>
    </section>
    <section anchor="s-security">
      <name>Security Considerations</name>
      <t>There are no new security considerations.</t>
      <t>The existing security mechanisms already defined for ILNP remain unchanged (please see <xref section="9" sectionFormat="of" target="RFC6740"/>, <xref section="11" sectionFormat="of" target="RFC6741"/>).
The use of the ILNP Nonce Header <xref target="RFC6744"/> would offer extra lightweight protection for communication flows at the IP packet level, compared to that which is available for IPv6 without the use of IPsec.</t>
    </section>
    <section anchor="s-privacy">
      <name>Privacy Considerations</name>
      <t>There are no new privacy considerations.</t>
      <t>The existing identity privacy and location privacy properties already defined for ILNP remain unchanged (please see <xref section="10" sectionFormat="of" target="RFC6740"/>, <xref section="12" sectionFormat="of" target="RFC6741"/>, <xref section="7" sectionFormat="of" target="RFC6748"/>).
NID values can also be generated using privacy mechanisms such as <xref target="RFC8981"/>.
ILNP can also use enhanced identity privacy and location privacy mechanisms which remain backwards compatible with IPv6, such as described in <xref target="BHY2021"/> <xref target="HB2024"/> <xref target="HB2025"/>.</t>
    </section>
    <section anchor="s-iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3007">
          <front>
            <title>Secure Domain Name System (DNS) Dynamic Update</title>
            <author fullname="B. Wellington" initials="B." surname="Wellington"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This document proposes a method for performing secure Domain Name System (DNS) dynamic updates. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3007"/>
          <seriesInfo name="DOI" value="10.17487/RFC3007"/>
        </reference>
        <reference anchor="RFC3493">
          <front>
            <title>Basic Socket Interface Extensions for IPv6</title>
            <author fullname="R. Gilligan" initials="R." surname="Gilligan"/>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="J. Bound" initials="J." surname="Bound"/>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="W. Stevens" initials="W." surname="Stevens"/>
            <date month="February" year="2003"/>
            <abstract>
              <t>The de facto standard Application Program Interface (API) for TCP/IP applications is the "sockets" interface. Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems. TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications. But changes are required to the sockets API to support IPv6 and this memo describes these changes. These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options. These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications. Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3493"/>
          <seriesInfo name="DOI" value="10.17487/RFC3493"/>
        </reference>
        <reference anchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC5358">
          <front>
            <title>Preventing Use of Recursive Nameservers in Reflector Attacks</title>
            <author fullname="J. Damas" initials="J." surname="Damas"/>
            <author fullname="F. Neves" initials="F." surname="Neves"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document describes ways to prevent the use of default configured recursive nameservers as reflectors in Denial of Service (DoS) attacks. It provides recommended configuration as measures to mitigate the attack. 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="140"/>
          <seriesInfo name="RFC" value="5358"/>
          <seriesInfo name="DOI" value="10.17487/RFC5358"/>
        </reference>
        <reference anchor="RFC6740">
          <front>
            <title>Identifier-Locator Network Protocol (ILNP) Architectural Description</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This document provides an architectural description and the concept of operations for the Identifier-Locator Network Protocol (ILNP), which is an experimental, evolutionary enhancement to IP. This is a product of the IRTF Routing Research Group. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6740"/>
          <seriesInfo name="DOI" value="10.17487/RFC6740"/>
        </reference>
        <reference anchor="RFC6741">
          <front>
            <title>Identifier-Locator Network Protocol (ILNP) Engineering Considerations</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This document describes common (i.e., version independent) engineering details for the Identifier-Locator Network Protocol (ILNP), which is an experimental, evolutionary enhancement to IP. This document is a product of the IRTF Routing Research Group. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6741"/>
          <seriesInfo name="DOI" value="10.17487/RFC6741"/>
        </reference>
        <reference anchor="RFC6742">
          <front>
            <title>DNS Resource Records for the Identifier-Locator Network Protocol (ILNP)</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This note describes additional optional resource records for use with the Domain Name System (DNS). These optional resource records are for use with the Identifier-Locator Network Protocol (ILNP). This document is a product of the IRTF Routing Research Group. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6742"/>
          <seriesInfo name="DOI" value="10.17487/RFC6742"/>
        </reference>
        <reference anchor="RFC6743">
          <front>
            <title>ICMP Locator Update Message for the Identifier-Locator Network Protocol for IPv6 (ILNPv6)</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This note specifies an experimental ICMPv6 message type used with the Identifier-Locator Network Protocol (ILNP). The Identifier-Locator Network Protocol (ILNP) is an experimental, evolutionary enhancement to IP. This message is used to dynamically update Identifier/Locator bindings for an existing ILNP session. This is a product of the IRTF Routing Research Group. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6743"/>
          <seriesInfo name="DOI" value="10.17487/RFC6743"/>
        </reference>
        <reference anchor="RFC6744">
          <front>
            <title>IPv6 Nonce Destination Option for the Identifier-Locator Network Protocol for IPv6 (ILNPv6)</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>The Identifier-Locator Network Protocol (ILNP) is an experimental, evolutionary enhancement to IP. ILNP has multiple instantiations. This document describes an experimental Nonce Destination Option used only with ILNP for IPv6 (ILNPv6). This document is a product of the IRTF Routing Research Group. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6744"/>
          <seriesInfo name="DOI" value="10.17487/RFC6744"/>
        </reference>
        <reference anchor="RFC6748">
          <front>
            <title>Optional Advanced Deployment Scenarios for the Identifier-Locator Network Protocol (ILNP)</title>
            <author fullname="RJ Atkinson" initials="RJ" surname="Atkinson"/>
            <author fullname="SN Bhatti" initials="SN" surname="Bhatti"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This document provides an Architectural description and the Concept of Operations of some optional advanced deployment scenarios for the Identifier-Locator Network Protocol (ILNP), which is an evolutionary enhancement to IP. None of the functions described here is required for the use or deployment of ILNP. Instead, it offers descriptions of engineering and deployment options that might provide either enhanced capability or convenience in administration or management of ILNP-based systems. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6748"/>
          <seriesInfo name="DOI" value="10.17487/RFC6748"/>
        </reference>
        <reference anchor="RFC8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>Many communication protocols operating over the modern Internet use hostnames. These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics. Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly. This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs". This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </reference>
        <reference anchor="RFC8482">
          <front>
            <title>Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY</title>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
            <author fullname="M. Majkowski" initials="M." surname="Majkowski"/>
            <author fullname="E. Hunt" initials="E." surname="Hunt"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>The Domain Name System (DNS) specifies a query type (QTYPE) "ANY". The operator of an authoritative DNS server might choose not to respond to such queries for reasons of local policy, motivated by security, performance, or other reasons.</t>
              <t>The DNS specification does not include specific guidance for the behavior of DNS servers or clients in this situation. This document aims to provide such guidance.</t>
              <t>This document updates RFCs 1034 and 1035.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8482"/>
          <seriesInfo name="DOI" value="10.17487/RFC8482"/>
        </reference>
        <reference anchor="RFC8981">
          <front>
            <title>Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes an extension to IPv6 Stateless Address Autoconfiguration that causes hosts to generate temporary addresses with randomized interface identifiers for each prefix advertised with autoconfiguration enabled. Changing addresses over time limits the window of time during which eavesdroppers and other information collectors may trivially perform address-based network-activity correlation when the same address is employed for multiple transactions by the same host. Additionally, it reduces the window of exposure of a host as being accessible via an address that becomes revealed as a result of active communication. This document obsoletes RFC 4941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8981"/>
          <seriesInfo name="DOI" value="10.17487/RFC8981"/>
        </reference>
        <reference anchor="draft-bhatti-ilnp-preference">
          <front>
            <title>ILNP addressing using Preference values</title>
            <author initials="S. N." surname="Bhatti" fullname="Saleem N. Bhatti">
              <organization>University of St Andrews, UK</organization>
            </author>
            <date year="2026" month="May" day="08"/>
          </front>
          <annotation>A related draft that is being produced in parallel.</annotation>
        </reference>
        <reference anchor="draft-bhatti-ilnp-textual-representations">
          <front>
            <title>ILNP textual representations</title>
            <author initials="S. N." surname="Bhatti" fullname="Saleem N. Bhatti">
              <organization>University of St Andrews, UK</organization>
            </author>
            <author initials="G. T." surname="Haywood" fullname="Gregor T. Haywood">
              <organization>Abertay University, UK</organization>
            </author>
            <author initials="R." surname="Yanagida" fullname="Ryo Yanagida">
              <organization>University of St Andrews, UK</organization>
            </author>
            <author initials="R. W." surname="Grimes" fullname="Rodney W. Grimes">
              <organization>Independent, USA</organization>
            </author>
            <date year="2026" month="May" day="08"/>
          </front>
          <annotation>A related draft that is being produced in parallel.</annotation>
        </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="BHY2021">
          <front>
            <title>End-to-End Privacy for Identity &amp;amp; Location with IP</title>
            <author fullname="Saleem N. Bhatti" initials="S." surname="Bhatti">
              <organization/>
            </author>
            <author fullname="Gregor Haywood" initials="G." surname="Haywood">
              <organization/>
            </author>
            <author fullname="Ryo Yanagida" initials="R." surname="Yanagida">
              <organization/>
            </author>
            <date month="November" year="2021"/>
          </front>
          <seriesInfo name="2021 IEEE 29th International Conference on Network Protocols (ICNP)" value="pp. 1-6"/>
          <seriesInfo name="DOI" value="10.1109/icnp52444.2021.9651909"/>
          <refcontent>IEEE</refcontent>
        </reference>
        <reference anchor="HB2024">
          <front>
            <title>Defence against Side-Channel Attacks for Encrypted Network Communication Using Multiple Paths</title>
            <author fullname="Gregor Tamati Haywood" initials="G." surname="Haywood">
              <organization>School of Computer Science, University of St Andrews, St Andrews KY16 9SX, UK</organization>
            </author>
            <author fullname="Saleem Noel Bhatti" initials="S." surname="Bhatti">
              <organization>School of Computer Science, University of St Andrews, St Andrews KY16 9SX, UK</organization>
            </author>
            <date month="May" year="2024"/>
          </front>
          <seriesInfo name="Cryptography" value="vol. 8, no. 2, pp. 22"/>
          <seriesInfo name="DOI" value="10.3390/cryptography8020022"/>
          <refcontent>MDPI AG</refcontent>
        </reference>
        <reference anchor="HB2025">
          <front>
            <title>Ephemeral Node Identifiers for Enhanced Flow Privacy</title>
            <author fullname="Gregor Tamati Haywood" initials="G." surname="Haywood">
              <organization>Department of Cybersecurity and Computing, Abertay University, Dundee DD1 1HG, UK</organization>
            </author>
            <author fullname="Saleem Noel Bhatti" initials="S." surname="Bhatti">
              <organization>School of Computer Science, University of St Andrews, St Andrews KY16 9AJ, UK</organization>
            </author>
            <date month="April" year="2025"/>
          </front>
          <seriesInfo name="Future Internet" value="vol. 17, no. 5, pp. 196"/>
          <seriesInfo name="DOI" value="10.3390/fi17050196"/>
          <refcontent>MDPI AG</refcontent>
        </reference>
        <reference anchor="YB2019">
          <front>
            <title>Seamless internet connectivity for ubiquitous communication</title>
            <author fullname="Ryo Yanagida" initials="R." surname="Yanagida">
              <organization>University of St Andrews, St Andrews, UK</organization>
            </author>
            <author fullname="Saleem N. Bhatti" initials="S." surname="Bhatti">
              <organization>University of St Andrews, St Andrews, UK</organization>
            </author>
            <date month="September" year="2019"/>
          </front>
          <seriesInfo name="Adjunct Proceedings of the 2019 ACM International Joint Conference on Pervasive and Ubiquitous Computing and Proceedings of the 2019 ACM International Symposium on Wearable Computers" value="pp. 1022-1033"/>
          <seriesInfo name="DOI" value="10.1145/3341162.3349315"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="YB2024">
          <front>
            <title>Mobility–Multihoming Duality</title>
            <author fullname="Ryo Yanagida" initials="R." surname="Yanagida">
              <organization>School of Computing Science, College of Science and Engineering, University of Glasgow, Glasgow G12 8RZ, UK</organization>
            </author>
            <author fullname="Saleem Noel Bhatti" initials="S." surname="Bhatti">
              <organization>School of Computer Science, University of St Andrews, St Andrews KY16 9SX, UK</organization>
            </author>
            <date month="October" year="2024"/>
          </front>
          <seriesInfo name="Future Internet" value="vol. 16, no. 10, pp. 358"/>
          <seriesInfo name="DOI" value="10.3390/fi16100358"/>
          <refcontent>MDPI AG</refcontent>
        </reference>
      </references>
    </references>
    <?line 532?>

<section numbered="false" anchor="s-acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors are grateful to the many members of the IETF community for their feedback on ILNP during IETF meetings, and to the IETF NOC Team who made possible testing and experiments for ILNP during those meetings and the IETF Hackathon events.</t>
      <t>Alistair Woodman and <em>NetDEF</em> supported G.T. Haywood in an internship for initiating a FreeBSD implementation of ILNP for his PhD studies.</t>
      <t><em>Time Warner Cable</em> partly supported R. Yanagida for a Linux implementation of ILNP during his PhD studies.</t>
      <t>This work was partly supported by the <em>ICANN Grant Program</em>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+V96XLbSJbufz5FXlbEXElF0KIky7KqN5ZktxUjy2pLbo9j
YsICiZSIMQiwsUhmVLifZZ5lnmzOlhsASq6enr73xq0fLgpLLidPnvOdLRFF
0WDwww8/DH5QZ3mty1zX0WkZ39bqbVx+SYqHXF3r5SqLaz3Ah97rPF5qVS/S
St2mmVa3ZbFUCb4R1UVSROuiKfGRaFUWdTEvsvEyUXWh7nStqjoua52MoR3u
g9q6LcplXCtocMjt/Ma08bvoNw9F+eWuLJoV/KZL0NxwTEN5XZQqzdM6jTNV
6bpZjRS8qIo8W6tca+pVJ2kNg4VO0rKq1Swr5l9UcQt/6iypcCDv8PFhndaZ
HtJrFb4302q+iPM7nfykEp3pWqthPJuV+n6o0lvsp1T0Dg67WhRljW1N87Uq
oLdSzQsgZl6reZxjWzgMnYzUrKmp6bjUt02m8qLGztK8LoukmcNzZVmUNKyr
AilDo1QPaZbhazBJFTd1AdRK53EG406aMs3vePY4Luh7raBx1eQyfCbVaZH/
b6BwPs+aBGYS7e4OFVBvGOG6VjXMKRcqZbS+OILzeKazyt6BRVLfsTzSIg+i
gkWYraEtbKEuioxoC3MHCsEPvDpvyhIJda/LKi3yn2AuMMCkmGNrQ+xW6a8x
MKDmmVwj49XCkdhDpb6U8RIZNSpv58dqUder6vjZs7u0XjSz8bxYPpvHs+KZ
/xS08wk4BRen1NDSXNNYYBxpyUSQRVYrHmyskvQWfuBImV2RQidEYks4GCis
Oc4CJwfPzBeWdMDfW+Ovy4wm9C9vz0dK1/PxeLyNk4LdNyBmOlbDs/OLS5hW
DO3O1urs8v5QxatVButdQ8PVcMBcaJ40D8ANeELfFeX6GMaxGiTw17Ha2907
jHafR7tHg6qZLdMKR1evV3ArzRO90vAPTEn9AM29un49HKmhdx3/RM4tSthi
+MfZ9Gf4HzLO2Xt4eiDLdCyMMVvEdZ1GaZavonR1GOG4gNUGebOc6fJ40Kxw
VNWxOnxxsDvCfyf079EAtksFpGvg3m2cVXoAE9wfrNJj9a8gQ0aqgg0GK1HB
r/WSf8DCruJ5TT+WMNjq3wbAc/GxutA1cuXAsqa9pD7CP7hf/oiXB1/0Gq4m
xwOlInWGE05hw5XqvABSwiTNW5ciyNQWkny79XhkHv+znuP/ts6i8z/zQ+bO
1vnhAV+5KGD7eV1tXZyd8p3Ti6vBvc4bjcMJhw0XeMn6p6GA1dLsWFVxpvXy
D1UdxXlS6odqHM/HDb4dl/PFMfCr4j1hHuXleobL9RmXCp7kzXs8GICYAaEG
Y4ngqgJmgZW5Gl+M1c/0El3kpb+itlR4qyjvjtWHPKVdXa9R4l7VIB5pXCP1
4Z/pKf3EwKlv6vqP4+uxehPDehXJwHb9xxIZXoW3qOsp8Fsdr70hmE6lz7vx
gl/5Q8yPdvt8P1af4jy+S5PYdfl+XQRXv2ui0me5Lv6wqEE9jUHJhj19HMNk
0qWuvJ6KJAdhHtyh3s7cBoUOrqZ+D3f06B9el1r/fHU6hucHg5zED4wQOev9
65P93d0X5ufBy335eXB0uCc/n+8/P5KfuFHdz4n7ued+7rufB+6naeFof/e5
+XlwZF47enlEjXXlBgtcnc9puLAzQFIl7hZdC2RlnACtQa7Bfmjo30vbgrqP
s0aDaMSXOgIRL1o2x57o3w28/ii3fy+/x3kOrAkqB7dZwpMHDcHYZ6Zx8CsG
Agmq3VVcgpLX2biXUDVomybOIlBgMH9gBlYQHarhc12qyduq9fb/NaQKemjv
/scFwNMyIGy9tc83bvW/beytvf3o9n5sh//tzJPmt74E+PnNJ1jZCS/kb4/V
6buz8WR3PJnsvnx2dnJx+Xzv4OBgjI+MXx4+n7zcfUlP/kD9X43deo5gXQzd
Rz4Vx+pVnoAxEMH/YDem9/F8TbiHFR/Q7Z9YNSJSegCVBCgG2j27nE6jvQno
wj14D3Uc4OoVwHnQew/WOHkQ3WeUMpB9CuoN4PW8bgC8gQpR0wy4AtpdVqCN
YUrIypPtsfpzWhLT63sEPVsn7/58dhpNXsKdi+KeHsKt9uZn+HXQps/+/svd
Z/NyvaqLuzJeLdZHu3u7u3t7HnGAHNceRUJanYJQQpEU38XAF2AKpYmOEKPn
OlPwSDz/UjHazakXWEWZLQGcJhcEKEJu2WR1CqAY1rleVGN14o1spO7B6lJH
I7AvxmpvBM/cAUyeRHuHY7Dq1jjTAzvT570zvU0nL3af705eHn7vBF+tFnqp
genaIIen9SqHuSJvvs6KB8MVY/W6oVUzqytDn7zgsT/3xv5irKarMs1w9M9x
9J9g9JOXXT4+eP5sf/9gMjncg6mAgps896bgsWk4gbG60vEyA01iB4NGXA5s
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
D/4LlqSRx76FAAA=

-->

</rfc>
