idnits 2.17.1 draft-gnawali-roll-rpl-recommendations-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 64 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (September 11, 2012) is 4238 days in the past. Is this intentional? Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-13) exists of draft-ietf-roll-terminology-01 == Outdated reference: A later version (-04) exists of draft-ko-roll-mix-network-pathology-00 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Networking Working Group O. Gnawali 3 Internet-Draft University of Houston 4 Intended status: BCP P. Levis 5 Expires: March 15, 2013 Stanford University 6 September 11, 2012 8 Recommendations for Efficient Implementation of RPL 9 draft-gnawali-roll-rpl-recommendations-04 11 Abstract 13 RPL is a flexible routing protocol applicable to a wide range of Low 14 Power and Lossy Networks. To enable this wide applicability, RPL 15 provides many configuration options and gives implementers choices on 16 how to implement various components of RPL. Drawing on our 17 experiences, we distill the design choices and configuration 18 parameters that lead to efficient RPL implementations and operations. 20 Status of this Memo 22 This document is subject to BCP 78 and the IETF Trust's Legal 23 Provisions Relating to IETF Documents 24 (http://trustee.ietf.org/license-info) in effect on the date of 25 publication of this document. Please review these documents 26 carefully, as they describe your rights and restrictions with 27 respect to this document. 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are draft documents valid for a maximum of six 33 months and may be updated, replaced, or obsoleted by other 34 documents at any time. It is inappropriate to use Internet-Drafts 35 as reference material or to cite them other than as "work in 36 progress." 38 This Internet-Draft will expire on September 11, 2012. 40 Internet-Drafts are working documents of the Internet Engineering 41 Task Force (IETF), its areas, and its working groups. Note that 42 other groups may also distribute working documents as 43 Internet-Drafts. 45 The list of current Internet-Drafts can be accessed at 46 http://www.ietf.org/1id-abstracts.html 48 The list of Internet-Draft Shadow Directories can be accessed at 49 http://www.ietf.org/shadow.html 51 This Internet-Draft will expire on March 15, 2013. 53 Copyright Notice 55 Copyright (c) 2012 IETF Trust and the persons identified as the 56 document authors. All rights reserved. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3 62 3. Set the Minimum Trickle Interval with Care . . . . . . . . . . 3 63 4. Use Large Maximum Trickle Interval . . . . . . . . . . . . . . 4 64 5. Use Small Trickle Redundancy Constant . . . . . . . . . . . . . 4 65 6. Poison Route Sparingly . . . . . . . . . . . . . . . . . . . . 4 66 7. Preserve Neighbor Information . . . . . . . . . . . . . . . . . 4 67 8. Slow-Down Datapath Traffic During Path Inconsistency . . . . . 4 68 9. Choose Better Path Cost Over Route Stability . . . . . . . . . 5 69 10. Consider State Overhead While Running Storing Mode . . . . . . 5 70 11. Prevent Situations That Make Nodes Leaf . . . . . . . . . . . . 5 71 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 72 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 73 14. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 74 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 75 15.1. Normative References . . . . . . . . . . . . . . . . . . . 6 76 15.2. Informative References . . . . . . . . . . . . . . . . . . 6 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 79 1. Introduction 81 RPL [RFC6550] is a routing protocol that is applicable in a wide 82 range of settings in networks characterized by low power and lossy 83 links (LLN). Because RPL is designed to work in a wide range of 84 settings, it offers many configuration parameters and choices in how 85 different mechanisms are implemented. This flexibility is essential 86 to ensure the wide applicability of this protocol. 88 One can take advantage of this flexibility to implement and configure 89 RPL in the most efficient way for a given network. However, it is 90 easy to inadvertently configure RPL to work inefficiently in the 91 network. These design choices must be made carefully drawing on 92 implementation and operational experiences. 94 In this document, we describe aspects of configuration and mechanisms 95 that impact the performance of RPL. We hope these descriptions serve 96 as guidelines and best practices for RPL implementers and enables 97 them to understand why certain design and configuration choices are 98 favored over others. 100 2. Terminology 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 103 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 104 "OPTIONAL" in this document are to be interpreted as described in RFC 105 2119 [RFC2119]. 107 This terminology used in this document is consistent with the 108 terminologies described in [I-D.ietf-roll-terminology], [RFC6550], 109 and [RFC6551]. 111 This document does not introduce new terms. 113 3. Set the Minimum Trickle Interval with Care 115 The minimum Trickle interval determines the fastest rate at which RPL 116 will send DIOs. It is not useful to have multiple DIOs in the 117 transmit queue at a given node. The information in the older DIOs is 118 likely already stale when the new DIO is generated. In systems that 119 cannot cancel the packets that are already in the queue, it is 120 advisable to set the minimum interval to be much larger than the 121 minimum link layer packet time. 123 4. Use Large Maximum Trickle Interval 125 The maximum Trickle interval determines the slowest rate at which RPL 126 will send DIOs. It is recommended that the maximum interval is set 127 to several hours. A large interval does not necessarily make RPL 128 less agile or the routing information stale. Trickle will operate at 129 a rate between the minimum and maximum interval depending on the 130 dynamics in the network. 132 5. Use Small Trickle Redundancy Constant 134 If a node receives more DIOs than the redundancy constant, it does 135 not transmit, i.e., suppresses, its DIO. The rationale for this 136 suppression is that the additional DIOs do not help discover new or 137 better paths if certain number of DIOs have already been transmitted 138 in the neighborhood of a node. In general, the smaller this number 139 the more energy-efficient the route discovery. But setting this 140 value too small can lead to network partitioning as many nodes will 141 suppress their DIOs and will not be discovered. A constant of 3-5 142 has been found adequate in deployments. 144 6. Poison Route Sparingly 146 It is often not necessary for a node to poison a route explicitly by 147 advertising a rank of INFINITY. With datapath validation, it is easy 148 to detect a loop and coupled with adaptive beaconing, the routes can 149 be repaired quickly without additional explicit mechanism for route 150 poisoning. Poisoning the route does not prevent loops because the 151 control packet can get dropped on the lossy link. 153 7. Preserve Neighbor Information 155 The neighborhood information is useful even when a node detects that 156 it has lost a route. It is recommended that the nodes not flush the 157 entire or subset of the neighbor table even when a node loses its 158 route or detects a loop. It is sufficient to mark the nodes in the 159 table with the updated information that resulted in route loss or 160 loops, e.g., marking the particular parent with a rank of INFINITY. 162 8. Slow-Down Datapath Traffic During Path Inconsistency 164 When a node detects that a path is inconsistent through datapath 165 validation, it tasks the control plane to repair the topology and 166 make it consistent. During this time, although the route is 167 available, it is advisable that the data packets are sent at lower 168 rates to reduce contention with the control packets. This slow-down 169 can increase data packet latency or lead to queue overflow. 171 9. Choose Better Path Cost Over Route Stability 173 With bursty links, a link metric designed to reflect link quality 174 accurately can change rapidly. Other link metrics may also change 175 rapidly. As a result, the path cost computed using these agile 176 metrics can change rapidly. Selecting the best path then implies 177 frequent parent changes. Route flapping is not detrimental to the 178 performance of many network protocols such as sensor data collection 179 over UDP. Hence, oftentimes, it is better to optimize for path cost 180 than for path stability. 182 10. Consider State Overhead While Running Storing Mode 184 A naive implementation of storing mode will have large state 185 overhead, especially in large networks. However, it may be possible 186 for storing mode to use RAM more efficiently by state aggregation, 187 compression, and other techniques. The extent to which these 188 techniques reduce the memory overhead, although promising based on 189 experiences with other protocols, has not been evaluated for RPL 190 state overhead. TinyOS open source implementation on TelosB, which 191 has 10KB of RAM, is known to limit the routing table size to 30. An 192 implementation on Contiki on MSP430F5438-based platform with has 16K 193 of RAM is reported (in a private email to the authors) to support 100 194 entries. 196 11. Prevent Situations That Make Nodes Leaf 198 When different nodes in a single network run different OFs, have 199 incompatible metrics, or run a mix of storing and non-storing 200 modes[I-D.ko-roll-mix-network-pathology], the nodes may not join the 201 DODAG or join as leaf nodes which do not extend DODAG connectivity as 202 described in Section 8.5 of [RFC6550]. Thus, operating as a leaf 203 node in the middle of a network can lead to network partitioning even 204 though the network is physically connected. Generally avoid 205 configurations that force some nodes to operate as leaf nodes even 206 though the leaf nodes are at the physical edge of the network. 208 12. Acknowledgements 210 Thanks to Ulrich Herberg, Mukul Goyal, C Chauvenet, JP Vasseur, and 211 Joakim Eriksson for their valuable comments. 213 13. IANA Considerations 215 None. 217 14. Security Considerations 219 There are no security implications related to this draft. 221 15. References 223 15.1. Normative References 225 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 226 Requirement Levels", BCP 14, RFC 2119, March 1997. 228 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 229 Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. 230 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 231 Lossy Networks", RFC 6550, March 2012. 233 [RFC6551] Vasseur, JP., Kim, M., Pister, K., Dejean, N., and D. 234 Barthel, "Routing Metrics Used for Path Calculation in 235 Low-Power and Lossy Networks", RFC 6551, March 2012. 237 15.2. Informative References 239 [I-D.ietf-roll-terminology] 240 Vasseur, J., "Terminology in Low power And Lossy 241 Networks", draft-ietf-roll-terminology-01 (work in 242 progress), May 2009. 244 [I-D.ko-roll-mix-network-pathology] 245 Ko, J., Jeong, J., Park, J., Jun, J., Kim, N., and O. 246 Gnawali, "RPL Routing Pathology In a Network With a Mix of 247 Nodes Operating in Storing and Non-Storing Modes", 248 draft-ko-roll-mix-network-pathology-00 (work in progress), 249 August 2012. 251 Authors' Addresses 253 Omprakash Gnawali 254 University of Houston 255 577 Philip G. Hoffman Hall 256 Houston, TX 77204 257 USA 259 Phone: +1 713 743 3356 260 Email: gnawali@cs.uh.edu 262 Philip Levis 263 Stanford University 264 412 Gates Hall, Stanford University 265 Stanford, CA 94305 266 USA 268 Email: pal@cs.stanford.edu