ROLL P. Thubert, Ed. Internet-Draft Cisco Systems Updates: 6550 (if approved) D. Barthel Intended status: Standards Track Orange Labs Expires:1719 April 2020 R.A. Jadhav Huawei Tech1517 October 2019 Eliding and Querying RPL Informationdraft-thubert-roll-eliding-dio-information-00draft-thubert-roll-eliding-dio-information-01 Abstract This document presents a method to safely elide a group of global RPL options by synchonizing the state associated with each of these options between parent and child using a new sequence counter in DIO messages. A child that missed a DIO message with an update of any of those protected options detects it by the change of sequence counter and queries the update with a DIS Message. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on1719 April 2020. Copyright Notice Copyright (c) 2019 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 (https://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 . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . .34 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . .34 2.2. References . . . . . . . . . . . . . . . . . . . . . . .34 2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . .45 4.New RPL Configuration State SequenceMessage Formats . . . . . . . . . . . . . .4 5. Protected Options. . . . . . . . . 5 4.1. Updated DIO Base Object . . . . . . . . . . . . . . . . . 56. Child4.2. Updated DIS Base Object . . . . . . . . . . . . . . . . . 6 4.3. New Abbreviated Option Option . . . . . . . . . . . . . . 7 5. RCSS Operation . . . . . . . . . . . . . . . . . . . . . . .6 7. Pulling Options8 5.1. Updating the RCSS . . . . . . . . . . . . . . . . . . . . 8 5.2. RCSS Freshness and Parent selection . . . . . .7 8.. . . . . 9 5.3. RCSS of an Option . . . . . . . . . . . . . . . . . . . . 10 6. Synchronizing Options . . . . . . . . . . . . . . . . . . . . 11 7. Security Considerations . . . . . . . . . . . . . . . . . . .7 9.11 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . .7 10. Security Considerations11 8.1. New DODAG Information Object Flags . . . . . . . . . . . 11 8.2. New RPL Control Message Option . . . . . . . .7 11.. . . . . 12 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .7 12.12 10. Normative References . . . . . . . . . . . . . . . . . . . .7 13.12 11. Informative References . . . . . . . . . . . . . . . . . . .813 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . .813 1. Introduction Classical Link State protocol synchronize their Link State Database (LSDB) by sequencing every change. Each interested node maintains the last sequence of the LSDB it is synchronizing with. Ifathe last known sequence number is older than the current, the node needs to learn one by one all the state changes between the last known and the current state. [RPL] does not operate that way. With RPL, the routing information is repeated over and over in DODAG Information Object (DIO) and Destination Advertisement Object (DAO) messages. There is no concept of synchronization. The most recent information overrides a previous one and a stale state eventually times out. The RPL way was designed to enable routing from most nodes to most nodes most of the time in a Low-Power Lossy Network (LLN) where the quality of the links and the cost of communications does not permit to maintain a permanent synchronization. This principle was applied to both the routinginformationand non-routingstateinformation such as configuration settings, prefix information, and node capabilities. This non-routing state is carried in RPL Messages as options. Some of the DIO options may be needed to decide whether a node can join a network as a leaf or as a router, and may affect the parent selection or the address selection. It is thus critical that each node maintains its state to the freshest and selects parents that are also synchronized to the freshest. [RPL] allows a parent to elidethat informationoptions in the DIO messages that it sends repeatedly,but ifto conserve battery and save bandwidth. When it does so, a newcomer childmay havethat missedthe earlyDIOs that contained the configuration optionand live with onlymay operate on default or partial information. If it is pessimistic, it may query all possible the information even when it is not needed. Conversely, a node that slept may have missed a DIOmessagewith a change in some critical information and may not be even aware of it, so it may fail to query for the update and operate on deprecated parameters. This document uses a new sequence counter called RCSS to synchronize the state in a child node with that of its parent, and recursively with that of thenetwork.whole network, to the latest setting from the Root. The protected options are: 1. The Route Information Option (RIO) defined in section 6.7.5 of [RPL] 2. The DODAG Configuration Option (DCO) defined in section 6.7.6 of [RPL] 3. The Prefix Information Option (PIO) defined in section 6.7.10 of [RPL] 4. The Extended MOP Option (MOPex) defined in [MOPEX-CAP] 5. The Global Capabilities Option (GCO) defined in [MOPEX-CAP] Any change in those options causes an increment of the RCSS and enables a network-wide synchronization to the new state. If the change impacts the routing substantially, the Root should decide to increment the Version Number at the same time to fully rebuild the DODAG with the new settings of the options. It must be noted that the operation of the Version Number in itself provides no guarantee that the non-routing state is fully resynchronized everywhere unless all the options are present in all the DIO messages. 2. Terminology 2.1. BCP 14 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 BCP 14 [RFC2119][RFC8174] when, and only when, they appear in all capitals, as shown here. 2.2. References The Terminology used in this document is consistent with and incorporates that described in Terms Used in Routing for Low-Power and Lossy Networks(LLNs).[RFC7102]. Other terms in use in LLNs are found in Terminology for Constrained-Node Networks [RFC7228]. A glossary of classical RPL acronyms is given in Section 2.3. The term "byte" is used in its now customary sense as a synonym for "octet". "RPL", "RPL Packet Information" (RPI) and "RPL Instance", DIO, DAO and DIS messages are defined in the "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks" [RPL] specification. This document uses the terms RPL-Unaware Leaf (RUL) and RPL Aware Leaf (RAL) consistently with [USE_OF_RPL_INFO]. The term RPL-Unaware Leaf (RUL) is used to refer to a node that uses a RPL router (without necessarily knowing it) as 6LR and depends on that router to obtain reachability for its addresses inside the RPL domain. On the contrary, the term RPL-Aware Node (RAN) is used to refer to a RAL or a RPL router that participates to RPL and advertises its addresses of prefixes by itself. 2.3. Glossary This document often uses the following acronyms: DODAG Destination-Oriented Directed Acyclic Graph LLN Low-Power and Lossy Network RPI RPL Packet Information (an Option in the Hop-By_Hop Header) RAL RPL-Aware Leaf RAN RPL-Aware Node, a RPL router or a RPL-Aware Leaf RS Router Solicitation RCSS RPL Configuration State Sequence RPL IPv6 Routing Protocol for LLNs (pronounced ripple) RUL RPL-Unaware Leaf 3. Updating RFC 6550 This document adds asequence counternew field calledRPL Configuration State Sequence (RCSS)RCSS to the DIO message. The RCSS is a sequence counter set by therootRoot and operated as specified in Section 7 of [RPL], more in Section4.5. This document also introduces a new RPL Control MessageOptionsOption called the Abbreviated Option Option (AOO). The AOO isan emptythe compressed replacement ofan existinga protected option that indicates the RCSS of the last change of thatoption.option, but elides its content, more in Section 4.3. This document modifies theSolicited Information Option toDIS Base Objectto enable the individual query of the protected options by a node that missed a change, more in Section7.4.2. 4.New RPL Configuration State SequenceMessage Formats 4.1. Updated DIO Base Object The format of the DIO Base Object is defined in section 6.3.1 of [RPL]. This specification uses a 8th octet that waspreviouslyreserved in [RPL] to transport the RCSS. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID |Version Number | Rank | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G|0| MOP | Prf | DTSN | Flags | RCSS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + DODAGID + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option(s)... +-+-+-+-+-+-+-+-+ Figure 1:MOdifiedUpdated DIO Base Object Updated fields: RCSS One Byte, the RPL Configuration State Sequence 4.2. Updated DIS Base Object TheRCSS protects network-wide options that are setDIS Base Object is use bythe root and that are propagated withoutachange down the DODAG. The RCSS MUST be incremented when the root sendschild to query from aDIO where at least one ofparent the most recent changes in protected options. This specification adds flags to indicate which optionsis modified. It MUST propagated down without a change together with the options that it protects. During the straight part of the lollipop, a second reboot of the root might not be recognizedare requested anda same value ofthe freshest RCSSmay appear with new values into which theprotected options. Forquerying node was synchronized. 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|D|P[M|O| Flg | LastSync RCSS | Option(s)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Updated DIS Base Object Updated fields: R One Bit, indicates thatreasontheprotected options MUST be present in the DIOs during the straight part ofRIO is requested D One Bit, indicates that thelollipop andDCO is requested P One Bit, indicates that theroot SHOULD move rapidly away fromPIO(s) is(are) requested M One Bit, indicates that thestraight part onceMOPex is requested O One Bit, indicates that thenetwork has settled by resettingGCO is requested Last Synchronized RCSS One Byte, indicates the freshest RCSS to0,whichplaces the RCSS in the circular region ofthelollipop. 5. Protected Options The protected options are: 1. The Route Information Option (RIO) defined in section 6.7.5 of [RPL] 2. The DODAG Configuration Option (DCO) defined in section 6.7.6 of [RPL] 3. The Prefix Information Option (PIO) defined in section 6.7.10 of [RPL] 4. The Extended MOPquerier was synchronized 4.3. New Abbreviated Option(MOPex) defined in [MOPEX-CAP] 5. The Global CapabilitiesOption(GCO) defined in [MOPEX-CAP]When a protected option is unchanged from the previous DIOs, therootRoot MAY replace it with its abbreviated version. The abbreviated version of an option is transported in a 4-bytes long Abbreviated Option Option (AOO). The AOO indicates the RCSS at which the protected option was last changed. 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 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | Abbrev. opt. | Last Mod RCSS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure2:3: Abbreviated Option Option Format Option fields: Option Type One byte indicating "Abbreviated Option", see Table12 in Section 8.2 Option Length MUST be set to 2 indicating Option data of 2 bytes Abbreviated Option The Option Type of the option beingabreviatedabbreviated Last Modification RCSS The RCSS at which the option was last modified6. Child5. RCSS OperationWhenSettings and updates to network-wide parameters are initiated by the Root and propagated down the DODAG in RPL Control Message Options in DIO messages. The DIO messages arrive asynchronously via different parents and may confuse afieldchild. The RCSS allows the child to keep synchronized to the latest settings network-wide parameters that are propagated in protected options. The RCSS ismodifieda sequence number that is operated as specified in section 7.2 of [RPL]. The scope of an RCSS is one DODAG within one RPL Instance. The RCSS applies to a DIO Message and a same value of the RCSS can be used in DIO messages that are sent consecutively with no change in the protected options. The Root of the DODAG is autoritative to set and update the RCSS and the options that it protects. The RCSS and the protected options are propagated together down the DODAG without a change, more in Section 5.1. The RCSS allows afashion that may affectchild node to recognize theroutingfresher DIO Message(s) as received from one orforwarding decision insidemore advertising parents and to use only parents with a consistent state of network-wide parameters, more in Section 5.2. By extension, the RCSS is also defined for each protected option. A child associates an option with theDODAG,values of theroot MUSTRCSS indicated in DIO Messages in which the option is advertised and uses it to assess the relative freshness of different versions of an option, more in Section 5.3. Unchanged options may be sent in full, elided, or in the abbreviated form specified in Section 4.3. Eliding an option is NOT RECOMMENDED as it may cause multiple children to resynchronize the option even if it was not changed. If the link MTU does not permit to send a single DIO message with all the options packaged then theprotected options. Unchangedoptions may beabreviated as discussedspread over multiple consecutive DIO messages with the same RCSS that are sent inSection 5.a rapid sequence. 5.1. Updating the RCSS ThefreshnessRCSS is incremented by the Root using a lollipop technique as specified in section 7.2 of [RPL]. RCSS values are comparable if they are within a window of comparison of SEQUENCE_WINDOW increments or one indicates a reboot. A reboot of the Root is detected when the RCSS moves from the circular to the straight part of the lollipop. In order to maximize the chances of detection, the straight part should be kept very short with a RECOMMENDED initialization at 252 or above. During the straight part of the lollipop, a second reboot of the Root might not be recognized and a same value of the RCSS may reappear with different settings in the protected options. For that reason the protected optionsis asserted basedMUST be provided in full with each increment on theRCSS.RCSS during the straight part of the lollipop. When a field is modified in one of the protected options, the Root MUST send a DIO with an incremented RCSS and the modified protected option(s) in full. The Root MAY also update the Version Number to form a new DODAG altogether. The Root SHOULD jump rapidly away from the straight part once the network has sufficiently settled by resetting the RCSS to 0, which places the RCSS in the circular region of the lollipop, where the protected options MAY be elided or abbreviated. 5.2. RCSS Freshness and Parent selection A child node maintains the freshest RCSS received from its parents in each of the RPL Instances that it participates to, and uses that RCSS for its own DIO messages. A child and a candidate parent are out-of-sync when the RCSS values that they maintain for a RPL Instance arecompared as describednot comparable. A child MUST NOT use a parent that is out-of-sync unless no other parent is available, insection 7.2 of [RPL].which case it MAY align its RCSS and resynchronize to that parent. When a child receives from a candidate parentexposesanew RCSS,DIO with an RCSS that is fresher than the one it is using, the child MUST synchronize the state relative to the protected options with that parent. The child nodeSHOULDMUST refrain from using that parent and the new state including the RCSS, until it hasresynchronizedsynchronized all of the protectedfieldsoptions tothe latest.that RCSS. When it isresynchronized,fully synchronized, the child may then use that parent and the new RCSS. Using a back-level parent may cause packets to be dropped, misunderstood or misrouted. The child SHOULD refrain from usingother parentsa parent thatexposeexposes an olderRCSS.RCSS if the change causes an incompatibility issue. 5.3. RCSS of an Option By extension, the RCSS of an option is maintained by a child as the freshest RCSS indicated by a DIO message from a candidate parent in which the option was present in the abbreviated form or in full. A childMUST storemaintains a state for thecontentfreshest RCSS received for each ofallthe protected options andkeep track ofsynchronizes its state for each option to the freshest RCSS ofthethat option. When a child receives a DIOwhere each of these option was last seen infrom anon-abbreviated version.candidate parent, for each option: Ifthatthe Option is advertised in the abbreviated form then the RCSS that the DIO advertises for the option isfresher thanthe Last Modification RCSS of the AOO, else If the Option is advertised in full then theabbreviated version ofRCSS that the DIO advertises for the option is the RCSS of the DIO, else If the Option is elided then thechildRCSS isup-to-dateunspecified but it is at most as fresh as the RCSS of the DIO, and the RCSS of the DIO is assumed for the comparison This means thatoption. If a protected option elidedif an Option is advertised in both the abbreviated form and in full in a same DIOand not abbreviated, andmessage then thechildRCSS in the AOO has precedence. To keep the RCSS comparable for each option, the RCSS of an option must lazily progress along with the global RCSS even if there was no change in the options. Each parent including the Root MUST advertise astorednew RCSSvalueforthateach of the protected options at least once within a sliding window of SEQUENCE_WINDOW increments. When an option was not changed for a new RCSS, one parent may advertise it in the abbreviated form while another sends the option in full only, e.g., in response to a DIS message. A fresher RCSS indicates that the option islowereither the same or carries a more recent update than the one with an older RCSS. The RCSS of an option may be obtained from a DIO message that carries the option in full even if theDIO,RCSS of the DIO is not the freshest across parents, as long as the RCSS of the DIO is fresher than the current one for that option. If current value of the maintained RCSS for an given option is not as fresh or fresher than that advertised in a DIO message, then the child MUSTqueryupdate its state for that optionfromas specified in Section 6. 6. Synchronizing Options A child can resynchronize any of the protected options to the latest RCSS by sending a DIS Message to a candidate parent that advertises that RCSS in DIO messages. The child MUST set the desired combination of 'R', 'D', 'P', 'M' and 'O' flags toensureindicate the option(s) that it needs updated. The child MUST signal in the Last Synchronized RCSS field of the DIS the freshest value of RCSS for which it was fully synchronized, or a conventional value of OUT-OF- SYNC-RCSS of 129 if it was never synchronized or is out-of-sync with the parent. The DIO message that ishassent in response MUST contain in full all the options that are requested and that were updated since thelatest.Last Synchronized RCSS in the DIS Message. This means all of the protected options of the child was never synchronized or isdoneout-of- sync witha DISthe parent. The other options MUST be added in the abbreviated form. The options MAY be spread over more than one DIO messageas indicatedsent inSection 7.a quick sequence and the child SHOULD wait a reasonable technology-dependent time before it retries the request. 7.Pulling Options 8.Security Considerations TBD9.8. IANA Considerations 8.1. New DODAG Information Object Flags 5 new bits are allocated in the Registry for the DODAG Information Object (DIO) Flags defined for [RPL]. +------------+----------------------------+--------------+ | Bit Number | Capability description | Defining RFC | +============+============================+==============+ | 0 | 'R' bit "RIO requested" | THIS RFC | +------------+----------------------------+--------------+ | 1 | 'D' bit "DCO requested" | THIS RFC | +------------+----------------------------+--------------+ | 2 | 'P' bit "PIO(s) requested" | THIS RFC | +------------+----------------------------+--------------+ | 3 | 'M' bit "MOPex requested" | THIS RFC | +------------+----------------------------+--------------+ | 4 | 'O' bit "GCO irequested" | THIS RFC | +------------+----------------------------+--------------+ Table 1: New DIO Flags 8.2. New RPL Control Message Option A newentriesentry is required for the new option of type "Abbreviated Option", from the "RPL Control Message Options" space defined for [RPL].+----------+--------------------+-----------++----------+--------------------+--------------+ |ValueCode |MeaningDescription |ReferenceDefining RFC |+==========+====================+===========++==========+====================+==============+ | TBD IANA | Abbreviated Option | THIS RFC |+----------+--------------------+-----------++----------+--------------------+--------------+ Table1:2: New Option Type10. Security Considerations TBD 11.9. Acknowledgments12.10. Normative References [MOPEX-CAP] Jadhav, R. and P. Thubert, "Mode of Operation extension and Capabilities", Work in Progress, Internet-Draft,draft-ietf-roll-mopex- cap-00,draft-ietf-roll-mopex-cap-00, 9 August 2019,<https://tools.ietf.org/html/draft- ietf-roll-mopex-cap-00>.<https://tools.ietf.org/html/draft-ietf-roll-mopex-cap- 00>. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>. [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January 2014, <https://www.rfc-editor.org/info/rfc7102>. [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for Constrained-Node Networks", RFC 7228, DOI 10.17487/RFC7228, May 2014, <https://www.rfc-editor.org/info/rfc7228>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. [RPL] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks", RFC 6550, DOI 10.17487/RFC6550, March 2012, <https://www.rfc-editor.org/info/rfc6550>. [USE_OF_RPL_INFO] Robles, I., Richardson, M., and P. Thubert, "Using RPL Option Type, Routing Header for Source Routes and IPv6-in- IPv6 encapsulation in the RPL Data Plane", Work in Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-31, 7 August 2019,<https://tools.ietf.org/html/draft-ietf-roll-useofrplinfo- 31>. 13.<https://tools.ietf.org/html/draft-ietf- roll-useofrplinfo-31>. 11. Informative References Authors' Addresses Pascal Thubert (editor) Cisco Systems, Inc Building D, 45 Allee des Ormes - BP1200 06254 Mougins - Sophia Antipolis France Phone: +33 497 23 26 34 Email: pthubert@cisco.com Dominique Barthel Orange Labs 28 chemin du Vieux ChĂȘne 38243 Meylan France Email: dominique.barthel@orange.com Rahul Arvind Jadhav Huawei Tech Kundalahalli Village, Whitefield, Bangalore 560037 Karnataka India Phone: +91-080-49160700 Email: rahul.ietf@gmail.com