idnits 2.17.1 draft-ietf-dmm-ondemand-mobility-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (May 3, 2016) is 2914 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Downref: Normative reference to an Informational RFC: RFC 5014 -- Obsolete informational reference (is this intentional?): RFC 6824 (Obsoleted by RFC 8684) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DMM Working Group A. Yegin 3 Internet-Draft Unaffiliated 4 Intended status: Standards Track K. Kweon 5 Expires: November 4, 2016 J. Lee 6 J. Park 7 Samsung 8 D. Moses 9 Intel 10 May 3, 2016 12 On Demand Mobility Management 13 draft-ietf-dmm-ondemand-mobility-03 15 Abstract 17 Applications differ with respect to whether they need IP session 18 continuity and/or IP address reachability. The network providing the 19 same type of service to any mobile host and any application running 20 on the host yields inefficiencies. This document describes a 21 solution for taking the application needs into account in selectively 22 providing IP session continuity and IP address reachability on a per- 23 socket basis. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on November 4, 2016. 42 Copyright Notice 44 Copyright (c) 2016 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 61 3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3.1. Types of IP Addresses . . . . . . . . . . . . . . . . . . 4 63 3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 64 3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 65 3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 66 4. Backwards Compatibility Considerations . . . . . . . . . . . 8 67 4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 8 68 4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 8 69 4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 9 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 72 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 73 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 74 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 75 8.2. Informative References . . . . . . . . . . . . . . . . . 10 76 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 78 1. Introduction 80 In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], 81 following two attributes are defined for the IP service provided to 82 the mobile hosts: 84 IP session continuity: The ability to maintain an ongoing IP session 85 by keeping the same local end-point IP address throughout the session 86 despite the mobile host chaging its point of attachment within the IP 87 network topology. The IP address of the host may change between two 88 independent IP sessions, but that does not jeopardize the IP session 89 continuity. IP session continuity is essential for mobile hosts to 90 maintain ongoing flows without any interruption. 92 IP address reachability: The ability to maintain the same IP address 93 for an extended period of time. The IP address stays the same across 94 independent IP sessions, and even in the absence of any IP session. 95 The IP address may be published in a long-term registry (e.g., DNS), 96 and it is made available for serving incoming (e.g., TCP) 97 connections. IP address reachability is essential for mobile hosts 98 to use specific/published IP addresses. 100 Mobile IP is designed to provide both IP session continuity and IP 101 address reachability to mobile hosts. Architectures utilizing these 102 protocols (e.g., 3GPP, 3GPP2, WIMAX) ensure that any mobile host 103 attached to the compliant networks can enjoy these benefits. Any 104 application running on these mobile hosts is subjected to the same 105 treatment with respect to the IP session continuity and IP address 106 reachability. 108 It should be noted that in reality not every application may need 109 those benefits. IP address reachability is required for applications 110 running as servers (e.g., a web server running on the mobile host). 111 But, a typical client application (e.g., web browser) does not 112 necessarily require IP address reachability. Similarly, IP session 113 continuity is not required for all types of applications either. 114 Applications performing brief communication (e.g., DNS client) can 115 survive without having IP session continuity support. 117 Achieving IP session continuity and IP address reachability by using 118 Mobile IP incurs some cost. Mobile IP protocol forces the mobile 119 host's IP traffic to traverse a centrally-located router (Home Agent, 120 HA), which incurs additional transmission latency and use of 121 additional network resources, adds to the network CAPEX and OPEX, and 122 decreases the reliability of the network due to the introduction of a 123 single point of failure [I-D.ietf-dmm-requirements]. Therefore, IP 124 session continuity and IP address reachability should be be provided 125 only when needed. 127 Furthermore, when an application needs session continuity, it may be 128 able to satisfy that need by using a solution above the IP layer, 129 such as MPTCP [RFC6824], SIP mobility [RFC3261], or an application- 130 layer mobility solution. Those higher-layer solutions are not 131 subject to the same issues that arise with the use of Mobile IP since 132 they can utilize the most direct data path between the end-points. 133 But, if Mobile IP is being applied to the mobile host, those higher- 134 layer protocols are rendered useless because their operation is 135 inhibited by the Mobile IP. Since Mobile IP ensures the IP address 136 of the mobile host remains fixed (despite the location and movement 137 of the mobile host), the higher-layer protocols never detect the IP- 138 layer change and never engage in mobility management. 140 This document proposes a solution for the applications running on the 141 mobile host to indicate whether they need IP session continuity or IP 142 address reachability. The network protocol stack on the mobile host, 143 in conjunction with the network infrastructure, would provide the 144 required type of IP service. It is for the benefit of both the users 145 and the network operators not to engage an extra level of service 146 unless it is absolutely necessary. So it is expected that 147 applications and networks compliant with this specification would 148 utilize this solution to use network resources more efficiently. 150 2. Notational Conventions 152 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 153 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 154 document are to be interpreted as described in [RFC2119]. 156 3. Solution 158 3.1. Types of IP Addresses 160 Three types of IP addresses are defined with respect to the mobility 161 management. 163 - Fixed IP Address 165 A Fixed IP address is an address assigned to the mobile host by the 166 network with a guarantee to be valid for a very long time, regardless 167 of whether it is being used in any packets to/from the mobile host, 168 or whether or not the mobile host is connected to the network, or 169 whether it moves from one LAN to another (with a different IP prefix) 170 while it is connected. 172 Fixed IP address are required by applications that need both IP 173 session continuity and IP address reachability. 175 - Session-lasting IP Address 177 A session-lasting IP address is an address assigned to the mobile 178 host by the network with a guarantee to be valid through-out the IP 179 session(s) for which it was requested. It is guaranteed to be valid 180 even after the mobile host had moved from one LAN to another (with a 181 different IP prefix). 183 Session-lasting IP addresses are required by applications that need 184 IP session continuity but do not need IP address reachability. 186 - Non-persistent IP Address 188 This type of IP address provides neither IP session continuity nor IP 189 address reachability. The IP address is obtained from the serving IP 190 gateway and it is not maintained across gateway changes. In other 191 words, the IP address may be released and replaced by a new IP 192 address when the IP gateway changes due to the movement of the mobile 193 host. 195 Applications running as servers at a published IP address require a 196 Fixed IP Address. Long-standing applications (e.g., an SSH session) 197 may also require this type of address. Enterprise applications that 198 connect to an enterprise network via virtual LAN require a Fixed IP 199 Address. 201 Applications with short-lived transient IP sessions can use Session- 202 lasting IP Addresses. For example: Web browsers. 204 Applications with very short IP sessions, such as DNS client and 205 instant messengers, can utilize Non-persistent IP Addresses. Even 206 though they could very well use a Fixed of Session-lasting IP 207 Addresses, the transmission latency would be minimized when a Non- 208 persistent IP Address is used. 210 3.2. Granularity of Selection 212 The IP address type selection is made on a per-socket granularity. 213 Different parts of the same application may have different needs. 214 For example, control-plane of an application may require a Fixed IP 215 Address in order to stay reachable, whereas data-plane of the same 216 application may be satisfied with a Session-lasting IP Address. 218 3.3. On Demand Nature 220 At any point in time, a mobile host may have a combination of IP 221 addresses configured. Zero or more Non-persistent, zero or more 222 Session-lasting, and zero or more Fixed IP addresses may be 223 configured on the IP stack of the host. The combination may be as a 224 result of the host policy, application demand, or a mix of the two. 226 When an application requires a specific type of IP address and such 227 address is not already configured on the host, the IP stack shall 228 attempt to configure one. For example, a host may not always have a 229 Session-lasting IP address available. In case an application 230 requests one, the IP stack shall make an attempt to configure one by 231 issuing a request to the network. If the operation fails, the IP 232 stack shall fail the associated socket request. If successful, a 233 Session-lasting IP Address gets configured on the mobile host. If 234 another socket requests a Session-lasting IP address at a later time, 235 the same IP address may be served to that socket as well. When the 236 last socket using the requested IP address is closed, the IP address 237 may be released or kept for future applications that may be launched 238 and require a Session-lasting IP address. 240 In some cases it might be preferable for the mobile host to request a 241 new Session-lasting IP address for a new opening of an IP session 242 (even though one was already assigned to the mobile host by the 243 network and might be in use in a different, already active IP 244 session). It is out of the scope of this specification to define 245 criteria for selecting to use available addresses or choose to 246 request new ones. It supports both alternatives (and any 247 combination). 249 It is outside of the scope of this specification to define how the 250 host requests a specific type of address (Fixed, Session-lasting or 251 Non-persistent) and how the network indicates the type of address in 252 its advertisement of addresses (or in its reply to an address 253 request). 255 The following are matters of policy, which may be dictated by the 256 host itself, the network operator, or the system architecture 257 standard: 259 - The initial set of IP addresses configured on the host at the boot 260 time. 262 - Permission to grant various types of IP addresses to a requesting 263 application. 265 - Determination of a default address type when an application does 266 not make any explicit indication, whether it already supports the 267 required API or it is just a legacy application. 269 3.4. Conveying the Selection 271 The selection of the address type is conveyed from the applications 272 to the IP stack in a way to influence the source address selection 273 algorithm [RFC6724]. 275 The current source address selection algorithm operates on the 276 available set of IP addresses when selecting an address. According 277 to the proposed solution, if the requested type IP address is not 278 available at the time of the request, the IP stack shall make an 279 attempt to configure one such IP address. The selected IP address 280 shall be compliant with the requested IP address type, whether it is 281 selected among available addresses or dynamically configured. In the 282 absence of a matching type (because it is not available and not 283 configurable on demand), the source address selection algorithm shall 284 return an empty set. 286 A Socket API-based interface for enabling applications to influence 287 the source address selection algorithm is described in [RFC5014]. 289 That specification defines IPV6_ADDR_PREFERENCES option at the 290 IPPROTO_IPV6 level. That option can be used with setsockopt() and 291 getsockopt() calls to set and get address selection preferences. 293 Furthermore, that RFC also specifies two flags that relate to IP 294 mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. 295 These flags are used for influencing the source address selection to 296 prefer either a Home Address or a Care-of Address. 298 Unfortunately, these flags do not satisfy the aforementioned needs 299 due to the following reasons, therefore new flags are proposed in 300 this document: 302 - Current flags indicate a "preference" whereas there is a need for 303 indicating "requirement". Source address selection algorithm does 304 not have to produce an IP address compliant with the "preference" , 305 but it has to produce an IP address compliant with the "requirement". 307 - Current flags influence the selection made among available IP 308 addresses. The new flags force the IP stack to configure a compliant 309 IP address if none is available at the time of the request. 311 - The Home vs. Care-of Address distinction is not sufficient to 312 capture the three different types of IP addresses described in 313 Section 2.1. 315 The following new flags are defined in this document and they shall 316 be used with Socket API in compliance with the [RFC5014]: 318 IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ 320 IPV6_REQUIRE_Session-lasting_IP /* Require a Session-lasting IP 321 address as source */ 323 IPV6_REQUIRE_Non-persistent_IP /* Require a Non-persistent IP address 324 as source */ 326 Only one of these flags may be set on the same socket. If an 327 application attempts to set more than one flag, the most recent 328 setting will be the one in effect. 330 When any of these new flags is used, then the IPV6_PREFER_SRC_HOME 331 and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. 333 These new flags are used with setsockopt()/getsockopt(), 334 getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar 335 with the setsockopt()/getsockopt() calls, getaddrinfo() call shall 336 also trigger configuration of the required type IP address, if one is 337 not already available. When the new flags are used with 338 getaddrinfo() and the triggered configuration fails, the 339 getaddrinfo() call shall ignore that failure (i.e., not return an 340 error code to indicate that failure). Only the setsockopt() shall 341 return an error when configuration of the requested type IP address 342 fails. 344 The following new error codes are also defined in the document and 345 will be used in the Socket API in compliance with [RFC5014]. 347 EAI_REQUIREDIPNOTSUPPORTED /* The network does not support the 348 ability to request that specific IP address type */ 350 EAI_REQUIREDIPFAILED /* The network could not assign that specific IP 351 address type */ 353 4. Backwards Compatibility Considerations 355 Backwards compatibility support is required by the following 3 types 356 of entities: 358 - The Applications on the mobile host 360 - The IP stack in the mobile host 362 - The network infrastructure 364 4.1. Applications 366 Legacy applications that do not support the new flags will use the 367 legacy API to the IP stack and will not enjoy On-Demand Mobility 368 feature. 370 Applications using the new flags must be aware that they may be 371 executed in environments that do not support On-Demand Mobility 372 feature. Such environments may include legacy IP stack in the mobile 373 host, legacy network infrastructure, or both. In either case, the 374 API will return an error code and the invoking applications must 375 respond with using legacy calls without On-Demand Mobility feature. 377 4.2. IP Stack in the Mobile Host 379 New IP stacks must continue to support all legacy operations. If an 380 application does not use On-Demand Mobility feature, the IP stack 381 must respond in a legacy manner. 383 If the network infrastructure supports On-Demand Mobility feature, 384 the IP stack may still request specific types of source IP address 385 transparently to legacy applications. This may be useful for 386 environments in which both legacy and new applications are executed. 388 The definition of what type of addresses to request and how they are 389 assigned to legacy applications are outside of the scope of this 390 specification. 392 4.3. Network Infrastructure 394 The network infrastructure may or may not support the On-Demand 395 Mobility feature. How the IP stack on the host and the network 396 infrastructure behave in case of a compatibility issue is outside the 397 scope of this API specification. 399 5. Security Considerations 401 The setting of certain IP address type on a given socket may be 402 restricted to privileged applications. For example, a Fixed IP 403 Address may be provided as a premium service and only certain 404 applications may be allowed to use them. Setting and enforcement of 405 such privileges are outside the scope of this document. 407 6. IANA Considerations 409 TBD 411 7. Acknowledgements 413 We would like to thank Alexandru Petrescu, John Kaippallimalil, Jouni 414 Korhonen, Seil Jeon, and Sri Gundavelli for their valuable comments 415 and suggestions on this work. 417 8. References 419 8.1. Normative References 421 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 422 Requirement Levels", BCP 14, RFC 2119, 423 DOI 10.17487/RFC2119, March 1997, 424 . 426 [RFC5014] Nordmark, E., Chakrabarti, S., and J. Laganier, "IPv6 427 Socket API for Source Address Selection", RFC 5014, 428 DOI 10.17487/RFC5014, September 2007, 429 . 431 [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, 432 "Default Address Selection for Internet Protocol Version 6 433 (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012, 434 . 436 8.2. Informative References 438 [I-D.ietf-dmm-requirements] 439 Chan, A., Liu, D., Seite, P., Yokota, H., and J. Korhonen, 440 "Requirements for Distributed Mobility Management", draft- 441 ietf-dmm-requirements-17 (work in progress), June 2014. 443 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 444 A., Peterson, J., Sparks, R., Handley, M., and E. 445 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 446 DOI 10.17487/RFC3261, June 2002, 447 . 449 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 450 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 451 RFC 5213, DOI 10.17487/RFC5213, August 2008, 452 . 454 [RFC5563] Leung, K., Dommety, G., Yegani, P., and K. Chowdhury, 455 "WiMAX Forum / 3GPP2 Proxy Mobile IPv4", RFC 5563, 456 DOI 10.17487/RFC5563, February 2010, 457 . 459 [RFC5944] Perkins, C., Ed., "IP Mobility Support for IPv4, Revised", 460 RFC 5944, DOI 10.17487/RFC5944, November 2010, 461 . 463 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 464 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 465 2011, . 467 [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, 468 "TCP Extensions for Multipath Operation with Multiple 469 Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013, 470 . 472 Authors' Addresses 473 Alper Yegin 474 Unaffiliated 475 Istanbul 476 Turkey 478 Email: alper.yegin@yegin.org 480 Kisuk Kweon 481 Samsung 482 Suwon 483 South Korea 485 Email: kisuk.kweon@samsung.com 487 Jinsung Lee 488 Samsung 489 Suwon 490 South Korea 492 Email: js81.lee@samsung.com 494 Jungshin Park 495 Samsung 496 Suwon 497 South Korea 499 Email: shin02.park@samsung.com 501 Danny Moses 502 Intel Corporation 503 Petah Tikva 504 Israel 506 Email: danny.moses@intel.com