idnits 2.17.1 draft-ietf-dmm-ondemand-mobility-08.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 (November 28, 2016) is 2706 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 1, 2017 Intel 6 K. Kweon 7 J. Lee 8 J. Park 9 Samsung 10 S. Jeon 11 Sungkyunkwan University 12 November 28, 2016 14 On Demand Mobility Management 15 draft-ietf-dmm-ondemand-mobility-08 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 1, 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 . . . . . . . . . . . . . . . . . . . . . . . . 10 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 the IP address 139 of the mobile host remains fixed (despite the location and movement 140 of the mobile host), the higher-layer protocols never detect the IP- 141 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 address 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 through-out the IP session(s) for which it was requested. It 182 is guaranteed to be valid even after the mobile host had moved from 183 one 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 client and 207 instant messengers, can utilize Non-persistent IP Addresses. Even 208 though they could very well use a Fixed of Session-lasting IP 209 Addresses, the transmission latency would be minimized when a Non- 210 persistent IP Address is used. 212 The network creates the desired guarantee (Fixed, Session-lasting or 213 Non-persistent) by either assigning an IP address (as part of a 214 stateful IP address generation), or by assigning the address prefix 215 (as part of a stateless address generation process). 217 3.2. Granularity of Selection 219 The IP address type selection is made on a per-socket granularity. 220 Different parts of the same application may have different needs. 221 For example, control-plane of an application may require a Fixed IP 222 Address in order to stay reachable, whereas data-plane of the same 223 application may be satisfied with a Session-lasting IP Address. 225 3.3. On Demand Nature 227 At any point in time, a mobile host may have a combination of IP 228 addresses configured. Zero or more Non-persistent, zero or more 229 Session-lasting, and zero or more Fixed IP addresses may be 230 configured on the IP stack of the host. The combination may be as a 231 result of the host policy, application demand, or a mix of the two. 233 When an application requires a specific type of IP address and such 234 address is not already configured on the host, the IP stack shall 235 attempt to configure one. For example, a host may not always have a 236 Session-lasting IP address available. In case an application 237 requests one, the IP stack shall make an attempt to configure one by 238 issuing a request to the network. If the operation fails, the IP 239 stack shall fail the associated socket request. If successful, a 240 Session-lasting IP Address gets configured on the mobile host. If 241 another socket requests a Session-lasting IP address at a later time, 242 the same IP address may be served to that socket as well. When the 243 last socket using the requested IP address is closed, the IP address 244 may be released or kept for future applications that may be launched 245 and require a Session-lasting IP address. 247 In some cases it might be preferable for the mobile host to request a 248 new Session-lasting IP address for a new opening of an IP session 249 (even though one was already assigned to the mobile host by the 250 network and might be in use in a different, already active IP 251 session). It is out of the scope of this specification to define 252 criteria for selecting to use available addresses or choose to 253 request new ones. It supports both alternatives (and any 254 combination). 256 It is outside of the scope of this specification to define how the 257 host requests a specific type of address (Fixed, Session-lasting or 258 Non-persistent) and how the network indicates the type of address in 259 its advertisement of addresses (or in its reply to an address 260 request). 262 The following are matters of policy, which may be dictated by the 263 host itself, the network operator, or the system architecture 264 standard: 266 - The initial set of IP addresses configured on the host at the boot 267 time. 269 - Permission to grant various types of IP addresses to a requesting 270 application. 272 - Determination of a default address type when an application does 273 not make any explicit indication, whether it already supports the 274 required API or it is just a legacy application. 276 3.4. Conveying the Selection 278 The selection of the address type is conveyed from the applications 279 to the IP stack in a way to influence the source address selection 280 algorithm [RFC6724]. 282 The current source address selection algorithm operates on the 283 available set of IP addresses when selecting an address. According 284 to the proposed solution, if the requested type IP address is not 285 available at the time of the request, the IP stack shall make an 286 attempt to configure one such IP address. The selected IP address 287 shall be compliant with the requested IP address type, whether it is 288 selected among available addresses or dynamically configured. In the 289 absence of a matching type (because it is not available and not 290 configurable on demand), the source address selection algorithm shall 291 return an empty set. 293 A Socket API-based interface for enabling applications to influence 294 the source address selection algorithm is described in [RFC5014]. 295 That specification defines IPV6_ADDR_PREFERENCES option at the 296 IPPROTO_IPV6 level. That option can be used with setsockopt() and 297 getsockopt() calls to set and get address selection preferences. 299 Furthermore, that RFC also specifies two flags that relate to IP 300 mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. 301 These flags are used for influencing the source address selection to 302 prefer either a Home Address or a Care-of Address. 304 Unfortunately, these flags do not satisfy the aforementioned needs 305 due to the following reasons, therefore new flags are proposed in 306 this document: 308 - Current flags indicate a "preference" whereas there is a need for 309 indicating "requirement". Source address selection algorithm does 310 not have to produce an IP address compliant with the "preference" , 311 but it has to produce an IP address compliant with the "requirement". 313 - Current flags influence the selection made among available IP 314 addresses. The new flags force the IP stack to configure a compliant 315 IP address if none is available at the time of the request. 317 - The Home vs. Care-of Address distinction is not sufficient to 318 capture the three different types of IP addresses described in 319 Section 2.1. 321 The following new flags are defined in this document and they shall 322 be used with Socket API in compliance with the [RFC5014]: 324 IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ 326 IPV6_REQUIRE_SESSION_LASTING_IP /* Require a Session-lasting IP 327 address as source */ 329 IPV6_REQUIRE_NON-PERSISTENT_IP /* Require a Non-persistent IP address 330 as source */ 331 Only one of these flags may be set on the same socket. If an 332 application attempts to set more than one flag, the most recent 333 setting will be the one in effect. 335 When any of these new flags is used, then the IPV6_PREFER_SRC_HOME 336 and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. 338 These new flags are used with setsockopt()/getsockopt(), 339 getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar 340 with the setsockopt()/getsockopt() calls, getaddrinfo() call shall 341 also trigger configuration of the required type IP address, if one is 342 not already available. When the new flags are used with 343 getaddrinfo() and the triggered configuration fails, the 344 getaddrinfo() call shall ignore that failure (i.e., not return an 345 error code to indicate that failure). Only the setsockopt() shall 346 return an error when configuration of the requested type IP address 347 fails. 349 When the IP stack is required to assign a source IP address of a 350 specified type, it can perform one of the following: It can assigned 351 a preconfigured address (if one exists) or request a new one from the 352 network. Using an existing address is instantaneous but might yield 353 a less optimal route (if a hand-off event occurred since its 354 configuration), on the other hand, acquiring a new IP address from 355 the network may take some time (due to signaling exchange with the 356 network). 358 An additional new flag - ON_NET flag - enables the application to 359 direct the IP stack whether to use a preconfigured source IP address 360 (if exists) or to request a new one from the current serving network: 362 IPV6_REQUIRE_SRC_ON_NET /* Set IP stack address allocation behavior 363 */ 365 If set, the IP stack will request a new IP address of the desired 366 type from the current serving network. If reset, the IP stack will 367 use a preconfigured one if exists. If there is no preconfigured IP 368 address of the desired type, the IP stack will request a new one from 369 the current serving network (regardless of whether this flag is set 370 or reset). 372 The ON_NET flag must be used together with one of the 3 flags defined 373 above. If ON_NET flag is used without any of these flags, it must be 374 ignored. If the ON_NET flag is not used, the IP stack is free to 375 either use an existing IP address (if preconfigured) or access the 376 network to configure a new one (the decision is left to 377 implementation). 379 The following new error codes are also defined in the document and 380 will be used in the Socket API in compliance with [RFC5014]. 382 EAI_REQUIREDIPNOTSUPPORTED /* The network does not support the 383 ability to request that specific IP address type */ 385 EAI_REQUIREDIPFAILED /* The network could not assign that specific IP 386 address type */ 388 4. Backwards Compatibility Considerations 390 Backwards compatibility support is required by the following 3 types 391 of entities: 393 - The Applications on the mobile host 395 - The IP stack in the mobile host 397 - The network infrastructure 399 4.1. Applications 401 Legacy applications that do not support the new flags will use the 402 legacy API to the IP stack and will not enjoy On-Demand Mobility 403 feature. 405 Applications using the new flags must be aware that they may be 406 executed in environments that do not support On-Demand Mobility 407 feature. Such environments may include legacy IP stack in the mobile 408 host, legacy network infrastructure, or both. In either case, the 409 API will return an error code and the invoking applications must 410 respond with using legacy calls without On-Demand Mobility feature. 412 4.2. IP Stack in the Mobile Host 414 New IP stacks must continue to support all legacy operations. If an 415 application does not use On-Demand Mobility feature, the IP stack 416 must respond in a legacy manner. 418 If the network infrastructure supports On-Demand Mobility feature, 419 the IP stack should follow the application request: If the 420 application requests a specific address type, the stack should 421 forward this request to the network. If the application does not 422 request an address type, the IP stack must not request an address 423 type and leave it to the network's default behavior to choose the 424 type of the allocated IP address. If an IP address was already 425 allocated to the host, the IP stack uses it and may not request a new 426 one from the network. 428 4.3. Network Infrastructure 430 The network infrastructure may or may not support the On-Demand 431 Mobility feature. How the IP stack on the host and the network 432 infrastructure behave in case of a compatibility issue is outside the 433 scope of this API specification. 435 5. Summary of New Definitions 437 The following list summarizes the new constants definitions discussed 438 in this memo: 440 IPV6_REQUIRE_FIXED_IP 441 IPV6_REQUIRE_SESSION_LASTING_IP 442 IPV6_REQUIRE_NON_PERSISTENT_IP 443 IPV6_REQUIRE_SRC_ON_NET 444 EAI_REQUIREDIPNOTSUPPORTED 445 EAI_REQUIREDIPFAILED 447 IPV6_REQUIRE_FIXED_IP 448 IPV6_REQUIRE_SESSION_LASTING_IP 449 IPV6_REQUIRE_NON_PERSISTENT_IP 450 IPV6_REQUIRE_SRC_ON_NET 451 EAI_REQUIREDIPNOTSUPPORTED 452 EAI_REQUIREDIPFAILED 454 6. Security Considerations 456 The setting of certain IP address type on a given socket may be 457 restricted to privileged applications. For example, a Fixed IP 458 Address may be provided as a premium service and only certain 459 applications may be allowed to use them. Setting and enforcement of 460 such privileges are outside the scope of this document. 462 7. IANA Considerations 464 This document has no IANA considerations. 466 8. Contributors 468 This document was merged with [I-D.sijeon-dmm-use-cases-api-source]. 469 We would like to acknowledge the contribution of the following people 470 to that document as well: 472 Sergio Figueiredo 473 Altran Research, France 474 Email: sergio.figueiredo@altran.com 476 Younghan Kim 477 Soongsil University, Korea 478 Email: younghak@ssu.ac.kr 480 John Kaippallimalil 481 Huawei, USA 482 Email: john.kaippallimalil@huawei.com 484 9. Acknowledgements 486 We would like to thank Alexandru Petrescu, Jouni Korhonen, and Sri 487 Gundavelli for their valuable comments and suggestions on this work. 489 10. References 491 10.1. Normative References 493 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 494 Requirement Levels", BCP 14, RFC 2119, 495 DOI 10.17487/RFC2119, March 1997, 496 . 498 [RFC5014] Nordmark, E., Chakrabarti, S., and J. Laganier, "IPv6 499 Socket API for Source Address Selection", RFC 5014, 500 DOI 10.17487/RFC5014, September 2007, 501 . 503 [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, 504 "Default Address Selection for Internet Protocol Version 6 505 (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012, 506 . 508 10.2. Informative References 510 [I-D.sijeon-dmm-use-cases-api-source] 511 Jeon, S., Figueiredo, S., Kim, Y., and J. Kaippallimalil, 512 "Use Cases and API Extension for Source IP Address 513 Selection", draft-sijeon-dmm-use-cases-api-source-05 (work 514 in progress), October 2016. 516 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 517 A., Peterson, J., Sparks, R., Handley, M., and E. 518 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 519 DOI 10.17487/RFC3261, June 2002, 520 . 522 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 523 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 524 RFC 5213, DOI 10.17487/RFC5213, August 2008, 525 . 527 [RFC5563] Leung, K., Dommety, G., Yegani, P., and K. Chowdhury, 528 "WiMAX Forum / 3GPP2 Proxy Mobile IPv4", RFC 5563, 529 DOI 10.17487/RFC5563, February 2010, 530 . 532 [RFC5944] Perkins, C., Ed., "IP Mobility Support for IPv4, Revised", 533 RFC 5944, DOI 10.17487/RFC5944, November 2010, 534 . 536 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 537 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 538 2011, . 540 [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, 541 "TCP Extensions for Multipath Operation with Multiple 542 Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013, 543 . 545 [RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J. 546 Korhonen, "Requirements for Distributed Mobility 547 Management", RFC 7333, DOI 10.17487/RFC7333, August 2014, 548 . 550 Authors' Addresses 552 Alper Yegin 553 Actility 554 Istanbul 555 Turkey 557 Email: alper.yegin@actility.com 558 Danny Moses 559 Intel Corporation 560 Petah Tikva 561 Israel 563 Email: danny.moses@intel.com 565 Kisuk Kweon 566 Samsung 567 Suwon 568 South Korea 570 Email: kisuk.kweon@samsung.com 572 Jinsung Lee 573 Samsung 574 Suwon 575 South Korea 577 Email: js81.lee@samsung.com 579 Jungshin Park 580 Samsung 581 Suwon 582 South Korea 584 Email: shin02.park@samsung.com 586 Seil Jeon 587 Sungkyunkwan University 588 Suwon 589 South Korea 591 Email: seiljeon@skku.edu