Skip to main content

Recommendations for Efficient Implementation of RPL
draft-gnawali-roll-rpl-recommendations-02

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Omprakash Gnawali , P Levis
Last updated 2011-09-13 (Latest revision 2011-03-13)
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-gnawali-roll-rpl-recommendations-02
Networking Working Group                                      O. Gnawali
Internet-Draft                                                  P. Levis
Intended status: BCP                                 Stanford University
Expires: March 16, 2012                               September 13, 2011

          Recommendations for Efficient Implementation of RPL
               draft-gnawali-roll-rpl-recommendations-02

Abstract

   RPL is a flexible routing protocol applicable to a wide range of Low
   Power and Lossy Networks.  To enable this wide applicability, RPL
   provides many configuration options and gives implementers choices on
   how to implement various components of RPL.  Drawing on our
   experiences, we distill the design choices and configuration
   parameters that lead to efficient RPL implementations and operations.

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 March 16, 2012.

Copyright Notice

   Copyright (c) 2011 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

Gnawali & Levis          Expires March 16, 2012                 [Page 1]
Internet-Draft   draft-gnawali-roll-rpl-recommendations   September 2011

   (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 BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Set the Minimum Trickle Interval with Care  . . . . . . . . . . 3
   4.  Use Large Maximum Trickle Interval  . . . . . . . . . . . . . . 4
   5.  Use Small Trickle Redundancy Constant . . . . . . . . . . . . . 4
   6.  Poison Route Sparingly  . . . . . . . . . . . . . . . . . . . . 4
   7.  Preserve Neighbor Information . . . . . . . . . . . . . . . . . 4
   8.  Slow-Down Datapath Traffic During Path Inconsistency  . . . . . 4
   9.  Choose Better Path Cost Over Route Stability  . . . . . . . . . 5
   10. Consider State Overhead While Running Storing Mode  . . . . . . 5
   11. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 5
   12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   13. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
   14. References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     14.1.  Normative References . . . . . . . . . . . . . . . . . . . 6
     14.2.  Informative References . . . . . . . . . . . . . . . . . . 6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 6

Gnawali & Levis          Expires March 16, 2012                 [Page 2]
Internet-Draft   draft-gnawali-roll-rpl-recommendations   September 2011

1.  Introduction

   RPL [I-D.ietf-roll-rpl] is a routing protocol that is applicable in a
   wide range of settings in networks characterized by low power and
   lossy links (LLN).  Because RPL is designed to work in a wide range
   of settings, it offers many configuration parameters and choices in
   how different mechanisms are implemented.  This flexibility is
   essential to ensure the wide applicability of this protocol.

   One can take advantage of this flexibility to implement and configure
   RPL in the most efficient way for a given network.  However, it is
   easy to inadvertently configure RPL to work inefficiently in the
   network.  These design choices must be made carefully drawing on
   implementation and operational experiences.

   In this document, we describe aspects of configuration and mechanisms
   that impact the performance of RPL.  We hope these descriptions serve
   as guidelines and best practices for RPL implementers and enables
   them to understand why certain design and configuration choices are
   favored over others.

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].

   This terminology used in this document is consistent with the
   terminologies described in [I-D.ietf-roll-terminology],
   [I-D.ietf-roll-rpl], and [I-D.ietf-roll-routing-metrics].

   This document does not introduce new terms.

3.  Set the Minimum Trickle Interval with Care

   The minimum Trickle interval determines the fastest rate at which RPL
   will send DIOs.  It is not useful to have multiple DIOs in the
   transmit queue at a given node.  The information in the older DIOs is
   likely already stale when the new DIO is generated.  In systems that
   cannot cancel the packets that are already in the queue, it is
   advisable to set the minimum interval to be much larger than the
   minimum link layer packet time.

Gnawali & Levis          Expires March 16, 2012                 [Page 3]
Internet-Draft   draft-gnawali-roll-rpl-recommendations   September 2011

4.  Use Large Maximum Trickle Interval

   The maximum Trickle interval determines the slowest rate at which RPL
   will send DIOs.  It is recommended that the maximum interval is set
   to several hours.  A large interval does not necessarily make RPL
   less agile or the routing information stale.  Trickle will operate at
   a rate between the minimum and maximum interval depending on the
   dynamics in the network.

5.  Use Small Trickle Redundancy Constant

   If a node receives more DIOs than the redundancy constant, it does
   not transmit, i.e., suppresses, its DIO.  The rationale for this
   suppression is that the additional DIOs do not help discover new or
   better paths if certain number of DIOs have already been transmitted
   in the neighborhood of a node.  In general, the smaller this number
   the more efficient the route discovery.  Setting this value too small
   can lead to network partitioning as many nodes will suppress their
   DIOs and will not be discovered.  A constant of 3-5 has been found
   adequate in deployments.

6.  Poison Route Sparingly

   It is often not necessary for a node to poison a route explicitly by
   advertising a rank of INFINITY.  With datapath validation, it is easy
   to detect a loop and coupled with adaptive beaconing, the routes can
   be repaired quickly without additional explicit mechanism for route
   poisoning.  Poisoning the route does not prevent loops because the
   control packet can get dropped on the lossy link.

7.  Preserve Neighbor Information

   The neighborhood information is useful even when a node detects that
   it has lost a route.  It is recommended that the nodes not flush the
   entire or subset of the neighbor table even when a node loses its
   route or detects a loop.  It is sufficient to mark the nodes in the
   table with the updated information that resulted in route loss or
   loops, e.g., marking the particular parent with a rank of INFINITY.

8.  Slow-Down Datapath Traffic During Path Inconsistency

   When a node detects that a path is inconsistent through datapath
   validation, it tasks the control plane to repair the topology and
   make it consistent.  During this time, although the route is

Gnawali & Levis          Expires March 16, 2012                 [Page 4]
Internet-Draft   draft-gnawali-roll-rpl-recommendations   September 2011

   available, it is advisable that the data packets are sent at lower
   rates to reduce contention with the control packets.  This slow-down
   can increase data packet latency or lead to queue overflow.

9.  Choose Better Path Cost Over Route Stability

   With bursty links, a link metric designed to reflect link quality
   accurately can change rapidly.  Other link metrics may also change
   rapidly.  As a result, the path cost computed using these agile
   metrics can change rapidly.  Selecting the best path then implies
   frequent parent changes.  Route flapping is not detrimental to the
   performance of many network protocols such as sensor data collection
   over UDP.  Hence, oftentimes, it is better to optimize for path cost
   than for path stability.

10.  Consider State Overhead While Running Storing Mode

   A naive implementation of storing mode will have large state
   overhead, especially in large networks.  However, it is possible for
   storing mode to use RAM efficiently by state aggregation,
   compression, and other techniques.  Current open source
   implementations are known to limit the routing table size to 30
   (TinyOS on TelosB which has 10KB of RAM) and 100 (Contiki on
   MSP430F5438-based platform which has 16K of RAM).

11.  Acknowledgements

   Thanks to Ulrich Herberg and Mukul Goyal for valuable comments.

12.  IANA Considerations

   None.

13.  Security Considerations

   Security considerations to be developed in accordance to the output
   of the WG.

14.  References

Gnawali & Levis          Expires March 16, 2012                 [Page 5]
Internet-Draft   draft-gnawali-roll-rpl-recommendations   September 2011

14.1.  Normative References

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

14.2.  Informative References

   [I-D.ietf-roll-routing-metrics]
              Vasseur, J. and D. Networks, "Routing Metrics used for
              Path Calculation in Low Power and Lossy Networks",
              draft-ietf-roll-routing-metrics-01 (work in progress),
              October 2009.

   [I-D.ietf-roll-rpl]
              Winter, T., Thubert, P., Brandt, A., Clausen, T., Hui, J.,
              Kelsey, R., Levis, P., Pister, K., Struik, R., and J.
              Vasseur, "RPL: IPv6 Routing Protocol for Low power and
              Lossy Networks", draft-ietf-roll-rpl-18 (work in
              progress), February 2011.

   [I-D.ietf-roll-terminology]
              Vasseur, J., "Terminology in Low power And Lossy
              Networks", draft-ietf-roll-terminology-01 (work in
              progress), May 2009.

Authors' Addresses

   Omprakash Gnawali
   Stanford University
   S255 Clark Center, 318 Campus Drive
   Stanford, CA  94305
   USA

   Phone: +1 650 725 6086
   Email: gnawali@cs.stanford.edu

   Philip Levis
   Stanford University
   358 Gates Hall, Stanford University
   Stanford, CA  94305
   USA

   Email: pal@cs.stanford.edu

Gnawali & Levis          Expires March 16, 2012                 [Page 6]