Internet DRAFT - draft-zhu-roll-addr-autoconf

draft-zhu-roll-addr-autoconf











    ROLL                                                      Wan-Ting Zhu 
    Internet Draft                                              De-Yun Gao 
    Expires: November 11, 2013                               Hong-Ke Zhang 
                                                            Wei-Cheng Zhao 
                                               Beijing Jiaotong University 
                                                              May 10, 2013 
                                       
                                                                                    
                         Address Autoconfiguration for RPL 
                        draft-zhu-roll-addr-autoconf-00.txt 


    Abstract 

       This document presents a straightforward address 
       autoconfiguration mechanism for RPL over low power and lossy 
       networks (LLN). A solution is proposed to add the capability 
       of reusable address allocation. In this solution, nodes are 
       assigned with unique IPv6 addresses according to their positions 
       in the network. The amount of routing entries kept at each node 
       is reduced. Also, this document introduces a dynamic adjustment 
       strategy for adapting to uneven distribution of node density.  

    Status of this Memo 

       This Internet-Draft is submitted to IETF in full conformance 
       with the provisions of BCP 78 and BCP 79. 

       Internet-Drafts are working documents of the Internet 
       Engineering Task Force (IETF), its areas, and its working 
       groups.  Note that other groups may also distribute working 
       documents as Internet-Drafts. 

       Internet-Drafts are draft documents valid for a maximum of six months 
       and may be updated, replaced, or obsoleted by other documents at any 
       time.  It is inappropriate to use Internet-Drafts as reference 
       material or to cite them other than as "work in progress". 

       The list of current Internet-Drafts can be accessed at 
       http://www.ietf.org/ietf/1id-abstracts.txt 

       The list of Internet-Draft Shadow Directories can be accessed at 
       http://www.ietf.org/shadow.html 

       This Internet-Draft will expire on November 11, 2013.      

        

        
     
     
     
    Zhu et al.            Expires November 11, 2013               [Page 1] 
     
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

     Copyright Notice 

       Copyright (c) 2013 IETF Trust and the persons identified as the 
       document authors.  All rights reserved.  

       This document is subject to BCP 78 and the IETF Trust's Legal 
       Provisions Relating to IETF Documents 
       (http://trustee.ietf.org/license-info) in effect on the date of 
       publication of this document.  Please review these documents 
       carefully, as they describe your rights and restrictions with respect 
       to this document.  Code Components extracted from this document must 
       include Simplified BSD License text as described in Section 4.e of 
       the Trust Legal Provisions and are provided without warranty as 
       described in the Simplified BSD License.  

    Table of Contents 

       1. Introduction ................................................ 3 
       2. Terminology ................................................. 4 
       3. Overview .................................................... 5 
       4. Message Formats ............................................. 6 
          4.1. Address Solicitation ................................... 6 
          4.2. Address Information and Address Lease Response ......... 7 
          4.3. Address Advertisement and Address Acknowledgement ...... 8 
          4.4. REJECTION and APPROVE ................................. 10 
          4.5. Address Lease Request and Address Lease Parent Request 
                                                                    .. 10 
          4.6. Address Lease Notification ............................ 12 
       5. Address Autoconfiguration .................................. 13 
          5.1. Address Assignment .................................... 13 
          5.2. Address Lease ......................................... 15 
          5.3. Address Reusing........................................ 16 
          5.4. Partitioning and Merging .............................. 16 
       6. Routes ..................................................... 18 
          6.1. Upward Routes ......................................... 18 
          6.2. Downward Routes........................................ 18 
       7. Security Considerations .................................... 18 
       8. IANA Considerations ........................................ 18 
       9. References ................................................. 19 
          9.1. Normative References .................................. 19 
          9.2. Informative References ................................ 20 
       10. Acknowledgments ........................................... 21 
       Authors' Addresses ............................................ 21    

     
     
    Zhu et al.            Expires November 11, 2013               [Page 2] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

    1. Introduction 

       The IPv6 Routing Protocol for Low power and lossy networks (RPL) 
       [RFC6550] was designed with the objective to meet the application-
       specific routing requirements. There may be multiple instances of RPL 
       running concurrently on a network. And the traffic patterns are not 
       simply multipoint-to-point, but in many cases they are point-to-
       multipoint or point-to-point. Therefore, a mechanism for assigning 
       addresses to RPL nodes is required. This document provides a way to 
       autoconfigure nodes with one or more IPv6 addresses by considering 
       the characteristic properties of RPL. 

       The Destination Oriented Directed Acyclic Graph (DODAG) is the core 
       of RPL. The ICMPv6 messages called DODAG Information Objects (DIOs) 
       are broadcasted periodically by each node to construct and maintain 
       the DODAG, containing information about the rank, the objective 
       function, and so on. This Rank value plays a key role in RPL, which 
       represents the location of a node within a DODAG, and is essential 
       for nodes to determine their preferred parents.  

       In this environment, the main task of address autoconfiguration 
       protocol is to deal with address duplication. This document specifies 
       how to allocate and assign a unique address to a new node. 
       Furthermore, our addressing scheme is based on the concept of 
       hierarchical levels considering the particularity of RPL topology in 
       order to achieve scalability. These levels are indicative of the 
       locations of nodes within a DODAG Version. Traditional 
       autoconfiguration mechanisms, such as DHCP [RFC2131] or some other 
       similar mechanisms, are all built on a client-server model and are 
       not suitable for low power and lossy networks that are usually 
       unstable with relatively low packet delivery rates. 

       In this document, nodes can be configured with global unique 
       addresses for IPv6 enables a huge address space. Global unique 
       addresses are advantageous to the networks which each node can 
       communicate with each of its potential peers and administrative tasks, 
       such as downloading binary codes or monitoring individual sensor 
       nodes. 

       This document specifies how to handle complex situations where death 
       and replenishment of the nodes exist. In this solution, addresses can 
       be reused in the address space. Nodes will send messages to notify 
       their neighbors before leaving the network, and the addresses of the 
       leaving nodes will be reused. Moreover, network partitioning and 
       merging occur potentially since nodes may join or leave the network 
       at any time. It is possible that two or more nodes have the same 
       addresses, when multiple partitions merge. 
     
     
    Zhu et al.            Expires November 11, 2013               [Page 3] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       The address autoconfiguration mechanism in this document is designed 
       to be suitable for the networks which contain the uneven distribution 
       of node density. In some conditions the node density of the sensor 
       networks cannot be predicted exactly. In the high density area, there 
       may be no unused addresses in the parents due to the restriction of 
       node address space. This will lead to the problem that some new nodes 
       could not join the network. However, in this scheme, parents can 
       obtain the unassigned addresses held by the neighbors to assign the 
       new nodes. 

    2. Terminology 

       The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",   
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and   
       "OPTIONAL" in this document are to be interpreted as described in RFC 
       2119 [RFC2119]. 

       Additionally, this document uses the terminologies described in [I-D. 
       ietf-roll-terminology], [RFC6550], and introduces the following 
       terminology: 

       Lease: Lease refers to the behavior that a node requests an unused 
       address from another node to assign its own child. 

       Address Lease Table: An address lease table records the debtor node 
       and maintains a set of addresses which are leased by another node. 

       Brother node: One node's brother nodes must have the same parent with 
       it. 

       Creditor: A creditor is a node that gets ready to lease an address to 
       another node. And it should be a member of the brother node set. 

       Debtor: A debtor is a node that intends to lease an address from 
       other nodes. One node's creditor may also be another node's debtor. 

       Orphan: An orphan is a node that loses its parent. 

       Address Solicitation: The message is used for the purpose of 
       requesting an address from a parent. (See Section 4.1) 

       Address Information: The message is used for the purpose of 
       advertising a node's own address information. (See Section 4.2) 

       Address Advertisement: The message is used for the purpose of 
       informing parents of the addresses that the child nodes intend to use. 
       (See Section 4.3) 
     
     
    Zhu et al.            Expires November 11, 2013               [Page 4] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       REJECTION message: The message is used for the purpose of indicating 
       the requested address which has already been utilized. (See Section 
       4.4) 

       APPROVE message: The message is used for the purpose of indicating a 
       node which can get the requested address approved. (See Section 4.4) 

       Address Lease Request: The message is used when a node intends to 
       borrow an unused address from other nodes. (See Section 4.5) 

       Address Lease Response: The message is used when a node agrees to 
       lend an address to another node. (See Section 4.2) 

       Address Lease Parent Request: The message is used when a node has 
       lost its original parent and intended to get a new parent. (See 
       Section 4.5) 

       Address Lease Notification: A notification message contains the 
       debtor nodes and the corresponding leased addresses. (See Section 4.6) 

       Address Acknowledgement: The message is used when a node has 
       confirmed its allocated address. (See Section 4.3) 

    3. Overview 

       This section outlines the address autoconfiguration mechanism for RPL. 

       The network topology is constructed and maintained as specified in 
       RFC6550 [RFC6550]. As described in this reference, RPL organizes a 
       topology as a Directed Acyclic Graph (DAG) that consists of one or 
       more Destination Oriented DAGs (DODAGs). If there are multiple roots 
       in a DAG, the roots are expected to be federated by a common backbone. 
       This document defines how the address autoconfiguration mechanism 
       operates in a single DODAG. In addition, this mechanism also uses 
       trickle [RFC6206] to optimize the dissemination. 

       RPL has defined the process of parent selection through the Objective 
       Function (OF) [RFC6552]. When a node has determined its preferred 
       parent node, it can trigger the address allocation process 
       immediately without waiting for the whole topology to be constructed. 
       The address configuration procedure is comprised of two phases: (a) 
       address allocation and (b) address conflict detection. 

       In the address allocation phase, when a node associates to the 
       network, a packet containing the parent's address will be sent to it. 
       Child node randomly generates a fixed n bits string and concatenates 
       this random number with the received parent's address as its own 
     
     
    Zhu et al.            Expires November 11, 2013               [Page 5] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       address. That means the address of parent node becomes the prefix 
       address of child node. If there is no unused address in the parent 
       and its neighbor still holds unassigned address, the parent can 
       borrow an address from the neighbor to assign its child node. Besides, 
       the neighbor node should mark the selected address in its Address 
       Lease Table. This method also can be used to handle the network 
       partitioning and merging. The address of a node has correlation with 
       the distance of the node from the DODAG root and its length strictly 
       increases in the Down direction. Finally, the node sends its address 
       back to its parent and waits for getting the address approved by the 
       parent. 

       In the address conflict detection phase, parent nodes verify the 
       uniqueness of the children's address. When conflict happens, parents 
       notify the corresponding children to regenerate a different address.  

       When a node dies or leaves the network, the address of this node will 
       be reused. 

       The assigned addresses can bear some routing information. In our 
       scheme, upward routes are established through the longest prefix 
       match or default route. Then for the downward routes, the amount of 
       routing entries kept at the node is significantly reduced, which 
       increases routing efficiency. Moreover, the messages can travel down 
       to the target group of nodes. 

       This address autoconfiguration mechanism is detailed in the following 
       sections. 

    4. Message Formats 

       This section defines the particular messages used in this address 
       autoconfiguration mechanism. In accordance with the RPL Control 
       Message [RFC6550], this document defines the particular messages by 
       defining new options. These new options presented in this 
       specification all follow the RPL Control Message Option generic 
       format as specified in RFC6550 (see Section 6 in RFC6550 for more 
       details).  

    4.1. Address Solicitation 

       The Address Solicitation option MAY be present in DAO or DIS messages, 
       and its format is as follows: 




     
     
    Zhu et al.            Expires November 11, 2013               [Page 6] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

        0 
        0 1 2 3 4 5 6 7 
       +-+-+-+-+-+-+-+-+ 
       |   Type = 0x10 | 
       +-+-+-+-+-+-+-+-+ 
        
                 Figure 1 Format of the Address Solicitation Option 

       The Address Solicitation option is used for a node to request Address 
       Information messages from its parent. A parent just receives Address 
       Solicitation messages from its children. When an RPL message which 
       contains this option is not sent by its child, the receiver MUST 
       silently ignore the option. 

       Option Type: 0x10. (to be confirmed by IANA) 

    4.2. Address Information and Address Lease Response 

       The Address Information option and the Address Lease Response option 
       MAY be present in DIO messages, and the format is as follows: 

        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 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |Type=0x11/0x16 | Option Length | Prefix Length |A|  N  | Resvd | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                         Valid Lifetime                        | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +                            Prefix                             + 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
        
         Figure 2 Format of the Address Information Option and the Address 
                               Lease Response Option 

       The Address Information option is used to advertise a node's own 
       address information for address autoconfiguration. A node can assign 
       its own address according to the received Address Information message. 
       The address of parent becomes the prefix address of child. 



     
     
    Zhu et al.            Expires November 11, 2013               [Page 7] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       The Address Lease Response option is used to respond to the Address 
       Lease Request messages when a node agrees to lend an address to 
       another node. 

       Option Type: 0x11, indicates that this is an Address Information 
       message. 0x16, indicates that this is an Address Lease Response 
       message. (to be confirmed by IANA) 

       Option Length: 22. 8-bit unsigned integer, representing the length in 
       octets of the option, not including the Option Type and Length fields. 

       Prefix Length: 8-bit unsigned integer. The number of valid leading 
       bits in the prefix.  

       A: 1-bit autonomous address configuration flag. When set, indicates 
       that this prefix can be used for address configuration as specified 
       in this specification. 

       N: 3-bit unsigned integer. The permissible length of a random number 
       (in bits) that child node generates. The n bits random number will 
       afterward be concatenated with the parent's address as the child's 
       address. The value of n should satisfy 2^n>Cm, where Cm is the 
       maximum number of supported child nodes. 

       Resvd: 4-bit unused field. It MUST be initialized to zero by the 
       sender and MUST be ignored by the receiver. 

       Valid Lifetime: 32-bit unsigned integer. The length of time in 
       seconds that the prefix is valid. A value of all one bits (0xffffffff) 
       represents infinity. 

       Prefix: An IPv6 address or a prefix of an IPv6 address. The Prefix 
       field contains the node's own address or the creditor node's address. 
       It depends on the Option Type field. 

       Unassigned bits of the option are reserved. They MUST be set to zero 
       on transmission and MUST be ignored on reception. 

    4.3. Address Advertisement and Address Acknowledgement 

       The Address Advertisement option and the Address Acknowledgement 
       option MAY be present in DAO messages, and the format is as follows: 





     
     
    Zhu et al.            Expires November 11, 2013               [Page 8] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

        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 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |Type=0x12/0x19 | Option Length | Address Length| Addr Sequence | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |S|    Flag     |                  Reserved                     | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +                           Address                             + 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
        
        Figure 3 Format of the Address Advertisement Option and the Address 
                              Acknowledgement Option 

       The Address Advertisement option is used for a node to inform its 
       parent of the address that it intends to use. 

       The Address Acknowledgement option is used when the child node 
       confirms a leased address and notifies its parent to insert the 
       corresponding routing entry. 

       Option Type: 0x12, indicates that this is a Address Advertisement 
       message. 0x19, indicates that this is an Address Acknowledgement 
       message. (to be confirmed by IANA) 

       Option Length: 22.  

       Address Length: 8-bit unsigned integer. The number of valid leading 
       bits in the Address field. 

       Addr Sequence: 8-bit unsigned integer. Incremented at each unique 
       Address Advertisement message from a node and echoed in the REJECTION 
       or APPROVE message. 

       Flags: 7-bit unused field is reserved for flags. The field MUST be 
       initialized to zero by the sender and MUST be ignored by the receiver. 

       S: The 1-bit flag is the Address Sequence predicate. If the S flag is 
       cleared then the Address Sequence field is not valid and the Address 
       Sequence field MUST be set to zero on transmission and ignored upon 
       receipt. 

     
     
    Zhu et al.            Expires November 11, 2013               [Page 9] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       Reserved: This field is unused. It MUST be initialized to zero by the 
       sender and MUST be ignored by the receiver. 

       Address: An IPv6 address or a prefix of an IPv6 address. The Address 
       field contains a node's own address. The node randomly generates n 
       bits string and then concatenates the n bits with the parent's 
       address as its own address. 

       Unassigned bits of the option are reserved. They MUST be set to zero 
       on transmission and MUST be ignored on reception. 

    4.4. REJECTION and APPROVE 

       The REJECTION option and the APPROVE option MAY be present in DAO-ACK 
       messages, and the format is as follows: 

        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 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |Type=0x13/0x14 | Option Length |   Reserved    | Addr Sequence | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
        
           Figure 4 Format of the REJECTION Option and the APPROVE Option 

       The REJECTION option is used to indicate that the requested address 
       has already been utilized by another node. 

       The APPROVE option is used to indicate that the child can get the 
       requested address approved. 

       Option Type: 0x13, indicates that this is a REJECTION message. 0x14, 
       indicates that this is an APPROVE message. (to be confirmed by IANA) 

       Option Length: 2. 

       Reserved: 8-bit unused field. It MUST be initialized to zero by the 
       sender and MUST be ignored by the receiver. 

       Addr Sequence: 8-bit unsigned integer. The Address Sequence is used 
       to correlate an Address Advertisement message and a REJECTION or 
       APPROVE message. Incremented at each unique Address Advertisement 
       message and echoed in the REJECTION or APPROVE message. 

    4.5. Address Lease Request and Address Lease Parent Request 

       The Address Lease Request option and the Address Lease Parent Request 
       option MAY be present in DIS messages, and the format is as follows: 
     
     
    Zhu et al.            Expires November 11, 2013              [Page 10] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

        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 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |Type=0x15/0x17 | Option Length | Prefix Length |  N  |  Resvd  | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       | RPLInstanceID | Version Number|            Rank               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +                            Address                            + 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
        
        Figure 5 Format of the Address Lease Request Option and the Address 
                            Lease Parent Request Option 

       The Address Lease Request option is used for a node to request 
       Address Lease Response messages from its brother nodes. 

       The and Address Lease Parent Request option is used when an orphan 
       node intends to get a new parent.  

       Option Type: 0x15, indicates that this is a Address Lease Request 
       message. 0x17, indicates that this is an Address Lease Parent Request 
       message. (to be confirmed by IANA) 

       Option Length: 22. 

       Prefix Length: 8-bit unsigned integer. The number of valid leading 
       bits in the Address. The Prefix Length field, as well as the N field, 
       provide necessary information for longest prefix match. 

       N: 3-bit unsigned integer. The permissible length of a random number 
       (in bits) that child node generates. (see Section 4.2. ) 

       Flags: 5-bit unused field are reserved for flags. The field MUST be 
       initialized to zero by the sender and MUST be ignored by the receiver. 

       RPLInstanceID: 8-bit unsigned integer containing the RPLInstanceID. 

       Version Number: 8-bit unsigned integer containing the value of 
       DODAGVersionNumber. 


     
     
    Zhu et al.            Expires November 11, 2013              [Page 11] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       Rank: 16-bit unsigned integer indicating the DODAG rank of the node 
       sending the message. 

       Address: An IPv6 address or a prefix of an IPv6 address of the node 
       sending the message.  

       A receiver can determine whether it is a candidate creditor node (or 
       debtor node) through the Prefix Length field, N, Rank and Address 
       field. 

       Unassigned bits of the option are reserved. They MUST be set to zero 
       on transmission and MUST be ignored on reception. 

    4.6. Address Lease Notification 

       The Address Lease Notification option MAY be present in DAO or DIO 
       messages, and its format is as follows: 

        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 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |   Type=0x18   | Option Length |     Flags     |    Reserved   | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +                           Address1                            + 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +                           Address2                            + 
       |                                                               | 
       +                                                               + 
       |                                                               | 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
        
              Figure 6 Format of the Address Lease Notification Option 

       The Address Lease Notification option is used for a node to inform 
       the common parent or the creditor node of the debtor node's own 
       address and the corresponding leased address. (see Section 5.4. ) 

       Option Type: 0x18. (to be confirmed by IANA) 
     
     
    Zhu et al.            Expires November 11, 2013              [Page 12] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       Option Length: 34. 

       Flags: 8-bit unused field reserved for flags. The field MUST be 
       initialized to zero by the sender and MUST be ignored by the receiver. 

       Reserved: 8-bit unused field. It MUST be initialized to zero by the 
       sender and MUST be ignored by the receiver. 

       Address1: An IPv6 address or a prefix of an IPv6 address of the 
       debtor node. 

       Address2: An IPv6 address or a prefix of an IPv6 address that is 
       leased by the debtor node. 

       The receiver MUST silently ignore this option, if it is not the 
       corresponding common parent or creditor node. 

       Unassigned bits of this option are reserved. They MUST be set to zero 
       on transmission and MUST be ignored on reception. 

    5. Address Autoconfiguration 

       This address autoconfiguration mechanism is used to operate in RPL. 
       As we know, RPL had defined the process of parent selection through 
       the Objective Function (OF) and constructed the topologies. Moreover, 
       a node can execute the address configuration process immediately 
       without waiting for the whole topology to be constructed, when it has 
       determined its preferred parent node.  

    5.1. Address Assignment 

       The address assignment procedure consists of two phases: (a) address 
       allocation and (b) address conflict detection. Firstly, we must 
       choose an integer n for the entire sensor network and initiate the 
       protocol by broadcasting a packet which contains the value. The value 
       of n should satisfy 2^n>Cm, where Cm is the maximum number of 
       supported child nodes. 

       The address allocation procedure is detailed as follows:  

       1. The parent sends its children the Address Information messages 
          that contain its own address. 





     
     
    Zhu et al.            Expires November 11, 2013              [Page 13] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       2. Child node generates its own address through randomly generates n-
          bit string and then concatenates this string with the parent's 
          address. As a result, the address of its parent becomes the 
          address prefix of the node. For example, if the received parent's 
          address is "0011" and the random 4 bits string is "0101", then 
          this child's own address is "00110101". 

       3. The child node sends an Address Advertisement message containing 
          its address back to its parent, after waiting for a random time in 
          order to avoid collisions. 

       4. The child waits for a fixed amount of time to listen for REJECTION 
          or APPROVE packet from its parent. 

       5. If the node receives an APPROVE from its parent node, it will 
          confirm its address and send the address to its children in the 
          Address Information messages. 

       The address conflict detection procedure is detailed as follows: 

       1. The parent waits to receive an Address Advertisement from the 
          direct children of itself. 

       2. After the parent receives a child's address, it will check if the 
          address has already been allocated to another node. 

       3. If the received address has not been allocated, a parent will send 
          out an APPROVE message as a response and remember this approved 
          address. Then the node goes back to Step 1. The addresses that a 
          parent remembers are only temporary and are deleted once the nodes 
          leave or die. 

       4. If the received address has already been allocated, a parent will 
          send out a REJECTION message as a response. Then the node goes 
          back to Step 1. 

       The address assignment algorithm thus guarantees the uniqueness of 
       each sensor node's address. 

       In addition, some reserved addresses can't be assigned to a node. For 
       example, a value of all one bits is a broadcast address. 

       If the network contains multiple roots, then the roots are expected 
       to be federated by a common backbone. Thus many existing address 
       assignment protocols are enabled to serve the root nodes. The issue 
       of address assignment among the root nodes is out of scope for this 
       specification. 
     
     
    Zhu et al.            Expires November 11, 2013              [Page 14] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

    5.2. Address Lease 

       In some conditions the node density of the sensor networks cannot be 
       predicted exactly. There may be no unused address in the parent due 
       to the restriction of node address space. This will lead to the 
       problem that nodes could not join the network. This addressing 
       autoconfiguration mechanism provides a solution to improve the 
       probability of nodes joining to the network. There is a need for 
       special Address Lease Tables in order to record the debtor nodes and 
       the corresponding leased addresses. 

       The address lease procedure is detailed as follows: 

       1. A new node wants to join the network, then this node A send an 
          Address Solicitation to its parent node B. The node B will check 
          whether the number of child nodes is reached to the maximum number. 

       2. If the node B has a free address, then the node B sends its own 
          address to the node A, in order to complete the whole address 
          assignment procedure. 

       3. If the node B has no a free address, then the node B locally 
          broadcasts the Address Lease Request to discover its candidate 
          creditor node set. The candidate creditor node set should be a 
          restricted subset of the brother node set. The member of the 
          brother node set must have the same parent with the node B. 
          Further, the node B can discover all its brother node by longest 
          prefix match. The preferred creditor node is a member of the 
          candidate creditor node set. The exact policies for selecting the 
          preferred creditor node are implementation-dependent and Rank-
          dependent. But it is more important that the preferred creditor 
          node must have one or more unallocated addresses. The preferred 
          creditor node is conceptually a single brother node although it 
          may be a set of multiple nodes if those candidate nodes are 
          equally preferred and have identical rank, preferably choosing the 
          node sending the strongest signal. If there is no satisfactory 
          brother node, then the node B's parent is regarded as the 
          preferred creditor node. 

       4. The preferred creditor node C received Address Lease Request can 
          send a Address Lease Response to the node B with its own address. 
          The node B will forward the Address Lease Response to the node A.  

       5. The node A generates its own address through the address 
          allocation procedure and sends it to its parent node B. The node B 
          will forward the Address Advertisement to the creditor node C. 

     
     
    Zhu et al.            Expires November 11, 2013              [Page 15] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       6. Creditor node C should run the address conflict detection 
          procedure and send back an APPROVE or REJECTION message. The node 
          B will forward the message to the node A. Furthermore, the 
          creditor node C must insert this approved address to the Address 
          Lease Table and notify the common parent of this information ( if 
          the preferred creditor node C is the node B's parent, then it 
          could not send the Notification).  

       7. The node A should confirm its address on the basis of the received 
          APPROVE or REJECTION message. And finally, it should send the 
          Address Acknowledgement back. Then, the node B inserts the child's 
          address into its routing table. 

       This address lease algorithm increases the probability that nodes 
       join the network, especially in the high node density area. 

    5.3. Address Reusing 

       In order to improve the utilization of addresses, the addresses of 
       nodes should can be reused. 

       When a node leaves, it must send messages, such as No-Path DAO 
       messages, to notify each of its parents. Then, the parent should 
       delete the corresponding entry from its routing table. If the parent 
       detects that the leaving node's address is a borrowed address, it 
       should notify its parent and creditor node to delete the 
       corresponding entries. The address of the leaving node will be reused. 

       When a node dies, it might not send a leaving notification to its 
       parent. The parent does not receive any traffic from its child within 
       a certain period of time. Then it sends queries to the child multiple 
       times. If there is still no reply to it, then the parent should 
       delete the corresponding entry from its routing table. 

    5.4. Partitioning and Merging 

       Due to topology change or node failure, nodes may join or leave the 
       network at any time. Therefore, network partitioning and merging 
       potentially occur. In order to balance between cost of maintenance 
       and consistency, especially for large-scale deployments, we exploit 
       the concept of address lease to handle this complex situation.  

       A node that loses its parent is called an Orphan in this document. 
       The procedure is detailed as follows: 



     
     
    Zhu et al.            Expires November 11, 2013              [Page 16] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       1. After waiting for a certain period of time, the orphan node D 
          locally broadcasts the Address Lease Parent Request messages to 
          discover its candidate debtor node set by longest prefix match. If 
          the orphan node D's former parent is the node E, then the 
          candidate debtor node set should be a restricted subset of the 
          node E's brother node set. The member of the brother node set must 
          have the same parent with the node E. The preferred debtor node is 
          a member of the candidate debtor node set. The exact policies for 
          selecting the preferred debtor node is implementation-dependent 
          and Rank-dependent, according to the method of choosing a 
          preferred parent node in RPL. If there is no satisfactory brother 
          node, then the node E's parent is regarded as the preferred debtor 
          node. The orphan node will choose the preferred debtor node as its 
          new parent. The preferred debtor node must be of rank less than 
          the node D's. 

       2. If a debtor node F has agreed to become the orphan node's parent, 
          then the orphan node D should send an Address Advertisement 
          containing its own address to the debtor node F.  

       3. The debtor node F must check whether it is fortunately the node 
          D's former parent. If the node F is the node D's former parent, 
          then it just should insert the corresponding entry to the routing 
          table. 

       4. Otherwise, the debtor node F must notify its parent G that the 
          node D is the child of node F now (if the preferred debtor node F 
          is the node E's parent, then it could not send the Notification). 
          The parent G should insert the corresponding entry to the routing 
          table. When a new node joining the network is assigned the same 
          address of the node D's former parent, the node G must send a 
          Address Lease Notification to it in order to inform the new child 
          that the address of the node D has been used. And the new child 
          should insert the corresponding entry to the Address Lease Table 
          in order to record the debtor node and the corresponding leased 
          address (i.e. the address of the node D). 

       When two different partitions merge, nodes in the sub-DODAG do not 
       need to reconfigure their address. For large-scale deployments, this 
       scheme can significantly reduce the cost of network maintenance.  






     
     
    Zhu et al.            Expires November 11, 2013              [Page 17] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

    6. Routes 

    6.1. Upward Routes 

       RPL provisions routes Up towards DODAG roots and further details may 
       be found in RFC6550. In our scheme, the data packets can be 
       forwarded upwards through the longest prefix match or default route. 

    6.2. Downward Routes 

       Downward routes support the applications that require P2MP or P2P 
       traffic. Each node's routine routing table only needs to store one-
       hop routing table entries.  

       For the downward routes, when a node receives a data packet, it 
       should first look up a matching entry in the Address Lease Table and 
       the routine routing table according to the longest matching prefix. 
       The length of the matching prefix of this entry must be longer than 
       current node's. If two or more entries in these two tables satisfy 
       the condition (i.e. have the same length of matching prefix), the 
       successor in routine routing table should be chosen.  

       Therefore, the amount of routing entries held by a node is 
       significantly reduced, which increases routing efficiency. Moreover, 
       the messages can travel down toward the target group of nodes.  

    7. Security Considerations 

       This document does not specify any security considerations. This 
       address autoconfiguration mechanism expects to utilize link-layer or 
       other security mechanisms to meet security requirements. These 
       external security mechanisms are considered to be out of scope for 
       this specification. Additional considerations can be found in 
       the RPL protocol [RFC6550]. 

    8. IANA Considerations 

       IANA is requested to create a registry for the Message Options in 
       this document. And we define these values following the RPL 
       protocol [RFC6550]. 

       New values may be allocated only by an IETF Review. Each value should 
       be tracked with the following qualities: 

       o Value 

       o Meaning 
     
     
    Zhu et al.            Expires November 11, 2013              [Page 18] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

       o Defining RFC 

       +-------+-----------------------------------+-------------------+ 
       | Value | Meaning                           |   Reference       | 
       +-------+-----------------------------------+-------------------+ 
       |  0x10 | Address Solicitation              |   This document   | 
       |       |                                   |                   | 
       |  0x11 | Address Information               |   This document   | 
       |       |                                   |                   | 
       |  0x12 | Address Advertisement             |   This document   | 
       |       |                                   |                   | 
       |  0x13 | REJECTION                         |   This document   | 
       |       |                                   |                   | 
       |  0x14 | APPROVE                           |   This document   | 
       |       |                                   |                   | 
       |  0x15 | Address Lease Request             |   This document   | 
       |       |                                   |                   | 
       |  0x16 | Address Lease Response            |   This document   | 
       |       |                                   |                   | 
       |  0x17 | Address Lease Parent Request      |   This document   | 
       |       |                                   |                   | 
       |  0x18 | Address Lease Notification        |   This document   | 
       |       |                                   |                   | 
       |  0x19 | Address Acknowledgement           |   This document   | 
       +-------+-----------------------------------+-------------------+ 
        
                            RPL Control Message Options 

    9. References 

    9.1. Normative References 

       [RFC6550] T. Winter, P. Thubert, A. Brandt, J. Hui, R. Kelsey, P. 
                 Levis, K. Pister, R. Struik, JP. Vasseur, and R. Alexander, 
                 "RPL: IPv6 Routing Protocol for Low-Power and Lossy 
                 Networks", RFC6550, March 2012. 

       [RFC2119] S.Bradner, "Key words for use in RFCs to Indicate 
                 Requirement Levels", BCP 14, RFC 2119, March 1997. 

       [RFC6552] P.Thubert, "RPL Objective Function 0", RFC6552, March 2012. 

       [I-D.ietf-roll-terminology] JP.Vasseur, "Terminology in Low power And 
                 Lossy Networks", draft-ietf-roll-terminology-12, September 
                 2013. 

       [RFC6206] P.Levis, T.Clausen, J.Hui, O.Gnawali, and J.Ko, "The 
                 Trickle Algorithm", RFC6206, March 2011. 



     
     
    Zhu et al.            Expires November 11, 2013              [Page 19] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

    9.2. Informative References 

       [RFC2131] R. Droms, "Dynamic Host Configuration Protocol", RFC2131, 
                 March 1997.






































     
     
    Zhu et al.            Expires November 11, 2013              [Page 20] 
        
    Internet-Draft    Address Autoconfiguration for RPL       May 10, 2013 
     

                  

    10. Acknowledgments 

       Many thanks to Linjuan Zhang, Lin Zhu, Yingliang Chang, and Weiwei Wu 
       for their support. 

        

    Authors' Addresses 

       Wan-Ting Zhu, De-Yun Gao, Hong-Ke Zhang, Wei-Cheng Zhao 
       National Engineering Lab for NGI Interconnection Devices  
       Beijing Jiaotong University, China 
          
       Phone: +8613521693762 
       Email: 11111019@bjtu.edu.cn 
              gaody@bjtu.edu.cn 
              hkzhang@bjtu.edu.cn 
              11111018@bjtu.edu.cn 

     
     























     
     
    Zhu et al.            Expires November 11, 2013              [Page 21]