idnits 2.17.1 draft-ietf-dmm-ondemand-mobility-06.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 (June 30, 2016) is 2829 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: Informational ---------------------------------------------------------------------------- -- Obsolete informational reference (is this intentional?): RFC 6824 (Obsoleted by RFC 8684) Summary: 0 errors (**), 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 Actility 4 Intended status: Informational D. Moses 5 Expires: January 1, 2017 Intel 6 K. Kweon 7 J. Lee 8 J. Park 9 Samsung 10 June 30, 2016 12 On Demand Mobility Management 13 draft-ietf-dmm-ondemand-mobility-06 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 January 1, 2017. 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. Summary of New Definitions . . . . . . . . . . . . . . . . . 9 71 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 72 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 73 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 74 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 75 9.1. Normative References . . . . . . . . . . . . . . . . . . 10 76 9.2. Informative References . . . . . . . . . . . . . . . . . 10 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 79 1. Introduction 81 In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], 82 following two attributes are defined for the IP service provided to 83 the mobile hosts: 85 IP session continuity: The ability to maintain an ongoing IP session 86 by keeping the same local end-point IP address throughout the session 87 despite the mobile host chaging its point of attachment within the IP 88 network topology. The IP address of the host may change between two 89 independent IP sessions, but that does not jeopardize the IP session 90 continuity. IP session continuity is essential for mobile hosts to 91 maintain ongoing flows without any interruption. 93 IP address reachability: The ability to maintain the same IP address 94 for an extended period of time. The IP address stays the same across 95 independent IP sessions, and even in the absence of any IP session. 96 The IP address may be published in a long-term registry (e.g., DNS), 97 and it is made available for serving incoming (e.g., TCP) 98 connections. IP address reachability is essential for mobile hosts 99 to use specific/published IP addresses. 101 Mobile IP is designed to provide both IP session continuity and IP 102 address reachability to mobile hosts. Architectures utilizing these 103 protocols (e.g., 3GPP, 3GPP2, WIMAX) ensure that any mobile host 104 attached to the compliant networks can enjoy these benefits. Any 105 application running on these mobile hosts is subjected to the same 106 treatment with respect to the IP session continuity and IP address 107 reachability. 109 It should be noted that in reality not every application may need 110 those benefits. IP address reachability is required for applications 111 running as servers (e.g., a web server running on the mobile host). 112 But, a typical client application (e.g., web browser) does not 113 necessarily require IP address reachability. Similarly, IP session 114 continuity is not required for all types of applications either. 115 Applications performing brief communication (e.g., DNS client) can 116 survive without having IP session continuity support. 118 Achieving IP session continuity and IP address reachability by using 119 Mobile IP incurs some cost. Mobile IP protocol forces the mobile 120 host's IP traffic to traverse a centrally-located router (Home Agent, 121 HA), which incurs additional transmission latency and use of 122 additional network resources, adds to the network CAPEX and OPEX, and 123 decreases the reliability of the network due to the introduction of a 124 single point of failure [I-D.ietf-dmm-requirements]. Therefore, IP 125 session continuity and IP address reachability should be be provided 126 only when needed. 128 Furthermore, when an application needs session continuity, it may be 129 able to satisfy that need by using a solution above the IP layer, 130 such as MPTCP [RFC6824], SIP mobility [RFC3261], or an application- 131 layer mobility solution. Those higher-layer solutions are not 132 subject to the same issues that arise with the use of Mobile IP since 133 they can utilize the most direct data path between the end-points. 134 But, if Mobile IP is being applied to the mobile host, those higher- 135 layer protocols are rendered useless because their operation is 136 inhibited by the Mobile IP. Since Mobile IP ensures the IP address 137 of the mobile host remains fixed (despite the location and movement 138 of the mobile host), the higher-layer protocols never detect the IP- 139 layer change and never engage in mobility management. 141 This document proposes a solution for the applications running on the 142 mobile host to indicate whether they need IP session continuity or IP 143 address reachability. The network protocol stack on the mobile host, 144 in conjunction with the network infrastructure, would provide the 145 required type of IP service. It is for the benefit of both the users 146 and the network operators not to engage an extra level of service 147 unless it is absolutely necessary. So it is expected that 148 applications and networks compliant with this specification would 149 utilize this solution to use network resources more efficiently. 151 2. Notational Conventions 153 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 154 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 155 document are to be interpreted as described in [RFC2119]. 157 3. Solution 159 3.1. Types of IP Addresses 161 Three types of IP addresses are defined with respect to the mobility 162 management. 164 - Fixed IP Address 166 A Fixed IP address is an address assigned to the mobile host by the 167 network with a guarantee to be valid for a very long time, regardless 168 of whether it is being used in any packets to/from the mobile host, 169 or whether or not the mobile host is connected to the network, or 170 whether it moves from one point-of-attachment to another (with a 171 different subnet or IP prefix) while it is connected. 173 Fixed IP address are required by applications that need both IP 174 session continuity and IP address reachability. 176 - Session-lasting IP Address 178 A session-lasting IP address is an address assigned to the mobile 179 host by the network with a guarantee to be valid through-out the IP 180 session(s) for which it was requested. It is guaranteed to be valid 181 even after the mobile host had moved from one point-of-attachment to 182 another (with a different subnet or IP prefix). 184 Session-lasting IP addresses are required by applications that need 185 IP session continuity but do not need IP address reachability. 187 - Non-persistent IP Address 189 This type of IP address provides neither IP session continuity nor IP 190 address reachability. The IP address is obtained from the serving IP 191 gateway and it is not maintained across gateway changes. In other 192 words, the IP address may be released and replaced by a new IP 193 address when the IP gateway changes due to the movement of the mobile 194 host. 196 Applications running as servers at a published IP address require a 197 Fixed IP Address. Long-standing applications (e.g., an SSH session) 198 may also require this type of address. Enterprise applications that 199 connect to an enterprise network via virtual LAN require a Fixed IP 200 Address. 202 Applications with short-lived transient IP sessions can use Session- 203 lasting IP Addresses. For example: Web browsers. 205 Applications with very short IP sessions, such as DNS client and 206 instant messengers, can utilize Non-persistent IP Addresses. Even 207 though they could very well use a Fixed of Session-lasting IP 208 Addresses, the transmission latency would be minimized when a Non- 209 persistent IP Address is used. 211 3.2. Granularity of Selection 213 The IP address type selection is made on a per-socket granularity. 214 Different parts of the same application may have different needs. 215 For example, control-plane of an application may require a Fixed IP 216 Address in order to stay reachable, whereas data-plane of the same 217 application may be satisfied with a Session-lasting IP Address. 219 3.3. On Demand Nature 221 At any point in time, a mobile host may have a combination of IP 222 addresses configured. Zero or more Non-persistent, zero or more 223 Session-lasting, and zero or more Fixed IP addresses may be 224 configured on the IP stack of the host. The combination may be as a 225 result of the host policy, application demand, or a mix of the two. 227 When an application requires a specific type of IP address and such 228 address is not already configured on the host, the IP stack shall 229 attempt to configure one. For example, a host may not always have a 230 Session-lasting IP address available. In case an application 231 requests one, the IP stack shall make an attempt to configure one by 232 issuing a request to the network. If the operation fails, the IP 233 stack shall fail the associated socket request. If successful, a 234 Session-lasting IP Address gets configured on the mobile host. If 235 another socket requests a Session-lasting IP address at a later time, 236 the same IP address may be served to that socket as well. When the 237 last socket using the requested IP address is closed, the IP address 238 may be released or kept for future applications that may be launched 239 and require a Session-lasting IP address. 241 In some cases it might be preferable for the mobile host to request a 242 new Session-lasting IP address for a new opening of an IP session 243 (even though one was already assigned to the mobile host by the 244 network and might be in use in a different, already active IP 245 session). It is out of the scope of this specification to define 246 criteria for selecting to use available addresses or choose to 247 request new ones. It supports both alternatives (and any 248 combination). 250 It is outside of the scope of this specification to define how the 251 host requests a specific type of address (Fixed, Session-lasting or 252 Non-persistent) and how the network indicates the type of address in 253 its advertisement of addresses (or in its reply to an address 254 request). 256 The following are matters of policy, which may be dictated by the 257 host itself, the network operator, or the system architecture 258 standard: 260 - The initial set of IP addresses configured on the host at the boot 261 time. 263 - Permission to grant various types of IP addresses to a requesting 264 application. 266 - Determination of a default address type when an application does 267 not make any explicit indication, whether it already supports the 268 required API or it is just a legacy application. 270 3.4. Conveying the Selection 272 The selection of the address type is conveyed from the applications 273 to the IP stack in a way to influence the source address selection 274 algorithm [RFC6724]. 276 The current source address selection algorithm operates on the 277 available set of IP addresses when selecting an address. According 278 to the proposed solution, if the requested type IP address is not 279 available at the time of the request, the IP stack shall make an 280 attempt to configure one such IP address. The selected IP address 281 shall be compliant with the requested IP address type, whether it is 282 selected among available addresses or dynamically configured. In the 283 absence of a matching type (because it is not available and not 284 configurable on demand), the source address selection algorithm shall 285 return an empty set. 287 A Socket API-based interface for enabling applications to influence 288 the source address selection algorithm is described in [RFC5014]. 290 That specification defines IPV6_ADDR_PREFERENCES option at the 291 IPPROTO_IPV6 level. That option can be used with setsockopt() and 292 getsockopt() calls to set and get address selection preferences. 294 Furthermore, that RFC also specifies two flags that relate to IP 295 mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. 296 These flags are used for influencing the source address selection to 297 prefer either a Home Address or a Care-of Address. 299 Unfortunately, these flags do not satisfy the aforementioned needs 300 due to the following reasons, therefore new flags are proposed in 301 this document: 303 - Current flags indicate a "preference" whereas there is a need for 304 indicating "requirement". Source address selection algorithm does 305 not have to produce an IP address compliant with the "preference" , 306 but it has to produce an IP address compliant with the "requirement". 308 - Current flags influence the selection made among available IP 309 addresses. The new flags force the IP stack to configure a compliant 310 IP address if none is available at the time of the request. 312 - The Home vs. Care-of Address distinction is not sufficient to 313 capture the three different types of IP addresses described in 314 Section 2.1. 316 The following new flags are defined in this document and they shall 317 be used with Socket API in compliance with the [RFC5014]: 319 IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ 321 IPV6_REQUIRE_SESSION_LASTING_IP /* Require a Session-lasting IP 322 address as source */ 324 IPV6_REQUIRE_NON-PERSISTENT_IP /* Require a Non-persistent IP address 325 as source */ 327 Only one of these flags may be set on the same socket. If an 328 application attempts to set more than one flag, the most recent 329 setting will be the one in effect. 331 When any of these new flags is used, then the IPV6_PREFER_SRC_HOME 332 and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. 334 These new flags are used with setsockopt()/getsockopt(), 335 getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar 336 with the setsockopt()/getsockopt() calls, getaddrinfo() call shall 337 also trigger configuration of the required type IP address, if one is 338 not already available. When the new flags are used with 339 getaddrinfo() and the triggered configuration fails, the 340 getaddrinfo() call shall ignore that failure (i.e., not return an 341 error code to indicate that failure). Only the setsockopt() shall 342 return an error when configuration of the requested type IP address 343 fails. 345 The following new error codes are also defined in the document and 346 will be used in the Socket API in compliance with [RFC5014]. 348 EAI_REQUIREDIPNOTSUPPORTED /* The network does not support the 349 ability to request that specific IP address type */ 351 EAI_REQUIREDIPFAILED /* The network could not assign that specific IP 352 address type */ 354 4. Backwards Compatibility Considerations 356 Backwards compatibility support is required by the following 3 types 357 of entities: 359 - The Applications on the mobile host 361 - The IP stack in the mobile host 363 - The network infrastructure 365 4.1. Applications 367 Legacy applications that do not support the new flags will use the 368 legacy API to the IP stack and will not enjoy On-Demand Mobility 369 feature. 371 Applications using the new flags must be aware that they may be 372 executed in environments that do not support On-Demand Mobility 373 feature. Such environments may include legacy IP stack in the mobile 374 host, legacy network infrastructure, or both. In either case, the 375 API will return an error code and the invoking applications must 376 respond with using legacy calls without On-Demand Mobility feature. 378 4.2. IP Stack in the Mobile Host 380 New IP stacks must continue to support all legacy operations. If an 381 application does not use On-Demand Mobility feature, the IP stack 382 must respond in a legacy manner. 384 If the network infrastructure supports On-Demand Mobility feature, 385 the IP stack should follow the application request: If the 386 application requests a specific address type, the stack should 387 forward this request to the network. If the application does not 388 request an address type, the IP stack must not request an address 389 type and leave it to the network's default behavior to choose the 390 type of the allocated IP address. If an IP address was already 391 allocated to the host, the IP stack uses it and may not request a new 392 one from the network. 394 4.3. Network Infrastructure 396 The network infrastructure may or may not support the On-Demand 397 Mobility feature. How the IP stack on the host and the network 398 infrastructure behave in case of a compatibility issue is outside the 399 scope of this API specification. 401 5. Summary of New Definitions 403 The following list summarizes the new constants definitions discussed 404 in this memo: 406 IPV6_REQUIRE_FIXED_IP 407 IPV6_REQUIRE_SESSION_LASTING_IP 408 IPV6_REQUIRE_NON_PERSISTENT_IP 409 EAI_REQUIREDIPNOTSUPPORTED 410 EAI_REQUIREDIPFAILED 412 IPV6_REQUIRE_FIXED_IP 413 IPV6_REQUIRE_SESSION_LASTING_IP 414 IPV6_REQUIRE_NON_PERSISTENT_IP 415 EAI_REQUIREDIPNOTSUPPORTED 416 EAI_REQUIREDIPFAILED 418 6. Security Considerations 420 The setting of certain IP address type on a given socket may be 421 restricted to privileged applications. For example, a Fixed IP 422 Address may be provided as a premium service and only certain 423 applications may be allowed to use them. Setting and enforcement of 424 such privileges are outside the scope of this document. 426 7. IANA Considerations 428 This document has no IANA considerations. 430 8. Acknowledgements 432 We would like to thank Alexandru Petrescu, John Kaippallimalil, Jouni 433 Korhonen, Seil Jeon, and Sri Gundavelli for their valuable comments 434 and suggestions on this work. 436 9. References 438 9.1. Normative References 440 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 441 Requirement Levels", BCP 14, RFC 2119, 442 DOI 10.17487/RFC2119, March 1997, 443 . 445 [RFC5014] Nordmark, E., Chakrabarti, S., and J. Laganier, "IPv6 446 Socket API for Source Address Selection", RFC 5014, 447 DOI 10.17487/RFC5014, September 2007, 448 . 450 [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, 451 "Default Address Selection for Internet Protocol Version 6 452 (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012, 453 . 455 9.2. Informative References 457 [I-D.ietf-dmm-requirements] 458 Chan, A., Liu, D., Seite, P., Yokota, H., and J. Korhonen, 459 "Requirements for Distributed Mobility Management", draft- 460 ietf-dmm-requirements-17 (work in progress), June 2014. 462 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 463 A., Peterson, J., Sparks, R., Handley, M., and E. 464 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 465 DOI 10.17487/RFC3261, June 2002, 466 . 468 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 469 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 470 RFC 5213, DOI 10.17487/RFC5213, August 2008, 471 . 473 [RFC5563] Leung, K., Dommety, G., Yegani, P., and K. Chowdhury, 474 "WiMAX Forum / 3GPP2 Proxy Mobile IPv4", RFC 5563, 475 DOI 10.17487/RFC5563, February 2010, 476 . 478 [RFC5944] Perkins, C., Ed., "IP Mobility Support for IPv4, Revised", 479 RFC 5944, DOI 10.17487/RFC5944, November 2010, 480 . 482 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 483 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 484 2011, . 486 [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, 487 "TCP Extensions for Multipath Operation with Multiple 488 Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013, 489 . 491 Authors' Addresses 493 Alper Yegin 494 Actility 495 Istanbul 496 Turkey 498 Email: alper.yegin@actility.com 500 Danny Moses 501 Intel Corporation 502 Petah Tikva 503 Israel 505 Email: danny.moses@intel.com 507 Kisuk Kweon 508 Samsung 509 Suwon 510 South Korea 512 Email: kisuk.kweon@samsung.com 514 Jinsung Lee 515 Samsung 516 Suwon 517 South Korea 519 Email: js81.lee@samsung.com 520 Jungshin Park 521 Samsung 522 Suwon 523 South Korea 525 Email: shin02.park@samsung.com