draft-ietf-roll-routing-dispatch-02.txt   draft-ietf-roll-routing-dispatch-03.txt 
roll P. Thubert, Ed. roll P. Thubert, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track C. Bormann Intended status: Standards Track C. Bormann
Expires: April 22, 2017 Uni Bremen TZI Expires: April 28, 2017 Uni Bremen TZI
L. Toutain L. Toutain
IMT-TELECOM Bretagne IMT-TELECOM Bretagne
R. Cragie R. Cragie
ARM ARM
October 19, 2016 October 25, 2016
6LoWPAN Routing Header 6LoWPAN Routing Header
draft-ietf-roll-routing-dispatch-02 draft-ietf-roll-routing-dispatch-03
Abstract Abstract
This specification introduces a new 6LoWPAN dispatch type for use in This specification introduces a new 6LoWPAN dispatch type for use in
6LoWPAN Route-Over topologies, that initially covers the needs of RPL 6LoWPAN Route-Over topologies, that initially covers the needs of RPL
(RFC6550) data packets compression. Using this dispatch type, this (RFC6550) data packets compression. Using this dispatch type, this
specification defines a method to compress RPL Option (RFC6553) specification defines a method to compress RPL Option (RFC6553)
information and Routing Header type 3 (RFC6554), an efficient IP-in- information and Routing Header type 3 (RFC6554), an efficient IP-in-
IP technique and is extensible for more applications. IP technique and is extensible for more applications.
skipping to change at page 1, line 40 skipping to change at page 1, line 40
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 April 22, 2017. This Internet-Draft will expire on April 28, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 1, line 89 skipping to change at page 1, line 89
5.4. Compression Reference for SRH-6LoRH header entries . . . 16 5.4. Compression Reference for SRH-6LoRH header entries . . . 16
5.5. Popping Headers . . . . . . . . . . . . . . . . . . . . . 17 5.5. Popping Headers . . . . . . . . . . . . . . . . . . . . . 17
5.6. Forwarding . . . . . . . . . . . . . . . . . . . . . . . 17 5.6. Forwarding . . . . . . . . . . . . . . . . . . . . . . . 17
6. The RPL Packet Information 6LoRH . . . . . . . . . . . . . . 18 6. The RPL Packet Information 6LoRH . . . . . . . . . . . . . . 18
6.1. Compressing the RPLInstanceID . . . . . . . . . . . . . . 19 6.1. Compressing the RPLInstanceID . . . . . . . . . . . . . . 19
6.2. Compressing the SenderRank . . . . . . . . . . . . . . . 20 6.2. Compressing the SenderRank . . . . . . . . . . . . . . . 20
6.3. The Overall RPI-6LoRH encoding . . . . . . . . . . . . . 20 6.3. The Overall RPI-6LoRH encoding . . . . . . . . . . . . . 20
7. The IP-in-IP 6LoRH Header . . . . . . . . . . . . . . . . . . 23 7. The IP-in-IP 6LoRH Header . . . . . . . . . . . . . . . . . . 23
8. Management Considerations . . . . . . . . . . . . . . . . . . 24 8. Management Considerations . . . . . . . . . . . . . . . . . . 24
9. Security Considerations . . . . . . . . . . . . . . . . . . . 25 9. Security Considerations . . . . . . . . . . . . . . . . . . . 25
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26
10.1. Reserving Space in 6LoWPAN Dispatch Page 1 . . . . . . . 25 10.1. Reserving Space in 6LoWPAN Dispatch Page 1 . . . . . . . 26
10.2. New Critical 6LoWPAN Routing Header Type Registry . . . 26 10.2. New Critical 6LoWPAN Routing Header Type Registry . . . 26
10.3. New Elective 6LoWPAN Routing Header Type Registry . . . 26 10.3. New Elective 6LoWPAN Routing Header Type Registry . . . 26
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27
12.1. Normative References . . . . . . . . . . . . . . . . . . 26 12.1. Normative References . . . . . . . . . . . . . . . . . . 27
12.2. Informative References . . . . . . . . . . . . . . . . . 28 12.2. Informative References . . . . . . . . . . . . . . . . . 28
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 28 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 29
A.1. Examples Compressing The RPI . . . . . . . . . . . . . . 28 A.1. Examples Compressing The RPI . . . . . . . . . . . . . . 29
A.2. Example Of Downward Packet In Non-Storing Mode . . . . . 30 A.2. Example Of Downward Packet In Non-Storing Mode . . . . . 31
A.3. Example of SRH-6LoRH life-cycle . . . . . . . . . . . . . 32 A.3. Example of SRH-6LoRH life-cycle . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
1. Introduction 1. Introduction
The design of Low Power and Lossy Networks (LLNs) is generally The design of Low Power and Lossy Networks (LLNs) is generally
focused on saving energy, a very constrained resource in most cases. focused on saving energy, a very constrained resource in most cases.
The other constraints, such as the memory capacity and the duty The other constraints, such as the memory capacity and the duty
cycling of the LLN devices, derive from that primary concern. Energy cycling of the LLN devices, derive from that primary concern. Energy
is often available from primary batteries that are expected to last is often available from primary batteries that are expected to last
for years, or is scavenged from the environment in very limited for years, or is scavenged from the environment in very limited
quantities. Any protocol that is intended for use in LLNs must be quantities. Any protocol that is intended for use in LLNs must be
skipping to change at page 1, line 130 skipping to change at page 1, line 130
bytes per frame. The need to compress IPv6 packets over IEEE bytes per frame. The need to compress IPv6 packets over IEEE
802.15.4 led to the "6LoWPAN Header Compression" [RFC6282] work 802.15.4 led to the "6LoWPAN Header Compression" [RFC6282] work
(6LoWPAN_HC). (6LoWPAN_HC).
Innovative Route-over techniques have been and are still being Innovative Route-over techniques have been and are still being
developed for routing inside a LLN. In a general fashion, such developed for routing inside a LLN. In a general fashion, such
techniques require additional information in the packet to provide techniques require additional information in the packet to provide
loop prevention and to indicate information such as flow loop prevention and to indicate information such as flow
identification, source routing information, etc. identification, source routing information, etc.
For reasons such as security and the capability to send ICMP errors For reasons such as security and the capability to send ICMPv6 errors
back to the source, an original packet must not be tampered with, and (see "Internet Control Message Protocol (ICMPv6)" [RFC4443]) back to
any information that must be inserted in or removed from an IPv6 the source, an original packet must not be tampered with, and any
packet must be placed in an extra IP-in-IP encapsulation. information that must be inserted in or removed from an IPv6 packet
must be placed in an extra IP-in-IP encapsulation .
This is the case when the additional routing information is inserted This is the case when the additional routing information is inserted
by a router on the path of a packet, for instance the root of a mesh, by a router on the path of a packet, for instance the root of a mesh,
as opposed to the source node, with the non-storing mode of the "IPv6 as opposed to the source node, with the non-storing mode of the "IPv6
Routing Protocol for Low-Power and Lossy Networks" [RFC6550] (RPL). Routing Protocol for Low-Power and Lossy Networks" [RFC6550] (RPL).
This is also the case when some routing information must be removed This is also the case when some routing information must be removed
from a packet that flows outside the LLN. from a packet that flows outside the LLN.
"When to use RFC 6553, RFC 6554 and IPv6-in-IPv6" "When to use RFC 6553, RFC 6554 and IPv6-in-IPv6"
skipping to change at page 1, line 565 skipping to change at page 1, line 566
Figure 6: The SRH-6LoRH. Figure 6: The SRH-6LoRH.
The 6LoRH Type of a SRH-6LoRH header indicates the compression level The 6LoRH Type of a SRH-6LoRH header indicates the compression level
used for that header. used for that header.
The fields following the 6LoRH Type are compressed addresses The fields following the 6LoRH Type are compressed addresses
indicating the consecutive hops, and are ordered from the first to indicating the consecutive hops, and are ordered from the first to
the last hop. the last hop.
All the addresses in a given SRH-6LoRH header MUST be compressed in All the addresses in a given SRH-6LoRH header MUST be compressed in
an identical fashion, so the Length of the compressed for is the same an identical fashion, so the Length of the compressed form is the
for all. same for all.
In order to get different degrees of compression, multiple In order to get different degrees of compression, multiple
consecutive SRH-6LoRH headers MUST be used. consecutive SRH-6LoRH headers MUST be used.
Type 0 means that the address is compressed down to one byte, whereas Type 0 means that the address is compressed down to one byte, whereas
Type 4 means that the address is provided in full in the SRH-6LoRH Type 4 means that the address is provided in full in the SRH-6LoRH
with no compression. The complete list of Types of SRH-6LoRH and the with no compression. The complete list of Types of SRH-6LoRH and the
corresponding compression level are provided in Figure 7: corresponding compression level are provided in Figure 7:
+-----------+----------------------+ +-----------+----------------------+
skipping to change at page 1, line 1125 skipping to change at page 1, line 1126
fragment and for packets going upwards. fragment and for packets going upwards.
8. Management Considerations 8. Management Considerations
Though it is possible to decompress a packet at any hop, this Though it is possible to decompress a packet at any hop, this
specification is optimized to enable that a packet is forwarded in specification is optimized to enable that a packet is forwarded in
its compressed form all the way, and it makes sense to deploy its compressed form all the way, and it makes sense to deploy
homogeneous networks, where all nodes, or no node at all, use the homogeneous networks, where all nodes, or no node at all, use the
compression technique detailed therein. compression technique detailed therein.
This specification does not provide a method to discover the This specification aims at a simple implementation running in
capability by a next-hop device to support the compression technique, constrained nodes, so it does indeed expect an homogeneous network
or the incremental addition of 6LoWPAN Routing Header as new and as a consequence it does not provide a method to determine the
specifications are published, considering that such extraneous code level of support by the next hops at forwarding time.
would overburden many constrained devices. This specification does
not require extraneous code to exchange and handle error messages for
mismatch situations, either.
It is thus critical to keep the network homogeneous, or at least Should an extension to this specification provide such a method,
provide in forwarding nodes the knowledge of the support by the next forwarding nodes could compress or uncompress the RPL artifacts
hops. This is either a deployment issue, by deploying only devices appropriately and enable a backward compatibility between nodes that
with a same capability, or a management issue, by configuring all support this specification and nodes that do not.
devices to either use, or not use, a certain level of this
compression technique and its future additions. It results that this specification does not attempt to enable such
backwards compatibility. It does not require extraneous code to
exchange and handle error messages to correct automatically mismatch
situations, either.
When a packet is expected to carry a 6LoRH header but it does not,
the node that discovers the issue is expected to send an ICMPv6 error
message to the root, at an adapted rate limitation and with a Type 4
indicating a "Parameter Problem", and a Code 0 indicating an
"erroneous header field encountered", embedding the relevant portion
of the received packet and pointing at the offset therein where the
6LoRH header was expected.
When a packet is received with a 6LoRH header that is not recognized,
the node that discovers the issue is expected to send an ICMPv6 error
message, to the root, at an adapted rate limitation and with a Type 4
indicating a "Parameter Problem", and a Code 1 indicating an
"unrecognized Next Header type", embedding the relevant portion of
the received packet and pointing at the offset therein where the
6LoRH header was expected.
In both cases, the node SHOULD NOT place a 6LoRH header defined in
this specification in the resulting message, and should either omit
the RPI or place it uncompressed after the IPv6 header.
In both cases also, an alternate management method may be preferred
in order to notify the network administrator that there is a
configuration error.
Keeping the network homogeneous is either a deployment issue, by
deploying only devices with a same capability, or a management issue,
by configuring all devices to either use, or not use, a certain level
of this compression technique and its future additions.
In particular, the situation where a node receives a message with a In particular, the situation where a node receives a message with a
Critical 6LoWPAN Routing Header that it does not understand is an Critical 6LoWPAN Routing Header that it does not understand is an
administrative error whereby the wrong device is placed in a network, administrative error whereby the wrong device is placed in a network,
or the device is mis-configured. or the device is mis-configured.
When a mismatch situation is detected, it is expected that the device When a mismatch situation is detected, it is expected that the device
raises some management alert, indicating the issue, e.g. that it has raises some management alert, indicating the issue, e.g. that it has
to drop a packet with a Critical 6LoRH. to drop a packet with a Critical 6LoRH.
skipping to change at page 27, line 14 skipping to change at page 27, line 41
[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,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
December 1998, <http://www.rfc-editor.org/info/rfc2460>. December 1998, <http://www.rfc-editor.org/info/rfc2460>.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", RFC 4443,
DOI 10.17487/RFC4443, March 2006,
<http://www.rfc-editor.org/info/rfc4443>.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
"Transmission of IPv6 Packets over IEEE 802.15.4 "Transmission of IPv6 Packets over IEEE 802.15.4
Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007,
<http://www.rfc-editor.org/info/rfc4944>. <http://www.rfc-editor.org/info/rfc4944>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
DOI 10.17487/RFC5226, May 2008, DOI 10.17487/RFC5226, May 2008,
<http://www.rfc-editor.org/info/rfc5226>. <http://www.rfc-editor.org/info/rfc5226>.
skipping to change at page 28, line 15 skipping to change at page 28, line 49
12.2. Informative References 12.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-10 (work of IEEE 802.15.4", draft-ietf-6tisch-architecture-10 (work
in progress), June 2016. in progress), June 2016.
[I-D.ietf-roll-useofrplinfo] [I-D.ietf-roll-useofrplinfo]
Robles, I., Richardson, M., and P. Thubert, "When to use Robles, I., Richardson, M., and P. Thubert, "When to use
RFC 6553, 6554 and IPv6-in-IPv6", draft-ietf-roll- RFC 6553, 6554 and IPv6-in-IPv6", draft-ietf-roll-
useofrplinfo-08 (work in progress), September 2016. useofrplinfo-09 (work in progress), October 2016.
[I-D.thubert-6lo-forwarding-fragments] [I-D.thubert-6lo-forwarding-fragments]
Thubert, P. and J. Hui, "LLN Fragment Forwarding and Thubert, P. and J. Hui, "LLN Fragment Forwarding and
Recovery", draft-thubert-6lo-forwarding-fragments-02 (work Recovery", draft-thubert-6lo-forwarding-fragments-02 (work
in progress), November 2014. in progress), November 2014.
[RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C.
Bormann, "Neighbor Discovery Optimization for IPv6 over Bormann, "Neighbor Discovery Optimization for IPv6 over
Low-Power Wireless Personal Area Networks (6LoWPANs)", Low-Power Wireless Personal Area Networks (6LoWPANs)",
RFC 6775, DOI 10.17487/RFC6775, November 2012, RFC 6775, DOI 10.17487/RFC6775, November 2012,
skipping to change at page 31, line 8 skipping to change at page 32, line 8
If the last hop in a SRH-6LoRH is not the final destination then it If the last hop in a SRH-6LoRH is not the final destination then it
removes the SRH-6LoRH before forwarding. removes the SRH-6LoRH before forwarding.
In the particular example illustrated in Figure 20, all addresses in In the particular example illustrated in Figure 20, all addresses in
the DODAG are assigned from a same /112 prefix and the last 2 octets the DODAG are assigned from a same /112 prefix and the last 2 octets
encoding an identifier such as a IEEE 802.15.4 short address. In encoding an identifier such as a IEEE 802.15.4 short address. In
that case, all addresses can be compressed to 2 octets, using the that case, all addresses can be compressed to 2 octets, using the
root address as reference. There will be one SRH_6LoRH header, with, root address as reference. There will be one SRH_6LoRH header, with,
in this example, 3 compressed addresses: in this example, 3 compressed addresses:
+-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+ ... +-... +-+ ... -+-+ ... +-+- ... -+-+- ... +-+-+-+ ... +-+-+ ... -+ ... +-...
|11110001 |SRH-6LoRH | RPI-6LoRH | IP-in-IP | NH=1 |11110CPP| UDP | UDP |11110001|SRH-6LoRH| RPI- | IP-in-IP | NH=1 |11110CPP| UDP | UDP
|Page 1 |Type1 S=2 | | 6LoRH |LOWPAN_IPHC | UDP | hdr |load |Page 1 |Type1 S=2| 6LoRH | 6LoRH |LOWPAN_IPHC| UDP | hdr |Payld
+-+-+-+-+-+-+- ... +-+-+- ... -+-+-- ... -+-+- ... -+-+-+-+-+ ... +-... +-+ ... -+-+ ... +-+- ... -+-+-- ... -+-+-+ ... +-+-+ ... -+ ... +-...
<-8bytes-> <- RFC 6282 -> <-8bytes-> <- RFC 6282 ->
No RPL artifact No RPL artifact
Figure 20: Example Compressed Packet with SRH. Figure 20: Example Compressed Packet with SRH.
One may note that the RPI is provided. This is because the address One may note that the RPI is provided. This is because the address
of the root that is the source of the IP-in-IP header is elided and of the root that is the source of the IP-in-IP header is elided and
inferred from the RPLInstanceID in the RPI. Once found from a local inferred from the RPLInstanceID in the RPI. Once found from a local
context, that address is used as Compression Reference to expand context, that address is used as Compression Reference to expand
addresses in the SRH-6LoRH. addresses in the SRH-6LoRH.
With the RPL specifications available at the time of writing this With the RPL specifications available at the time of writing this
 End of changes. 14 change blocks. 
40 lines changed or deleted 76 lines changed or added

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