rfc8653xml2.original.xml | rfc8653.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc toc="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
<?rfc tocompact="yes"?> | docName="draft-ietf-dmm-ondemand-mobility-18" | |||
<?rfc tocdepth="3"?> | number="8653" | |||
<?rfc tocindent="yes"?> | updates="" | |||
<?rfc symrefs="yes"?> | obsoletes="" | |||
<?rfc sortrefs="yes"?> | category="info" | |||
<?rfc comments="yes"?> | submissionType="IETF" | |||
<?rfc inline="yes"?> | consensus="true" | |||
<?rfc compact="yes"?> | ipr="trust200902" | |||
<?rfc subcompact="no"?> | sortRefs="true" | |||
<rfc category="info" docName="draft-ietf-dmm-ondemand-mobility-18" | symRefs="true" | |||
ipr="trust200902"> | tocInclude="true" | |||
xml:lang="en" | ||||
<!-- | version="3"> | |||
This is a comment | <!-- xml2rfc v2v3 conversion 2.25.0 --> | |||
<front> | <front> | |||
<title abbrev="On Demand Mobility">On Demand Mobility Management</title> | <title abbrev="On-Demand Mobility">On-Demand Mobility Management</title> | |||
<seriesInfo name="RFC" value="8653"/> | ||||
<author fullname="Alper Yegin" initials="A." surname="Yegin"> | <author fullname="Alper Yegin" initials="A." surname="Yegin"> | |||
<organization abbrev="Actility">Actility</organization> | <organization abbrev="Actility">Actility</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city>Istanbul</city> | <city>Istanbul</city> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country>Turkey</country> | <country>Turkey</country> | |||
</postal> | </postal> | |||
<email>alper.yegin@actility.com</email> | <email>alper.yegin@actility.com</email> | |||
</address> | </address> | |||
skipping to change at line 51 ¶ | skipping to change at line 47 ¶ | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city>Petah Tikva</city> | <city>Petah Tikva</city> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country>Israel</country> | <country>Israel</country> | |||
</postal> | </postal> | |||
<email>danny.moses@intel.com</email> | <email>danny.moses@intel.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Seil Jeon" initials="S." surname="Jeon"> | <author fullname="Seil Jeon" initials="S." surname="Jeon"> | |||
<organization>Sungkyunkwan University</organization> | <organization>Sungkyunkwan University</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city>Suwon</city> | <city>Suwon</city> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country>South Korea</country> | <country>Republic of Korea</country> | |||
</postal> | </postal> | |||
<email>seiljeon@skku.edu</email> | <email>seiljeon.ietf@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date/> | <date month="October" year="2019"/> | |||
<workgroup>DMM Working Group</workgroup> | <workgroup>DMM Working Group</workgroup> | |||
<abstract> | <abstract> | |||
<t>Applications differ with respect to whether they need session | <t>Applications differ with respect to whether they need session | |||
continuity and/or IP address reachability. The network providing the | continuity and/or IP address reachability. The network providing the | |||
same type of service to any mobile host and any application running on | same type of service to any mobile host and any application running on | |||
the host yields inefficiencies, as described in <xref target="RFC7333"> </xref>. | the host yields inefficiencies, as described in RFC 7333. | |||
This document defines a new concep of enabling applications to influenc e the | This document defines a new concept of enabling applications to influen ce the | |||
network's mobility services (session continuity and/or IP address reach ability) | network's mobility services (session continuity and/or IP address reach ability) | |||
on a per-Socket basis, and suggests extensions to the networking stack' | on a per-socket basis, and suggests extensions to the networking stack' | |||
s API | s API | |||
to accomodate this concept. | to accommodate this concept. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction" title="Introduction"> | <section anchor="introduction" numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<t>In the context of Mobile IP <xref target="RFC5563"></xref><xref | <t>In the context of Mobile IP <xref target="RFC5563" format="default"/> < | |||
target="RFC6275"></xref><xref target="RFC5213"></xref><xref target=" | xref target="RFC6275" format="default"/> | |||
RFC5944"></xref>, | <xref target="RFC5213" format="default"/> <xref target="RFC5944" format="default | |||
"/>, | ||||
the following two attributes are defined for IP service p rovided to | the following two attributes are defined for IP service p rovided to | |||
mobile hosts:</t> | mobile hosts:</t> | |||
<dl newline="true"> | ||||
<t>- Session Continuity</t> | <dt>Session Continuity</dt> | |||
<dd>The ability to maintain an ongoing transport interaction | ||||
<t>The ability to maintain an ongoing transport interaction | by keeping the same local endpoint IP address throughout | |||
by keeping the same local end-point IP address throughout | the lifetime of the IP | |||
the life-time of the IP | ||||
socket despite the mobile host changing its point of atta chment within the IP | socket despite the mobile host changing its point of atta chment within the IP | |||
network topology. The IP address of the host may change a fter closing the IP socket | network topology. The IP address of the host may change a fter closing the IP socket | |||
and before opening a new one, but that does not jeopardiz e the ability of applications | and before opening a new one, but that does not jeopardiz e the ability of applications | |||
using these IP sockets to work flawlessly. Session contin uity is essential for mobile | using these IP sockets to work flawlessly. Session contin uity is essential for mobile | |||
hosts to maintain ongoing flows without any interruption. | hosts to maintain ongoing flows without any interruption. | |||
</t> | </dd> | |||
<dt>IP Address Reachability</dt> | ||||
<t>- IP Address Reachability</t> | <dd>The ability to maintain the same IP address | |||
<t>The ability to maintain the same IP address | ||||
for an extended period of time. The IP address stays the same across | for an extended period of time. The IP address stays the same across | |||
independent sessions, and even in the absence of any sess | independent sessions, even in the absence of any session. | |||
ion. The | The | |||
IP address may be published in a long-term registry (e.g. | IP address may be published in a long-term registry (e.g. | |||
, DNS), and | , DNS) and | |||
is made available for serving incoming (e.g., TCP) connec tions. IP | is made available for serving incoming (e.g., TCP) connec tions. IP | |||
address reachability is essential for mobile hosts to use | address reachability is essential for mobile hosts to use | |||
specific/published IP addresses.</t> | specific/published IP addresses.</dd> | |||
</dl> | ||||
<t>Mobile IP is designed to provide both session continuity and IP | <t>Mobile IP is designed to provide both session continuity and IP | |||
address reachability to mobile hosts. Architectures utili | address reachability to mobile hosts. Architectures using | |||
zing these | these | |||
protocols (e.g., 3GPP, 3GPP2, WIMAX) ensure that any mobi | protocols (e.g., 3GPP, 3GPP2, WiMAX) ensure that any mobi | |||
le host | le host | |||
attached to the compliant networks can enjoy these benefi | attached to a compliant network can enjoy these benefits. | |||
ts. Any | Any | |||
application running on these mobile hosts is subjected to the same | application running on these mobile hosts is subjected to the same | |||
treatment with respect to session continuity and IP addre ss | treatment with respect to session continuity and IP addre ss | |||
reachability.</t> | reachability.</t> | |||
<t>Achieving session continuity and IP address reachability with | ||||
<t>Achieving session continuity and IP address reachability with | Mobile IP incurs some cost. Mobile IP forces the mobile h | |||
Mobile IP incurs some cost. Mobile IP protocol forces the | ost's | |||
mobile host's | IP traffic to traverse a centrally located router (Home A | |||
IP traffic to traverse a centrally-located router (Home A | gent, HA), | |||
gent, HA), | ||||
which incurs additional transmission latency and use of a dditional | which incurs additional transmission latency and use of a dditional | |||
network resources, adds to the network CAPEX and OPEX, an d decreases the | network resources, adds to the network's operating and ca pital expenditures, and decreases the | |||
reliability of the network due to the introduction of a s ingle point of | reliability of the network due to the introduction of a s ingle point of | |||
failure <xref target="RFC7333"></xref>. Therefore, sessio | failure <xref target="RFC7333" format="default"/>. Theref | |||
n continuity | ore, session continuity | |||
and IP address reachability SHOULD be provided only when | and IP address reachability <bcp14>SHOULD</bcp14> be prov | |||
necessary.</t> | ided only when necessary.</t> | |||
<t>In reality, not every application may need | ||||
<t>In reality not every application may need | ||||
these benefits. IP address reachability is required for a pplications | these benefits. IP address reachability is required for a pplications | |||
running as servers (e.g., a web server running on the mob ile host). But, | running as servers (e.g., a web server running on the mob ile host), but | |||
a typical client application (e.g., web browser) does not necessarily | a typical client application (e.g., web browser) does not necessarily | |||
require IP address reachability. Similarly, session conti nuity is not | require IP address reachability. Similarly, session conti nuity is not | |||
required for all types of applications either. Applicatio ns performing | required for all types of applications either. Applicatio ns performing | |||
brief communication (e.g., text messaging) can survive wi thout having session | brief communication (e.g., text messaging) can survive wi thout having session | |||
continuity support.</t> | continuity support.</t> | |||
<t>Furthermore, when an application needs session continuity, it may be | <t>Furthermore, when an application needs session continuity, it may be | |||
able to satisfy that need by using a solution above the I P layer, such | able to satisfy that need by using a solution above the I P layer, such | |||
as MPTCP <xref target="RFC6824"></xref>, SIP mobility <xr | as Multipath TCP <xref target="RFC6824" format="default"/ | |||
ef | >, SIP mobility <xref target="RFC3261" format="default"/>, or an application-lay | |||
target="RFC3261"></xref>, or an application-layer mobilit | er mobility solution. These | |||
y solution. These | ||||
higher-layer solutions are not subject to the same issues that arise | higher-layer solutions are not subject to the same issues that arise | |||
with the use of Mobile IP since they can utilize the most | with the use of Mobile IP since they can use the most dir | |||
direct data | ect data | |||
path between the end-points. But, if Mobile IP is being a | path between the endpoints. But, if Mobile IP is being ap | |||
pplied to the | plied to the | |||
mobile host, the higher-layer protocols are rendered usel ess because | mobile host, the higher-layer protocols are rendered usel ess because | |||
their operation is inhibited by Mobile IP. Since Mobile I P ensures | their operation is inhibited by Mobile IP. Since Mobile I P ensures | |||
that the IP address of the mobile host remains fixed (des pite the location | that the IP address of the mobile host remains fixed (des pite the location | |||
and movement of the mobile host), the higher-layer protoc ols never | and movement of the mobile host), the higher-layer protoc ols never | |||
detect the IP-layer change and never engage in mobility m anagement.</t> | detect the IP-layer change and never engage in mobility m anagement.</t> | |||
<t>This document proposes a solution for applications running on | ||||
<t>This document proposes a solution for applications running on | ||||
mobile hosts to indicate when establishing the network co nnection ('on | mobile hosts to indicate when establishing the network co nnection ('on | |||
demand') whether they need session continuity or IP | demand') whether they need session continuity or IP | |||
address reachability. The network protocol stack on the m obile host, in | address reachability. The network protocol stack on the m obile host, in | |||
conjunction with the network infrastructure, provides the required | conjunction with the network infrastructure, provides the required | |||
type of service. It is for the benefit of both the users and the | type of service. It is for the benefit of both the users and the | |||
network operators not to engage an extra level of service unless it is | network operators not to engage an extra level of service unless it is | |||
absolutely necessary. It is expected that applications an d networks | absolutely necessary. It is expected that applications an d networks | |||
compliant with this specification will utilize this solut ion to use | compliant with this specification will utilize this solut ion to use | |||
network resources more efficiently.</t> | network resources more efficiently.</t> | |||
</section> | ||||
</section> <!-- Introduction --> | <!-- Introduction --> | |||
<section anchor="notation" numbered="true" toc="default"> | ||||
<section anchor="notation" title="Notational Conventions"> | <name>Notational Conventions</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTI | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
ONAL" in this | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp | |||
document are to be interpreted as described in BCP 14 , <xref | 14>", | |||
target="RFC2119"></xref> <xref target="RFC8174"></xref> when, they appear | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
in all capitals, | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
to be | ||||
</section> <!-- Notational Conventions --> | interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | |||
target="RFC8174"/> when, and only when, they appear in all capitals, as | ||||
<section anchor="solution" title="Solution"> | shown here. | |||
</t> | ||||
<section anchor="hldescription" title="High-level Description"> | </section> | |||
<!-- Notational Conventions --> | ||||
<section anchor="solution" numbered="true" toc="default"> | ||||
<name>Solution</name> | ||||
<section anchor="hldescription" numbered="true" toc="default"> | ||||
<name>High-Level Description</name> | ||||
<t> Enabling applications to indicate their mobility service requirement s | <t> Enabling applications to indicate their mobility service requirement s | |||
e.g. session continuity and/or IP address reachability, comprises the | (e.g., session continuity and/or IP address reachability) compris es the | |||
following steps:</t> | following steps:</t> | |||
<ol> | ||||
<t>- The application indicates to the network stack (local to the | <li>The application indicates to the network stack (local to the | |||
mobile host) the desired mobility service.</t> | mobile host) the desired mobility service.</li> | |||
<li>The network stack assigns a source IP address based on an IP prefix | ||||
<t>- The network stack assigns a source IP address based on an IP prefix | ||||
with the desired services that was previously provided by the net work. | with the desired services that was previously provided by the net work. | |||
If such an IP prefix is not available, the network stack performs the | If such an IP prefix is not available, the network stack performs the | |||
additional steps below.</t> | additional steps below.</li> | |||
<li>The network stack sends a request to the network for a new source | ||||
<t>- The network stack sends a request to the network for a new source | IP prefix that is associated with the desired mobility service.</ | |||
IP prefix that is associated with the desired mobility service.</ | li> | |||
t> | <li>The network responds with the suitable allocated source IP prefix | |||
(or responds with a failure indication).</li> | ||||
<t>- The network responds with the suitable allocated source IP prefix | <li>If the suitable source IP prefix was allocated, the network stack | |||
(or responds with a failure indication).</t> | constructs a source IP address and provides it to the application | |||
.</li> | ||||
<t>- If the suitable source IP prefix was allocates, the network stack | </ol> | |||
constructs a source IP address and provides it to the application | ||||
.</t> | ||||
<t> This document specifies the new address types associated with | <t> This document specifies the new address types associated with | |||
mobility services and details the interaction between the applica tions | mobility services and details the interaction between the applica tions | |||
and the network stack steps. It uses the Socket interface as an e xample | and the network stack steps. It uses the socket interface as an e xample | |||
for an API between applications and the network stack. Other step s are | for an API between applications and the network stack. Other step s are | |||
outside the scope of this document.</t> | outside the scope of this document.</t> | |||
</section> <!-- High-level Description --> | </section> | |||
<!-- High-level Description --> | ||||
<section anchor="addresstypes" title="Types of IP Addresses"> | <section anchor="addresstypes" numbered="true" toc="default"> | |||
<name>Types of IP Addresses</name> | ||||
<t> Four types of IP addresses are defined with respect to mobility | <t> Four types of IP addresses are defined with respect to mobility | |||
management.</t> | management:</t> | |||
<dl newline="true"> | ||||
<t>- Fixed IP Address</t> | <dt>Fixed IP address</dt> | |||
<dd> | ||||
<t> A Fixed IP address is an address with a guarantee to be valid for a | <t> A Fixed IP address is an address guaranteed to be valid for a | |||
very long time, regardless of whether it is being used in any pac ket | very long time, regardless of whether it is being used in any pac ket | |||
to/from the mobile host, or whether or not the mobile host is | to/from the mobile host, or whether or not the mobile host is | |||
connected to the network, or whether it moves from one | connected to the network, or whether it moves from one | |||
point-of-attachment to another (with a different IP prefix) while it is | point of attachment to another (with a different IP prefix) while it is | |||
connected.</t> | connected.</t> | |||
<t>Fixed IP addresses are required by applications that need both sessio | ||||
<t>Fixed IP addresses are required by applications that need both | n | |||
session | ||||
continuity and IP address reachability.</t> | continuity and IP address reachability.</t> | |||
</dd> | ||||
<t>- Session-lasting IP Address</t> | <dt>Session-Lasting IP address</dt> | |||
<dd> | ||||
<t>A session-lasting IP address is an address with a guarantee to be | <t>A Session-Lasting IP address is an address guaranteed to be | |||
valid throughout the life-time of the socket(s) for which it was | valid for the lifetime of the socket(s) for which it was requeste | |||
requested. | d. | |||
It is guaranteed to be valid even after the mobile host had moved | It is guaranteed to be valid even after the mobile host has moved | |||
from one | from one | |||
point-of-attachment to another (with a different IP prefix).</t> | point of attachment to another (with a different IP prefix).</t> | |||
<t>Session-Lasting IP addresses are required by applications that need | ||||
<t>Session-lasting IP addresses are required by applications that need | ||||
session continuity but do not need IP address reachability.</t> | session continuity but do not need IP address reachability.</t> | |||
</dd> | ||||
<t>- Non-persistent IP Address</t> | <dt>Nonpersistent IP address</dt> | |||
<dd> | ||||
<t>This type of IP address has no guarantee to exist after a mobile host | <t>This type of IP address is not guaranteed to exist after a mobile hos | |||
moves from one point-of-attachment to another, and therefore, no | t | |||
session | moves from one point of attachment to another; therefore, no sess | |||
ion | ||||
continuity nor IP address reachability are provided. The IP addre ss is created | continuity nor IP address reachability are provided. The IP addre ss is created | |||
from an IP prefix that is obtained from the serving IP gateway an d is not | from an IP prefix that is obtained from the serving IP gateway an d is not | |||
maintained across gateway changes. In other words, the IP prefix may be released | maintained across gateway changes. In other words, the IP prefix may be released | |||
and replaced by a new one when the IP gateway changes due to the movement of the | and replaced by a new one when the IP gateway changes due to the movement of the | |||
mobile host forcing the creation of a new source IP address with the updated | mobile host forcing the creation of a new source IP address with the updated | |||
allocated IP prefix.</t> | allocated IP prefix.</t> | |||
</dd> | ||||
<t>- Graceful Replacement IP Address</t> | <dt>Graceful-Replacement IP address</dt> | |||
<t>In some cases, the network cannot guarantee the validity of th | <dd> | |||
e provided | <t>In some cases, the network cannot guarantee the validity of the provi | |||
ded | ||||
IP prefix throughout the duration of the opened socket, but can p rovide a limited | IP prefix throughout the duration of the opened socket, but can p rovide a limited | |||
graceful period of time in which both the original IP prefix and a new one are | graceful period of time in which both the original IP prefix and a new one are | |||
valid. This enables the application some flexibility in the trans ition from the | valid. This enables the application some flexibility in the trans ition from the | |||
existing source IP address to the new one.</t> | existing source IP address to the new one.</t> | |||
<t>This gracefulness is still better than the nonpersistence type of add | ||||
<t>This gracefulness is still better than the non-persistence type of ad | ress | |||
dress | ||||
for applications that can handle a change in their source IP addr ess but require | for applications that can handle a change in their source IP addr ess but require | |||
that extra flexibility.</t> | that extra flexibility.</t> | |||
</dd> | ||||
<t>Applications running as servers at a published IP address requ | </dl> | |||
ire a | <t>Applications running as servers at a published IP address require a | |||
Fixed IP Address. Long-standing applications (e.g., an SSH sessi | Fixed IP address. Long-standing applications (e.g., an SSH sessi | |||
on) | on) | |||
may also require this type of address. Enterprise applications th at | may also require this type of address. Enterprise applications th at | |||
connect to an enterprise network via virtual LAN require a Fixed IP | connect to an enterprise network via virtual LAN require a Fixed IP | |||
Address.</t> | address.</t> | |||
<t>Applications with short-lived transient sessions (e.g., web browsers) | ||||
<t>Applications with short-lived transient sessions can use | can use | |||
Session-lasting IP Addresses. For example: Web browsers.</t> | Session-Lasting IP addresses.</t> | |||
<t>Applications with very short sessions, such as DNS clients and | <t>Applications with very short sessions, such as DNS clients and | |||
instant messengers, can utilize Non-persistent IP Addresses. Even | instant messengers, can use Nonpersistent IP addresses. Even | |||
though they could very well use Fixed or Session-lasting IP | though they could very well use Fixed or Session-Lasting IP | |||
Addresses, the transmission latency would be minimized when a | addresses, the transmission latency would be minimized when a | |||
Non-persistent IP Addresses are used.</t> | Nonpersistent IP address is used.</t> | |||
<t>Applications that can tolerate a short interruption in connectivity | <t>Applications that can tolerate a short interruption in connectivity | |||
can use the Graceful-replacement IP addresses. For example, a str eaming | can use the Graceful-Replacement IP addresses, for example, a str eaming | |||
client that has buffering capabilities.</t> | client that has buffering capabilities.</t> | |||
</section> | ||||
</section> <!-- Types of IP Addresses --> | <!-- Types of IP Addresses --> | |||
<section anchor="granularity" numbered="true" toc="default"> | ||||
<section anchor="granularity" title="Granularity of Selection"> | <name>Granularity of Selection</name> | |||
<t>IP address type selection is made on a per-socket granularity. | <t>IP address type selection is made on a per-socket granularity. | |||
Different parts of the same application may have different needs. For | Different parts of the same application may have different needs. For | |||
example, the control-plane of an application may require a Fixed | example, the control plane of an application may require a Fixed | |||
IP | IP | |||
Address in order to stay reachable, whereas the data-plane of the | address in order to stay reachable, whereas the data plane of the | |||
same | same | |||
application may be satisfied with a Session-lasting IP Address.</ | application may be satisfied with a Session-Lasting IP address.</ | |||
t> | t> | |||
</section> <!-- Granularity of Selection --> | </section> | |||
<!-- Granularity of Selection --> | ||||
<section anchor="ondemand" title="On Demand Nature"> | <section anchor="ondemand" numbered="true" toc="default"> | |||
<name>On-Demand Nature</name> | ||||
<t>At any point in time, a mobile host may have a combination of IP | <t>At any point in time, a mobile host may have a combination of IP | |||
addresses configured. Zero or more Fixed, zero or more Session-la | addresses configured. Zero or more Fixed, zero or more Session-La | |||
sting, | sting, | |||
zero or more Non-persistent and zero or more Graceful-Replacement | zero or more Nonpersistent, and zero or more Graceful-Replacement | |||
IP addresses may be configured by the IP stack of the host. The | IP addresses may be configured by the IP stack of the host. The | |||
combination may be as a result of the host policy, application de mand, | combination may be a result of the host policy, application deman d, | |||
or a mix of the two.</t> | or a mix of the two.</t> | |||
<t>When an application requires a specific type of IP address, and such | ||||
<t>When an application requires a specific type of IP address and such | an address is not already configured on the host, the IP stack <b | |||
an address is not already configured on the host, the IP stack SH | cp14>SHALL</bcp14> | |||
ALL | ||||
attempt to configure one. For example, a host may not always have a | attempt to configure one. For example, a host may not always have a | |||
Session-lasting IP address available. When an application request | Session-Lasting IP address available. When an application request | |||
s | s | |||
one, the IP stack SHALL make an attempt to configure one by issui | one, the IP stack <bcp14>SHALL</bcp14> make an attempt to configu | |||
ng a | re one by issuing a | |||
request to the network. If the operation fails, the IP stack SHAL | request to the network. If the operation fails, the IP stack <bcp | |||
L | 14>SHALL</bcp14> | |||
fail the associated socket request and return an error. If succes sful, | fail the associated socket request and return an error. If succes sful, | |||
a Session-lasting IP Address gets configured on the mobile host. | a Session-Lasting IP address is configured on the mobile host. If | |||
If | another socket requests a Session-Lasting IP address at a later t | |||
another socket requests a Session-lasting IP address at a later t | ime, | |||
ime, | the same IP address may be served to that socket as well. When t | |||
the same IP address may be served to that socket as well. When th | he last | |||
e last | ||||
socket using the same configured IP address is closed, the IP add ress | socket using the same configured IP address is closed, the IP add ress | |||
may be released or kept for future applications that may be launc | may be released, or it may be kept for applications requiring a S | |||
hed | ession-Lasting | |||
and require a Session-lasting IP address.</t> | IP address that may be launched in the future.</t> | |||
<t>In some cases, it might be preferable for the mobile host to request | ||||
<t>In some cases it might be preferable for the mobile host to re | a new Session-Lasting IP address for a new opening of an IP socke | |||
quest | t | |||
a new Session-lasting IP address for a new opening of an IP socke | ||||
t | ||||
(even though one was already assigned to the mobile host by the | (even though one was already assigned to the mobile host by the | |||
network and might be in use in a different, already active IP | network and might be in use in a different, already active IP | |||
sockets). It is outside the scope of this specification to defin e | socket). It is outside the scope of this specification to define | |||
criteria for choosing to use available addresses or choosing to r equest | criteria for choosing to use available addresses or choosing to r equest | |||
new ones. It supports both alternatives (and any combination).</t > | new ones. It supports both alternatives (and any combination).</t > | |||
<t>It is outside the scope of this specification to define how the | ||||
<t>It is outside the scope of this specification to define how th | ||||
e | ||||
host requests a specific type of prefix and how the network indic ates | host requests a specific type of prefix and how the network indic ates | |||
the type of prefix in its advertisement or in its reply to a requ est.</t> | the type of prefix in its advertisement or in its reply to a requ est.</t> | |||
<t>The following are matters of policy, which may be dictated by the | ||||
<t>The following are matters of policy, which may be dictated by | ||||
the | ||||
host itself, the network operator, or the system architecture | host itself, the network operator, or the system architecture | |||
standard:</t> | standard:</t> | |||
<ul> | ||||
<li>The initial set of IP addresses configured on the host at boot | ||||
time</li> | ||||
<li>Permission to grant various types of IP addresses to a requesting | ||||
application</li> | ||||
<t> - The initial set of IP addresses configured on the host at boot | <li>Determination of a default address type when an application does | |||
time.</t> | not explicitly indicate whether it supports the required API or is a | |||
<t>- Permission to grant various types of IP addresses to a requesting | legacy application </li> | |||
application.</t> | </ul> | |||
<t>- Determination of a default address type when an application does | </section> | |||
not make any explicit indication, whether it already supports the | <!-- On-Demand Nature --> | |||
required API or it is just a legacy application.</t> | </section> | |||
<!-- Solution --> | ||||
</section> <!-- On Demand Nature --> | <section anchor="compatibility" numbered="true" toc="default"> | |||
<name>Backwards Compatibility Considerations</name> | ||||
</section> <!-- Solution --> | <t> Backwards compatibility support is <bcp14>REQUIRED</bcp14> by the foll | |||
owing three types | ||||
<section anchor="compatibility" title="Backwards Compatibility Consideration | ||||
s"> | ||||
<t> Backwards compatibility support is REQUIRED by the following 3 types | ||||
of entities: </t> | of entities: </t> | |||
<t>- The Applications on the mobile host</t> | <ul> | |||
<t>- The IP stack in the mobile host</t> | <li>The applications on the mobile host</li> | |||
<t>- The network infrastructure </t> | <li>The IP stack in the mobile host</li> | |||
<li>The network infrastructure </li> | ||||
<section anchor="applications" title="Applications"> | </ul> | |||
<t>Legacy applications that do not support the On-Demand functionality wi | <section anchor="applications" numbered="true" toc="default"> | |||
ll use | <name>Applications</name> | |||
<t>Legacy applications that do not support the On-Demand functionality w | ||||
ill use | ||||
the legacy API and will not be able to take advantage of the On-Demand | the legacy API and will not be able to take advantage of the On-Demand | |||
Mobility feature. </t> | Mobility feature. </t> | |||
<t> Applications using the new On-Demand functionality should be aware t | ||||
<t> Applications using the new On-Demand functionality should be aware th | hat | |||
at | they may be executed in legacy environments that do not support it. Such | |||
they may be executed in legacy environments that do not support it. S | ||||
uch | ||||
environments may include a legacy IP stack on the mobile host, legacy net work | environments may include a legacy IP stack on the mobile host, legacy net work | |||
infrastructure, or both. In either case, the API will return an error cod | infrastructure, or both. In either case, the API will return an error cod | |||
e and | e, and | |||
the invoking applications may just give up and use legacy calls. </t> | the invoking application may just give up and use legacy calls. </t> | |||
</section> <!-- Applications --> | </section> | |||
<!-- Applications --> | ||||
<section anchor="stack" title="IP Stack in the Mobile Host"> | <section anchor="stack" numbered="true" toc="default"> | |||
<t>New IP stacks (that implement On Demand functionality) MUST continue t | <name>IP Stack in the Mobile Host</name> | |||
o support | <t>New IP stacks (that implement On-Demand functionality) <bcp14>MUST</b | |||
cp14> continue to support | ||||
all legacy operations. If an application does not use On-Demand functiona lity, the | all legacy operations. If an application does not use On-Demand functiona lity, the | |||
IP stack MUST respond in a legacy manner.</t> | IP stack <bcp14>MUST</bcp14> respond in a legacy manner.</t> | |||
<t> If the network infrastructure supports On-Demand functionality, | ||||
<t> If the network infrastructure supports On-Demand functionality, | the IP stack <bcp14>SHOULD</bcp14> follow the application request: If the | |||
the IP stack SHOULD follow the application request: If the application | application | |||
requests a specific address type, the stack SHOULD forward this | requests a specific address type, the stack <bcp14>SHOULD</bcp14> forward | |||
request to the network. If the application does not request an address | this | |||
type, the IP stack MUST NOT request an address type and leave it to | request to the network. | |||
the network's default behavior to choose the type of the allocated IP | If the application does not request an address type, the IP stack <bcp14>MUST NO | |||
prefix. If an IP prefix was already allocated to the host, the IP | T</bcp14> | |||
request an address type. Instead, the network will choose the type of | ||||
allocated IP prefix. How the network selects the type of allocated IP prefix | ||||
is outside the scope of this document. If an IP prefix was already allocated to | ||||
the host, the IP | ||||
stack uses it and may not request a new one from the network.</t> | stack uses it and may not request a new one from the network.</t> | |||
</section> | ||||
</section> <!-- IP Stack in the Mobile Host --> | <!-- IP Stack in the Mobile Host --> | |||
<section anchor="network" numbered="true" toc="default"> | ||||
<section anchor="network" title="Network Infrastructure"> | <name>Network Infrastructure</name> | |||
<t> The network infrastructure may or may not support the On-Demand | ||||
<t> The network infrastructure may or may not support the On-Demand | ||||
functionality. How the IP stack on the host and the network | functionality. How the IP stack on the host and the network | |||
infrastructure behave in case of a compatibility issue is outside the | infrastructure behave in case of a compatibility issue is outside the | |||
scope of this API specification. </t> | scope of this API specification. </t> | |||
</section> | ||||
</section> <!-- Network Infrastructure --> | <!-- Network Infrastructure --> | |||
<section anchor="RFC5014ref" numbered="true" toc="default"> | ||||
<section anchor="RFC5014ref" title="Merging this work with RFC5014"> | <name>Merging this work with RFC 5014</name> | |||
<t><xref target="RFC5014"></xref> defines new flags that may be used with | <t><xref target="RFC5014" format="default"/> defines new flags that may | |||
be used with | ||||
setsockopt() to influence source IP address selection for a socket. The l ist of | setsockopt() to influence source IP address selection for a socket. The l ist of | |||
flags include: source home address, care-of address, temporary address, p | flags include the following: source home address, care-of address, tempor | |||
ublic | ary address, public | |||
address CGA (Cryptographically Created Address) and non-CGA. When applica | address CGA (Cryptographically Created Address), and non-CGA. When applic | |||
tions | ations | |||
require session continuity service, they SHOULD NOT set the flags specifi | require session continuity service, they <bcp14>SHOULD NOT</bcp14> set th | |||
ed | e flags specified | |||
in <xref target="RFC5014"></xref>.</t> | in <xref target="RFC5014" format="default"/>.</t> | |||
<t>However, if an application erroneously performs a combination of (1) | ||||
<t>However, if an application erroneously performs a combination of (1) U | using | |||
se | ||||
setsockopt() to set a specific option (using one of the flags specified i n | setsockopt() to set a specific option (using one of the flags specified i n | |||
<xref target="RFC5014"></xref>) and (2) Selects a source IP address type, the | <xref target="RFC5014" format="default"/>) and (2) selecting a source IP address type, the | |||
IP stack will fulfill the request specified by (2) and ignore the flags s et | IP stack will fulfill the request specified by (2) and ignore the flags s et | |||
by (1).</t> | by (1).</t> | |||
</section> | ||||
</section> <!-- Merging this work with RFC5014 --> | <!-- Merging This Work with RFC5014 --> | |||
</section> | ||||
</section> <!-- Backwards Compatibility Considerations --> | <!-- Backwards Compatibility Considerations --> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<section anchor="security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t> The different service types (session continuity types and address rea | <t> The different service types (session continuity types and address reac | |||
chability) associated | hability) associated | |||
with the allocated IP address types, may be associated with different cos | with the allocated IP address types may be associated with different cost | |||
ts. The cost | s: the cost | |||
to the operator for enabling a type of service, and the cost to applicati ons using a | to the operator for enabling a type of service, and the cost to applicati ons using a | |||
selected service. A malicious application may use these to generate extra | selected service. A malicious application may use these to indirectly | |||
billing of a | generate extra billing of a mobile subscriber, and/or impose costly | |||
mobile subscriber, and/or impose costly services on the mobile operator. | services on the mobile operator. When expensive | |||
When costly | ||||
services are limited, malicious applications may exhaust them, preventing other | services are limited, malicious applications may exhaust them, preventing other | |||
applications on the same mobile host from being able to use them.</t> | applications on the same mobile host from being able to use them.</t> | |||
<t> Mobile hosts that enable such service options should provide capabilit | ||||
<t> Mobile hosts that enables such service options, should provide capabi | ies for | |||
lities for | ensuring that only authorized applications can use the expensive (or limi | |||
ensuring that only authorized applications can use the costly (or limited | ted) service | |||
) service | ||||
types.</t> | types.</t> | |||
<t> The ability to select service types requires the exchange of the assoc | ||||
<t> The ability to select service types requires the exchange of the asso | iation of | |||
ciation of | ||||
source IP prefixes and their corresponding service types, between the mob ile host and | source IP prefixes and their corresponding service types, between the mob ile host and | |||
mobile network. Exposing these associations may provide information to pa ssive | mobile network. Exposing these associations may provide information to pa ssive | |||
attackers even if the traffic that is used with these addressed is encryp | attackers even if the traffic that is used with these addresses is encryp | |||
ted.</t> | ted.</t> | |||
<t>To avoid profiling an application according to the type of IP address, | ||||
<t> To avoid profiling an application according to the type of IP add | it is expected that prefixes provided by the mobile operator are associat | |||
resses, | ed with | |||
it is expected that prefixes provided by the mobile operator are associat | various types of addresses over time. As a result, the type of address | |||
ed to | cannot be associated with the prefix, making application profiling based | |||
various type of addresses over time. As a result, the type of address | on the | |||
could not be associated to the prefix, making application profiling based | type of address more difficult. </t> | |||
on the | <t>The application or the OS should ensure that IP addresses regularly cha | |||
type of address harder. </t> | nge | |||
<t> The application or the OS should ensure that IP addresses regular | ||||
ly change | ||||
to limit IP tracking by a passive observer. The application should regul arly | to limit IP tracking by a passive observer. The application should regul arly | |||
set the On Demand flag. The application should be able to ensure that ses | set the On-Demand flag. The application should be able to ensure that Ses | |||
sion | sion-Lasting | |||
lasting IP addresses are regularly changed by setting a lifetime for exam | IP addresses are regularly changed by setting a lifetime, for example, | |||
ple | ||||
handled by the application. In addition, the application should consider the use | handled by the application. In addition, the application should consider the use | |||
of graceful replacement IP addresses. </t> | of Graceful-Replacement IP addresses. </t> | |||
<t> Similarly, the OS may also associate IP addresses with a lifetime. Upo | ||||
<t> Similarly, the OS may also associated IP addresses with a lifetime. U | n | |||
pon | ||||
receiving a request for a given type of IP address, after some time, the | receiving a request for a given type of IP address, after some time, the | |||
OS should request a new address to the network even if it already has one IP | OS should request a new address to the network even if it already has one IP | |||
address available with the requested type. This includes any type of IP a ddress. | address available with the requested type. This includes any type of IP a ddress. | |||
IP addresses of type graceful replacement or non persistent should be | IP addresses of type Graceful-Replacement or nonpersistent should be | |||
regularly renewed by the OS.</t> | regularly renewed by the OS.</t> | |||
<t> The lifetime of an IP address may be expressed in number of seconds or | ||||
<t> The lifetime of an IP address may be expressed in number of seconds o | ||||
r | ||||
in number of bytes sent through this IP address. </t> | in number of bytes sent through this IP address. </t> | |||
</section> | ||||
</section> <!-- Security Considerations --> | <!-- Security Considerations --> | |||
<section anchor="iana" numbered="true" toc="default"> | ||||
<section anchor="iana" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>This document has no IANA considerations.</t> | <t>This document has no IANA actions.</t> | |||
</section> <!-- IANA Considerations --> | </section> | |||
<!-- IANA Considerations --> | ||||
<section anchor="contributor" title="Contributors"> | ||||
<t>This document was merged with <xref target="I-D.sijeon-dmm-use-cases | ||||
-api-source"></xref>. | ||||
We would like to acknowledge the contribution of the following people t | ||||
o that document as | ||||
well:</t> | ||||
<figure> | ||||
<artwork><![CDATA[ | ||||
Sergio Figueiredo | ||||
Altran Research, France | ||||
Email: sergio.figueiredo@altran.com | ||||
Younghan Kim | ||||
Soongsil University, Korea | ||||
Email: younghak@ssu.ac.kr | ||||
John Kaippallimalil | ||||
Huawei, USA | ||||
Email: john.kaippallimalil@huawei.com | ||||
]]></artwork> | ||||
</figure> | ||||
</section> <!-- Contributors --> | ||||
<section anchor="ack" title="Acknowledgements"> | ||||
<t>We would like to thank Wu-chi Feng, Alexandru Petrescu, Jouni Korhonen, | ||||
Sri Gundavelli, Dave Dolson Lorenzo Colitti and Daniel Migault for thei | ||||
r valuable | ||||
comments and suggestions on this work.</t> | ||||
</section> <!-- Acknowledgements --> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<displayreference target="I-D.sijeon-dmm-use-cases-api-source" to="API-EXT"/> | ||||
<references title="Normative References"> | <references> | |||
<?rfc include="reference.RFC.2119"?> | <name>References</name> | |||
<?rfc include="reference.RFC.8174"?> | <references> | |||
<name>Normative References</name> | ||||
<?rfc include='reference.RFC.5014'?> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2 | |||
119.xml"/> | ||||
</references> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8 | |||
174.xml"/> | ||||
<references title="Informative References"> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5 | |||
014.xml"/> | ||||
<?rfc include='reference.RFC.6275'?> | </references> | |||
<references> | ||||
<?rfc include='reference.RFC.5944'?> | <name>Informative References</name> | |||
<?rfc include='reference.RFC.7333'?> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6 | |||
<?rfc include='reference.RFC.5563'?> | 275.xml"/> | |||
<?rfc include='reference.RFC.5213'?> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5 | |||
<?rfc include='reference.RFC.6824'?> | 944.xml"/> | |||
<?rfc include='reference.RFC.3261'?> | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7 | |||
<?rfc include='reference.I-D.sijeon-dmm-use-cases-api-source'?> | 333.xml"/> | |||
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5 | ||||
<!----> | 563.xml"/> | |||
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5 | ||||
213.xml"/> | ||||
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6 | ||||
824.xml"/> | ||||
<xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3 | ||||
261.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference. | ||||
I-D.draft-sijeon-dmm-use-cases-api-source-07.xml"/> | ||||
<!----> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="appendix" numbered="true" toc="default"> | ||||
<section anchor="appendix" title="Conveying the Desired Address Type"> | <name>Conveying the Desired Address Type</name> | |||
<t>The following are some suggestions of possible extensions to the socket | ||||
<t>Following are some suggestions of possible extensions to the S | API | |||
ocket API | ||||
for enabling applications to convey their session continuity and address | for enabling applications to convey their session continuity and address | |||
reachability requirements.</t> | reachability requirements.</t> | |||
<t><xref target="RFC5014" format="default"/> introduced the ability of app | ||||
<t><xref target="RFC5014"></xref> introduced the ability of appli | lications | |||
cations | ||||
to influence the source address selection with the IPV6_ADDR_PREF ERENCE | to influence the source address selection with the IPV6_ADDR_PREF ERENCE | |||
option at the IPPROTO_IPV6 level. This option is used with setsoc kopt() | option at the IPPROTO_IPV6 level. This option is used with setsoc kopt() | |||
and getsockopt() calls to set/get address selection preferences.< /t> | and getsockopt() calls to set/get address selection preferences.< /t> | |||
<t>One alternative is to extend the definition of the IPV6_ADDR_REFERENCE | ||||
<t>One alternative is to extend the defintion of the IPV6_ADDR_RE | option with flags that express the invoker's desire. An "OnDemand | |||
FERENCE | " field could | |||
opion with flags that express the invoker's desire. An "OnDeman" | contain one of the following values: FIXED_IP_ADDRESS, SESSION_LA | |||
field could | STING_IP_ADDRESS, | |||
contains one of the values: FIXED_IP_ADDRESS, SESSION_LASTING_IP_ | NON_PERSISTENT_IP_ADDRESS, or GRACEFUL_REPLACEMENT_IP_ADDRESS.</t | |||
ADDRESS, | > | |||
NON_PERSISTENT_IP_ADDRESS or GRACEFUL_REPLACEMENT_IP_ADDRESS.</t> | <t>Another alternative is to define a new socket function used by the invo | |||
ker | ||||
<t>Another alternative is to define a new Socket function used by | ||||
the invoker | ||||
to convey its desire. This enables the implementation of two beha viors of | to convey its desire. This enables the implementation of two beha viors of | |||
Socket functions: The existing "setsockotp()" is a function that | socket functions: the existing setsockopt() is a function that re | |||
returns after | turns after | |||
executing, and the new "setsc()" (Set Service Contionuity) functi | executing, and the new setsc() (Set Service Continuity) is a func | |||
on that may | tion that may | |||
initaite a request for the desired service, and wait until the ne | initiate a request for the desired service, and wait until the ne | |||
twork responds | twork responds | |||
with the allocated resources, before returning to the invoker.</t > | with the allocated resources, before returning to the invoker.</t > | |||
<t>After obtaining an IP address with the desired behavior, the applicatio | ||||
<t>After obtaining an IP address with the desired behavior the ap | n can | |||
plication can | call the bind() socket function to associate that received IP add | |||
call the bind() Socket function to associate that received IP add | ress with the | |||
ress with the | ||||
socket.</t> | socket.</t> | |||
</section> | ||||
</section> <!-- Conveying the Desired Address Type --> | <!-- Conveying the Desired Address Type --> | |||
<section anchor="ack" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>We would like to thank Wu-chi Feng, Alexandru Petrescu, Jouni Korhonen, | ||||
Sri Gundavelli, Dave Dolson, Lorenzo Colitti, and Daniel Migault for th | ||||
eir valuable | ||||
comments and suggestions on this work.</t> | ||||
</section> | ||||
<!-- Acknowledgements --> | ||||
<section anchor="contributor" numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t>This document was merged with "Use Cases and API Extension for Source I | ||||
P Address | ||||
Selection" <xref target="I-D.sijeon-dmm-use-cases-api-source" format="d | ||||
efault"/>. | ||||
We would like to acknowledge the contribution of the following people t | ||||
o that document as | ||||
well:</t> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Sergio Figueiredo | ||||
Altran Research | ||||
France | ||||
Email: sergio.figueiredo@altran.com | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Younghan Kim | ||||
Soongsil University | ||||
Republic of Korea | ||||
Email: younghak@ssu.ac.kr | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
John Kaippallimalil | ||||
Huawei | ||||
United States of America | ||||
Email: john.kaippallimalil@huawei.com | ||||
]]></artwork> | ||||
</section> | ||||
<!-- Contributors --> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 83 change blocks. | ||||
437 lines changed or deleted | 419 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |