< draft-thubert-6lo-bier-dispatch-04.txt   draft-thubert-6lo-bier-dispatch-05.txt >
6lo P. Thubert, Ed. 6lo P. Thubert, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track Z. Brodard Intended status: Standards Track Z. Brodard
Expires: July 20, 2018 Ecole Polytechnique Expires: January 25, 2019 Ecole Polytechnique
H. Jiang H. Jiang
G. Texier G. Texier
Telecom Bretagne Telecom Bretagne
January 16, 2018 July 24, 2018
A 6loRH for BitStrings A 6loRH for BitStrings
draft-thubert-6lo-bier-dispatch-04 draft-thubert-6lo-bier-dispatch-05
Abstract Abstract
This specification extends the 6LoWPAN Routing Header to signal This specification extends the 6LoWPAN Routing Header to signal
BitStrings such as utilized in Bit Index Explicit Replication and its BitStrings such as utilized in Bit Index Explicit Replication and its
Traffic Engineering variant. Traffic Engineering variant.
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 July 20, 2018. This Internet-Draft will expire on January 25, 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 13 skipping to change at page 2, line 13
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 3
4. The BIER-6LoRH encoding . . . . . . . . . . . . . . . . . . . 4 4. The BIER-6LoRH encoding . . . . . . . . . . . . . . . . . . . 4
4.1. The Bit-by-bit BitStrings . . . . . . . . . . . . . . . . 4 4.1. The Bit-by-bit BitStrings . . . . . . . . . . . . . . . . 5
4.2. Bloom Filters . . . . . . . . . . . . . . . . . . . . . . 5 4.2. The Enumeration BitStrings . . . . . . . . . . . . . . . 5
4.3. Types of BIER-6LoRH header . . . . . . . . . . . . . . . 5 4.3. Bloom Filters . . . . . . . . . . . . . . . . . . . . . . 5
5. Implementation Status . . . . . . . . . . . . . . . . . . . . 6 4.4. Types of BIER-6LoRH header . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8
9.1. Normative References . . . . . . . . . . . . . . . . . . 7 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
9.2. Informative References . . . . . . . . . . . . . . . . . 8 9.1. Normative References . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 9.2. Informative References . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction 1. Introduction
The type of information that needs to be present in a packet inside The type of information that needs to be present in a packet inside
the LLN but not outside of the LLN varies with the routing operation, the LLN but not outside of the LLN varies with the routing operation,
but there is overall a need for an extensible compression technique but there is overall a need for an extensible compression technique
that would simplify the IP-in-IP encapsulation, when needed, and that would simplify the IP-in-IP encapsulation, when needed, and
optimally compress existing routing artifacts found in LLNs. optimally compress existing routing artifacts found in LLNs.
The 6LoWPAN Routing Header (6LoRH) [RFC8025] [RFC8138] is such a The 6LoWPAN Routing Header (6LoRH) [RFC8025] [RFC8138] is such a
skipping to change at page 4, line 36 skipping to change at page 4, line 39
The BIER 6LoRH (BIER-6LoRH) is a Critical 6LoWPAN Routing Header that The BIER 6LoRH (BIER-6LoRH) is a Critical 6LoWPAN Routing Header that
provides a variable-size container for a BitString such as, a but not provides a variable-size container for a BitString such as, a but not
limited to, a BIER BitString. limited to, a BIER BitString.
The capability to parse the BIER BitString is necessary to forward The capability to parse the BIER BitString is necessary to forward
the packet so the Type cannot be ignored. the packet so the Type cannot be ignored.
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
|1|0|0| Control |6LoRHType 15-24| BitString | |1|0|0| Control |6LoRHType 15-29| BitString |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
Figure 1: The BIER-6LoRH Figure 1: The BIER-6LoRH
This specification provides a 5-bit Control field that can be used to This specification provides a 5-bit Control field that can be used to
encode information that is specific to the BitString. The type and encode information that is specific to the BitString. The type and
size of the BitString are encoded in the 6LoRHType. size of the BitString are encoded in the 6LoRHType.
4.1. The Bit-by-bit BitStrings 4.1. The Bit-by-bit BitStrings
skipping to change at page 5, line 14 skipping to change at page 5, line 21
locally significant to one group only. This specification uses the locally significant to one group only. This specification uses the
5-bits Control field to encode the group. 5-bits Control field to encode the group.
When groups are used, it may be that a packet is sent to different When groups are used, it may be that a packet is sent to different
groups at the same time. In that case, multiple BIER-6LoRH headers groups at the same time. In that case, multiple BIER-6LoRH headers
can be prepended to a same packet, each one for a different group. can be prepended to a same packet, each one for a different group.
As the packet flows along the multicast distribution tree, a BIER- As the packet flows along the multicast distribution tree, a BIER-
6LoRH header that has no more destination in a given branch may be 6LoRH header that has no more destination in a given branch may be
removed to make the packet shorter. removed to make the packet shorter.
4.2. Bloom Filters The encoding value indicates the size of the BitString. The size of
the BitString used in a given packet is smallest that can represent
all of the bits that are set for this particular packet, so for a
same network various sizes may be used for different packets
depending on the destinations.
4.2. The Enumeration BitStrings
For unicast and when very few destinations are targeted for a given
message, it may be that it is more economical to list the bit offsets
one by one than it is to represent the full BitString that can hold
all of the bit offsets.
In the Enumeration case, a BitString actually encodes the offset of
one bit as an unsigned integer, using the number of bits indicated in
the control field, and BitStrings are concatenated without
intermediate padding. The overall concatenation must be aligned to a
byte boundary. To achieve this, trailing bits are added to the right
of the concatenation as padding to the next byte boundary.
To optimize the compression, the lower numbers can be expressed with
less bits, and multiple Enumeration BIER-6LoRH headers may be used to
encode offsets that require different numbers of bits for their
representation.
4.3. Bloom Filters
A Bloom Filter can be seen as an additional compression technique for A Bloom Filter can be seen as an additional compression technique for
the bitString representation. A Bloom Filter may generate false the bitString representation. A Bloom Filter may generate false
positives, which, in the case of BIER, result in undue forwarding of positives, which, in the case of BIER, result in undue forwarding of
a packet down a path where no listener exists. a packet down a path where no listener exists.
As an example, the Constrained-Cast [I-D.ietf-roll-ccast] As an example, the Constrained-Cast [I-D.ietf-roll-ccast]
specification employs Bloom Filters as a compact representation of a specification employs Bloom Filters as a compact representation of a
match or non-match for elements in a set that may be larger than the match or non-match for elements in a set that may be larger than the
number of bits in the BitString. number of bits in the BitString.
In the case of a Bloom Filter, a number of Hash functions must be run In the case of a Bloom Filter, a number of Hash functions must be run
to obtain a multi-bit signature of an encoded element. This to obtain a multi-bit signature of an encoded element. This
specification uses the 5-bits Control field to signal an Identifier specification uses the 5-bits Control field to signal an Identifier
of the set of Hash functions being used to generate a certain of the set of Hash functions being used to generate a certain
BitString, so as to enable the migration from a set of Hash functions BitString, so as to enable the migration from a set of Hash functions
to the next. to the next.
4.3. Types of BIER-6LoRH header 4.4. Types of BIER-6LoRH header
The Type of a BIER-6LoRH header indicates the size of the BitString The Type of a BIER-6LoRH header indicates the size of the BitString
and whether the BitString is operated as an uncompressed bit-by-bit and whether the BitString is operated as an uncompressed bit-by-bit
mapping, or as a Bloom filter. mapping, as an enumeration, or as a Bloom filter.
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| BitString | Encoding | Control field | BitString | | BitString | Encoding | Control field | BitString |
| Type | | | Size | | Type | | | Size |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 15 | bit-by-bit | Group ID | 8 bits | | 15 | bit-by-bit | Group ID | 8 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 16 | bit-by-bit | Group ID | 16 bits | | 16 | bit-by-bit | Group ID | 16 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 17 | bit-by-bit | Group ID | 48 bits | | 17 | bit-by-bit | Group ID | 32 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 18 | bit-by-bit | Group ID | 96 bits | | 18 | bit-by-bit | Group ID | 56 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 19 | bit-by-bit | Group ID | 160 bits | | 19 | bit-by-bit | Group ID | 96 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 20 | Bloom filter | Hash function Set ID | 8 bits | | 20 | bit-by-bit | Group ID | 160 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 21 | Bloom filter | Hash function Set ID | 16 bits | | 21 | bit-by-bit | Group ID | 256 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 22 | Bloom filter | Hash function Set ID | 48 bits | | 22 | Enumeration | Number of elements | 4 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 23 | Bloom filter | Hash function Set ID | 96 bits | | 23 | Enumeration | Number of elements | 6 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
| 24 | Bloom filter | Hash function Set ID | 160 bits | | 24 | Enumeration | Number of elements | 8 bits |
+--------------+--------------+----------------------+--------------+
| 25 | Bloom filter | Hash function Set ID | 8 bits |
+--------------+--------------+----------------------+--------------+
| 26 | Bloom filter | Hash function Set ID | 16 bits |
+--------------+--------------+----------------------+--------------+
| 27 | Bloom filter | Hash function Set ID | 48 bits |
+--------------+--------------+----------------------+--------------+
| 28 | Bloom filter | Hash function Set ID | 96 bits |
+--------------+--------------+----------------------+--------------+
| 29 | Bloom filter | Hash function Set ID | 160 bits |
+--------------+--------------+----------------------+--------------+ +--------------+--------------+----------------------+--------------+
Table 1: The BIER-6LoRH Types Table 1: The BIER-6LoRH Types
In order to address a potentially large number of devices, the In order to address a potentially large number of devices, the
BitString may grow very large. Yet, the maximum frame size for a BitString may grow very large. Yet, the maximum frame size for a
given MAC layer may limit the number of bits that can be dedicated to given MAC layer may limit the number of bits that can be dedicated to
routing. With this specification, a number of BIER-6LoRH headers of routing. With this specification, a number of BIER-6LoRH headers of
a same type (bit-by-bit or Bloom filter) may be placed contiguously a same type (bit-by-bit or Bloom filter) may be placed contiguously
in the packet. This results in a larger BitString that is the in the packet. This results in a larger BitString that is the
skipping to change at page 7, line 4 skipping to change at page 8, line 17
A research-stage implementation was developed at Cisco's Paris A research-stage implementation was developed at Cisco's Paris
Innovation Lab (PIRL) by Zacharie Brodard. It was implemented on Innovation Lab (PIRL) by Zacharie Brodard. It was implemented on
OpenWSN open-source firmware and tested on the OpenMote-CC2538 OpenWSN open-source firmware and tested on the OpenMote-CC2538
hardware. It implements the header types 15, 16, 17, 18 and 19 (bit- hardware. It implements the header types 15, 16, 17, 18 and 19 (bit-
by-bit encoding without group ID) in order to allow a BIER-TE by-bit encoding without group ID) in order to allow a BIER-TE
protocol over IEE802.15.4e. protocol over IEE802.15.4e.
Links: Links:
github: https://github.com/zach-b/openwsn-fw/tree/BIER github: https://github.com/zach-b/openwsn-fw/tree/BIER
OpenWSN firmware: https://openwsn.atlassian.net/wiki/pages/ OpenWSN firmware: https://openwsn.atlassian.net/wiki/pages/
viewpage.action?pageId=688187 viewpage.action?pageId=688187
OpenMote hardware: http://www.openmote.com/ OpenMote hardware: http://www.openmote.com/
6. Security Considerations 6. Security Considerations
The security considerations of [RFC8138] apply. The security considerations of [RFC8138] apply.
7. IANA Considerations 7. IANA Considerations
This document extends the IANA registry created by [RFC8138] for the This document extends the IANA registry created by [RFC8138] for the
6LoWPAN Routing Header Type, and adds the following values: 6LoWPAN Routing Header Type, and adds the following values:
15..24 : BIER-6LoRH [RFCthis] 15..29 : BIER-6LoRH [RFCthis]
8. Acknowledgments 8. Acknowledgments
9. References 9. References
9.1. Normative References 9.1. Normative References
[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,
skipping to change at page 8, line 15 skipping to change at page 9, line 32
9.2. Informative References 9.2. Informative References
[I-D.eckert-bier-te-arch] [I-D.eckert-bier-te-arch]
Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic
Engineering for Bit Index Explicit Replication BIER-TE", Engineering for Bit Index Explicit Replication BIER-TE",
draft-eckert-bier-te-arch-06 (work in progress), November draft-eckert-bier-te-arch-06 (work in progress), November
2017. 2017.
[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.
[I-D.ietf-bier-architecture] [I-D.ietf-bier-architecture]
Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and
S. Aldrin, "Multicast using Bit Index Explicit S. Aldrin, "Multicast using Bit Index Explicit
Replication", draft-ietf-bier-architecture-08 (work in Replication", draft-ietf-bier-architecture-08 (work in
progress), September 2017. progress), September 2017.
[I-D.ietf-detnet-architecture] [I-D.ietf-detnet-architecture]
Finn, N., Thubert, P., Varga, B., and J. Farkas, Finn, N., Thubert, P., Varga, B., and J. Farkas,
"Deterministic Networking Architecture", draft-ietf- "Deterministic Networking Architecture", draft-ietf-
detnet-architecture-04 (work in progress), October 2017. detnet-architecture-06 (work in progress), June 2018.
[I-D.ietf-roll-ccast] [I-D.ietf-roll-ccast]
Bergmann, O., Bormann, C., Gerdes, S., and H. Chen, Bergmann, O., Bormann, C., Gerdes, S., and H. Chen,
"Constrained-Cast: Source-Routed Multicast for RPL", "Constrained-Cast: Source-Routed Multicast for RPL",
draft-ietf-roll-ccast-01 (work in progress), October 2017. draft-ietf-roll-ccast-01 (work in progress), October 2017.
[I-D.thubert-6tisch-4detnet] [I-D.thubert-6tisch-4detnet]
Thubert, P., "6TiSCH requirements for DetNet", draft- Thubert, P., "6TiSCH requirements for DetNet", draft-
thubert-6tisch-4detnet-01 (work in progress), June 2015. thubert-6tisch-4detnet-01 (work in progress), June 2015.
[I-D.thubert-bier-replication-elimination] [I-D.thubert-bier-replication-elimination]
Thubert, P., Brodard, Z., and H. Jiang, "BIER-TE-based Thubert, P., Eckert, T., Brodard, Z., and H. Jiang, "BIER-
OAM, Replication and Elimination", draft-thubert-bier- TE extensions for Packet Replication and Elimination
replication-elimination-01 (work in progress), July 2017. Function (PREF) and OAM", draft-thubert-bier-replication-
elimination-03 (work in progress), March 2018.
[RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, Datagrams over IEEE 802.15.4-Based Networks", RFC 6282,
DOI 10.17487/RFC6282, September 2011, DOI 10.17487/RFC6282, September 2011,
<https://www.rfc-editor.org/info/rfc6282>. <https://www.rfc-editor.org/info/rfc6282>.
[RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and
Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January
2014, <https://www.rfc-editor.org/info/rfc7102>. 2014, <https://www.rfc-editor.org/info/rfc7102>.
 End of changes. 22 change blocks. 
34 lines changed or deleted 72 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/