<?xml version="1.0" encoding="US-ASCII"?>
<!-- used xml2rfc v2 -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 SYSTEM "reference.RFC.2119.xml">
<!ENTITY RFC3315 SYSTEM "reference.RFC.3315.xml">
<!ENTITY RFC3633 SYSTEM "reference.RFC.3633.xml">
<!ENTITY RFC4861 SYSTEM "reference.RFC.4861.xml">


]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc rfcedstyle="yes" ?>

<?rfc toc="yes"?>

<?rfc tocdepth="2"?>

<?rfc symrefs="yes"?>

<?rfc sortrefs="yes" ?>

<?rfc compact="yes" ?>

<?rfc subcompact="no" ?>

<rfc category="std" number="7083" ipr='trust200902' updates="3315" submissionType="IETF" consensus="yes">

  <!-- ***** FRONT MATTER ***** -->

  <front>


    <title abbrev="DHCPv6 SOL_MAX_RT Option">Modification to Default Values of
    SOL_MAX_RT and INF_MAX_RT</title> 



    <author fullname="Ralph Droms" initials="R." surname="Droms">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>1414 Massachusetts Avenue</street>

          <city>Boxborough</city>

          <region>MA</region>

          <code>01719</code>

          <country>USA</country>
        </postal>

        <phone>+1 978 936 1674</phone>

        <email>rdroms@cisco.com</email>

      </address>
    </author>

    <date month="November" year="2013" />


    <area>Internet</area>

    <workgroup>dhc</workgroup>


    <keyword>SOL_MAX_RT, INF_MAX_RT</keyword>

    <abstract>
      <t>This document updates RFC 3315 by redefining the default
      values for SOL_MAX_RT and INF_MAX_RT and defining options
      through which a DHCPv6 server can override the client's default
      value for SOL_MAX_RT and INF_MAX_RT with new values.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

      <t>Section 5.5 of the <xref target="RFC3315">DHCPv6
      specification</xref> defines the default values of SOL_MAX_RT
      and INF_MAX_RT to be 120 seconds.  In some circumstances, these
      defaults will lead to an unacceptably high volume of aggregated
      traffic at a DHCPv6 server.</t>

      <t>The change to SOL_MAX_RT is in response to DHCPv6 message
      rates observed on a DHCPv6 server in a deployment in which many
      DHCPv6 clients are sending Solicit messages, but the DHCPv6
      server has been configured not to respond to those Solicit
      messages.  While no explicit observations of traffic due to
      INF_MAX_RT have been conducted, this document updates INF_MAX_RT
      for consistency with SOL_MAX_RT.</t>
    </section>

    <section title="Requirements Language">
      <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">RFC 2119</xref>.</t>
    </section>

    <section title="Updates to SOL_MAX_RT and INF_MAX_RT in RFC 3315"
	     anchor="rfc3315_update">
      <t>This document changes Section 5.5 of RFC 3315 as follows:

      <figure>
        <artwork><![CDATA[
OLD:
   SOL_MAX_RT      120 secs  Max Solicit timeout value

NEW:
   SOL_MAX_RT     3600 secs  Max Solicit timeout value

OLD:
   INF_MAX_RT      120 secs  Max Information-request timeout value

NEW:
   INF_MAX_RT     3600 secs  Max Information-request timeout value
         ]]></artwork>
        </figure>
      </t>

      <t>With this change, a DHCPv6 client that does not receive a
      satisfactory response will send Solicit or Information-request
      messages with the same initial frequency and exponential backoff
      as specified in Sections 17.1.2 and 18.1.5 of RFC 3315.
      However, the long-term behavior of these DHCPv6 clients will be
      to send a Solicit or Information-request message every 3600
      seconds rather than every 120 seconds, significantly reducing
      the aggregated traffic at the DHCPv6 server.</t>

    </section>

    <section title="SOL_MAX_RT option">
      <t>A DHCPv6 server sends the SOL_MAX_RT option to a client to
      override the default value of SOL_MAX_RT.  The value of
      SOL_MAX_RT in the option replaces the default value defined in
      <xref target='rfc3315_update' />.  One use for the
      SOL_MAX_RT option is to set a longer value for SOL_MAX_RT, which
      reduces the Solicit traffic from a client that has not received
      a response to its Solicit messages.</t>

      <?rfc needLines="25" ?>
      <t>The format of the SOL_MAX_RT option is:

      <figure anchor="solmaxrt_option_format"
	      title="SOL_MAX_RT option format">
	<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-code          |         option-len            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       SOL_MAX_RT value                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      option-code          OPTION_SOL_MAX_RT (82).

      option-len           4.

      SOL_MAX_RT value     Overriding value for SOL_MAX_RT
                           in seconds; MUST be in range:
                             60 <= "value" <= 86400 (1 day)

]]>
	</artwork>
      </figure>
      </t>

    </section>
  
    <section title="INF_MAX_RT Option">
      <t>A DHCPv6 server sends the INF_MAX_RT option to a client to
      override the default value of INF_MAX_RT.  The value of
      INF_MAX_RT in the option replaces the default value defined in
      <xref target='rfc3315_update' />.  One use for the INF_MAX_RT
      option is to set a longer value for INF_MAX_RT, which reduces
      the Information-request traffic from a client that has not received a
      response to its Information-request messages.</t>

      <?rfc needLines="25" ?>
      <t>The format of the INF_MAX_RT option is:

      <figure anchor="infmaxrt_option_format"
	      title="INF_MAX_RT option format">
	<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-code          |         option-len            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       INF_MAX_RT value                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      option-code          OPTION_INF_MAX_RT (83).

      option-len           4.

      INF_MAX_RT value     Overriding value for INF_MAX_RT
                           in seconds; MUST be in range:
                             60 <= "value" <= 86400 (1 day)

]]>
	</artwork>
      </figure>
      </t>

    </section>

    <section title="Updates for SOL_MAX_RT and INF_MAX_RT Options to RFC 3315">
      <t>Update to RFC 3315, Section 17.1.3:

      <figure>
	<artwork>
	
<![CDATA[

OLD:

The client MUST ignore any Advertise message that includes a Status
Code option containing the value NoAddrsAvail, with the exception
that the client MAY display the associated status message to the
user.

NEW:

The client MUST ignore any Advertise message that includes a Status
Code option containing the value NoAddrsAvail, with the exception 
that the client MUST process an included SOL_MAX_RT option, MUST 
process an included INF_MAX_RT option, and MAY display the 
associated status message to the user.

]]>
	</artwork>
      </figure>
      </t>
      
      <t>Update to RFC 3315, Section 17.2.2:

      <figure>
	<artwork>
<![CDATA[

OLD:

If the server will not assign any addresses to any IAs in a
subsequent Request from the client, the server MUST send an
Advertise message to the client that includes only a Status Code
option with code NoAddrsAvail and a status message for the user, a
Server Identifier option with the server's DUID, and a Client
Identifier option with the client's DUID.

NEW:

If the server will not assign any addresses to any IAs in a 
subsequent Request from the client, the server MUST send an Advertise 
message to the client that includes only a Status Code option with 
code NoAddrsAvail and a status message for the user, a Server 
Identifier option with the server's DUID, a Client Identifier option 
with the client's DUID, and (optionally) SOL_MAX_RT and/or INF_MAX_RT
options.

]]>
	</artwork>
      </figure>
      </t>

      <t>Update to RFC 3315, Section 14 (Add text, clarifying client behavior
      while waiting for a response from a server):

      <figure>
	<artwork>
<![CDATA[

NEW:

A client is not expected to listen for a response during the entire
period between transmission of Solicit or Information-request
messages. 

]]>
	</artwork>
      </figure>
      </t>

    </section>


    <section anchor="template-client" title="DHCPv6 Client Behavior">

      <t>A DHCPv6 client MUST include the SOL_MAX_RT option code in
      any <xref target='RFC3315'>Option Request option</xref> it sends
      as required by RFC 3315.</t>

      <t>A DHCPv6 client MUST include the INF_MAX_RT option code in
      any Option Request option it sends
      as required by RFC 3315.</t>

      <t>A DHCPv6 client MUST silently ignore any SOL_MAX_RT or
      INF_MAX_RT option values that are less than 60 or more than
      86400.</t>

      <t>If a DHCPv6 client receives a message containing a SOL_MAX_RT
      option that has a valid value for SOL_MAX_RT, the client MUST
      set its internal SOL_MAX_RT parameter to the value contained in
      the SOL_MAX_RT option.  This value of SOL_MAX_RT is then used by
      the retransmission mechanism defined in Sections 14 and 17.1.2
      of RFC 3315.</t>


      <t>If a DHCPv6 client receives a message containing an INF_MAX_RT
      option that has a valid value for INF_MAX_RT, the client MUST
      set its internal INF_MAX_RT parameter to the value contained in
      the INF_MAX_RT option.  This value of INF_MAX_RT is then used by
      the retransmission mechanism defined in Sections 14 and 18.1.5
      of RFC 3315.</t>

      <t>Updated SOL_MAX_RT and INF_MAX_RT values apply only to the network
interface on which the client received SOL_MAX_RT and/or INF_MAX_RT options.</t>
    </section>

    <section anchor="template-server" title="DHCPv6 Server Behavior">
      <t>Sections 17.2.2 and 18.2 of RFC 3315 govern server operation
      in regard to option assignment. As a convenience to the reader,
      we mention here that the server will send options SOL_MAX_RT and
      INF_MAX_RT only if configured with specific values for them, and
      the client requested those options using the Option Request
      option.</t>

      <t>The DHCPv6 server MAY include the SOL_MAX_RT option in any
      response it sends to a client that has included the SOL_MAX_RT
      option code in an Option Request option.  The SOL_MAX_RT option
      is sent in the main body of the message to client, not as an
      encapsulated option in, e.g., an <xref target="RFC3315">IA_NA,
      IA_TA</xref>, or <xref target="RFC3633">IA_PD</xref> option.</t>

      <t>The DHCPv6 server MAY include the INF_MAX_RT option in any
      response it sends to a client that has included the INF_MAX_RT
      option code in an Option Request option.  The INF_MAX_RT option
      is sent in the main body of the message to client, not as a
      encapsulated option in, e.g., an IA_NA, IA_TA, or IA_PD
      option.</t>

      </section>

      <section anchor="template-relay"
               title="DHCPv6 Relay Agent Behavior">
        <t>There are no additional requirements for relays.</t>
      </section>

    <section title="Security Considerations">
      <t>This document introduces one security consideration beyond
      those described in RFC 3315.  A malicious DHCPv6 server might cause a
client to set its SOL_MAX_RT and INF_MAX_RT parameters to an
unreasonably high value with the SOL_MAX_RT and INF_MAX_RT options,
which may cause an undue delay in a client completing its DHCPv6
protocol transaction in the case no other valid response is received.  Assuming the client also receives a
      response from a valid DHCPv6 server, large values for SOL_MAX_RT
      and INF_MAX_RT will not have any effect.</t>
    </section>

    <section title="Acknowledgments">
      <t>Tomek Mrugalski edited the text for compliance with <xref
      target="DHC-OPTION">"Guidelines for Creating New DHCPv6 Options"</xref>
      and added important details to the Security Considerations
      section.</t>
    </section>

    <section title="IANA Considerations">
      <t>IANA has assigned one option code each for
      OPTION_SOL_MAX_RT (82) and OPTION_INF_MAX_RT (83) from the "DHCP Option
      Codes" table of the "Dynamic Host Configuration Protocol for IPv6
      (DHCPv6)" registry.</t>
    </section>


  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    

    <references title="Normative References">
      &RFC2119;
      &RFC3315;
    </references>
    <references title="Informative References">
      &RFC3633;

<!-- I-D.ietf-dhc-option-guidelines, Active -->
<reference anchor='DHC-OPTION'>
<front>
<title>Guidelines for Creating New DHCPv6 Options</title>

<author initials='D' surname='Hankins' fullname='David Hankins'>
    <organization />
</author>

<author initials='T' surname='Mrugalski' fullname='Tomek Mrugalski'>
    <organization />
</author>

<author initials='M' surname='Siodelski' fullname='Marcin Siodelski'>
    <organization />
</author>

<author initials='S' surname='Jiang' fullname='Sheng Jiang'>
    <organization />
</author>

<author initials='S' surname='Krishnan' fullname='Suresh Krishnan'>
    <organization />
</author>

<date month='September' day='19' year='2013' />

<abstract><t>This document provides guidance to prospective DHCPv6 Option developers to help them creating option formats that are easily adoptable by existing DHCPv6 software.  This document updates RFC3315.</t></abstract>

</front>

<seriesInfo name='Work in' value='Progress' />

</reference>

    </references>

  </back>
</rfc>
