idnits 2.17.1 draft-ietf-dmm-ondemand-mobility-09.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 (December 12, 2016) is 2663 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 ---------------------------------------------------------------------------- == Outdated reference: A later version (-07) exists of draft-sijeon-dmm-use-cases-api-source-05 -- Obsolete informational reference (is this intentional?): RFC 6824 (Obsoleted by RFC 8684) Summary: 0 errors (**), 0 flaws (~~), 3 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: June 15, 2017 Intel 6 K. Kweon 7 J. Lee 8 J. Park 9 Samsung 10 S. Jeon 11 Sungkyunkwan University 12 December 12, 2016 14 On Demand Mobility Management 15 draft-ietf-dmm-ondemand-mobility-09 17 Abstract 19 Applications differ with respect to whether they need IP session 20 continuity and/or IP address reachability. The network providing the 21 same type of service to any mobile host and any application running 22 on the host yields inefficiencies. This document describes a 23 solution for taking the application needs into account in selectively 24 providing IP session continuity and IP address reachability on a per- 25 socket basis. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at http://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on June 15, 2017. 44 Copyright Notice 46 Copyright (c) 2016 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (http://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 63 3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 4 64 3.1. Types of IP Addresses . . . . . . . . . . . . . . . . . . 4 65 3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 66 3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 67 3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 68 4. Backwards Compatibility Considerations . . . . . . . . . . . 9 69 4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 9 70 4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 9 71 4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 10 72 5. Summary of New Definitions . . . . . . . . . . . . . . . . . 10 73 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 74 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 75 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 76 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 77 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 78 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 79 10.2. Informative References . . . . . . . . . . . . . . . . . 11 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 82 1. Introduction 84 In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], 85 following two attributes are defined for the IP service provided to 86 the mobile hosts: 88 IP session continuity: The ability to maintain an ongoing IP session 89 by keeping the same local end-point IP address throughout the session 90 despite the mobile host changing its point of attachment within the 91 IP network topology. The IP address of the host may change between 92 two independent IP sessions, but that does not jeopardize the IP 93 session continuity. IP session continuity is essential for mobile 94 hosts to maintain ongoing flows without any interruption. 96 IP address reachability: The ability to maintain the same IP address 97 for an extended period of time. The IP address stays the same across 98 independent IP sessions, and even in the absence of any IP session. 99 The IP address may be published in a long-term registry (e.g., DNS), 100 and it is made available for serving incoming (e.g., TCP) 101 connections. IP address reachability is essential for mobile hosts 102 to use specific/published IP addresses. 104 Mobile IP is designed to provide both IP session continuity and IP 105 address reachability to mobile hosts. Architectures utilizing these 106 protocols (e.g., 3GPP, 3GPP2, WIMAX) ensure that any mobile host 107 attached to the compliant networks can enjoy these benefits. Any 108 application running on these mobile hosts is subjected to the same 109 treatment with respect to the IP session continuity and IP address 110 reachability. 112 It should be noted that in reality not every application may need 113 those benefits. IP address reachability is required for applications 114 running as servers (e.g., a web server running on the mobile host). 115 But, a typical client application (e.g., web browser) does not 116 necessarily require IP address reachability. Similarly, IP session 117 continuity is not required for all types of applications either. 118 Applications performing brief communication (e.g., DNS client) can 119 survive without having IP session continuity support. 121 Achieving IP session continuity and IP address reachability by using 122 Mobile IP incurs some cost. Mobile IP protocol forces the mobile 123 host's IP traffic to traverse a centrally-located router (Home Agent, 124 HA), which incurs additional transmission latency and use of 125 additional network resources, adds to the network CAPEX and OPEX, and 126 decreases the reliability of the network due to the introduction of a 127 single point of failure [RFC7333]. Therefore, IP session continuity 128 and IP address reachability should be be provided only when needed. 130 Furthermore, when an application needs session continuity, it may be 131 able to satisfy that need by using a solution above the IP layer, 132 such as MPTCP [RFC6824], SIP mobility [RFC3261], or an application- 133 layer mobility solution. Those higher-layer solutions are not 134 subject to the same issues that arise with the use of Mobile IP since 135 they can utilize the most direct data path between the end-points. 136 But, if Mobile IP is being applied to the mobile host, those higher- 137 layer protocols are rendered useless because their operation is 138 inhibited by the Mobile IP. Since Mobile IP ensures that the IP 139 address of the mobile host remains fixed (despite the location and 140 movement of the mobile host), the higher-layer protocols never detect 141 the IP-layer change and never engage in mobility management. 143 This document proposes a solution for the applications running on the 144 mobile host to indicate whether they need IP session continuity or IP 145 address reachability. The network protocol stack on the mobile host, 146 in conjunction with the network infrastructure, would provide the 147 required type of IP service. It is for the benefit of both the users 148 and the network operators not to engage an extra level of service 149 unless it is absolutely necessary. So it is expected that 150 applications and networks compliant with this specification would 151 utilize this solution to use network resources more efficiently. 153 2. Notational Conventions 155 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 156 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 157 document are to be interpreted as described in [RFC2119]. 159 3. Solution 161 3.1. Types of IP Addresses 163 Three types of IP addresses are defined with respect to the mobility 164 management. 166 - Fixed IP Address 168 A Fixed IP address is an address with a guarantee to be valid for a 169 very long time, regardless of whether it is being used in any packet 170 to/from the mobile host, or whether or not the mobile host is 171 connected to the network, or whether it moves from one point-of- 172 attachment to another (with a different subnet or IP prefix) while it 173 is connected. 175 Fixed IP addresses are required by applications that need both IP 176 session continuity and IP address reachability. 178 - Session-lasting IP Address 180 A session-lasting IP address is an address with a guarantee to be 181 valid throughout the IP session(s) for which it was requested. It is 182 guaranteed to be valid even after the mobile host had moved from one 183 point-of-attachment to another (with a different subnet or IP 184 prefix). 186 Session-lasting IP addresses are required by applications that need 187 IP session continuity but do not need IP address reachability. 189 - Non-persistent IP Address 190 This type of IP address provides neither IP session continuity nor IP 191 address reachability. The IP address is obtained from the serving IP 192 gateway and it is not maintained across gateway changes. In other 193 words, the IP address may be released and replaced by a new IP 194 address when the IP gateway changes due to the movement of the mobile 195 host. 197 Applications running as servers at a published IP address require a 198 Fixed IP Address. Long-standing applications (e.g., an SSH session) 199 may also require this type of address. Enterprise applications that 200 connect to an enterprise network via virtual LAN require a Fixed IP 201 Address. 203 Applications with short-lived transient IP sessions can use Session- 204 lasting IP Addresses. For example: Web browsers. 206 Applications with very short IP sessions, such as DNS clients and 207 instant messengers, can utilize Non-persistent IP Addresses. Even 208 though they could very well use Fixed or Session-lasting IP 209 Addresses, the transmission latency would be minimized when a Non- 210 persistent IP Addresses are used. 212 The network creates the desired guarantee (Fixed, Session-lasting or 213 Non-persistent) by either assigning the address prefix (as part of a 214 stateless address generation process), or by assigning an IP address 215 (as part of a stateful IP address generation). 217 The exact mechanism of prefix or address assignment is outside the 218 scope of this specification. 220 3.2. Granularity of Selection 222 The IP address type selection is made on a per-socket granularity. 223 Different parts of the same application may have different needs. 224 For example, control-plane of an application may require a Fixed IP 225 Address in order to stay reachable, whereas data-plane of the same 226 application may be satisfied with a Session-lasting IP Address. 228 3.3. On Demand Nature 230 At any point in time, a mobile host may have a combination of IP 231 addresses configured. Zero or more Non-persistent, zero or more 232 Session-lasting, and zero or more Fixed IP addresses may be 233 configured on the IP stack of the host. The combination may be as a 234 result of the host policy, application demand, or a mix of the two. 236 When an application requires a specific type of IP address and such 237 address is not already configured on the host, the IP stack shall 238 attempt to configure one. For example, a host may not always have a 239 Session-lasting IP address available. When an application requests 240 one, the IP stack shall make an attempt to configure one by issuing a 241 request to the network. If the operation fails, the IP stack shall 242 fail the associated socket request. If successful, a Session-lasting 243 IP Address gets configured on the mobile host. If another socket 244 requests a Session-lasting IP address at a later time, the same IP 245 address may be served to that socket as well. When the last socket 246 using the same configured IP address is closed, the IP address may be 247 released or kept for future applications that may be launched and 248 require a Session-lasting IP address. 250 In some cases it might be preferable for the mobile host to request a 251 new Session-lasting IP address for a new opening of an IP session 252 (even though one was already assigned to the mobile host by the 253 network and might be in use in a different, already active IP 254 session). It is outside the scope of this specification to define 255 criteria for selecting to use available addresses or choose to 256 request new ones. It supports both alternatives (and any 257 combination). 259 It is outside the scope of this specification to define how the host 260 requests a specific type of address (Fixed, Session-lasting or Non- 261 persistent) and how the network indicates the type of address in its 262 advertisement of IP prefixes or addresses (or in its reply to a 263 request). 265 The following are matters of policy, which may be dictated by the 266 host itself, the network operator, or the system architecture 267 standard: 269 - The initial set of IP addresses configured on the host at boot 270 time. 272 - Permission to grant various types of IP addresses to a requesting 273 application. 275 - Determination of a default address type when an application does 276 not make any explicit indication, whether it already supports the 277 required API or it is just a legacy application. 279 3.4. Conveying the Selection 281 The selection of the address type is conveyed from the applications 282 to the IP stack in oredr to influence the source address selection 283 algorithm [RFC6724]. 285 The current source address selection algorithm operates on the 286 available set of IP addresses, when selecting an address. According 287 to the proposed solution, if the requested IP address type is not 288 available at the time of the request, the IP stack shall make an 289 attempt to configure one such IP address. The selected IP address 290 shall be compliant with the requested IP address type, whether it is 291 selected among available addresses or dynamically configured. In the 292 absence of a matching type (because it is not available and not 293 configurable on demand), the source address selection algorithm shall 294 return an empty set. 296 A Socket API-based interface for enabling applications to influence 297 the source address selection algorithm is described in [RFC5014]. 298 That specification defines IPV6_ADDR_PREFERENCES option at the 299 IPPROTO_IPV6 level. That option can be used with setsockopt() and 300 getsockopt() calls to set and get address selection preferences. 302 Furthermore, that RFC also specifies two flags that relate to IP 303 mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. 304 These flags are used for influencing the source address selection to 305 prefer either a Home Address or a Care-of Address. 307 Unfortunately, these flags do not satisfy the aforementioned needs 308 due to the following reasons: 310 - Current flags indicate a "preference" whereas there is a need for 311 indicating "requirement". Source address selection algorithm does 312 not have to produce an IP address compliant with the "preference" , 313 but it has to produce an IP address compliant with the "requirement". 315 - Current flags influence the selection made among available IP 316 addresses. The new flags force the IP stack to configure a compliant 317 IP address if none is available at the time of the request. 319 - The Home vs. Care-of Address distinction is not sufficient to 320 capture the three different types of IP addresses described in 321 Section 2.1. 323 The following new flags are defined in this document and they shall 324 be used with Socket API in compliance with [RFC5014]: 326 IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ 328 IPV6_REQUIRE_SESSION_LASTING_IP /* Require a Session-lasting IP 329 address as source */ 331 IPV6_REQUIRE_NON-PERSISTENT_IP /* Require a Non-persistent IP address 332 as source */ 333 Only one of these flags may be set on the same socket. If an 334 application attempts to set more than one flag, the most recent 335 setting will be the one in effect. 337 When any of these new flags is used, the IPV6_PREFER_SRC_HOME and 338 IPV6_PREFER_SRC_COA flags, if used, shall be ignored. 340 These new flags are used with setsockopt()/getsockopt(), 341 getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar 342 to the setsockopt()/getsockopt() calls, the getaddrinfo() call shall 343 also trigger configuration of the required IP address type, if one is 344 not already available. When the new flags are used with 345 getaddrinfo() and the triggered configuration fails, the 346 getaddrinfo() call shall ignore that failure (i.e., not return an 347 error code to indicate that failure). Only the setsockopt() shall 348 return an error when configuration of the requested IP address type 349 fails. 351 When the IP stack is required to use a source IP address of a 352 specified type, it can perform one of the following: It can use an 353 existing address (if it has one), or it can create a new one from an 354 existing prefix of the desired type. If the host does not already 355 have an IPv6 prefix of the specific type, it can request one from the 356 network. 358 Using an existing address from an existing prefix is faster but might 359 yield a less optimal route (if a hand-off event occurred since its 360 configuration), on the other hand, acquiring a new IP prefix from the 361 network may take some time (due to signaling exchange with the 362 network) and may fail due to network policies. 364 An additional new flag - ON_NET flag - enables the application to 365 direct the IP stack whether to use a preconfigured source IP address 366 (if exists) or to request a new IPv6 prefix from the current serving 367 network and configure a new IP address: 369 IPV6_REQUIRE_SRC_ON_NET /* Set IP stack address allocation behavior 370 */ 372 If set, the IP stack will request a new IPv6 prefix of the desired 373 type from the current serving network and configure a new source IP 374 address. If reset, the IP stack will use a preconfigured one if 375 exists. If there is no preconfigured IP address of the desired type, 376 the IP stack will request a IPv6 prefix from the current serving 377 network (regardless of whether this flag is set or not). 379 The ON_NET flag must be used together with one of the 3 flags defined 380 above. If ON_NET flag is used without any of these flags, it must be 381 ignored. If the ON_NET flag is not used, the IP stack is free to 382 either use an existing IP address (if preconfigured) or access the 383 network to configure a new one (the decision is left to 384 implementation). 386 The following new error codes are also defined in the document and 387 will be used in the Socket API in compliance with [RFC5014]. 389 EAI_REQUIREDIPNOTSUPPORTED /* The network does not support the 390 ability to request that specific IP address type */ 392 EAI_REQUIREDIPFAILED /* The network could not assign that specific IP 393 address type */ 395 4. Backwards Compatibility Considerations 397 Backwards compatibility support is required by the following 3 types 398 of entities: 400 - The Applications on the mobile host 402 - The IP stack in the mobile host 404 - The network infrastructure 406 4.1. Applications 408 Legacy applications that do not support the new flags will use the 409 legacy API to the IP stack and will not enjoy On-Demand Mobility 410 feature. 412 Applications using the new flags must be aware that they may be 413 executed in environments that do not support the On-Demand Mobility 414 feature. Such environments may include legacy IP stack in the mobile 415 host, legacy network infrastructure, or both. In either case, the 416 API will return an error code and the invoking applications must 417 respond with using legacy calls without the On-Demand Mobility 418 feature. 420 4.2. IP Stack in the Mobile Host 422 New IP stacks must continue to support all legacy operations. If an 423 application does not use On-Demand Mobility feature, the IP stack 424 must respond in a legacy manner. 426 If the network infrastructure supports On-Demand Mobility feature, 427 the IP stack should follow the application request: If the 428 application requests a specific address type, the stack should 429 forward this request to the network. If the application does not 430 request an address type, the IP stack must not request an address 431 type and leave it to the network's default behavior to choose the 432 type of the allocated IP prefix. If an IP prefix was already 433 allocated to the host, the IP stack uses it and may not request a new 434 one from the network. 436 4.3. Network Infrastructure 438 The network infrastructure may or may not support the On-Demand 439 Mobility feature. How the IP stack on the host and the network 440 infrastructure behave in case of a compatibility issue is outside the 441 scope of this API specification. 443 5. Summary of New Definitions 445 The following list summarizes the new constants definitions discussed 446 in this memo: 448 IPV6_REQUIRE_FIXED_IP 449 IPV6_REQUIRE_SESSION_LASTING_IP 450 IPV6_REQUIRE_NON_PERSISTENT_IP 451 IPV6_REQUIRE_SRC_ON_NET 452 EAI_REQUIREDIPNOTSUPPORTED 453 EAI_REQUIREDIPFAILED 455 IPV6_REQUIRE_FIXED_IP 456 IPV6_REQUIRE_SESSION_LASTING_IP 457 IPV6_REQUIRE_NON_PERSISTENT_IP 458 IPV6_REQUIRE_SRC_ON_NET 459 EAI_REQUIREDIPNOTSUPPORTED 460 EAI_REQUIREDIPFAILED 462 6. Security Considerations 464 The setting of certain IP address type on a given socket may be 465 restricted to privileged applications. For example, a Fixed IP 466 Address may be provided as a premium service and only certain 467 applications may be allowed to use them. Setting and enforcement of 468 such privileges are outside the scope of this document. 470 7. IANA Considerations 472 This document has no IANA considerations. 474 8. Contributors 476 This document was merged with [I-D.sijeon-dmm-use-cases-api-source]. 477 We would like to acknowledge the contribution of the following people 478 to that document as well: 480 Sergio Figueiredo 481 Altran Research, France 482 Email: sergio.figueiredo@altran.com 484 Younghan Kim 485 Soongsil University, Korea 486 Email: younghak@ssu.ac.kr 488 John Kaippallimalil 489 Huawei, USA 490 Email: john.kaippallimalil@huawei.com 492 9. Acknowledgements 494 We would like to thank Alexandru Petrescu, Jouni Korhonen, Sri 495 Gundavelli, and Lorenzo Colitti for their valuable comments and 496 suggestions on this work. 498 10. References 500 10.1. Normative References 502 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 503 Requirement Levels", BCP 14, RFC 2119, 504 DOI 10.17487/RFC2119, March 1997, 505 . 507 [RFC5014] Nordmark, E., Chakrabarti, S., and J. Laganier, "IPv6 508 Socket API for Source Address Selection", RFC 5014, 509 DOI 10.17487/RFC5014, September 2007, 510 . 512 [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, 513 "Default Address Selection for Internet Protocol Version 6 514 (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012, 515 . 517 10.2. Informative References 519 [I-D.sijeon-dmm-use-cases-api-source] 520 Jeon, S., Figueiredo, S., Kim, Y., and J. Kaippallimalil, 521 "Use Cases and API Extension for Source IP Address 522 Selection", draft-sijeon-dmm-use-cases-api-source-05 (work 523 in progress), October 2016. 525 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 526 A., Peterson, J., Sparks, R., Handley, M., and E. 527 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 528 DOI 10.17487/RFC3261, June 2002, 529 . 531 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 532 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 533 RFC 5213, DOI 10.17487/RFC5213, August 2008, 534 . 536 [RFC5563] Leung, K., Dommety, G., Yegani, P., and K. Chowdhury, 537 "WiMAX Forum / 3GPP2 Proxy Mobile IPv4", RFC 5563, 538 DOI 10.17487/RFC5563, February 2010, 539 . 541 [RFC5944] Perkins, C., Ed., "IP Mobility Support for IPv4, Revised", 542 RFC 5944, DOI 10.17487/RFC5944, November 2010, 543 . 545 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 546 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 547 2011, . 549 [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, 550 "TCP Extensions for Multipath Operation with Multiple 551 Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013, 552 . 554 [RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J. 555 Korhonen, "Requirements for Distributed Mobility 556 Management", RFC 7333, DOI 10.17487/RFC7333, August 2014, 557 . 559 Authors' Addresses 561 Alper Yegin 562 Actility 563 Istanbul 564 Turkey 566 Email: alper.yegin@actility.com 567 Danny Moses 568 Intel Corporation 569 Petah Tikva 570 Israel 572 Email: danny.moses@intel.com 574 Kisuk Kweon 575 Samsung 576 Suwon 577 South Korea 579 Email: kisuk.kweon@samsung.com 581 Jinsung Lee 582 Samsung 583 Suwon 584 South Korea 586 Email: js81.lee@samsung.com 588 Jungshin Park 589 Samsung 590 Suwon 591 South Korea 593 Email: shin02.park@samsung.com 595 Seil Jeon 596 Sungkyunkwan University 597 Suwon 598 South Korea 600 Email: seiljeon@skku.edu