draft-ietf-roll-efficient-npdao-03.txt | draft-ietf-roll-efficient-npdao-04.txt | |||
---|---|---|---|---|
ROLL R. Jadhav, Ed. | ROLL R. Jadhav, Ed. | |||
Internet-Draft Huawei | Internet-Draft Huawei | |||
Intended status: Standards Track P. Thubert | Intended status: Standards Track P. Thubert | |||
Expires: September 30, 2018 Cisco | Expires: January 20, 2019 Cisco | |||
R. Sahoo | R. Sahoo | |||
Z. Cao | Z. Cao | |||
Huawei | Huawei | |||
March 29, 2018 | July 19, 2018 | |||
Efficient Route Invalidation | Efficient Route Invalidation | |||
draft-ietf-roll-efficient-npdao-03 | draft-ietf-roll-efficient-npdao-04 | |||
Abstract | Abstract | |||
This document describes the problems associated with the use of No- | This document describes the problems associated with the use of No- | |||
Path DAO messaging in RPL and signaling changes to improve route | Path DAO messaging in RPL and signaling changes to improve route | |||
invalidation efficiency. | invalidation efficiency. | |||
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 | |||
skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
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 September 30, 2018. | This Internet-Draft will expire on January 20, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 24 ¶ | skipping to change at page 2, line 24 ¶ | |||
2. Problems with current No-Path DAO messaging . . . . . 5 | 2. Problems with current No-Path DAO messaging . . . . . 5 | |||
2.1. Lost NPDAO due to link break to the previous parent . . . 5 | 2.1. Lost NPDAO due to link break to the previous parent . . . 5 | |||
2.2. Invalidate routes to dependent nodes of the switching | 2.2. Invalidate routes to dependent nodes of the switching | |||
node . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | node . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.3. Route downtime caused by asynchronous operation of | 2.3. Route downtime caused by asynchronous operation of | |||
NPDAO and DAO . . . . . . . . . . . . . . . . . . . . . . 6 | NPDAO and DAO . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3. Requirements for the No-Path DAO Optimization . . . . . . . . 6 | 3. Requirements for the No-Path DAO Optimization . . . . . . . . 6 | |||
3.1. Req#1: Tolerant to link failures to the previous | 3.1. Req#1: Tolerant to link failures to the previous | |||
parents . . . . . . . . . . . . . . . . . . . . . . . . . 6 | parents . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.2. Req#2: Dependent nodes route invalidation on parent | 3.2. Req#2: Dependent nodes route invalidation on parent | |||
switching . . . . . . . . . . . . . . . . . . . . . . . . 6 | switching . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.3. Req#3: No impact on traffic while NPDAO operation in | 3.3. Req#3: No impact on traffic while NPDAO operation in | |||
progress . . . . . . . . . . . . . . . . . . . . . . . . 7 | progress . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4. Proposed changes to RPL signaling . . . . . . . . . . . . . . 7 | 4. Proposed changes to RPL signaling . . . . . . . . . . . . . . 7 | |||
4.1. Change in RPL route invalidation semantics . . . . . . . 7 | 4.1. Change in RPL route invalidation semantics . . . . . . . 7 | |||
4.2. DAO message format changes . . . . . . . . . . . . . . . 7 | 4.2. DAO message format changes . . . . . . . . . . . . . . . 8 | |||
4.3. Destination Cleanup Object (DCO) . . . . . . . . . . . . 8 | 4.3. Destination Cleanup Object (DCO) . . . . . . . . . . . . 9 | |||
4.3.1. Secure DCO . . . . . . . . . . . . . . . . . . . . . 10 | 4.3.1. Secure DCO . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.3.2. DCO Options . . . . . . . . . . . . . . . . . . . . . 10 | 4.3.2. DCO Options . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.3.3. Path Sequence number in the DCO . . . . . . . . . . . 10 | 4.3.3. Path Sequence number in the DCO . . . . . . . . . . . 10 | |||
4.3.4. Destination Cleanup Option Acknowledgement (DCO-ACK) 10 | 4.3.4. Destination Cleanup Option Acknowledgement (DCO-ACK) 10 | |||
4.3.5. Secure DCO-ACK . . . . . . . . . . . . . . . . . . . 11 | 4.3.5. Secure DCO-ACK . . . . . . . . . . . . . . . . . . . 11 | |||
4.4. Other considerations . . . . . . . . . . . . . . . . . . 11 | 4.4. Other considerations . . . . . . . . . . . . . . . . . . 12 | |||
4.4.1. Dependent Nodes invalidation . . . . . . . . . . . . 11 | 4.4.1. Dependent Nodes invalidation . . . . . . . . . . . . 12 | |||
4.4.2. NPDAO and DCO in the same network . . . . . . . . . . 12 | 4.4.2. NPDAO and DCO in the same network . . . . . . . . . . 12 | |||
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
Appendix A. Example DCO Messaging . . . . . . . . . . . . . . . 13 | Appendix A. Example DCO Messaging . . . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
1. Introduction | 1. Introduction | |||
RPL [RFC6550] specifies a proactive distance-vector based routing | RPL [RFC6550] specifies a proactive distance-vector based routing | |||
scheme. The specification has an optional messaging in the form of | scheme. The specification has an optional messaging in the form of | |||
DAO messages using which the 6LBR can learn route towards any of the | DAO messages using which the 6LBR can learn route towards any of the | |||
skipping to change at page 6, line 42 ¶ | skipping to change at page 6, line 42 ¶ | |||
the previous path via (B) may still be available (albeit at | the previous path via (B) may still be available (albeit at | |||
relatively bad metrics). An NPDAO sent from previous route may | relatively bad metrics). An NPDAO sent from previous route may | |||
invalidate the existing route whereas there is no way to determine | invalidate the existing route whereas there is no way to determine | |||
whether the new DAO has successfully updated the route entries on the | whether the new DAO has successfully updated the route entries on the | |||
new path. | new path. | |||
3. Requirements for the No-Path DAO Optimization | 3. Requirements for the No-Path DAO Optimization | |||
3.1. Req#1: Tolerant to link failures to the previous parents | 3.1. Req#1: Tolerant to link failures to the previous parents | |||
When the switching node send the NPDAO message to the previous | When the switching node sends the NPDAO message to the previous | |||
parent, it is normal that the link to the previous parent is prone to | parent, it is normal that the link to the previous parent is prone to | |||
failure. Therefore, it is required that the NPDAO message MUST be | failure. Therefore, it is required that the NPDAO message MUST be | |||
tolerant to the link failure during the switching. | tolerant to the link failure during the switching. The link referred | |||
here represents the link between the node and its previous parent | ||||
(from whom the node is now disassociating). | ||||
3.2. Req#2: Dependent nodes route invalidation on parent switching | 3.2. Req#2: Dependent nodes route invalidation on parent switching | |||
While switching the parent node and sending NPDAO message, it is | While switching the parent node and sending NPDAO message, it is | |||
required that the routing entries to the dependent nodes of the | required that the routing entries to the dependent nodes of the | |||
switching node will be updated accordingly on the previous parents | switching node will be updated accordingly on the previous parents | |||
and other relevant upstream nodes. | and other relevant upstream nodes. | |||
3.3. Req#3: No impact on traffic while NPDAO operation in progress | 3.3. Req#3: No impact on traffic while NPDAO operation in progress | |||
skipping to change at page 7, line 23 ¶ | skipping to change at page 7, line 30 ¶ | |||
4. Proposed changes to RPL signaling | 4. Proposed changes to RPL signaling | |||
4.1. Change in RPL route invalidation semantics | 4.1. Change in RPL route invalidation semantics | |||
As described in Section 1.2, the NPDAO originates at the node | As described in Section 1.2, the NPDAO originates at the node | |||
switching the parent and traverses upstream towards the root. In | switching the parent and traverses upstream towards the root. In | |||
order to solve the problems as mentioned in Section 2, the draft adds | order to solve the problems as mentioned in Section 2, the draft adds | |||
new pro-active route invalidation message called as "Destination | new pro-active route invalidation message called as "Destination | |||
Cleanup Object" (DCO) that originates at a common ancestor node | Cleanup Object" (DCO) that originates at a common ancestor node | |||
between the new and old path. The trigger for the common ancestor | between the new and old path. The common ancestor node generates a | |||
node to generate this DCO is the change in the next hop for the | DCO in response to the change in the next-hop on receiving a regular | |||
target on reception of an update message in the form of regular DAO | DAO for the target. | |||
for the target. | ||||
In the Figure 1, when node D decides to switch the path from B to C, | In the Figure 1, when node D decides to switch the path from B to C, | |||
it sends a regular DAO to node C with reachability information | it sends a regular DAO to node C with reachability information | |||
containing target as address of D and a incremented path sequence | containing target as address of D and a incremented path sequence | |||
number. Node C will update the routing table based on the | number. Node C will update the routing table based on the | |||
reachability information in DAO and in turn generate another DAO with | reachability information in DAO and in turn generate another DAO with | |||
the same reachability information and forward it to H. Node H also | the same reachability information and forward it to H. Node H also | |||
follows the same procedure as Node C and forwards it to node A. When | follows the same procedure as Node C and forwards it to node A. When | |||
node A receives the regular DAO, it finds that it already has a | node A receives the regular DAO, it finds that it already has a | |||
routing table entry on behalf of the target address of node D. It | routing table entry on behalf of the target address of node D. It | |||
skipping to change at page 12, line 17 ¶ | skipping to change at page 12, line 30 ¶ | |||
Even with the changed semantics, the current NPDAO mechanism in | Even with the changed semantics, the current NPDAO mechanism in | |||
[RFC6550] can still be used. There are certain scenarios where | [RFC6550] can still be used. There are certain scenarios where | |||
current NPDAO signalling may still be used, for example, when the | current NPDAO signalling may still be used, for example, when the | |||
route lifetime expiry of the target happens or when the node simply | route lifetime expiry of the target happens or when the node simply | |||
decides to gracefully terminate the RPL session on graceful node | decides to gracefully terminate the RPL session on graceful node | |||
shutdown. Moreover a deployment can have a mix of nodes supporting | shutdown. Moreover a deployment can have a mix of nodes supporting | |||
the proposed DCO and the existing NPDAO mechanism. | the proposed DCO and the existing NPDAO mechanism. | |||
5. Acknowledgements | 5. Acknowledgements | |||
We would like to thank Cenk Gundogan and Simon Duquennoy for their | Many thanks to Cenk Gundogan, Simon Duquennoy, and Georgios | |||
review and comments. | Papadopoulous for their review and comments. | |||
6. IANA Considerations | 6. IANA Considerations | |||
IANA is requested to allocate new ICMPv6 RPL control codes in RPL | IANA is requested to allocate new ICMPv6 RPL control codes in RPL | |||
[RFC6550] for DCO and DCO-ACK messages. | [RFC6550] for DCO and DCO-ACK messages. | |||
+------+---------------------------------------------+--------------+ | +------+---------------------------------------------+--------------+ | |||
| Code | Description | Reference | | | Code | Description | Reference | | |||
+------+---------------------------------------------+--------------+ | +------+---------------------------------------------+--------------+ | |||
| 0x04 | Destination Cleanup Object | This | | | 0x04 | Destination Cleanup Object | This | | |||
skipping to change at page 13, line 22 ¶ | skipping to change at page 13, line 34 ¶ | |||
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>. | |||
8.2. Informative References | 8.2. Informative References | |||
[I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
Thubert, P., "An Architecture for IPv6 over the TSCH mode | Thubert, P., "An Architecture for IPv6 over the TSCH mode | |||
of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-14 (work | |||
in progress), November 2017. | in progress), April 2018. | |||
Appendix A. Example DCO Messaging | Appendix A. Example DCO Messaging | |||
In Figure 1, node (D) switches its parent from (B) to (C). The | In Figure 1, node (D) switches its parent from (B) to (C). The | |||
sequence of actions is as follows: | sequence of actions is as follows: | |||
1. Node D switches its parent from node B to node C | 1. Node D switches its parent from node B to node C | |||
2. D sends a regular DAO(tgt=D,pathseq=x+1,I_flag=1) in the updated | 2. D sends a regular DAO(tgt=D,pathseq=x+1,I_flag=1) in the updated | |||
path to C | path to C | |||
3. C checks for routing entry on behalf of D, since it cannot find | 3. C checks for routing entry on behalf of D, since it cannot find | |||
End of changes. 13 change blocks. | ||||
21 lines changed or deleted | 22 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |