< draft-korhonen-dmm-prefix-properties-00.txt   draft-korhonen-dmm-prefix-properties-01.txt >
Distributed Mobility Management (DMM) J. Korhonen Distributed Mobility Management (DMM) J. Korhonen
Internet-Draft Nokia Siemens Networks Internet-Draft Nokia Siemens Networks
Updates: 4861 (if approved) B. Patil Updates: 4861,3484 (if approved) B. Patil
Intended status: Standards Track Nokia Intended status: Standards Track Nokia
Expires: August 26, 2012 S. Gundavelli Expires: September 12, 2012 S. Gundavelli
Cisco Cisco
February 23, 2012 March 11, 2012
IPv6 Prefix Mobility Management Properties IPv6 Prefix Mobility Management Properties
draft-korhonen-dmm-prefix-properties-00.txt draft-korhonen-dmm-prefix-properties-01.txt
Abstract Abstract
This specification defines an extension to the IPv6 Neighbor This specification defines an extension to the IPv6 Neighbor
Discovery protocol and its Prefix Information Option. The Prefix Discovery protocol and its Prefix Information Option. The Prefix
Information Option is extended with flag bits that describe the Information Option is extended with flag bits that describe the
mobility management properties associated to the prefix. This mobility management properties associated to the prefix. This
specification updates RFC4861. specification updates RFC4861 and also updates RFC3484 Source Address
Selection algorithm.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 43 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 26, 2012. This Internet-Draft will expire on September 12, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Background and Motivation . . . . . . . . . . . . . . . . . . . 3 2. Background and Motivation . . . . . . . . . . . . . . . . . . . 3
3. Option Formats . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Option Formats . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Host Considerations . . . . . . . . . . . . . . . . . . . . . . 5 4. Host Considerations . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Internal Data Structures . . . . . . . . . . . . . . . . . 5 4.1. Internal Data Structures . . . . . . . . . . . . . . . . . 6
4.2. Default Address Selection . . . . . . . . . . . . . . . . . 5 4.2. Default Address Selection . . . . . . . . . . . . . . . . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.1. Normative References . . . . . . . . . . . . . . . . . . . 6 7.1. Normative References . . . . . . . . . . . . . . . . . . . 7
7.2. Informative References . . . . . . . . . . . . . . . . . . 6 7.2. Informative References . . . . . . . . . . . . . . . . . . 7
Appendix A. Additions to the Socket Interface and the Appendix A. Additions to the Socket Interface and the
Protocol-Independent Nodename Translation . . . . . . 6 Protocol-Independent Nodename Translation . . . . . . 8
A.1. Socket Interface . . . . . . . . . . . . . . . . . . . . . 7 A.1. Socket Interface . . . . . . . . . . . . . . . . . . . . . 8
A.2. Protocol-Independent Nodename Translation . . . . . . . . . 7 A.2. Protocol-Independent Nodename Translation . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
This specification defines an extension to the IPv6 Neighbor This specification defines an extension to the IPv6 Neighbor
Discovery protocol and its Prefix Information Option (PIO) [RFC4861]. Discovery protocol and its Prefix Information Option (PIO) [RFC4861].
The Prefix Information Option is extended with flag bits that The Prefix Information Option is extended with flag bits that
describe the mobility management properties associated to the prefix, describe the mobility management properties associated to the prefix,
and at the same time defines corresponding source address selection and at the same time defines corresponding source address selection
hint flags to the IPv6 Socket API for Source Address Selection hint flags to the IPv6 Socket API for Source Address Selection
[RFC5014]. [RFC5014].
skipping to change at page 3, line 41 skipping to change at page 3, line 41
The underlying assumption is that a MN has multiple prefixes to The underlying assumption is that a MN has multiple prefixes to
choose from. Typically this means either the MN has multiple choose from. Typically this means either the MN has multiple
interfaces or an interface has been configured with multiple interfaces or an interface has been configured with multiple
prefixes. This specification does not make a distinction between prefixes. This specification does not make a distinction between
these alternatives and does not either make any assumptions how the these alternatives and does not either make any assumptions how the
possible transfer of a prefix is done between interfaces in the case possible transfer of a prefix is done between interfaces in the case
a network based mobility solution is used. a network based mobility solution is used.
2. Background and Motivation 2. Background and Motivation
[Discussion: explain the background and subsequently the motivation, IP mobility and its centralized topological anchoring of IP addresses
which lead to "coloring" prefixes, and what we expect to gain from has known issues. For instance, non-optimal routing is a classical
this extension to IPv6 addressing & neighbor discovery protocol. To example. Another concerns include excessive tunneling, increased
be written later.] signaling due the maintenance of mobility related bindings,
aggregation of traffic to centralized mobility anchor gateways and
unnecessary IP mobility related state management for IP traffic that
does not as such benefit from mobility. In general, it is observed
that most applications do not need IP level mobility, and work just
fine with "temporary" IP addresses that come and go. However, IP
mobility still has its virtues making the applications unaware of
mobility, and certain wireless mobile networking architecture make
extensive use of network based IP mobility.
In order to overcome some of the above issues, use of local resources
and topologically local addressing could be enhanced. In many cases
this would lead to use of multiple addresses of which some provide
mobility and some do not. However, an end host has to have means to
distinguish between addresses that provide mobility, and those that
are short lived and usable only within a limited topological area.
This specification provides extensions to IPv6 address management and
source address selection so that end hosts (and their applications)
can select a proper address for their needs.
[to be enhanced]
3. Option Formats 3. Option Formats
Neighbor Discovery messages include zero or more options, some of Neighbor Discovery messages include zero or more options, some of
which may appear multiple times in the same message. Options should which may appear multiple times in the same message. Options should
be padded when necessary to ensure that they end on their natural 64- be padded when necessary to ensure that they end on their natural 64-
bit boundaries. Figure 1 illustrates a Prefix Information Option bit boundaries. Figure 1 illustrates a Prefix Information Option
[RFC4861] that is extended with flag bits describing the mobility [RFC4861] that is extended with flag bits describing the mobility
properties of the prefix: properties of the prefix:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3 | 4 | Prefix Length |L|A| C | Rsvd1 | | 3 | 4 | Prefix Length |L|A| Rsvd1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Valid Lifetime | | Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preferred Lifetime | | Preferred Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved2 | | C | Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| | | |
+ Prefix + + Prefix +
| | | |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Extended Prefix Information Option Figure 1: Extended Prefix Information Option
'C' 2-bit flag field describing the mobility properties of the 'C' 2-bit flag field describing the mobility properties of the
prefix. The following properties are defined: prefix. The following properties are defined:
00 No specific property associated to the prefix. The prefix is 00 No specific property associated to the prefix. The prefix is
treated according to RFC4861. treated according to RFC4861.
01 The prefix provides network based mobility and will remain 01 The prefix may or may not provide network based mobility, and
unchanged at the valid lifetime of the prefix. if mobility is provided that is only within a limited area.
Therefore, the end host must be prepared that the prefix may
10 The prefix provides network based mobility but only within a become invalid abruptly before the valid or even the
limited area, thus the end host must be prepared that the
prefix may become invalid before the valid or even the
preferred lifetime expire. preferred lifetime expire.
10 The prefix provides network based mobility and should remain
unchanged the valid lifetime of the prefix.
11 Reserved. Treated as '00' by the receiver. 11 Reserved. Treated as '00' by the receiver.
A common use case is to define 'C' flags when the 'A'=1 i.e. when A common use case is to define 'C' flags when the 'A'=1 i.e. when
Stateless Address AutoConfiguration (SLAAC) is used. However, it is Stateless Address AutoConfiguration (SLAAC) is used. However, it is
possible to associate 'C' flags also to prefixes when 'A'=0. In possible to associate 'C' flags also to prefixes when 'A'=0. In
cases when there are multiple learned prefixes with 'C' flags set to cases when there are multiple learned prefixes with 'C' flags set to
a non-zero value that can also be aggregated, then the longest prefix a non-zero value that can also be aggregated, then the longest prefix
takes precedence. takes precedence.
If the prefix lifetime(s) is set to infinity that does not override
the prefix mobility properties indicated in 'C' flags. For instance,
a prefix with an infinite lifetime but 'C' flags set to '01' indicate
that the prefix is bound to change abruptly due a handover at some
point of time.
'C' flags also define the prefix preference for an IP stack that
understands the extensions defined in this specification. The IP
stack SHOULD use the following preferences to supersede
[I-D.ietf-6man-rfc3484bis] Source Address Selection Rule 8 when
selecting a default source address among multiple choices and an
application has not explicitly indicate what kind of source address
it prefers:
00 Medium (default) preference.
01 High preference.
10 Low preference.
11 Reserved - MUST NOT be used.
4. Host Considerations 4. Host Considerations
4.1. Internal Data Structures 4.1. Internal Data Structures
The host internal data structures need to be extended with 'mobility The host internal data structures need to be extended with 'mobility
property' flag information associated to the learned prefix and property' flag information associated to the learned prefix and
configured addresses. How this is accomplished is host configured addresses. How this is accomplished is host
implementation specific. It is also a host implementation issue how implementation specific. It is also a host implementation issue how
an application can learn or query mobility properties of an address an application can learn or query mobility properties of an address
or a prefix. One possibility is to provide such information through or a prefix. One possibility is to provide such information through
the socket API extensions (see discussion in Appendix A). Other the socket API extensions (see discussion in Appendix A). Other
possibilities include the use of e.g., ioctl() or NetLink [RFC3549] possibilities include the use of e.g., ioctl() or NetLink [RFC3549]
extensions. extensions.
4.2. Default Address Selection 4.2. Default Address Selection
The 'mobility property' flags are only used as a hint. They do not The 'mobility property' flags are only used as a hint. They do not
affect the existing [RFC3484] automatically. A specific rule to affect the existing [I-D.ietf-6man-rfc3484bis] automatically. A
host's policy table has to be inserted by an application or some specific rule to host's policy table has to be inserted by an
daemon process. Alternatively, an application can express its application or some daemon process. Alternatively, an application
address mobility property preferences through the socket API can express its address mobility property preferences through the
extensions (see discussion in Appendix A), which means the socket socket API extensions (see discussion in Appendix A), which means the
library or middleware has to modify [RFC3484] policy table or socket library or middleware has to modify [I-D.ietf-6man-rfc3484bis]
algorithm. policy table or algorithm.
5. Security Considerations 5. Security Considerations
Existing Prefix Information Option related security considerations Existing Prefix Information Option related security considerations
apply as described in [RFC4861] and [RFC4191]. A malicious node on apply as described in [RFC4861] and [RFC4191]. A malicious node on
the shared link could include such 'mobility property' flags in a the shared link could include such 'mobility property' flags in a
Prefix Information Option causing the host to learn wrong information Prefix Information Option causing the host to learn wrong information
regarding the prefix and thus make misguided selection of prefixes on regarding the prefix and thus make misguided selection of prefixes on
the link. Similarly a malicious middleman on the link could modify the link. Similarly a malicious middleman on the link could modify
'mobility property' flags in a Prefix Information Option causing 'mobility property' flags in a Prefix Information Option causing
skipping to change at page 6, line 6 skipping to change at page 7, line 6
Router Advertisements. Router Advertisements.
6. IANA Considerations 6. IANA Considerations
Section 3 defines a new flag bits (2 bit 'C' flag) to the IPv6 Section 3 defines a new flag bits (2 bit 'C' flag) to the IPv6
Neighbor Discovery protocol's Prefix Information Option [RFC4861]. Neighbor Discovery protocol's Prefix Information Option [RFC4861].
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-6man-rfc3484bis]
Thaler, D., Draves, R., Matsumoto, A., and T. Chown,
"Default Address Selection for Internet Protocol version 6
(IPv6)", draft-ietf-6man-rfc3484bis-01 (work in progress),
March 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3484] Draves, R., "Default Address Selection for Internet
Protocol version 6 (IPv6)", RFC 3484, February 2003.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007. September 2007.
7.2. Informative References 7.2. Informative References
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
Stevens, "Basic Socket Interface Extensions for IPv6", Stevens, "Basic Socket Interface Extensions for IPv6",
RFC 3493, February 2003. RFC 3493, February 2003.
skipping to change at page 7, line 19 skipping to change at page 8, line 22
Socket Interface [RFC3493][RFC5014] and the Protocol-Independent Socket Interface [RFC3493][RFC5014] and the Protocol-Independent
Nodename Translation [RFC5014]. These socket APIs and DNS resolver Nodename Translation [RFC5014]. These socket APIs and DNS resolver
APIs extension correspond to the Prefix Information option mobility APIs extension correspond to the Prefix Information option mobility
properties flag bit settings. properties flag bit settings.
A.1. Socket Interface A.1. Socket Interface
This specification extends the socket option IPV6_ADDR_PREFERENCES at This specification extends the socket option IPV6_ADDR_PREFERENCES at
the IPPROTO_IPV6 level. The following new flags are defined to the IPPROTO_IPV6 level. The following new flags are defined to
query, alter or set the default rule of source address selection query, alter or set the default rule of source address selection
rules [RFC3484]. They are also defined as a result of including the rules [I-D.ietf-6man-rfc3484bis]. They are also defined as a result
<netinet/in.h> header: of including the <netinet/in.h> header:
IPV6_PREFER_SRC_HNP /* Prefer Home Network Prefix derived IPv6 IPV6_PREFER_SRC_HNP /* Prefer Home Network Prefix derived IPv6
address as source */ address as source */
IPV6_PREFER_SRC_HNP_TMP /* Prefer temoporary Home Network Prefix IPV6_PREFER_SRC_HNP_TMP /* Prefer temoporary Home Network Prefix
derived IPv6 address as source */ derived IPv6 address as source */
A.2. Protocol-Independent Nodename Translation A.2. Protocol-Independent Nodename Translation
the Default Address Selection [RFC3484] document indicates possible the Default Address Selection [I-D.ietf-6man-rfc3484bis] document
implementation strategies for getaddrinfo(). The address selection indicates possible implementation strategies for getaddrinfo(). The
hint flags for the getaddrinfo() specificed in this document extend address selection hint flags for the getaddrinfo() specificed in this
the 'int ai_eflags' field in the struct addrinfo [RFC5014][RFC3493]. document extend the 'int ai_eflags' field in the struct addrinfo
[RFC5014][RFC3493].
The IPV6 source address preference values (IPV6_PREFER_SRC_HNP and The IPV6 source address preference values (IPV6_PREFER_SRC_HNP and
IPV6_PREFER_SRC_HNP_TMP) defined for the IPV6_ADDR_PREFERENCES socket IPV6_PREFER_SRC_HNP_TMP) defined for the IPV6_ADDR_PREFERENCES socket
option are also defined as address selection preference flags in option are also defined as address selection preference flags in
<netdb.h> header for the "ai_eflags" extended flag-set field of the <netdb.h> header for the "ai_eflags" extended flag-set field of the
addrinfo data structure. addrinfo data structure.
Similarly to [RFC5014], if contradictory flags, such as Similarly to [RFC5014], if contradictory flags, such as
IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_HNP*, are set in ai_eflags, IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_HNP*, are set in ai_eflags,
the getaddrinfo() fails and returns the value EAI_BADEXTFLAGS. This the getaddrinfo() fails and returns the value EAI_BADEXTFLAGS. This
 End of changes. 19 change blocks. 
47 lines changed or deleted 95 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/