<?xml version="1.0" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc ipr="trust200902" category="std" docName="draft-doi-roll-mpl-parameter-configuration-02">
  <?rfc toc="yes"?>         <!-- generate a table of contents -->
  <?rfc symrefs="yes"?>     <!-- use anchors instead of numbers for references -->
  <?rfc sortrefs="yes" ?>   <!-- alphabetize the references -->
  <?rfc compact="yes" ?>    <!-- conserve vertical whitespace -->
  <?rfc subcompact="no" ?>  <!-- but keep a blank line between list items -->
  <front>
    <title abbrev="MPL Conf. for DHCPv6">MPL Parameter Configuration Option for DHCPv6</title>

    <author initials="Y." surname="Doi"
	    fullname="Yusuke Doi">
      <organization>TOSHIBA Corporation</organization>

      <address>
	<postal>
	  <street>Komukai Toshiba Cho 1</street>
	  <street>Saiwai-Ku</street>
	  <city>Kawasaki</city> <region>Kanagawa</region>
	  <code>2128582</code>
	  <country>JAPAN</country>
	</postal>

	<phone>+81-45-342-7230</phone>
	<email>yusuke.doi@toshiba.co.jp</email>
	<uri></uri>
      </address>
    </author>

    <author initials="M." surname="Gillmore"
	    fullname="Matthew Gillmore">
      <organization>Itron, Inc</organization>

      <address>
	<postal>
	  <street>2111 N Molter Rd.</street>
	  <city>Liberty Lake</city> <region>WA</region>
	  <code>99019</code>
	  <country>USA</country>
	</postal>

	<email>matthew.gillmore@itron.com</email>
      </address>
    </author>


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

    <area>rtg</area>
    <workgroup>roll</workgroup>
    <keyword>MPL, DHCPv6</keyword>
    <abstract>
      <t>
This draft is to define a way to configure MPL parameter via DHCPv6 option.
      </t>
    </abstract>
  </front>

  <middle>
<!-- This document was prepared using Pandoc2rfc -->
<!-- https://github.com/miekg/pandoc2rfc -->

  
<section title="Introduction" anchor="introduction">
  
  <t>
    Multicast Protocol for Low power and Lossy Networks
    <xref target="I-D.ietf-roll-trickle-mcast">(MPL)</xref> defines a
    protocol to make a multicast network among low power and lossy
    network i.e. wireless mesh networks. MPL has various parameters to
    control its behavior and tradeoff between end-to-end delay and
    network utilization. In some environments, the parameters shall be
    configured carefully to meet each environment and requirement.
    According to the MPL draft section 5.4, the parameter should be same
    for all nodes within an MPL domain. And the MPL draft does not
    define a method to configure it.
  </t>
  <t>
    Some managed wireless mesh networks may have a DHCP server to
    configure network parameters with DHCP relay in each node. MPL
    parameters shall be considered as a part of network parameters
    (parameter shall match within an MPL domain). This document is to
    define the way to distribute parameters for MPL forwarders via
    <xref target="RFC3315">DHCPv6</xref> options.
  </t>
</section>
<section title="MPL Parameter Configuration Option" anchor="mpl-parameter-configuration-option">
  
  <t>
    Per MPL domain, there are following 10 parameters. An MPL domain is
    defined by an MPL domain address.
  </t>
  <t><list style="symbols">
    <t>
      
        PROACTIVE_FORWARDING
      
    </t>
    <t>
      
        SEED_SET_ENTRY_LIFETIME
      
    </t>
    <t>
      
        DATA_MESSAGE_IMIN
      
    </t>
    <t>
      
        DATA_MESSAGE_IMAX
      
    </t>
    <t>
      
        DATA_MESSAGE_K
      
    </t>
    <t>
      
        DATA_MESSAGE_TIMER_EXPIRATIONS
      
    </t>
    <t>
      
        CONTROL_MESSAGE_IMIN
      
    </t>
    <t>
      
        CONTROL_MESSAGE_IMAX
      
    </t>
    <t>
      
        CONTROL_MESSAGE_K
      
    </t>
    <t>
      
        CONTROL_MESSAGE_TIMER_EXPIRATIONS
      
    </t>
  </list></t>
  <t>
    One network may have multiple MPL domains with different
    configuration. To configure plural of MPL domains via DHCP, there
    may be more than one MPL Parameter Configuration Option given to
    DHCP clients from a DHCP server.
  </t>
  <section title="Unsigned Short Floating Point" anchor="unsigned-short-floating-point">
    
    <t>
      MPL has many timer parameters. Expected range of the timers
      depends on the network topology or MAC/PHY nature. To accomodate
      wide range of timer values efficiently, the MPL Parameter
      Configuration Option uses base-10 unsigned short floating point
      number with 3-bit exponent and 13-bit significand defined as
      follows (exp. stands for exponent).
    </t>
    <figure><artwork>
 0                   1           
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| exp.|      significand        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork></figure>
    <t>
      The represented value is (significand) * 10^(exp.). Minimum
      exponent is 0 (binary 000) and maximum is 6 (binary 110). exp=7
      (binary 111) is reserved for future use. Minimum significand is 0
      (all 0) and maximum is 8191 (all 1).
    </t>
    <t>
      Unlike IEEE754 half precision floating point (binary16), there is
      no sign bit (no negative value for a timer), exponent is not
      biased (no fractional value for a timer), no implicit leading 1 in
      siginificand, and base is 10. Therefore, there could be more than
      one representations for a value.
    </t>
    <t>
      Followings are examples of common timer values represented by unit
      of milliseconds.
    </t>
    <t><list style="hanging">
      <t hangText="One second (1,000 ms.):">
          
            exp = 3, significand = 1. 0x6001.
          
        </t>
      <t hangText="One minute (60,000 ms.):">
          
            exp = 4, significand = 6, 0x8006.
          
        </t>
      <t hangText="One hour (3,600,000 ms.):">
          
            exp = 5, significand = 36, 0xa024.
          
        </t>
      <t hangText="One day (86,400,000 ms.):">
          
            exp = 5, significand = 864, 0xa360
          
        </t>
    </list></t>
    <t>
      Maximum timer length represented by unsigned short floating point
      with millisecond precision is 8191*10^6 milliseconds (13 weeks 3
      days 19 hours 16 minutes 40 seconds).
    </t>
  </section>
  <section title="MPL Parameter Configuration Option Format" anchor="mpl-parameter-configuration-option-format">
    
    <t>
      To distribute a configuration of an MPL domain or a default value
      for all MPL domains (wildcard) under the network managed by the
      DHCP server, this document defines a DHCPv6 option format as
      follows. Short floating point format is used to describe wide
      range of timer values.
    </t>
    <figure><artwork>
 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_MPL_PARAMETERS      |          option_len           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|P|C|Z|   C_K   | Z2  |  DM_K   |         SE_LIFETIME           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         DM_IMIN               |          DM_IMAX              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         DM_T_EXP              |          C_IMIN               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         C_IMAX                |          C_T_EXP              |     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(if C = 1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          MPL Domain Address  (128bits)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          (cont'ed)                                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          (cont'ed)                                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          (cont'ed)                                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork></figure>
    <t><list style="hanging">
      <t hangText="OPTION_MPL_PARAMETERS:">
          
            not yet assigned.
          
        </t>
      <t hangText="option_len:">
          
            Length of the option
          
        </t>
      <t hangText="P (1 bit):">
          
            A flag to indicate PROACTIVE_FORWARDING
          
        </t>
      <t hangText="C (1 bit):">
          
            MPL configuration type.
          
        </t>
      <t hangText="Z (1 bit)">
          
            Reserved. Should be 0.
          
        </t>
      <t hangText="C_K (5 bits):">
          
            Value of CONTROL_MESSAGE_K.
          
        </t>
      <t hangText="Z2 (3 bit)">
          
            Reserved. Should be all 0.
          
        </t>
      <t hangText="DM_K (5 bits):">
          
            Value of DATA_MESSAGE_K.
          
        </t>
      <t hangText="SE_LIFETIME:">
          
            SEED_SET_ENTRY_LIFETIME. The value is milliseconds in
            unsigned short floating point.
          
        </t>
      <t hangText="DM_IMIN:">
          
            Value of DATA_MESSAGE_IMIN. The value is milliseconds in
            unsigned short floating point.
          
        </t>
      <t hangText="DM_IMAX:">
          
            Value of DATA_MESSAGE_IMAX. The value is milliseconds in
            unsigned short floating point.
          
        </t>
      <t hangText="DM_T_EXP:">
          
            Value of DATA_MESSAGE_TIMER_EXPIRATIONS. The value is
            milliseconds in unsigned short floating point.
          
        </t>
      <t hangText="C_IMIN:">
          
            Value of CONTROL_MESSAGE_IMIN. The value is milliseconds in
            unsigned short floating point.
          
        </t>
      <t hangText="C_IMAX:">
          
            Value of CONTROL_MESSAGE_IMAX. The value is milliseconds in
            unsigned short floating point.
          
        </t>
      <t hangText="C_T_EXP:">
          
            Value of CONTROL_MESSAGE_TIMER_EXPIRATIONS. The value is
            milliseconds in unsigned short floating point.
          
        </t>
    </list></t>
    <t>
      'C' defines configuration target type.
    </t>
    <t><list style="symbols">
      <t>
        
          '0' : Wildcard configuration. Only zero or one wildcard
          configuration SHALL exist in a configuration set. Wildcard
          configuration MUST NOT have a MPL domain address.
        
      </t>
      <t>
        
          '1' : Specific configuration for an MPL domain. The
          configuration SHALL have (uncompressed) IPv6 multicast address
          as MPL Domain Address.
        
      </t>
    </list></t>
  </section>
</section>
<section title="Operation of MPL Forwarders" anchor="operation-of-mpl-forwarders">
  
  <t>
    The node SHOULD join the MPL domain given and act as an MPL
    Forwarder. Nodes SHOULD configure MPL forwarders when it joins to
    the MPL domain.
  </t>
  <t>
    The priority of MPL Parameter configuration applied for an MPL
    Domain is as follows (high to low).
  </t>
  <t><list style="symbols">
    <t>
      
        Specific MPL Parameter Configuration to the MPL Domain (C=1)
      
    </t>
    <t>
      
        Wildcard MPL Parameter Configuration (C=0)
      
    </t>
    <t>
      
        Default configuration given in the MPL specification.
      
    </t>
  </list></t>
</section>
<section title="IANA Considerations" anchor="iana-considerations">
  
  <t>
    A DHCPv6 option code for MPL Parameter Configuration Option needs to
    be assigned from IANA.
  </t>
</section>
<section title="Security Considerations" anchor="security-considerations">
  
  <t>
    Forged option may cause too many MAC broadcasting. Reasonable bound
    of parameters (not too high K, not too low IMIN) may be defined by
    implementations or derived from MAC/PHY specifications. DHCP server
    or the network itself shall be trusted by some means including
    network access control or DHCP authentications.
  </t>
</section>

  </middle>

  <back>
    <references title="Normative References">
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC3315'>

<front>
<title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
<author initials='R.' surname='Droms' fullname='R. Droms'>
<organization /></author>
<author initials='J.' surname='Bound' fullname='J. Bound'>
<organization /></author>
<author initials='B.' surname='Volz' fullname='B. Volz'>
<organization /></author>
<author initials='T.' surname='Lemon' fullname='T. Lemon'>
<organization /></author>
<author initials='C.' surname='Perkins' fullname='C. Perkins'>
<organization /></author>
<author initials='M.' surname='Carney' fullname='M. Carney'>
<organization /></author>
<date year='2003' month='July' /></front>

<seriesInfo name='RFC' value='3315' />
<format type='TXT' octets='231402' target='http://www.rfc-editor.org/rfc/rfc3315.txt' />
</reference>
<!--
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC6282'>

<front>
<title>Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks</title>
<author initials='J.' surname='Hui' fullname='J. Hui'>
<organization /></author>
<author initials='P.' surname='Thubert' fullname='P. Thubert'>
<organization /></author>
<date year='2011' month='September' />
<abstract>
<t>This document updates RFC 4944, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks".  This document specifies an IPv6 header compression format for IPv6 packet delivery in Low Power Wireless Personal Area Networks (6LoWPANs).  The compression format relies on shared context to allow compression of arbitrary prefixes.  How the information is maintained in that shared context is out of scope.  This document specifies compression of multicast addresses and a framework for compressing next headers.  UDP header compression is specified within this framework. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6282' />
<format type='TXT' octets='52588' target='http://www.rfc-editor.org/rfc/rfc6282.txt' />
</reference>
-->
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='I-D.ietf-roll-trickle-mcast'>
<front>
<title>Multicast Forwarding Using Trickle</title>

<author initials='J' surname='Hui' fullname='Jonathan Hui'>
    <organization />
</author>

<author initials='R' surname='Kelsey' fullname='Richard Kelsey'>
    <organization />
</author>

<date month='Feburary' day='25' year='2013' />

<abstract><t> This document specifies the Multicast Protocol for Low power and Lossy Networks (MPL) that provides IPv6 multicast forwarding in constrained networks.  MPL avoids the need to construct or maintain any multicast forwarding topology, disseminating messages to all MPL Forwarders in an MPL Domain.  MPL uses the Trickle algorithm to manage message transmissions for both control and data-plane messages.  Different Trickle parameter configurations allow MPL to trade between dissemination latency and transmission efficiency.  </t></abstract>
</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-roll-trickle-mcast-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-roll-trickle-mcast-04.txt' />
</reference>
    </references>
<!--
    <references title="Non-Normative References">
      <rfc include="refs/reference.">
    </references>
-->
<!-- This document was prepared using Pandoc2rfc -->
<!-- https://github.com/miekg/pandoc2rfc -->

  
<section title="Acknowledgements" anchor="acknowledgements">
  
  <t>
    The authors thank Richard Kelsey and Yoshi Ohba for technical
    advices to improve this draft.
  </t>
</section>

  </back>
</rfc>
