idnits 2.17.1 draft-gnawali-roll-rpl-recommendations-05.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: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 3 characters in excess of 72. 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 (March 14, 2013) is 4032 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-12 == Outdated reference: A later version (-04) exists of draft-ko-roll-mix-network-pathology-02 Summary: 1 error (**), 0 flaws (~~), 4 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: September 15, 2013 Stanford University 6 March 14, 2013 8 Recommendations for Efficient Implementation of RPL 9 draft-gnawali-roll-rpl-recommendations-05 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 Internet-Draft is submitted to IETF in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on September 15, 2013. 37 This document is subject to BCP 78 and the IETF Trust's Legal Provisions 38 Relating to IETF Documents (http://trustee.ietf.org/license-info) 39 in effect on the date of publication of this document. Please 40 review these documents carefully, as they describe your rights 41 and restrictions with respect to this document. Code Components 42 extracted from this document must include Simplified BSD License 43 text as described in Section 4.e of the Trust Legal Provisions 44 and are provided without warranty as described in the Simplified 45 BSD License. 47 Copyright Notice 49 Copyright (c) 2013 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 Provisions Relating to IETF Documents 53 (http://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 64 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 3. Set the Minimum Trickle Interval with Care . . . . . . . . . . 3 66 4. Use Large Maximum Trickle Interval . . . . . . . . . . . . . . 4 67 5. Use Small Trickle Redundancy Constant . . . . . . . . . . . . . 4 68 6. Poison Route Sparingly . . . . . . . . . . . . . . . . . . . . 4 69 7. Preserve Neighbor Information . . . . . . . . . . . . . . . . . 4 70 8. Slow-Down Datapath Traffic During Path Inconsistency . . . . . 4 71 9. Choose Better Path Cost Over Route Stability . . . . . . . . . 5 72 10. Consider State Overhead While Running Storing Mode . . . . . . 5 73 11. Prevent Situations That Make Nodes a Leaf . . . . . . . . . . . 5 74 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 75 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 76 14. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 77 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 78 15.1. Normative References . . . . . . . . . . . . . . . . . . . 6 79 15.2. Informative References . . . . . . . . . . . . . . . . . . 6 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 82 1. Introduction 84 RPL [RFC6550] is a routing protocol that is applicable in a wide 85 range of settings in networks characterized by low power and lossy 86 links (LLN). Because RPL is designed to work in a wide range of 87 settings, it offers many configuration parameters and choices in how 88 different mechanisms are implemented. This flexibility is essential 89 to ensure the wide applicability of this protocol. 91 One can take advantage of this flexibility to implement and configure 92 RPL in the most efficient way for a given network. However, it is 93 easy to inadvertently configure RPL to work inefficiently in the 94 network. These design choices must be made carefully drawing on 95 implementation and operational experiences. 97 In this document, we describe aspects of configuration and mechanisms 98 that impact the performance of RPL. We hope these descriptions serve 99 as guidelines and best practices for RPL implementers and enables 100 them to understand why certain design and configuration choices are 101 favored over others. 103 2. Terminology 105 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 106 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 107 "OPTIONAL" in this document are to be interpreted as described in RFC 108 2119 [RFC2119]. 110 This terminology used in this document is consistent with the 111 terminologies described in [I-D.ietf-roll-terminology], [RFC6550], 112 and [RFC6551]. 114 This document does not introduce new terms. 116 3. Set the Minimum Trickle Interval with Care 118 The minimum Trickle interval determines the fastest rate at which RPL 119 will send DIOs. It is not useful to have multiple DIOs in the 120 transmit queue at a given node. The information in the older DIOs is 121 likely already stale when the new DIO is generated. In systems that 122 cannot cancel the packets that are already in the queue, it is 123 advisable to set the minimum interval to be much larger than the 124 minimum link layer packet time. 126 4. Use Large Maximum Trickle Interval 128 The maximum Trickle interval determines the slowest rate at which RPL 129 will send DIOs. It is recommended that the maximum interval is set 130 to several hours. A large interval does not necessarily make RPL 131 less agile or the routing information stale. Trickle will operate at 132 a rate between the minimum and maximum interval depending on the 133 dynamics in the network. 135 5. Use Small Trickle Redundancy Constant 137 If a node receives more DIOs than the redundancy constant, it does 138 not transmit, i.e., suppresses, its DIO. The rationale for this 139 suppression is that the additional DIOs do not help discover new or 140 better paths if certain number of DIOs have already been transmitted 141 in the neighborhood of a node. In general, the smaller this number 142 the more energy-efficient the route discovery. But setting this 143 value too small can lead to network partitioning as many nodes will 144 suppress their DIOs and will not be discovered. A constant of 3-5 145 has been found adequate in deployments. 147 6. Poison Route Sparingly 149 It is often not necessary for a node to poison a route explicitly by 150 advertising a rank of INFINITY. With datapath validation, it is easy 151 to detect a loop and coupled with adaptive beaconing, the routes can 152 be repaired quickly without additional explicit mechanism for route 153 poisoning. Poisoning the route does not prevent loops because the 154 control packet can get dropped on the lossy link. 156 7. Preserve Neighbor Information 158 The neighborhood information is useful even when a node detects that 159 it has lost a route. It is recommended that the nodes not flush the 160 entire or subset of the neighbor table even when a node loses its 161 route or detects a loop. It is sufficient to mark the nodes in the 162 table with the updated information that resulted in route loss or 163 loops, e.g., marking the particular parent with a rank of INFINITY. 165 8. Slow-Down Datapath Traffic During Path Inconsistency 167 When a node detects that a path is inconsistent through datapath 168 validation, it tasks the control plane to repair the topology and 169 make it consistent. During this time, although the route is 170 available, it is advisable that the data packets are sent at lower 171 rates to reduce contention with the control packets. This slow-down 172 can increase data packet latency or lead to queue overflow. 174 9. Choose Better Path Cost Over Route Stability 176 With bursty links, a link metric designed to reflect link quality 177 accurately can change rapidly. Other link metrics may also change 178 rapidly. As a result, the path cost computed using these agile 179 metrics can change rapidly. Selecting the best path then implies 180 frequent parent changes. Route flapping is not detrimental to the 181 performance of many network protocols such as sensor data collection 182 over UDP. Hence, oftentimes, it is better to optimize for path cost 183 than for path stability. 185 10. Consider State Overhead While Running Storing Mode 187 A naive implementation of storing mode will have large state 188 overhead, especially in large networks. However, it may be possible 189 for storing mode to use RAM more efficiently by state aggregation, 190 compression, and other techniques. The extent to which these 191 techniques reduce the memory overhead, although promising based on 192 experiences with other protocols, has not been evaluated for RPL 193 state overhead. TinyOS open source implementation on TelosB, which 194 has 10KB of RAM, is known to limit the routing table size to 30. An 195 implementation on Contiki on MSP430F5438-based platform with has 16K 196 of RAM is reported (in a private email to the authors) to support 100 197 entries. 199 11. Prevent Situations That Make Nodes a Leaf 201 When different nodes in a single network run different OFs, have 202 incompatible metrics, or run a mix of storing and non-storing 203 modes[I-D.ko-roll-mix-network-pathology], the nodes may not join the 204 DODAG or join as leaf nodes which do not extend DODAG connectivity as 205 described in Section 8.5 of [RFC6550]. Thus, operating as a leaf 206 node in the middle of a network can lead to network partitioning even 207 though the network is physically connected. Generally avoid 208 configurations that force some nodes to operate as leaf nodes even 209 though the leaf nodes are at the physical edge of the network. 211 12. Acknowledgements 213 Thanks to Ulrich Herberg, Mukul Goyal, C Chauvenet, JP Vasseur, and 214 Joakim Eriksson for their valuable comments. 216 13. IANA Considerations 218 None. 220 14. Security Considerations 222 There are no security implications related to this draft. 224 15. References 226 15.1. Normative References 228 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 229 Requirement Levels", BCP 14, RFC 2119, March 1997. 231 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 232 Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. 233 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 234 Lossy Networks", RFC 6550, March 2012. 236 [RFC6551] Vasseur, JP., Kim, M., Pister, K., Dejean, N., and D. 237 Barthel, "Routing Metrics Used for Path Calculation in 238 Low-Power and Lossy Networks", RFC 6551, March 2012. 240 15.2. Informative References 242 [I-D.ietf-roll-terminology] 243 Vasseur, J., "Terminology in Low power And Lossy 244 Networks", draft-ietf-roll-terminology-12 (work in 245 progress), March 2013. 247 [I-D.ko-roll-mix-network-pathology] 248 Ko, J., Jeong, J., Park, J., Jun, J., Kim, N., and O. 249 Gnawali, "RPL Routing Pathology In a Network With a Mix of 250 Nodes Operating in Storing and Non-Storing Modes", 251 draft-ko-roll-mix-network-pathology-02 (work in progress), 252 February 2013. 254 Authors' Addresses 256 Omprakash Gnawali 257 University of Houston 258 577 Philip G. Hoffman Hall 259 Houston, TX 77204 260 USA 262 Phone: +1 713 743 3356 263 Email: gnawali@cs.uh.edu 265 Philip Levis 266 Stanford University 267 412 Gates Hall, Stanford University 268 Stanford, CA 94305 269 USA 271 Email: pal@cs.stanford.edu