<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-moses-dmm-dhcp-ondemand-mobility-04"
     ipr="trust200902">
  <front>
    <title abbrev="DHCPv6 On-Demand Mobility Extension">DHCPv6 Extension for On Demand Mobility exposure</title>

     <author fullname="Danny Moses" initials="D." surname="Moses">
      <organization abbrev="Intel">Intel</organization>

      <address>
        <postal>
          <street></street>
          <city>Petah Tikva</city>
          <region></region>
          <code></code>

          <country>Israel</country>
        </postal>

        <email>danny.moses@intel.com</email>
      </address>
    </author>
	
	<author fullname="Alper Yegin" initials="A." surname="Yegin">
      <address>
        <postal>
          <street></street>
          <city>Istanbul</city>
          <region></region>
          <code></code>

          <country>Turkey</country>
        </postal>

        <email>alper.yegin@yegin.org</email>
      </address>
    </author>

    <date />

    <workgroup>DMM Working Group</workgroup>

    <abstract>
      <t>Applications differ with respect to whether or not they need IP session continuity and/or IP 
	  address reachability. Networks providing the same type of service to any mobile host and 
	  any application running on the host yields inefficiencies. This document describes extensions 
	  to the DHCPv6 protocol to enable mobile hosts to indicate the required mobility service type 
	  associated with a requested IP address, and networks to indicate the type of mobility service 
	  associated with the allocated IP address in return. </t>
            
      
    </abstract>
  </front>

  
  
  <middle>
    <section anchor="introduction" title="Introduction">

        <t><xref target="I-D.ietf-dmm-ondemand-mobility"></xref> defines different types of mobility-associated 
		services provided by access networks to mobile hosts with regards to maintaining IPv6 
		address continuity after an event of the host moving to different locations with different 
		points of attachments within the IP network topology. It further specifies means for 
		applications to convey to the IP stack in the mobile host, their requirements regarding 
		these services. </t> 
		
		<t>This document defines extensions to the DHCPv6 protocol 
		(<xref target="RFC3315"></xref>) in the form of a new DHCP option that specifies the type
		of mobility services associated with an IPv6 address. The IP stack in a mobile host uses the
		DHCP client to communicate the type of mobility service it wishes to receive from the network.
		The DHCP server in the network uses this option to convey the type of service that is 
		guaranteed with the assigned IPv6 address in return. </t>
        
		<t>This new option also extends the ability of mobile routers to specify desired mobility service in a
		request for IPv6 proxies (as specified in <xref target="RFC3633"></xref>), and delegating routers to
		convey the type of mobility service that is committed with the allocated IPv6 proxies in return.</t>
		
		<t>In a distributed mobility management environment, there are multiple Mobility Anchors (as 
		specified in [TBD reference to the Distributed Mobility Management architecture RFC]). In some 
		use-cases, mobile hosts may wish to indicate to the network, preference of the serving
		Mobility Anchor. This document specifies a new DHCPv6 option that is used by DHCPv6 clients 
		to convey this preference.</t>
     </section>

    <section anchor="notation" title="Notational Conventions">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"></xref>.</t>

    </section>



    <section anchor="IPv6-Continuity-Service" title="IPv6 Continuity Service Option">

        <t>The IPv6 Continuity Service option is used to specify the type of continuity service associated 
		with a source IPv6 address or IPv6 prefix. The IPv6 Continuity Service option must be encapsulated in the 
		IAaddr-options field of the IA Address option when associated with an IPv6 address, and in the 
		IAprefix-options field of the IA_PD prefix option when associated with an IPv6 prefix. </t>
		
		<t>The format of the IPv6 Continuity Service option is:</t>
		
<figure>
<artwork><![CDATA[

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_IPv6_CONTINUITY_SERVICE|         option-length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| service-type  |
+-+-+-+-+-+-+-+-+

]]></artwork>
</figure>
		<t>
		<list style="hanging" hangIndent="15">
			<t hangText="option-code">OPTION_IPv6_CONTINUITY_SERVICE (TBD)</t>
			<t hangText="option-len">1</t>
			<t hangText="service-type">one of the following values:</t>
			<t>
			<list style="hanging" hangIndent="15">
				<t hangText="Non-Persistent - ">a non-persistent IP address or prefix (1)</t>
				<t hangText="Session-Lasting - ">a session-lasting IP address or prefix (2)</t>
				<t hangText="Fixed - ">a fixed IP address or prefix (3)</t>
				<t hangText="Anytype - ">Anyone of the above (0)</t>
			</list>
			</t>
		</list>
		</t>
		
		<t>The definition of these service types is available in <xref target="I-D.ietf-dmm-ondemand-mobility">
		</xref>.</t>
		
		<t>All other values (4-255) are reserved for future usage and should not be used. If the 
		OPTION_IPv6_CONTINUITY_SERVICE option is received and its service-type is equal to one of the reserved 
		values, the option should be ignored.</t>
		
		<t>This option can appear in one of two contexts: (1) As part of a request to assign a source IPv6 
		address of the specified mobility service type, and (2) As part of a request to assign an IPv6 prefix 
		of the specified mobility service type.</t>
		
		<section anchor="Source-IPv6-address-type-specification" title="Source IPv6 Address Type Specification">
		
			<t>In this context, the IPv6 Continuity Service option is encapsulated in the IAaddr-options field 
			of the IA Address option.</t>
			
			<t>When in a message sent from a client to a server, the value of the IPv6 Continuity Service
			option indicates the type of continuity service required for the IPv6 address requested by the client.</t>
		
			<t>When in a message sent from a server to a client, the value of the IPv6 Continuity Service option
			indicates the type of IP continuity service committed by the network for the associated 
			IPv6 address. The value 'AnyType' can only appear in the message sent from the client to the server 
			to indicate that the client has no specific preference. However, it cannot appear in a message sent 
			from the server.</t>
			
			<t>Once an IPv6 address type was requested and provided, any subsequent messages involving 
			this address (lease renewal - for example) must include the IPv6 Continuity Service option 
			with the same service type that was assigned by the server during the initial allocation.</t>
		
			<t>If a server received a request to assign an IPv6 address with a specified IPv6 Continuity 
			service, but cannot fulfill the request, it must reply with the NoAddrsAvail status (refer to 
			section 22.13 - Status Code Option in <xref target="RFC3315"></xref>.</t>
		
			<t>A server that does not support this option will discard it as well as the IA Address 
			option that had this option encapsulated in one of its IAaddr-options field.</t>
		
			<t>If a client does not receive the requested address, it must resend the request without 
			the desired IPv6 Continuity Service option since it is not supported by the server. In that 
			case, the host of the client cannot assume any IP continuity service behaviour for that 
			address. </t>
	
			<t>A server must not include the IPv6 Continuity Service option in the IAaddr-options field 
			of an IA Address option, if not specifically requested previously by the client to which it 
			is sending a message.</t>
		
			<t>If a client receives an IA Address option from a server with the IPv6 Continuity Service 
			option in the IAaddr-options field, without initially requesting a specific service using 
			this option, it must discard the received IPv6 address.</t>
		
			<t>If the mobile host has no preference regarding the type of continuity service it uses the
			'AnyType' value as the specified type of continuity service. The Server will allocate an IPv6 
			address with some continuity service and must specify the type in IPv6 Continuity Service option
			encapsulated in the IAaddr-options field of the IA Address option. The method for selecting the 
			type of continuity service is outside the scope of this specification. </t>

		</section>

		<section anchor="IPv6-Prefix-Type-Specification" title="IPv6 Prefix Type Specification">
			<t>In this context, the IPv6 Continuity Service option is encapsulated in the IAprefix-options 
			field of the IA_PD prefix option.</t>

			<t>When in a message sent from a client to a server, the value of the IPv6 Continuity Service
			option indicates the type of continuity service required for the IPv6 prefix requested by the client.</t>
		
			<t>When in a message sent from a server to a client, the value of the IPv6 Continuity Service option
			indicates the type of continuity service committed by the network for the associated 
			IPv6 prefix. The value 'AnyType' can only appear in the message sent from the client to the server 
			to indicate that the client has no specific preference. However, it cannot appear in a message sent 
			from the server.</t>
			
			<t>Once an IPv6 prefix type was requested and provided, any subsequent messages involving 
			this prefix (lease renewal - for example) must include the IPv6 Continuity Service option 
			with the same service type that was assigned by the server during the initial allocation.</t>

			<t>If a server received a request to assign an IPv6 prefix with a specified IPv6 Continuity 
			service, but cannot fulfill the request, it must reply with the NoAddrsAvail status.</t>
		
			<t>A server that does not support this option will discard it as well as the IA_PD Prefix 
			option that had this option encapsulated in one of its IAprefix-options field.</t>
		
			<t>If a client does not receive the requested prefix, it must resend the request without 
			the desired IPv6 Continuity Service option since it is not supported by the server. In that 
			case, the mobile router of the client cannot assume any IP continuity service behaviour for that 
			prefix. </t>
	
			<t>A server must not include the IPv6 Continuity Service option in the IAprefix-options field 
			of an IA_PD Prefix option, if not specifically requested previously by the client to which it 
			is sending a message.</t>
		
			<t>If a client receives an IA_PD Prefix option from a server with the IPv6 Continuity Service 
			option in the IAprefix-options field, without initially requesting a specific service using 
			this option, it must discard the received IPv6 prefix.</t>
		
			<t>If the mobile router has no preference regarding the type of continuity service it uses the
			'AnyType' value as the specified type of continuity service. The Server will allocate an IPv6 
			prefix with some continuity service and must specify the type in IPv6 Continuity Service option
			encapsulated in the IAprefix-options field of the IA_PD Prefix option. The method for selecting the 
			type of continuity service is outside the scope of this specification. </t> 
			
		</section>
	</section>
      
    <section anchor="Anchor-Preference" title="Anchor Preference Option">

		<t>In a distributed mobility management environment that deploys multiple Mobility Anchors, each Mobility 
		Anchor may have a set of IPv6 prefixes that is being used when assigning Session-lasting or Fixed source 
		IPv6 addresses to hosts.</t>
		
		<t>The selection of the Mobility Anchor that will serve a mobile host is performed by the network at various
		events like, the event of initial attachment of a mobile host to a network.</t>

        <t>The Anchor Preference option enables a host to express its desire to receive a source IPv6 address 
		with a specific IPv6 prefix. This is useful when the mobile host wishes to indicate to the network which 
		Mobility Anchor should be used for anchoring its traffic and ensuring service continuity in the event of
		handoff between LANs with different IPv6 prefixes.</t>
		
		<t>The network MAY respect this request but is not required to do so.</t>
		
		<t>The format of the Anchor Preference option is:</t>
		
<figure>
<artwork><![CDATA[

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_ANCHOR_PREFERENCE      |         option-length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      preferred-lifetime                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| prefix6len    |          ipv6-prefix                          |
+-+-+-+-+-+-+-+-+       (variable length)                       |
.                                                               .
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  IAanchor_preference-options                  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
		<t>
		<list style="hanging" hangIndent="15">
			<t hangText="option-code">OPTION_ANCHOR_PREFERENCE (TBD)</t>
			<t hangText="option-len">5 + length of ipv6-prefix field + length of anchor_preference-options field</t>
			<t hangText="preferred-lifetime">The preferred lifetime of the IPv6 address whose prefix is 
			requested, expressed in units of seconds</t>
			<t hangText="prefix-length">The length in bits of the ipv6-prefix. Typically allowed values are 0 to 128.</t>
			<t hangText="IPv6 prefix">This is a variable length field that specifies the desired ipv6 prefix. The length
			is (prefix6len + 7) / 8. This field is padded with 0 bits up to the nearest octet boundary when prefix6len 
			is not divisible by 8.</t>
			<t hangText="IAanchor_preference-option">Options associated with this request</t>
		</list>
		</t>
		
		<t>This option is used by the client in a request for a new IPv6 source address. The server replies with 
		an IPv6 address that may or may not have the desired prefix.</t>
		
		<t>An IPv6 prefix is requested only when the mobile host wishes to be anchored by a specific mobility
		anchor. The client must also indicate the type of mobility service it requires using the IPv6 Continuity 
		Service option encapsulated in the IAanchor_preference-options field of the IA Address option.</t>
		
		<t>When requesting an IPv6 prefix, only the 'Session-Lasting' and 'Fixed' types are legal.</t>
		
		<t>The server must assign the IPv6 address of the requested type to the client, even if it does not
		fulfill the request for the specified prefix.</t>
	
		<t>If a server received a request to use a specific IPv6 prefix and an IPv6 address type, but cannot 
		assign an IPv6 address with that specified IPv6 Continuity it must reply with the NoAddrsAvail status.</t>
	
		<t>A server that does not support this option will discard it.</t>
	
		<t>If a client does not receive any address, it must assume that the the option is not supported
		by the server and use the IA Address option in subsequent requests.</t>
	</section>
   
    

    <section anchor="security" title="Security Considerations">
    <t> There are no specific security considerations for this option.</t>
   
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>TBD</t>
    </section>

    
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <!--
        <?rfc include='reference.RFC.6724'?>
        <?rfc include='reference.RFC.5014'?>
      -->  
      
      
    </references>

    <references title="Informative References">
        
     
	  <?rfc include='reference.RFC.3315'?>
	  <?rfc include='reference.RFC.3633'?>
	  <?rfc include='reference.I-D.ietf-dmm-ondemand-mobility'?>
      

      <!---->
    </references>
  </back>
</rfc>

