draft-ietf-dmm-ondemand-mobility-08.txt | draft-ietf-dmm-ondemand-mobility-09.txt | |||
---|---|---|---|---|
DMM Working Group A. Yegin | DMM Working Group A. Yegin | |||
Internet-Draft Actility | Internet-Draft Actility | |||
Intended status: Informational D. Moses | Intended status: Informational D. Moses | |||
Expires: June 1, 2017 Intel | Expires: June 15, 2017 Intel | |||
K. Kweon | K. Kweon | |||
J. Lee | J. Lee | |||
J. Park | J. Park | |||
Samsung | Samsung | |||
S. Jeon | S. Jeon | |||
Sungkyunkwan University | Sungkyunkwan University | |||
November 28, 2016 | December 12, 2016 | |||
On Demand Mobility Management | On Demand Mobility Management | |||
draft-ietf-dmm-ondemand-mobility-08 | draft-ietf-dmm-ondemand-mobility-09 | |||
Abstract | Abstract | |||
Applications differ with respect to whether they need IP session | Applications differ with respect to whether they need IP 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 | same type of service to any mobile host and any application running | |||
on the host yields inefficiencies. This document describes a | on the host yields inefficiencies. This document describes a | |||
solution for taking the application needs into account in selectively | solution for taking the application needs into account in selectively | |||
providing IP session continuity and IP address reachability on a per- | providing IP session continuity and IP address reachability on a per- | |||
socket basis. | socket basis. | |||
skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on June 1, 2017. | This Internet-Draft will expire on June 15, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 31 ¶ | skipping to change at page 2, line 31 ¶ | |||
3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 | 3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 | |||
3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 | 3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 | |||
3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 | 3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 | |||
4. Backwards Compatibility Considerations . . . . . . . . . . . 9 | 4. Backwards Compatibility Considerations . . . . . . . . . . . 9 | |||
4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 9 | 4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 9 | 4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 9 | |||
4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 10 | 4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 10 | |||
5. Summary of New Definitions . . . . . . . . . . . . . . . . . 10 | 5. Summary of New Definitions . . . . . . . . . . . . . . . . . 10 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 11 | 10.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Introduction | 1. Introduction | |||
In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], | In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], | |||
following two attributes are defined for the IP service provided to | following two attributes are defined for the IP service provided to | |||
skipping to change at page 3, line 47 ¶ | skipping to change at page 3, line 47 ¶ | |||
and IP address reachability should be be provided only when needed. | and IP address reachability should be be provided only when needed. | |||
Furthermore, when an application needs session continuity, it may be | Furthermore, when an application needs session continuity, it may be | |||
able to satisfy that need by using a solution above the IP layer, | able to satisfy that need by using a solution above the IP layer, | |||
such as MPTCP [RFC6824], SIP mobility [RFC3261], or an application- | such as MPTCP [RFC6824], SIP mobility [RFC3261], or an application- | |||
layer mobility solution. Those higher-layer solutions are not | layer mobility solution. Those higher-layer solutions are not | |||
subject to the same issues that arise with the use of Mobile IP since | subject to the same issues that arise with the use of Mobile IP since | |||
they can utilize the most direct data path between the end-points. | they can utilize the most direct data path between the end-points. | |||
But, if Mobile IP is being applied to the mobile host, those higher- | But, if Mobile IP is being applied to the mobile host, those higher- | |||
layer protocols are rendered useless because their operation is | layer protocols are rendered useless because their operation is | |||
inhibited by the Mobile IP. Since Mobile IP ensures the IP address | inhibited by the Mobile IP. Since Mobile IP ensures that the IP | |||
of the mobile host remains fixed (despite the location and movement | address of the mobile host remains fixed (despite the location and | |||
of the mobile host), the higher-layer protocols never detect the IP- | movement of the mobile host), the higher-layer protocols never detect | |||
layer change and never engage in mobility management. | the IP-layer change and never engage in mobility management. | |||
This document proposes a solution for the applications running on the | This document proposes a solution for the applications running on the | |||
mobile host to indicate whether they need IP session continuity or IP | mobile host to indicate whether they need IP session continuity or IP | |||
address reachability. The network protocol stack on the mobile host, | address reachability. The network protocol stack on the mobile host, | |||
in conjunction with the network infrastructure, would provide the | in conjunction with the network infrastructure, would provide the | |||
required type of IP service. It is for the benefit of both the users | required type of IP service. It is for the benefit of both the users | |||
and the network operators not to engage an extra level of service | and the network operators not to engage an extra level of service | |||
unless it is absolutely necessary. So it is expected that | unless it is absolutely necessary. So it is expected that | |||
applications and networks compliant with this specification would | applications and networks compliant with this specification would | |||
utilize this solution to use network resources more efficiently. | utilize this solution to use network resources more efficiently. | |||
skipping to change at page 4, line 37 ¶ | skipping to change at page 4, line 37 ¶ | |||
- Fixed IP Address | - Fixed IP Address | |||
A Fixed IP address is an address with a guarantee to be valid for a | A Fixed IP address is an address with a guarantee to be valid for a | |||
very long time, regardless of whether it is being used in any packet | very long time, regardless of whether it is being used in any packet | |||
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 point-of- | connected to the network, or whether it moves from one point-of- | |||
attachment to another (with a different subnet or IP prefix) while it | attachment to another (with a different subnet or IP prefix) while it | |||
is connected. | is connected. | |||
Fixed IP address are required by applications that need both IP | Fixed IP addresses are required by applications that need both IP | |||
session continuity and IP address reachability. | session continuity and IP address reachability. | |||
- Session-lasting IP Address | - Session-lasting IP Address | |||
A session-lasting IP address is an address with a guarantee to be | A session-lasting IP address is an address with a guarantee to be | |||
valid through-out the IP session(s) for which it was requested. It | valid throughout the IP session(s) for which it was requested. It is | |||
is guaranteed to be valid even after the mobile host had moved from | guaranteed to be valid even after the mobile host had moved from one | |||
one point-of-attachment to another (with a different subnet or IP | point-of-attachment to another (with a different subnet or IP | |||
prefix). | prefix). | |||
Session-lasting IP addresses are required by applications that need | Session-lasting IP addresses are required by applications that need | |||
IP session continuity but do not need IP address reachability. | IP session continuity but do not need IP address reachability. | |||
- Non-persistent IP Address | - Non-persistent IP Address | |||
This type of IP address provides neither IP session continuity nor IP | This type of IP address provides neither IP session continuity nor IP | |||
address reachability. The IP address is obtained from the serving IP | address reachability. The IP address is obtained from the serving IP | |||
gateway and it is not maintained across gateway changes. In other | gateway and it is not maintained across gateway changes. In other | |||
words, the IP address may be released and replaced by a new IP | words, the IP address may be released and replaced by a new IP | |||
skipping to change at page 5, line 20 ¶ | skipping to change at page 5, line 20 ¶ | |||
Applications running as servers at a published IP address require a | Applications running as servers at a published IP address require a | |||
Fixed IP Address. Long-standing applications (e.g., an SSH session) | Fixed IP Address. Long-standing applications (e.g., an SSH session) | |||
may also require this type of address. Enterprise applications that | may also require this type of address. Enterprise applications that | |||
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. | Address. | |||
Applications with short-lived transient IP sessions can use Session- | Applications with short-lived transient IP sessions can use Session- | |||
lasting IP Addresses. For example: Web browsers. | lasting IP Addresses. For example: Web browsers. | |||
Applications with very short IP sessions, such as DNS client and | Applications with very short IP sessions, such as DNS clients and | |||
instant messengers, can utilize Non-persistent IP Addresses. Even | instant messengers, can utilize Non-persistent IP Addresses. Even | |||
though they could very well use a Fixed of Session-lasting IP | though they could very well use Fixed or Session-lasting IP | |||
Addresses, the transmission latency would be minimized when a Non- | Addresses, the transmission latency would be minimized when a Non- | |||
persistent IP Address is used. | persistent IP Addresses are used. | |||
The network creates the desired guarantee (Fixed, Session-lasting or | The network creates the desired guarantee (Fixed, Session-lasting or | |||
Non-persistent) by either assigning an IP address (as part of a | Non-persistent) by either assigning the address prefix (as part of a | |||
stateful IP address generation), or by assigning the address prefix | stateless address generation process), or by assigning an IP address | |||
(as part of a stateless address generation process). | (as part of a stateful IP address generation). | |||
The exact mechanism of prefix or address assignment is outside the | ||||
scope of this specification. | ||||
3.2. Granularity of Selection | 3.2. Granularity of Selection | |||
The IP address type selection is made on a per-socket granularity. | The IP address type selection is made on a per-socket granularity. | |||
Different parts of the same application may have different needs. | Different parts of the same application may have different needs. | |||
For example, control-plane of an application may require a Fixed IP | For example, control-plane of an application may require a Fixed IP | |||
Address in order to stay reachable, whereas data-plane of the same | Address in order to stay reachable, whereas data-plane of the same | |||
application may be satisfied with a Session-lasting IP Address. | application may be satisfied with a Session-lasting IP Address. | |||
3.3. On Demand Nature | 3.3. On Demand Nature | |||
At any point in time, a mobile host may have a combination of IP | At any point in time, a mobile host may have a combination of IP | |||
addresses configured. Zero or more Non-persistent, zero or more | addresses configured. Zero or more Non-persistent, zero or more | |||
Session-lasting, and zero or more Fixed IP addresses may be | Session-lasting, and zero or more Fixed IP addresses may be | |||
configured on the IP stack of the host. The combination may be as a | configured on the IP stack of the host. The combination may be as a | |||
result of the host policy, application demand, or a mix of the two. | result of the host policy, application demand, or a mix of the two. | |||
When an application requires a specific type of IP address and such | When an application requires a specific type of IP address and such | |||
address is not already configured on the host, the IP stack shall | address is not already configured on the host, the IP stack shall | |||
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. In case an application | Session-lasting IP address available. When an application requests | |||
requests one, the IP stack shall make an attempt to configure one by | one, the IP stack shall make an attempt to configure one by issuing a | |||
issuing a request to the network. If the operation fails, the IP | request to the network. If the operation fails, the IP stack shall | |||
stack shall fail the associated socket request. If successful, a | fail the associated socket request. If successful, a Session-lasting | |||
Session-lasting IP Address gets configured on the mobile host. If | IP Address gets configured on the mobile host. If another socket | |||
another socket requests a Session-lasting IP address at a later time, | requests a Session-lasting IP address at a later time, the same IP | |||
the same IP address may be served to that socket as well. When the | address may be served to that socket as well. When the last socket | |||
last socket using the requested IP address is closed, the IP address | using the same configured IP address is closed, the IP address may be | |||
may be released or kept for future applications that may be launched | released or kept for future applications that may be launched and | |||
and require a Session-lasting IP address. | require a Session-lasting IP address. | |||
In some cases it might be preferable for the mobile host to request a | In some cases it might be preferable for the mobile host to request a | |||
new Session-lasting IP address for a new opening of an IP session | new Session-lasting IP address for a new opening of an IP session | |||
(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 | |||
session). It is out of the scope of this specification to define | session). It is outside the scope of this specification to define | |||
criteria for selecting to use available addresses or choose to | criteria for selecting to use available addresses or choose to | |||
request new ones. It supports both alternatives (and any | request new ones. It supports both alternatives (and any | |||
combination). | combination). | |||
It is outside of the scope of this specification to define how the | It is outside the scope of this specification to define how the host | |||
host requests a specific type of address (Fixed, Session-lasting or | requests a specific type of address (Fixed, Session-lasting or Non- | |||
Non-persistent) and how the network indicates the type of address in | persistent) and how the network indicates the type of address in its | |||
its advertisement of addresses (or in its reply to an address | advertisement of IP prefixes or addresses (or in its reply to a | |||
request). | request). | |||
The following are matters of policy, which may be dictated by the | 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: | standard: | |||
- The initial set of IP addresses configured on the host at the boot | - The initial set of IP addresses configured on the host at boot | |||
time. | time. | |||
- Permission to grant various types of IP addresses to a requesting | - Permission to grant various types of IP addresses to a requesting | |||
application. | application. | |||
- Determination of a default address type when an application does | - Determination of a default address type when an application does | |||
not make any explicit indication, whether it already supports the | not make any explicit indication, whether it already supports the | |||
required API or it is just a legacy application. | required API or it is just a legacy application. | |||
3.4. Conveying the Selection | 3.4. Conveying the Selection | |||
The selection of the address type is conveyed from the applications | The selection of the address type is conveyed from the applications | |||
to the IP stack in a way to influence the source address selection | to the IP stack in oredr to influence the source address selection | |||
algorithm [RFC6724]. | algorithm [RFC6724]. | |||
The current source address selection algorithm operates on the | The current source address selection algorithm operates on the | |||
available set of IP addresses when selecting an address. According | available set of IP addresses, when selecting an address. According | |||
to the proposed solution, if the requested type IP address is not | to the proposed solution, if the requested IP address type is not | |||
available at the time of the request, the IP stack shall make an | available at the time of the request, the IP stack shall make an | |||
attempt to configure one such IP address. The selected IP address | attempt to configure one such IP address. The selected IP address | |||
shall be compliant with the requested IP address type, whether it is | shall be compliant with the requested IP address type, whether it is | |||
selected among available addresses or dynamically configured. In the | selected among available addresses or dynamically configured. In the | |||
absence of a matching type (because it is not available and not | absence of a matching type (because it is not available and not | |||
configurable on demand), the source address selection algorithm shall | configurable on demand), the source address selection algorithm shall | |||
return an empty set. | return an empty set. | |||
A Socket API-based interface for enabling applications to influence | A Socket API-based interface for enabling applications to influence | |||
the source address selection algorithm is described in [RFC5014]. | the source address selection algorithm is described in [RFC5014]. | |||
That specification defines IPV6_ADDR_PREFERENCES option at the | That specification defines IPV6_ADDR_PREFERENCES option at the | |||
IPPROTO_IPV6 level. That option can be used with setsockopt() and | IPPROTO_IPV6 level. That option can be used with setsockopt() and | |||
getsockopt() calls to set and get address selection preferences. | getsockopt() calls to set and get address selection preferences. | |||
Furthermore, that RFC also specifies two flags that relate to IP | Furthermore, that RFC also specifies two flags that relate to IP | |||
mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. | mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. | |||
These flags are used for influencing the source address selection to | These flags are used for influencing the source address selection to | |||
prefer either a Home Address or a Care-of Address. | prefer either a Home Address or a Care-of Address. | |||
Unfortunately, these flags do not satisfy the aforementioned needs | Unfortunately, these flags do not satisfy the aforementioned needs | |||
due to the following reasons, therefore new flags are proposed in | due to the following reasons: | |||
this document: | ||||
- Current flags indicate a "preference" whereas there is a need for | - Current flags indicate a "preference" whereas there is a need for | |||
indicating "requirement". Source address selection algorithm does | indicating "requirement". Source address selection algorithm does | |||
not have to produce an IP address compliant with the "preference" , | not have to produce an IP address compliant with the "preference" , | |||
but it has to produce an IP address compliant with the "requirement". | but it has to produce an IP address compliant with the "requirement". | |||
- Current flags influence the selection made among available IP | - Current flags influence the selection made among available IP | |||
addresses. The new flags force the IP stack to configure a compliant | addresses. The new flags force the IP stack to configure a compliant | |||
IP address if none is available at the time of the request. | IP address if none is available at the time of the request. | |||
- The Home vs. Care-of Address distinction is not sufficient to | - The Home vs. Care-of Address distinction is not sufficient to | |||
capture the three different types of IP addresses described in | capture the three different types of IP addresses described in | |||
Section 2.1. | Section 2.1. | |||
The following new flags are defined in this document and they shall | The following new flags are defined in this document and they shall | |||
be used with Socket API in compliance with the [RFC5014]: | be used with Socket API in compliance with [RFC5014]: | |||
IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ | IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ | |||
IPV6_REQUIRE_SESSION_LASTING_IP /* Require a Session-lasting IP | IPV6_REQUIRE_SESSION_LASTING_IP /* Require a Session-lasting IP | |||
address as source */ | address as source */ | |||
IPV6_REQUIRE_NON-PERSISTENT_IP /* Require a Non-persistent IP address | IPV6_REQUIRE_NON-PERSISTENT_IP /* Require a Non-persistent IP address | |||
as source */ | as source */ | |||
Only one of these flags may be set on the same socket. If an | Only one of these flags may be set on the same socket. If an | |||
application attempts to set more than one flag, the most recent | application attempts to set more than one flag, the most recent | |||
setting will be the one in effect. | setting will be the one in effect. | |||
When any of these new flags is used, then the IPV6_PREFER_SRC_HOME | When any of these new flags is used, the IPV6_PREFER_SRC_HOME and | |||
and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. | IPV6_PREFER_SRC_COA flags, if used, shall be ignored. | |||
These new flags are used with setsockopt()/getsockopt(), | These new flags are used with setsockopt()/getsockopt(), | |||
getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar | getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar | |||
with the setsockopt()/getsockopt() calls, getaddrinfo() call shall | to the setsockopt()/getsockopt() calls, the getaddrinfo() call shall | |||
also trigger configuration of the required type IP address, if one is | also trigger configuration of the required IP address type, if one is | |||
not already available. When the new flags are used with | not already available. When the new flags are used with | |||
getaddrinfo() and the triggered configuration fails, the | getaddrinfo() and the triggered configuration fails, the | |||
getaddrinfo() call shall ignore that failure (i.e., not return an | getaddrinfo() call shall ignore that failure (i.e., not return an | |||
error code to indicate that failure). Only the setsockopt() shall | error code to indicate that failure). Only the setsockopt() shall | |||
return an error when configuration of the requested type IP address | return an error when configuration of the requested IP address type | |||
fails. | fails. | |||
When the IP stack is required to assign a source IP address of a | When the IP stack is required to use a source IP address of a | |||
specified type, it can perform one of the following: It can assigned | specified type, it can perform one of the following: It can use an | |||
a preconfigured address (if one exists) or request a new one from the | existing address (if it has one), or it can create a new one from an | |||
network. Using an existing address is instantaneous but might yield | existing prefix of the desired type. If the host does not already | |||
a less optimal route (if a hand-off event occurred since its | have an IPv6 prefix of the specific type, it can request one from the | |||
configuration), on the other hand, acquiring a new IP address from | network. | |||
the network may take some time (due to signaling exchange with the | ||||
network). | Using an existing address from an existing prefix is faster but might | |||
yield a less optimal route (if a hand-off event occurred since its | ||||
configuration), on the other hand, acquiring a new IP prefix from the | ||||
network may take some time (due to signaling exchange with the | ||||
network) and may fail due to network policies. | ||||
An additional new flag - ON_NET flag - enables the application to | An additional new flag - ON_NET flag - enables the application to | |||
direct the IP stack whether to use a preconfigured source IP address | direct the IP stack whether to use a preconfigured source IP address | |||
(if exists) or to request a new one from the current serving network: | (if exists) or to request a new IPv6 prefix from the current serving | |||
network and configure a new IP address: | ||||
IPV6_REQUIRE_SRC_ON_NET /* Set IP stack address allocation behavior | IPV6_REQUIRE_SRC_ON_NET /* Set IP stack address allocation behavior | |||
*/ | */ | |||
If set, the IP stack will request a new IP address of the desired | If set, the IP stack will request a new IPv6 prefix of the desired | |||
type from the current serving network. If reset, the IP stack will | type from the current serving network and configure a new source IP | |||
use a preconfigured one if exists. If there is no preconfigured IP | address. If reset, the IP stack will use a preconfigured one if | |||
address of the desired type, the IP stack will request a new one from | exists. If there is no preconfigured IP address of the desired type, | |||
the current serving network (regardless of whether this flag is set | the IP stack will request a IPv6 prefix from the current serving | |||
or reset). | network (regardless of whether this flag is set or not). | |||
The ON_NET flag must be used together with one of the 3 flags defined | The ON_NET flag must be used together with one of the 3 flags defined | |||
above. If ON_NET flag is used without any of these flags, it must be | above. If ON_NET flag is used without any of these flags, it must be | |||
ignored. If the ON_NET flag is not used, the IP stack is free to | ignored. If the ON_NET flag is not used, the IP stack is free to | |||
either use an existing IP address (if preconfigured) or access the | either use an existing IP address (if preconfigured) or access the | |||
network to configure a new one (the decision is left to | network to configure a new one (the decision is left to | |||
implementation). | implementation). | |||
The following new error codes are also defined in the document and | The following new error codes are also defined in the document and | |||
will be used in the Socket API in compliance with [RFC5014]. | will be used in the Socket API in compliance with [RFC5014]. | |||
skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 36 ¶ | |||
- The network infrastructure | - The network infrastructure | |||
4.1. Applications | 4.1. Applications | |||
Legacy applications that do not support the new flags will use the | Legacy applications that do not support the new flags will use the | |||
legacy API to the IP stack and will not enjoy On-Demand Mobility | legacy API to the IP stack and will not enjoy On-Demand Mobility | |||
feature. | feature. | |||
Applications using the new flags must be aware that they may be | Applications using the new flags must be aware that they may be | |||
executed in environments that do not support On-Demand Mobility | executed in environments that do not support the On-Demand Mobility | |||
feature. Such environments may include legacy IP stack in the mobile | feature. Such environments may include legacy IP stack in the mobile | |||
host, legacy network infrastructure, or both. In either case, the | host, legacy network infrastructure, or both. In either case, the | |||
API will return an error code and the invoking applications must | API will return an error code and the invoking applications must | |||
respond with using legacy calls without On-Demand Mobility feature. | respond with using legacy calls without the On-Demand Mobility | |||
feature. | ||||
4.2. IP Stack in the Mobile Host | 4.2. IP Stack in the Mobile Host | |||
New IP stacks must continue to support all legacy operations. If an | New IP stacks must continue to support all legacy operations. If an | |||
application does not use On-Demand Mobility feature, the IP stack | application does not use On-Demand Mobility feature, the IP stack | |||
must respond in a legacy manner. | must respond in a legacy manner. | |||
If the network infrastructure supports On-Demand Mobility feature, | If the network infrastructure supports On-Demand Mobility feature, | |||
the IP stack should follow the application request: If the | the IP stack should follow the application request: If the | |||
application requests a specific address type, the stack should | application requests a specific address type, the stack should | |||
forward this request to the network. If the application does not | forward this request to the network. If the application does not | |||
request an address type, the IP stack must not request an address | request an address type, the IP stack must not request an address | |||
type and leave it to the network's default behavior to choose the | type and leave it to the network's default behavior to choose the | |||
type of the allocated IP address. If an IP address was already | type of the allocated IP prefix. If an IP prefix was already | |||
allocated to the host, the IP stack uses it and may not request a new | allocated to the host, the IP stack uses it and may not request a new | |||
one from the network. | one from the network. | |||
4.3. Network Infrastructure | 4.3. Network Infrastructure | |||
The network infrastructure may or may not support the On-Demand | The network infrastructure may or may not support the On-Demand | |||
Mobility feature. How the IP stack on the host and the network | Mobility feature. 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. | scope of this API specification. | |||
skipping to change at page 11, line 19 ¶ | skipping to change at page 11, line 25 ¶ | |||
Younghan Kim | Younghan Kim | |||
Soongsil University, Korea | Soongsil University, Korea | |||
Email: younghak@ssu.ac.kr | Email: younghak@ssu.ac.kr | |||
John Kaippallimalil | John Kaippallimalil | |||
Huawei, USA | Huawei, USA | |||
Email: john.kaippallimalil@huawei.com | Email: john.kaippallimalil@huawei.com | |||
9. Acknowledgements | 9. Acknowledgements | |||
We would like to thank Alexandru Petrescu, Jouni Korhonen, and Sri | We would like to thank Alexandru Petrescu, Jouni Korhonen, Sri | |||
Gundavelli for their valuable comments and suggestions on this work. | Gundavelli, and Lorenzo Colitti for their valuable comments and | |||
suggestions on this work. | ||||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
End of changes. 30 change blocks. | ||||
66 lines changed or deleted | 75 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/ |