<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 4.0.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-bhatti-ilnp-ip6-apps-01" category="exp" submissionType="independent" updates="6740, 6741, 6748" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ILNP IPv6 apps">ILNP usage by IPv6 applications</title>

    <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="October" day="05"/>

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

<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 title="About This Document" removeInRFC="true">
      <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 147?>

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

<t><list style="symbols">
  <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>
  <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>
</list></t>

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

<t><list style="numbers" type="1">
  <t>The mechanisms by which ILNP communication is possible for unmodified IPv6 applications.</t>
  <t>How unmodified IPv6 applications can run on an ILNP-capable node.</t>
  <t>Which IPv6 applications should work with ILNP, and which are unlikely to work.</t>
</list></t>

<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 a suitable 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>

<t><list style="symbols">
  <t>Improved privacy and security at the packet level <xref target="BHY2021"/> <xref target="HB2024"/> <xref target="HB2025"/> <xref target="HB2026"/>.</t>
  <t>Combined mobility-multihoming capability under end-system control <xref target="YB2024"/>.</t>
  <t>Provision of multipath connectivity for existing transport protocols <xref target="YB2019"/>.</t>
</list></t>

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

<t><list style="symbols">
  <t>Locator, L64</t>
  <t>Node Identifier, NID</t>
  <t>Identifier-Locator Vector, I-LV</t>
  <t>I-L Communications Cache, ILCC</t>
</list></t>

<t>The following term is defined in <xref target="draft-bhatti-ilnp-preference"/>:</t>

<t><list style="symbols">
  <t>ordered I-LV sequence, <spanx style="verb">{A_a}</spanx></t>
</list></t>

<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 <spanx style="verb">sockets</spanx> API extensions for IPv6 is in relation to <xref target="RFC3493"/>, particularly the use of:</t>

<t><list style="symbols">
  <t>the <spanx style="verb">struct addrinfo</spanx> data structure.</t>
  <t>the <spanx style="verb">struct sockaddr_in6</spanx> data structure.</t>
  <t>the <spanx style="verb">getaddrinfo(3)</spanx> C library function call.</t>
</list></t>

</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>

<t><list style="numbers" type="1">
  <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>
  <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>
</list></t>

<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 <spanx style="verb">sockets</spanx> API</name>

<t>This document makes use of the <spanx style="verb">sockets</spanx> 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 <spanx style="verb">sockets</spanx> API, <em>address family</em> definitions exist for use with the function calls and data structures to identify the type of addressing being used: <spanx style="verb">AF_INET</spanx> for IPv4, <spanx style="verb">AF_INET6</spanx> for IPv6 <xref target="RFC3493"/>.
In the future, new addressing extensions for <spanx style="verb">sockets</spanx> 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 <spanx style="verb">AF_INET6</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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>

<t><list style="symbols">
  <t>the implicit type information in the textual representation of an address value in <spanx style="verb">/etc/hosts</spanx>:
  <list style="symbols">
      <t>decimal-dot notation for IPv4, such as "<spanx style="verb">123.12.34.45</spanx>".</t>
      <t>hexadecimal-colon notation for IPv6, such as "<spanx style="verb">2001:db8:12:34::abcd:1</spanx>".</t>
    </list></t>
  <t>the explicit type value of a DNS Resource Record (RR) returned in a DNS response:
  <list style="symbols">
      <t>type <spanx style="verb">A</spanx> for IPv4.</t>
      <t>type <spanx style="verb">AAAA</spanx> for IPv6.</t>
    </list></t>
</list></t>

<t>So, similarly, for ILNP we have type information included with addressing values:</t>

<t><list style="symbols">
  <t>notations for the textual representations of L64, NID, and I-LV values for use in <spanx style="verb">/etc/hosts</spanx> as defined in <xref target="draft-bhatti-ilnp-textual-representations"/>, such as "<spanx style="verb">2001-db8-12-34.0+0+abcd+1</spanx>" for an I-LV.</t>
  <t>DNS RRs for L64 and NID values, with type values assigned by IANA, as documented in <xref target="RFC6742"/>.</t>
</list></t>

<t>Although it is expected that normal operation for name resolution will be using DNS, the use of <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">socket(2)</spanx> API uses the <spanx style="verb">getaddrinfo(3)</spanx> library function to resolve names and provide for IPv6 applications a list of 128-bit IPv6 address in an instance of a <spanx style="verb">struct addrinfo</spanx> list.
<spanx style="verb">getaddrinfo(3)</spanx> has the function prototype:</t>

<figure><sourcecode type="C"><![CDATA[
int getaddrinfo(const char *nodename, const char *servname,
                const struct addrinfo *hints, struct addrinfo **res);
]]></sourcecode></figure>

<t>The typical code pattern for name resolution is:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">ai_family</spanx> member of <spanx style="verb">hints</spanx> is set to <spanx style="verb">AF_UNSPEC</spanx> (or <spanx style="verb">AF_INET6</spanx> for IPv6 only) before invoking <spanx style="verb">getaddrinfo(3)</spanx> with a value for <spanx style="verb">nodename</spanx> to resolve. (<spanx style="verb">servname</spanx> might also be used but is not relevant for this document.)</t>
  <t>Upon successful return, <spanx style="verb">res</spanx> holds a <spanx style="verb">struct addrinfo</spanx> list with a sequence of IPv6 address values that could be used by the application.</t>
  <t>A value from <spanx style="verb">res</spanx> is copied into a <spanx style="verb">struct sockaddr_in6</spanx> instance for use in <spanx style="verb">socket(2)</spanx>.</t>
</list></t>

<t>For an ILNP-capable node, to allow unmodified IPv6 applications to use ILNP, the behaviour of <spanx style="verb">getaddrinfo(3)</spanx> <bcp14>MUST</bcp14> be:</t>

<t><list style="numbers" type="1">
  <t>upon invocation:
  <list style="symbols">
      <t>if the <spanx style="verb">nodename</spanx> provided matches I-LV entries from <spanx style="verb">/etc/hosts</spanx>, then an <em>ordered I-LV sequence</em>, <spanx style="verb">{A_a}</spanx>, <bcp14>MUST</bcp14> be constructed from the matching entries;</t>
      <t>otherwise <spanx style="verb">nodename</spanx> is used in DNS queries so that <spanx style="verb">L64</spanx> and <spanx style="verb">NID</spanx> RRs can be retrieved (as well as <spanx style="verb">AAAA</spanx> and <spanx style="verb">A</spanx> RRs, if defined, for backwards compatibility), and the returned <spanx style="verb">L64</spanx> and <spanx style="verb">NID</spanx> RRs <bcp14>MUST</bcp14> be used to construct an <em>ordered I-LV sequence</em>, <spanx style="verb">{A_a}</spanx>.</t>
    </list></t>
  <t>upon successful return for the API user, the list in <spanx style="verb">res</spanx> <bcp14>MUST</bcp14> contain at its <em>start</em> the list of the I-LV values from <spanx style="verb">{A_a}</spanx> with the <spanx style="verb">struct addrinfo</spanx> instances marked as <spanx style="verb">AF_INET6</spanx> as if they are IPv6 addresses.</t>
  <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 <spanx style="verb">socket(2)</spanx> invocation with a <spanx style="verb">struct addrinfo_in6</spanx> instance containing an I-LV value from <spanx style="verb">res</spanx> will return a descriptor to a socket that will be an ILNP communication end-point.</t>
</list></t>

<t>The <em>ordered I-LV sequence</em>, <spanx style="verb">{A_a}</spanx>, contains I-LV values in a preferred ordering for the remote node.
The process for constructing <spanx style="verb">{A_a}</spanx> is described in <xref target="draft-bhatti-ilnp-preference"/>, but that process is not visible to the user.</t>

<t>So, the <spanx style="verb">socket(2)</spanx> family of calls using <spanx style="verb">res</spanx> 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 <spanx style="verb">L64</spanx>, <spanx style="verb">NID</spanx>, <spanx style="verb">AAAA</spanx>, and <spanx style="verb">A</spanx> RRs that match the same <spanx style="verb">nodename</spanx> is to use DNS query type of <spanx style="verb">ANY</spanx>, i.e. <spanx style="verb">QTYPE=ANY</spanx>.
While a DNS query with <spanx style="verb">QTYPE=ANY</spanx> 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 <spanx style="verb">QTYPE</spanx> values could be made by an implementation of <spanx style="verb">getaddrinfo(3)</spanx>, e.g. multiple queries with <spanx style="verb">QTYPE</spanx> set, in turn, to <spanx style="verb">L64</spanx>, <spanx style="verb">NID</spanx>, <spanx style="verb">AAAA</spanx>, and <spanx style="verb">A</spanx>.
However, <spanx style="verb">L64</spanx> and <spanx style="verb">NID</spanx> 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 <spanx style="verb">getaddrinfo(3)</spanx> to complete successfully.</t>

<t>As the ordering, delay, and content of DNS responses to <spanx style="verb">QTYPE=ANY</spanx> or to multiple parallel queries are not well-defined, <spanx style="verb">res</spanx> might not contain I-LV values, even if L64 and NID RRs are defined for <spanx style="verb">nodename</spanx> in the DNS.
This means that an I-LV might not always be selected after a call to <spanx style="verb">getaddrinfo(3)</spanx> when DNS is used.</t>

<t>Even if I-LV values are included in <spanx style="verb">res</spanx>, 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>

<t><list style="symbols">
  <t>Case 0: Use of "wildcard" addressing, i.e. no ILNP-specific information is configured when the IPv6 server application is invoked.</t>
  <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>
  <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>
</list></t>

<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 <spanx style="verb">bind(2)</spanx> using <spanx style="verb">IN6ADDR_ANY_INIT</spanx> 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>

<t><list style="numbers" type="1">
  <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>
  <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>
</list></t>

<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 <spanx style="verb">bind(2)</spanx>, the ILNP server node:</t>

<t><list style="numbers" type="1">
  <t><bcp14>SHOULD</bcp14> allow ILNP communication for that I-LV at the time of invocation.</t>
  <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>
</list></t>

<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 <spanx style="verb">L64</spanx> and <spanx style="verb">NID</spanx> 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 <spanx style="verb">socket</spanx> 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 <spanx style="verb">bind(2)</spanx> 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>

<t><list style="numbers" type="1">
  <t><bcp14>SHOULD</bcp14> allow ILNP communication for that I-LV at the time of invocation; and</t>
  <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>
</list></t>

<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 <spanx style="verb">socket</spanx> 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 <spanx style="verb">/etc/hosts</spanx></name>

<t>A name could be defined for lookup of an I-LV before <spanx style="verb">bind(2)</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">/etc/hosts</spanx> 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 title="Example entries in the `/etc/hosts` file for I-LV values for ILNP server nodes." anchor="f-server_side_ilv"><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 <spanx style="verb">bind(2)</spanx> 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 <spanx style="verb">getaddrinfo(3)</spanx> with a <spanx style="verb">nodename</spanx> for a remote node, then use a value from the <spanx style="verb">res</spanx> list, often the first value in the <spanx style="verb">res</spanx> list, to make a call to <spanx style="verb">socket(2)</spanx>, and then start a communication session.
Using the mechanism described in <xref target="ss-name_res_app"/>, the first value in <spanx style="verb">res</spanx> will be for an I-LV.
There might also be other I-LVs in <spanx style="verb">res</spanx>, but it is not possible for the IPv6 application to know that.
A subsequent call, e.g. to <spanx style="verb">connect(2)</spanx> with that first value from <spanx style="verb">res</spanx> will create an ILNP communication end-point.</t>

<section anchor="ss-client_etc_hosts"><name>Client-side use of <spanx style="verb">/etc/hosts</spanx></name>

<t>If DNS is not configured or if the use of <spanx style="verb">/etc/hosts</spanx> 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 <spanx style="verb">/etc/hosts</spanx> with corresponding L64 and NID entries in DNS: it is <bcp14>RECOMMENDED</bcp14> that client systems use DNS under normal operation.</t>

<figure title="Example entries in the `/etc/hosts` for use by a client to lookup I-LV values for a remote ILNP server node." anchor="f-client_side_ilv"><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 <spanx style="verb">getaddrinfo(3)</spanx>, if the client application chooses a value from the <spanx style="verb">res</spanx> 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>

<t><list style="numbers" type="1">
  <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>
  <t>NID_s and NID_d values <bcp14>MUST</bcp14> remain constant for the duration of the session.</t>
  <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>
</list></t>

<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 <spanx style="verb">sockets</spanx> 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"/> <xref target="HB2026"/>.</t>

</section>
<section anchor="s-iana"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="March" 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="October" day="05"/>
  </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="October" day="05"/>
  </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 title='Informative References' anchor="sec-informative-references">



<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="HB2026">
  <front>
    <title>Decoupling Network Layer Location and Transport Layer Identity for Communication 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="September" year="2026"/>
  </front>
  <seriesInfo name="Future Internet" value="vol. 18, no. 10, pp. 502"/>
  <seriesInfo name="DOI" value="10.3390/fi18100502"/>
<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 535?>

<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+V96XLbSJbufz5FjirijqQiaFGSZVnVG0uy24qRZbUlt8cx
MWGBRFLEGATYWCQzKtzPcp/lPtk9W24AKLl6evreiakfLgpLLidPnvOdLRFF
0WDwww8/DH5Q53mty1zX0VkZz2v1Ni6/JMVDrm70cpXFtR7gQ+91Hi+1qhdp
peZpptW8LJYqwTeiukiKaF00JT4SrcqiLmZFNlomqi7Una5VVcdlrZMRtMN9
UFvzolzGtYIGt7id35g2fhf95qEov9yVRbOC33QJmtsa0VBeF6VK87RO40xV
um5WQwUvqiLP1irXmnrVSVrDYKGTtKxqNc2K2RdVzOFPnSUVDuQdPr5Vp3Wm
t+i1Ct+bajVbxPmdTn5Sic50rdVWPJ2W+n5LpXPsp1T0Dg67WhRljW1N8rUq
oLdSzQogZl6rWZxjWzgMnQzVtKmp6bjU8yZTeVFjZ2lel0XSzOC5sixKGtZ1
gZShUaqHNMvwNZikipu6AGqlsziDcSdNmeZ3PHscF/S9VtC4anIZPpPqrMj/
GSicz7ImgZlEe3tbCqi3FeG6VjXMKRcqZbS+OIKLeKqzyt6BRVLfsTzSIg+i
gkWYrqEtbKEuioxoC3MHCsEPvDpryhIJda/LKi3yn2AuMMCkmGFrW9it0l9j
YEDNM7lBxquFI7GHSn0p4yUyalTOZydqUder6uTZs7u0XjTT0axYPpvF0+KZ
/xS08wk4BRen1NDSTNNYYBxpyUSQRVYrHmysknQOP3CkzK5IoVMisSUcDBTW
HGeBk4NnZgtLOuDv7dHXZUYT+te3F0Ol69loNNrBScHuGxAznait84vLK5hW
DO1O1+r86v5IxatVButdQ8PV1oC50DxpHoAb8IS+K8r1CYxjNUjgrxO1v7d/
FI33or3ng6qZLtMKR1evV3ArzRO90vAPTEn9AM29unm9NVRb3nX8Ezm3KGGL
4R/nk5/hf8g45+/h6YEs04kwxnQR13UapVm+itLVUYTjivbGg7xZTnV5MmhW
OKrqRB29ONwb4r9j+vd4ANulAtI1cG8eZ5UewAQPBqv0RP0byJChqmCDwUpU
8Gu95B+wsKt4VtOPJQy2+vcB8Fx8oi51jVw5sKxpL6mP8A/ulz/i5cEXvYar
yclAqUid44RT2HCluiiAlDBJ89aVCDK1jSTfaT0emcf/rGf4v+3z6OLP/JC5
s31xdMhXLgvYfl5X25fnZ3zn7PJ6cK/zRuNwwmHDBV6y/mkoYLU0O1FVnGm9
/ENVR3GelPqhGsWzUYNvx+VscQL8qnhPmEd5uZ7hcn3GpYInefOeDAYgZkCo
wVgiuKqAWWBlrkeXI/UzvUQXeemvqS0V3irKuxP1IU9pV9drlLjXNYhHGtdQ
ffgXeko/MXDqm7r+4+hmpN7EsF5FMrBd/7FEhlfhLep6AvxWx2tvCKZT6fNu
tOBX/hDzo90+34/UpziP79Ikdl2+XxfB1e+aqPRZros/LGpQTyNQsmFPH0cw
mXSpK6+nIslBmAd3qLdzt0Ghg+uJ38MdPfqH16XWP1+fjeD5wSAn8QMjRM56
//r0YG/vhfl5+PJAfh4eH+3Lz+cHz4/lJ25U93Psfu67nwfu56H7aVo4Pth7
bn4eHpvXjl8eU2NducECV+czGi7sDJBUibtF1wJZGSdAa5BrsB8a+vfKtqDu
46zRIBrxpY5AxIuWzbEn+ncDrz/K7d/L73GeA2uCysFtlvDkQUMw9plqHPyK
gUCCancVl6DkdTbqJVQN2qaJswgUGMwfmIEVRIdq+FyXavK2ar39/w2pgh7a
u/9xAfC0DAhbb+3zjVv9bxt7a28/ur0f2+F/O/Ok+dyXAD+/+QQrO+aF/O2J
Ont3PhrvjcbjvZfPzk8vr57vHx4ejvCR0cuj5+OXey/pyR+o/+uRW88hrIuh
+9Cn4ki9yhMwBiL4H+zG9D6erQn3sOIDuv0vVo2IlB5AJQGKgXbPryaTaH8M
unAf3kMdB7h6BXAe9N6DNU4eRPcZpQxkn4B6A3g9qxsAb6BC1CQDroB2lxVo
Y5gSsvJ4Z6T+nJbE9PoeQc/26bs/n59F45dw57K4p4dwq735GX4dtulzcPBy
79msXK/q4q6MV4v18d7+3t7+vkccIMeNR5GQVmcglFAkxXcx8AWYQmmiI8To
uc4UPBLPvlSMdnPqBVZRZksAp8kFAYqQWzZZnQIohnWuF9VInXojG6p7sLrU
8RDsi5HaH8IzdwCTx9H+0QisujXO9NDO9HnvTOfp+MXe873xy6PvneCr1UIv
NTBdG+TwtF7lMFfkzddZ8WC4YqReN7RqZnVl6OMXPPbn3thfjNRkVaYZjv65
Hf3RptEfj/dg/L9ieWaApTIkrUFZF/HagEGkOzLWTRnn1QqwqNy0DI0zPA2W
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
iiv+FuTuaPB/AXe3TTi/hgAA

-->

</rfc>

