< draft-thubert-roll-eliding-dio-information-01.txt   draft-thubert-roll-eliding-dio-information-02.txt >
ROLL P. Thubert, Ed. ROLL P. Thubert, Ed.
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Updates: 6550 (if approved) D. Barthel Updates: 6550 (if approved) R.A. Jadhav
Intended status: Standards Track Orange Labs Intended status: Standards Track Huawei Tech
Expires: 19 April 2020 R.A. Jadhav Expires: 27 April 2020 L. Zhao
Huawei Tech Cisco Systems
17 October 2019 D. Barthel
Orange Labs
25 October 2019
Eliding and Querying RPL Information Eliding and Querying RPL Information
draft-thubert-roll-eliding-dio-information-01 draft-thubert-roll-eliding-dio-information-02
Abstract Abstract
This document presents a method to safely elide a group of global RPL This document presents a method to safely elide a group of RPL
options by synchonizing the state associated with each of these options in a DIO message by synchonizing the state associated with
options between parent and child using a new sequence counter in DIO each of these options between parent and child using a new sequence
messages. A child that missed a DIO message with an update of any of counter in DIO or DAO messages. A child that missed a DIO message
those protected options detects it by the change of sequence counter with an update of any of those protected options detects it by the
and queries the update with a DIS Message. change of sequence counter and queries the update with a DIS Message.
The draft also provides a method to fully elide the options in a DAO
message.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 19 April 2020. This Internet-Draft will expire on 27 April 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 14 skipping to change at page 2, line 20
extracted from this document must include Simplified BSD License text extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 5 3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 5
4. Message Formats . . . . . . . . . . . . . . . . . . . . . . . 5 4. Message Formats . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Updated DIO Base Object . . . . . . . . . . . . . . . . . 5 4.1. Updated DIO Base Object . . . . . . . . . . . . . . . . . 6
4.2. Updated DIS Base Object . . . . . . . . . . . . . . . . . 6 4.2. Updated DIS Base Object . . . . . . . . . . . . . . . . . 6
4.3. New Abbreviated Option Option . . . . . . . . . . . . . . 7 4.3. New Abbreviated Option Option . . . . . . . . . . . . . . 7
4.4. Updated DAO Base Object . . . . . . . . . . . . . . . . . 8
5. RCSS Operation . . . . . . . . . . . . . . . . . . . . . . . 8 5. RCSS Operation . . . . . . . . . . . . . . . . . . . . . . . 8
5.1. Updating the RCSS . . . . . . . . . . . . . . . . . . . . 8 5.1. Updating the RCSS . . . . . . . . . . . . . . . . . . . . 9
5.2. RCSS Freshness and Parent selection . . . . . . . . . . . 9 5.2. RCSS Freshness and Parent selection . . . . . . . . . . . 10
5.3. RCSS of an Option . . . . . . . . . . . . . . . . . . . . 10 5.3. RCSS of an Option . . . . . . . . . . . . . . . . . . . . 10
6. Synchronizing Options . . . . . . . . . . . . . . . . . . . . 11 6. Synchronizing Options . . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 7. Abbreviating the DAO Message . . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
8.1. New DODAG Information Object Flags . . . . . . . . . . . 11 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
8.2. New RPL Control Message Option . . . . . . . . . . . . . 12 9.1. New DODAG Information Solicitation Flags . . . . . . . . 14
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 9.2. New DODAG Advertisement Object Flag . . . . . . . . . . . 14
10. Normative References . . . . . . . . . . . . . . . . . . . . 12 9.3. New RPL Control Message Option . . . . . . . . . . . . . 14
11. Informative References . . . . . . . . . . . . . . . . . . . 13 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 11. Normative References . . . . . . . . . . . . . . . . . . . . 15
12. Informative References . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
Classical Link State protocol synchronize their Link State Database Classical Link State protocol synchronize their Link State Database
(LSDB) by sequencing every change. Each interested node maintains (LSDB) by sequencing every change. Each interested node maintains
the last sequence of the LSDB it is synchronizing with. If the last the last sequence of the LSDB it is synchronizing with. If the last
known sequence number is older than the current, the node needs to 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 learn one by one all the state changes between the last known and the
current state. current state.
skipping to change at page 5, line 31 skipping to change at page 5, line 38
This document adds a new field called RCSS to the DIO message. The This document adds a new field called RCSS to the DIO message. The
RCSS is a sequence counter set by the Root and operated as specified RCSS is a sequence counter set by the Root and operated as specified
in Section 7 of [RPL], more in Section 5. in Section 7 of [RPL], more in Section 5.
This document also introduces a new RPL Control Message Option called This document also introduces a new RPL Control Message Option called
the Abbreviated Option Option (AOO). The AOO is the compressed the Abbreviated Option Option (AOO). The AOO is the compressed
replacement of a protected option that indicates the RCSS of the last replacement of a protected option that indicates the RCSS of the last
change of that option, but elides its content, more in Section 4.3. change of that option, but elides its content, more in Section 4.3.
This document modifies the DIS Base Objectto enable the individual This document modifies the DIS Base Object to enable the individual
query of the protected options by a node that missed a change, more query of the protected options by a node that missed a change, more
in Section 4.2. in Section 4.2.
4. Message Formats This document also enables to abbreviate a full DAO message when all
the options are unchanged from the previous DAO message that was
positively acknowledged. In that case the DAO is resent with the
same DAOSequence and all the options are elided. A new flag in the
DAO Base Object indicates that this is an abbreviated DAO message,
more in Section 7.
4. Message Formats
4.1. Updated DIO Base Object 4.1. Updated DIO Base Object
The format of the DIO Base Object is defined in section 6.3.1 of The format of the DIO Base Object is defined in section 6.3.1 of
[RPL]. This specification uses a 8th octet that was reserved in [RPL]. This specification uses a 8th octet that was reserved in
[RPL] to transport the RCSS. [RPL] to transport the RCSS.
0 1 2 3 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 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 | | RPLInstanceID |Version Number | Rank |
skipping to change at page 7, line 20 skipping to change at page 7, line 26
O O
One Bit, indicates that the GCO is requested One Bit, indicates that the GCO is requested
Last Synchronized RCSS Last Synchronized RCSS
One Byte, indicates the freshest RCSS to which the querier was One Byte, indicates the freshest RCSS to which the querier was
synchronized synchronized
4.3. New Abbreviated Option Option 4.3. New Abbreviated Option Option
When a protected option is unchanged from the previous DIOs, the Root The abbreviated version of an option is a replacement for any option.
MAY replace it with its abbreviated version. The abbreviated version It does not advertise the content of the option but indicates the
of an option is transported in a 4-bytes long Abbreviated Option sender's value for the RCSS of that option. It is transported in a
Option (AOO). The AOO indicates the RCSS at which the protected 4-bytes long Abbreviated Option Option (AOO) with a format as below:
option was last changed.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Type | Option Length | Abbrev. opt. | Last Mod RCSS | | Option Type | Option Length | Abbrev. opt. | Last Mod RCSS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Abbreviated Option Option Format Figure 3: Abbreviated Option Option Format
Option fields: Option fields:
Option Type Option Type
One byte indicating "Abbreviated Option", see Table 2 in One byte indicating "Abbreviated Option", see Table 3 in
Section 8.2 Section 9.3
Option Length Option Length
MUST be set to 2 indicating Option data of 2 bytes MUST be set to 2 indicating Option data of 2 bytes
Abbreviated Option Abbreviated Option
The Option Type of the option being abbreviated The Option Type of the option being abbreviated
Last Modification RCSS Last Modification RCSS
The RCSS at which the option was last modified The RCSS at which the option was last modified
4.4. Updated DAO Base Object
The format of the DAO Base Object is defined in section 6.4.1 of
[RPL]. This specification adds a 'A' flag in to indicate the DAO
options eliding.
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 |K|D|A| Flags | Reserved | DAOSequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ DODAGID* +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+
Figure 4: Updated DAO Base Object
Updated fields:
A
One Bit, indicates DAO in abbreviated version
5. RCSS Operation 5. RCSS Operation
Settings and updates to network-wide parameters are initiated by the Settings and updates to network-wide parameters are initiated by the
Root and propagated down the DODAG in RPL Control Message Options in Root and propagated down the DODAG in RPL Control Message Options in
DIO messages. The DIO messages arrive asynchronously via different DIO messages. The DIO messages arrive asynchronously via different
parents and may confuse a child. The RCSS allows the child to keep parents and may confuse a child. The RCSS allows the child to keep
synchronized to the latest settings network-wide parameters that are synchronized to the latest settings network-wide parameters that are
propagated in protected options. propagated in protected options.
The RCSS is a sequence number that is operated as specified in The RCSS is a sequence number that is operated as specified in
skipping to change at page 8, line 37 skipping to change at page 9, line 17
parents with a consistent state of network-wide parameters, more in parents with a consistent state of network-wide parameters, more in
Section 5.2. Section 5.2.
By extension, the RCSS is also defined for each protected option. A By extension, the RCSS is also defined for each protected option. A
child associates an option with the values of the RCSS indicated in child associates an option with the values of the RCSS indicated in
DIO Messages in which the option is advertised and uses it to assess DIO Messages in which the option is advertised and uses it to assess
the relative freshness of different versions of an option, more in the relative freshness of different versions of an option, more in
Section 5.3. Section 5.3.
Unchanged options may be sent in full, elided, or in the abbreviated Unchanged options may be sent in full, elided, or in the abbreviated
form specified in Section 4.3. Eliding an option is NOT RECOMMENDED form specified in Section 4.3. Which form to use depends on the
as it may cause multiple children to resynchronize the option even if RCSS, more in Section 5.3
it was not changed.
If the link MTU does not permit to send a single DIO message with all If the link MTU does not permit to send a single DIO message with all
the options packaged then the options may be spread over multiple the options packaged then the options may be spread over multiple
consecutive DIO messages with the same RCSS that are sent in a rapid consecutive DIO messages with the same RCSS that are sent in a rapid
sequence. sequence.
5.1. Updating the RCSS 5.1. Updating the RCSS
The RCSS is incremented by the Root using a lollipop technique as The RCSS is incremented by the Root using a lollipop technique as
specified in section 7.2 of [RPL]. RCSS values are comparable if specified in section 7.2 of [RPL]. RCSS values are comparable if
skipping to change at page 9, line 30 skipping to change at page 10, line 9
The Root SHOULD jump rapidly away from the straight part once the The Root SHOULD jump rapidly away from the straight part once the
network has sufficiently settled by resetting the RCSS to 0, which network has sufficiently settled by resetting the RCSS to 0, which
places the RCSS in the circular region of the lollipop, where the places the RCSS in the circular region of the lollipop, where the
protected options MAY be elided or abbreviated. protected options MAY be elided or abbreviated.
5.2. RCSS Freshness and Parent selection 5.2. RCSS Freshness and Parent selection
A child node maintains the freshest RCSS received from its parents in 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 each of the RPL Instances that it participates to, and uses that RCSS
for its own DIO messages. for its own DIO messages once it has all the protected options
synchronized to it.
A child and a candidate parent are out-of-sync when the RCSS values A child and a candidate parent are out-of-sync when the RCSS values
that they maintain for a RPL Instance are not comparable. A child that they maintain for a RPL Instance are not comparable. A child
MUST NOT use a parent that is out-of-sync unless no other parent is MUST NOT use a parent that is out-of-sync unless no other parent is
available, in which case it MAY align its RCSS and resynchronize to available, in which case it MAY align its RCSS and resynchronize to
that parent. that parent.
When a child receives from a candidate parent a DIO with an RCSS that When a child receives from a candidate parent a DIO with an RCSS that
is fresher than the one it is using, the child MUST synchronize the is fresher than the one it is using, the child MUST synchronize the
state relative to the protected options with that parent. The child state relative to the protected options with that parent. The child
skipping to change at page 10, line 7 skipping to change at page 10, line 33
that RCSS. When it is fully synchronized, the child may then use that RCSS. When it is fully synchronized, the child may then use
that parent and the new RCSS. that parent and the new RCSS.
Using a back-level parent may cause packets to be dropped, Using a back-level parent may cause packets to be dropped,
misunderstood or misrouted. The child SHOULD refrain from using a misunderstood or misrouted. The child SHOULD refrain from using a
parent that exposes an older RCSS if the change causes an parent that exposes an older RCSS if the change causes an
incompatibility issue. incompatibility issue.
5.3. RCSS of an Option 5.3. RCSS of an Option
By extension, the RCSS of an option is maintained by a child as the By extension, the RCSS of an option is maintained by all nodes and is
freshest RCSS indicated by a DIO message from a candidate parent in defined for all but the root as the freshest RCSS indicated by a DIO
which the option was present in the abbreviated form or in full. A message from a candidate parent in which the option was present, in
child maintains a state for the freshest RCSS received for each of the abbreviated form or in full. A child maintains a state for the
the protected options and synchronizes its state for each option to RCSS of each of the protected options and synchronizes its state for
the freshest RCSS of that option. the options by comparing that RCSS with the one found in new DIO
messages for the option.
Protected options may be sent in full, elided, or in the abbreviated
form. Which form to use depends on the RCSS of the option that a
parent maintains:
* A parent MAY use either form when the RCSS is not changed from a
previous DIO; eliding options is PREFERRED in stable conditions to
save resources.
* When a protected option is updated, the RCSS is mechanically
incremented, and the new option MUST be sent in full on the first
DIO that advertises that new RCSS and the corresponding AOO SHOULD
NOT be added.
* When the RCSS is updated but a protected option is unchanged, the
parent SHOULD NOT fully elide the option as it may cause multiple
children to resynchronize it to no avail. The use of AOO is
RECOMMENDED unless it may cause a desynchronization for that
option, in which case the option SHOULD be placed in full more in
Section 5.3.
When a child receives a DIO from a candidate parent, for each option: When a child receives a DIO from a candidate parent, for each option:
If the Option is advertised in the abbreviated form then the RCSS If the Option is advertised in the abbreviated form then the RCSS
that the DIO advertises for the option is the Last Modification that the DIO advertises for the option is the Last Modification
RCSS of the AOO, else RCSS of the AOO, else
If the Option is advertised in full then the RCSS that the DIO If the Option is advertised in full then the RCSS that the DIO
advertises for the option is the RCSS of the DIO, else advertises for the option is the RCSS of the DIO, else
skipping to change at page 10, line 48 skipping to change at page 11, line 46
advertise it in the abbreviated form while another sends the option 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 in full only, e.g., in response to a DIS message. A fresher RCSS
indicates that the option is either the same or carries a more recent indicates that the option is either the same or carries a more recent
update than the one with an older RCSS. update than the one with an older RCSS.
The RCSS of an option may be obtained from a DIO message that carries The RCSS of an option may be obtained from a DIO message that carries
the option in full even if the RCSS of the DIO is not the freshest the option in full even if the RCSS of the DIO is not the freshest
across parents, as long as the RCSS of the DIO is fresher than the across parents, as long as the RCSS of the DIO is fresher than the
current one for that option. current one for that option.
If current value of the maintained RCSS for an given option is not as If the current value of the maintained RCSS for a given option is not
fresh or fresher than that advertised in a DIO message, then the fresher or as fresh as that advertised in a DIO message, then the
child MUST update its state for that option as specified in child MUST update its state for that option as specified in
Section 6. Section 6.
6. Synchronizing Options 6. Synchronizing Options
As the value of the RCSS progresses, it is NOT RECOMMENDED for a
child to attempt to resynchronize to an intermediate value of a RCSS
with a parent that is already back level vs. the lastest known RCSS
or the RCSS that this child is currently using, or a parent that is
out-of-sync with self. The child MAY only do so if it lost
reachability to all the candidate parents that advertise a fresher
and not out-of-sync value of RCSS.
A child can resynchronize any of the protected options to the latest A child can resynchronize any of the protected options to the latest
RCSS by sending a DIS Message to a candidate parent that advertises RCSS by sending a DIS Message to a candidate parent that advertises
that RCSS in DIO messages. The child MUST set the desired that RCSS in DIO messages. The child MUST set the desired
combination of 'R', 'D', 'P', 'M' and 'O' flags to indicate the combination of 'R', 'D', 'P', 'M' and 'O' flags to indicate the
option(s) that it needs updated. The child MUST signal in the Last 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 Synchronized RCSS field of the DIS the freshest value of RCSS for
which it was fully synchronized, or a conventional value of OUT-OF- 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 SYNC-RCSS of 129 if it was never synchronized or is out-of-sync with
the parent. the parent.
The DIO message that is sent in response MUST contain in full all the The DIO message that is sent in response MUST contain in full all the
options that are requested and that were updated since the Last options that are requested and that were updated since the Last
Synchronized RCSS in the DIS Message. This means all of the Synchronized RCSS in the DIS Message. This means all of the
protected options of the child was never synchronized or is out-of- protected options of the child was never synchronized or is out-of-
sync with the parent. The other options MUST be added in the sync with the parent. The other options MUST be added in the
abbreviated form. The options MAY be spread over more than one DIO abbreviated form. The options MAY be spread over more than one DIO
message sent in a quick sequence and the child SHOULD wait a message sent in a quick sequence. It is possible that the DIS is not
reasonable technology-dependent time before it retries the request. received by the parent or that a DIO that carries all or subset of
the requested options is lost in return. In that case the child MUST
resend a DIS with the bits associated to the options that are still
missing after a reasonable technology-dependent time before it
retries the request. The child MAY use any parent that advertises
the RCSS to get any of the options up to that level.
7. Security Considerations 7. Abbreviating the DAO Message
TBD When a node receives a positive DAO-ACK upon a DAO message for a
given DAOSequence, The DAO-ACK indicates that the DAO was fully
processed by its destination (parent or Root). Until there's a
change in one of the DAO options since that DAOSequence, the next DAO
messages merely refresh the lifetime of the routes. In that case,
increasing the DAOSequence creates undesirable churn up the DODAG for
no added value.
8. IANA Considerations This specification enables a node to refresh the state in a
destination that is associated to one or more DAO message(s) that
were acknowledged by that destination without resending the DAO
message(s) in full. Instead, the node MAY use a single abbreviated
DAO message that is sent to the same destination and with the same
DAOSequence as the DAO message(s) that it refreshes, and with the 'A'
flag set (see Section 4.4) to signal it is an abbreviated DAO.
8.1. New DODAG Information Object Flags This can be more than one message if the node could not package all
its state in a single message, e.g., due to MTU restrictions. In
that case the DAO state that is refreshed is the aggregation of the
DAO messages that were acknowledged for the provided DAOSequence by
that destination.
Upon the abbreviated DAO, the destination refreshes the state
associated to the original DAO message(s) received with that
DAOSequence, typically by extending the lifetimes of the routes that
were advertised with the same duration.
A node MAY also unset 'K' flag in the abbreviated DAP message and not
expect a DAO-ACK, if the node can assume the risk that the DAO is
lost, e.g., if the routes will be refreshed again before the lifetime
expires.
Only the DAO message(s) with the last (freshest) DAOSequence can be a
abbreviated. A nod MUST NOT use an abbreviated DAO with a
DAOSequence that is not the freshest and it MUST NOT use the
abbreviated form of the DAO until the destination has acknowledged
all state associated with that DAOSequence. If a destination
receives an abbreviated DAO with a DAOSequence that is not the
freshest from that node, or the destination does not have a state for
that node, then MUST send a DAO-ACK with a DAO Status indicating an
error. The destination MAY use a new Status of 'Out-of-Sync' in
which case the node MUST resent the DAO Message(s) in full with its
freshest DAOSequence and the destination resynchronizes to that
level.
It is RECOMMENDED to use an abbreviated DAO messages whenever
possible, because a smaller DAO message consumes less energy and
bandwidth and has better chances of delivery. In Non-Storing Mode
the benefits increases with the number of hops to the Root, and in
Storing Mode with the amount of state that is implicitely refreshed.
8. Security Considerations
TBD
9. IANA Considerations
9.1. New DODAG Information Solicitation Flags
5 new bits are allocated in the Registry for the DODAG Information 5 new bits are allocated in the Registry for the DODAG Information
Object (DIO) Flags defined for [RPL]. Solicitation (DIS) Flags defined for [RPL].
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
| Bit Number | Capability description | Defining RFC | | Bit Number | Capability description | Defining RFC |
+============+============================+==============+ +============+============================+==============+
| 0 | 'R' bit "RIO requested" | THIS RFC | | 0 | 'R' bit "RIO requested" | THIS RFC |
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
| 1 | 'D' bit "DCO requested" | THIS RFC | | 1 | 'D' bit "DCO requested" | THIS RFC |
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
| 2 | 'P' bit "PIO(s) requested" | THIS RFC | | 2 | 'P' bit "PIO(s) requested" | THIS RFC |
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
| 3 | 'M' bit "MOPex requested" | THIS RFC | | 3 | 'M' bit "MOPex requested" | THIS RFC |
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
| 4 | 'O' bit "GCO irequested" | THIS RFC | | 4 | 'O' bit "GCO irequested" | THIS RFC |
+------------+----------------------------+--------------+ +------------+----------------------------+--------------+
Table 1: New DIO Flags Table 1: New DIS Flags
8.2. New RPL Control Message Option 9.2. New DODAG Advertisement Object Flag
1 new bit is allocated in the Registry for the Destination
Advertisement Object(DAO) Flags defined for[RPL].
+------------+---------------------------+--------------+
| Bit Number | Capability description | Defining RFC |
+============+===========================+==============+
| 2 | 'A' bit "DAO abbreviated" | THIS RFC |
+------------+---------------------------+--------------+
Table 2: New DAO Flag
9.3. New RPL Control Message Option
A new entry is required for the new option of type "Abbreviated A new entry is required for the new option of type "Abbreviated
Option", from the "RPL Control Message Options" space defined for Option", from the "RPL Control Message Options" space defined for
[RPL]. [RPL].
+----------+--------------------+--------------+ +----------+--------------------+--------------+
| Code | Description | Defining RFC | | Code | Description | Defining RFC |
+==========+====================+==============+ +==========+====================+==============+
| TBD IANA | Abbreviated Option | THIS RFC | | TBD IANA | Abbreviated Option | THIS RFC |
+----------+--------------------+--------------+ +----------+--------------------+--------------+
Table 2: New Option Type Table 3: New Option Type
9. Acknowledgments
10. Normative References 10. Acknowledgments
[MOPEX-CAP] 11. Normative References
Jadhav, R. and P. Thubert, "Mode of Operation extension
and Capabilities", Work in Progress, Internet-Draft,
draft-ietf-roll-mopex-cap-00, 9 August 2019,
<https://tools.ietf.org/html/draft-ietf-roll-mopex-cap-
00>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <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 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RPL] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., [RPL] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
Low-Power and Lossy Networks", RFC 6550, Low-Power and Lossy Networks", RFC 6550,
DOI 10.17487/RFC6550, March 2012, DOI 10.17487/RFC6550, March 2012,
<https://www.rfc-editor.org/info/rfc6550>. <https://www.rfc-editor.org/info/rfc6550>.
[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>.
[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>.
[MOPEX-CAP]
Jadhav, R. and P. Thubert, "Mode of Operation extension
and Capabilities", Work in Progress, Internet-Draft,
draft-ietf-roll-mopex-cap-00, 9 August 2019,
<https://tools.ietf.org/html/draft-ietf-roll-mopex-cap-
00>.
[USE_OF_RPL_INFO] [USE_OF_RPL_INFO]
Robles, I., Richardson, M., and P. Thubert, "Using RPL Robles, I., Richardson, M., and P. Thubert, "Using RPL
Option Type, Routing Header for Source Routes and IPv6-in- Option Type, Routing Header for Source Routes and IPv6-in-
IPv6 encapsulation in the RPL Data Plane", Work in IPv6 encapsulation in the RPL Data Plane", Work in
Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-31, Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-31,
7 August 2019, <https://tools.ietf.org/html/draft-ietf- 7 August 2019, <https://tools.ietf.org/html/draft-ietf-
roll-useofrplinfo-31>. roll-useofrplinfo-31>.
11. Informative References 12. Informative References
Authors' Addresses Authors' Addresses
Pascal Thubert (editor) Pascal Thubert (editor)
Cisco Systems, Inc Cisco Systems, Inc
Building D, 45 Allee des Ormes - BP1200 Building D, 45 Allee des Ormes - BP1200
06254 Mougins - Sophia Antipolis 06254 Mougins - Sophia Antipolis
France France
Phone: +33 497 23 26 34 Phone: +33 497 23 26 34
Email: pthubert@cisco.com 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 Rahul Arvind Jadhav
Huawei Tech Huawei Tech
Kundalahalli Village, Whitefield, Kundalahalli Village, Whitefield,
Bangalore 560037 Bangalore 560037
Karnataka Karnataka
India India
Phone: +91-080-49160700 Phone: +91-080-49160700
Email: rahul.ietf@gmail.com Email: rahul.ietf@gmail.com
Li Zhao
China
200233
SHANGHAI
Xinsi Building, No. 926 Yi Shan Rd
Cisco Systems, Inc
Email: liz3@cisco.com
Dominique Barthel
Orange Labs
28 chemin du Vieux ChĂȘne
38243 Meylan
France
Email: dominique.barthel@orange.com
 End of changes. 37 change blocks. 
87 lines changed or deleted 218 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/