draft-ietf-roll-trickle-mcast-10.txt   draft-ietf-roll-trickle-mcast-11.txt 
ROLL J. Hui ROLL J. Hui
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track R. Kelsey Intended status: Standards Track R. Kelsey
Expires: May 14, 2015 Silicon Labs Expires: May 28, 2015 Silicon Labs
November 10, 2014 November 24, 2014
Multicast Protocol for Low power and Lossy Networks (MPL) Multicast Protocol for Low power and Lossy Networks (MPL)
draft-ietf-roll-trickle-mcast-10 draft-ietf-roll-trickle-mcast-11
Abstract Abstract
This document specifies the Multicast Protocol for Low power and This document specifies the Multicast Protocol for Low power and
Lossy Networks (MPL) that provides IPv6 multicast forwarding in Lossy Networks (MPL) that provides IPv6 multicast forwarding in
constrained networks. MPL avoids the need to construct or maintain constrained networks. MPL avoids the need to construct or maintain
any multicast forwarding topology, disseminating messages to all MPL any multicast forwarding topology, disseminating messages to all MPL
Forwarders in an MPL Domain. MPL uses the Trickle algorithm to Forwarders in an MPL Domain. MPL uses the Trickle algorithm to
manage message transmissions for both control and data-plane manage message transmissions for both control and data-plane
messages. Different Trickle parameter configurations allow MPL to messages. Different Trickle parameter configurations allow MPL to
skipping to change at page 1, line 38 skipping to change at page 1, line 38
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 May 14, 2015. This Internet-Draft will expire on May 28, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 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 2, line 19 skipping to change at page 2, line 19
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Applicability Statement . . . . . . . . . . . . . . . . . . . 4 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 4
4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 5 4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 5
4.1. MPL Domains . . . . . . . . . . . . . . . . . . . . . . . 5 4.1. MPL Domains . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Information Base Overview . . . . . . . . . . . . . . . . 6 4.2. Information Base Overview . . . . . . . . . . . . . . . . 6
4.3. Protocol Overview . . . . . . . . . . . . . . . . . . . . 6 4.3. Protocol Overview . . . . . . . . . . . . . . . . . . . . 6
4.4. Signaling Overview . . . . . . . . . . . . . . . . . . . 8 4.4. Signaling Overview . . . . . . . . . . . . . . . . . . . 8
5. MPL Parameters and Constants . . . . . . . . . . . . . . . . 8 5. MPL Parameters and Constants . . . . . . . . . . . . . . . . 9
5.1. MPL Multicast Addresses . . . . . . . . . . . . . . . . . 9 5.1. MPL Multicast Addresses . . . . . . . . . . . . . . . . . 9
5.2. MPL Message Types . . . . . . . . . . . . . . . . . . . . 9 5.2. MPL Message Types . . . . . . . . . . . . . . . . . . . . 9
5.3. MPL Seed Identifiers . . . . . . . . . . . . . . . . . . 9 5.3. MPL Seed Identifiers . . . . . . . . . . . . . . . . . . 9
5.4. MPL Parameters . . . . . . . . . . . . . . . . . . . . . 9 5.4. MPL Parameters . . . . . . . . . . . . . . . . . . . . . 9
6. Protocol Message Formats . . . . . . . . . . . . . . . . . . 11 6. Protocol Message Formats . . . . . . . . . . . . . . . . . . 11
6.1. MPL Option . . . . . . . . . . . . . . . . . . . . . . . 11 6.1. MPL Option . . . . . . . . . . . . . . . . . . . . . . . 11
6.2. MPL Control Message . . . . . . . . . . . . . . . . . . . 13 6.2. MPL Control Message . . . . . . . . . . . . . . . . . . . 13
6.3. MPL Seed Info . . . . . . . . . . . . . . . . . . . . . . 14 6.3. MPL Seed Info . . . . . . . . . . . . . . . . . . . . . . 14
7. Information Base . . . . . . . . . . . . . . . . . . . . . . 15 7. Information Base . . . . . . . . . . . . . . . . . . . . . . 15
7.1. Local Interface Set . . . . . . . . . . . . . . . . . . . 15 7.1. Local Interface Set . . . . . . . . . . . . . . . . . . . 15
7.2. Domain Set . . . . . . . . . . . . . . . . . . . . . . . 15 7.2. Domain Set . . . . . . . . . . . . . . . . . . . . . . . 15
7.3. Seed Set . . . . . . . . . . . . . . . . . . . . . . . . 15 7.3. Seed Set . . . . . . . . . . . . . . . . . . . . . . . . 15
7.4. Buffered Message Set . . . . . . . . . . . . . . . . . . 15 7.4. Buffered Message Set . . . . . . . . . . . . . . . . . . 16
8. MPL Seed Sequence Numbers . . . . . . . . . . . . . . . . . . 16 8. MPL Seed Sequence Numbers . . . . . . . . . . . . . . . . . . 16
9. MPL Data Messages . . . . . . . . . . . . . . . . . . . . . . 16 9. MPL Data Messages . . . . . . . . . . . . . . . . . . . . . . 16
9.1. MPL Data Message Generation . . . . . . . . . . . . . . . 16 9.1. MPL Data Message Generation . . . . . . . . . . . . . . . 17
9.2. MPL Data Message Transmission . . . . . . . . . . . . . . 17 9.2. MPL Data Message Transmission . . . . . . . . . . . . . . 17
9.3. MPL Data Message Processing . . . . . . . . . . . . . . . 18 9.3. MPL Data Message Processing . . . . . . . . . . . . . . . 18
10. MPL Control Messages . . . . . . . . . . . . . . . . . . . . 19 10. MPL Control Messages . . . . . . . . . . . . . . . . . . . . 19
10.1. MPL Control Message Generation . . . . . . . . . . . . . 19 10.1. MPL Control Message Generation . . . . . . . . . . . . . 19
10.2. MPL Control Message Transmission . . . . . . . . . . . . 19 10.2. MPL Control Message Transmission . . . . . . . . . . . . 20
10.3. MPL Control Message Processing . . . . . . . . . . . . . 20 10.3. MPL Control Message Processing . . . . . . . . . . . . . 21
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
12.1. MPL Option Type . . . . . . . . . . . . . . . . . . . . 22 12.1. MPL Option Type . . . . . . . . . . . . . . . . . . . . 22
12.2. MPL ICMPv6 Type . . . . . . . . . . . . . . . . . . . . 22 12.2. MPL ICMPv6 Type . . . . . . . . . . . . . . . . . . . . 22
12.3. Well-known Multicast Addresses . . . . . . . . . . . . . 22 12.3. Well-known Multicast Addresses . . . . . . . . . . . . . 23
13. Security Considerations . . . . . . . . . . . . . . . . . . . 23 13. Security Considerations . . . . . . . . . . . . . . . . . . . 23
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
14.1. Normative References . . . . . . . . . . . . . . . . . . 23 14.1. Normative References . . . . . . . . . . . . . . . . . . 24
14.2. Informative References . . . . . . . . . . . . . . . . . 24 14.2. Informative References . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
Low power and Lossy Networks typically operate with strict resource Low power and Lossy Networks typically operate with strict resource
constraints in communication, computation, memory, and energy. Such constraints in communication, computation, memory, and energy. Such
resource constraints may preclude the use of existing IPv6 multicast resource constraints may preclude the use of existing IPv6 multicast
routing and forwarding mechanisms. Traditional IP multicast delivery routing and forwarding mechanisms. Traditional IP multicast delivery
typically relies on topology maintenance mechanisms to discover and typically relies on topology maintenance mechanisms to discover and
maintain routes to all subscribers of a multicast group (e.g. maintain routes to all subscribers of a multicast group (e.g.
[RFC3973] [RFC4601]). However, maintaining such topologies in Low [RFC3973] [RFC4601]). However, maintaining such topologies in Low
skipping to change at page 5, line 11 skipping to change at page 5, line 11
multicast messages using the Trickle algorithm, MPL is designed for multicast messages using the Trickle algorithm, MPL is designed for
networks that communicate using low-power and lossy links with widely networks that communicate using low-power and lossy links with widely
varying topologies in both the space and time dimensions. varying topologies in both the space and time dimensions.
While designed specifically for Low-Power and Lossy Networks, MPL is While designed specifically for Low-Power and Lossy Networks, MPL is
not limited to use over such networks. MPL may be applicable to any not limited to use over such networks. MPL may be applicable to any
network where no multicast routing state is desired. MPL may also be network where no multicast routing state is desired. MPL may also be
used in environments where only a subset of links are considered Low- used in environments where only a subset of links are considered Low-
Power and Lossy links. Power and Lossy links.
A host need not be aware that their multicast is supported by MPL as
long as its attachment router forwards multicast messages between the
MPL Domain and the host. However, a host may choose to implement MPL
so that it can take advantage of the broadcast medium inherent in
many Low-Power and Lossy Networks and receive multicast messages
carried by MPL directly.
MPL is parameterized to support different dissemination techniques. MPL is parameterized to support different dissemination techniques.
In one parameterization, MPL may utilize the classic flooding method In one parameterization, MPL may utilize the classic flooding method
that involves having each device receiving a message rebroadcast the that involves having each device receiving a message rebroadcast the
message. In another parameterization, MPL may utilize Trickle's message. In another parameterization, MPL may utilize Trickle's
[RFC6206] "polite gossip" method that involves transmission [RFC6206] "polite gossip" method that involves transmission
suppression and adaptive timing techniques. By supporting both suppression and adaptive timing techniques. By supporting both
simple flooding and Trickle methods, MPL can be configured to operate simple flooding and Trickle methods, MPL can be configured to operate
well in a variety of situations [Clausen2013]. well in a variety of situations [Clausen2013].
A host need not be aware that their multicast is supported by MPL as To support effecient message delievery in networks that have many
long as its attachment router forwards multicast messages between the poor links, MPL supports a reactive forwarding mode that utilizes MPL
MPL Domain and the host. However, a host may choose to implement MPL Control Messages to summarize the current multicast state. The MPL
so that it can take advantage of the broadcast medium inherent in Control Message size grows linearly with the number of simultaneous
many Low-Power and Lossy Networks and receive multicast messages MPL Seeds in the MPL Domain - 4 octets per MPL Seed. When reactive
carried by MPL directly. forwarding is not enabled, MPL Control Messages are not transmitted
and the associated overhead is not incurred.
4. Protocol Overview 4. Protocol Overview
The goal of MPL is to deliver multicast messages to all interfaces The goal of MPL is to deliver multicast messages to all interfaces
that subscribe to the multicast messages' destination address within that subscribe to the multicast messages' destination address within
an MPL Domain. an MPL Domain.
4.1. MPL Domains 4.1. MPL Domains
An MPL Domain is a scope zone, as defined in [RFC4007], in which MPL An MPL Domain is a scope zone, as defined in [RFC4007], in which MPL
Interfaces subscribe to the same MPL Domain Address and participate Interfaces subscribe to the same MPL Domain Address and participate
in disseminating MPL Data Messages. in disseminating MPL Data Messages.
By default, an MPL Forwarder SHOULD participate in an MPL Domain By default, an MPL Forwarder SHOULD participate in an MPL Domain
identified by the ALL_MPL_FORWARDERS multicast address with a scope identified by the ALL_MPL_FORWARDERS multicast address with a scope
value of 3 (Realm-Local) [I-D.ietf-6man-multicast-scopes]. value of 3 (Realm-Local) [RFC7346].
When MPL is used in deployments that use administratively defined When MPL is used in deployments that use administratively defined
scopes that cover, for example, multiple subnets based on different scopes that cover, for example, multiple subnets based on different
underlying network technologies, Admin-Local scope (scop value 4) or underlying network technologies, Admin-Local scope (scop value 4) or
Site-Local scope (scop value 5) SHOULD be used. Site-Local scope (scop value 5) SHOULD be used.
An MPL Forwarder MAY participate in additional MPL Domains identified An MPL Forwarder MAY participate in additional MPL Domains identified
by other multicast addresses. An MPL Interface MUST subscribe to the by other multicast addresses. An MPL Interface MUST subscribe to the
MPL Domain Addresses for the MPL Domains that it participates in. MPL Domain Addresses for the MPL Domains that it participates in.
The assignment of other multicast addresses is out of scope. The assignment of other multicast addresses is out of scope.
skipping to change at page 9, line 10 skipping to change at page 9, line 15
5. MPL Parameters and Constants 5. MPL Parameters and Constants
This section describes various program and networking parameters and This section describes various program and networking parameters and
constants used by MPL. constants used by MPL.
5.1. MPL Multicast Addresses 5.1. MPL Multicast Addresses
MPL makes use of MPL Domain Addresses to identify MPL Interfaces of MPL makes use of MPL Domain Addresses to identify MPL Interfaces of
an MPL Domain. By default, MPL Forwarders subscribe to the an MPL Domain. By default, MPL Forwarders subscribe to the
ALL_MPL_FORWARDERS multicast address with a scope value of 3 ALL_MPL_FORWARDERS multicast address with a scope value of 3
[I-D.ietf-6man-multicast-scopes]. [RFC7346].
For each MPL Domain Address that an MPL Interface subscribes to, the For each MPL Domain Address that an MPL Interface subscribes to, the
MPL Interface MUST also subscribe to the MPL Domain Address with a MPL Interface MUST also subscribe to the MPL Domain Address with a
scope value of 2 (link-local) when reactive forwarding is in use. scope value of 2 (link-local) when reactive forwarding is in use.
MPL Forwarders use the link-scoped MPL Domain Address to communicate MPL Forwarders use the link-scoped MPL Domain Address to communicate
MPL Control Messages to neighboring (i.e. on-link) MPL Forwarders. MPL Control Messages to neighboring (i.e. on-link) MPL Forwarders.
5.2. MPL Message Types 5.2. MPL Message Types
MPL defines an IPv6 Option for carrying an MPL Seed Identifier and a MPL defines an IPv6 Option for carrying an MPL Seed Identifier and a
skipping to change at page 10, line 4 skipping to change at page 10, line 9
PROACTIVE_FORWARDING A boolean value that indicates whether the MPL PROACTIVE_FORWARDING A boolean value that indicates whether the MPL
Forwarder schedules MPL Data Message transmissions after receiving Forwarder schedules MPL Data Message transmissions after receiving
them for the first time. PROACTIVE_FORWARDING has a default value them for the first time. PROACTIVE_FORWARDING has a default value
of TRUE. The mechanism for setting PROACTIVE_FORWARDING is not of TRUE. The mechanism for setting PROACTIVE_FORWARDING is not
specified within this document. specified within this document.
SEED_SET_ENTRY_LIFETIME The minimum lifetime for an entry in the SEED_SET_ENTRY_LIFETIME The minimum lifetime for an entry in the
Seed Set. SEED_SET_ENTRY_LIFETIME has a default value of 30 Seed Set. SEED_SET_ENTRY_LIFETIME has a default value of 30
minutes. It is RECOMMENDED that all MPL Forwarders use the same minutes. It is RECOMMENDED that all MPL Forwarders use the same
value for SEED_SET_ENTRY_LIFETIME for a given MPL Domain and use a value for SEED_SET_ENTRY_LIFETIME for a given MPL Domain and use a
default value of 30 minutes. The mechanism for setting default value of 30 minutes. Using a value of
SEED_SET_ENTRY_LIFETIME is not specified within this document. SEED_SET_ENTRY_LIFETIME that is too small can cause the duplicate
detection mechanism to fail, resulting in a MPL Forwarder to
receive a given MPL Data Message more than once. The mechanism
for setting SEED_SET_ENTRY_LIFETIME is not specified within this
document.
As specified in [RFC6206], a Trickle timer runs for a defined As specified in [RFC6206], a Trickle timer runs for a defined
interval and has three configuration parameters: the minimum interval interval and has three configuration parameters: the minimum interval
size Imin, the maximum interval size Imax, and a redundancy constant size Imin, the maximum interval size Imax, and a redundancy constant
k. k.
This specification defines a fourth Trickle configuration parameter, This specification defines a fourth Trickle configuration parameter,
TimerExpirations, which indicates the number of Trickle timer TimerExpirations, which indicates the number of Trickle timer
expiration events that occur before terminating the Trickle algorithm expiration events that occur before terminating the Trickle algorithm
for a given MPL Data Message or MPL Control Message. for a given MPL Data Message or MPL Control Message.
skipping to change at page 12, line 36 skipping to change at page 13, line 6
of seed-id is indicated by the S field. of seed-id is indicated by the S field.
The Option Data (in particular the M flag) of the MPL Option is The Option Data (in particular the M flag) of the MPL Option is
updated by MPL Forwarders as the MPL Data Message is forwarded. updated by MPL Forwarders as the MPL Data Message is forwarded.
Nodes that do not understand the MPL Option MUST discard the MPL Data Nodes that do not understand the MPL Option MUST discard the MPL Data
Message. Thus, according to [RFC2460] the three high order bits of Message. Thus, according to [RFC2460] the three high order bits of
the Option Type are set to '011'. The Option Data length is the Option Type are set to '011'. The Option Data length is
variable. variable.
The seed-id uniquely identifies an MPL Seed. When seed-id is 128 The seed-id uniquely identifies an MPL Seed. When seed-id is 128
bits (S=3), the MPL seed MAY use an IPv6 address assigned to one of bits (S=3), the MPL Seed MAY use an IPv6 address assigned to one of
its interfaces that is unique within the MPL Domain. Managing MPL its interfaces that is unique within the MPL Domain. Managing MPL
Seed Identifiers is not within scope of this document. Seed Identifiers is not within scope of this document.
The sequence field establishes a total ordering of MPL Data Messages The sequence field establishes a total ordering of MPL Data Messages
generated by an MPL Seed for an MPL Domain. The MPL Seed MUST generated by an MPL Seed for an MPL Domain. The MPL Seed MUST
increment the sequence field's value on each new MPL Data Message increment the sequence field's value on each new MPL Data Message
that it generates for an MPL Domain. Implementations MUST follow the that it generates for an MPL Domain. Implementations MUST follow the
Serial Number Arithmetic as defined in [RFC1982] when incrementing a Serial Number Arithmetic as defined in [RFC1982] when incrementing a
sequence value or comparing two sequence values. sequence value or comparing two sequence values.
skipping to change at page 23, line 37 skipping to change at page 24, line 9
communication interface that does not subscribe to the MPL Domain communication interface that does not subscribe to the MPL Domain
Address identified in message's destination address. Address identified in message's destination address.
MPL uses the Trickle algorithm to manage message transmissions and MPL uses the Trickle algorithm to manage message transmissions and
the security considerations described in [RFC6206] apply. the security considerations described in [RFC6206] apply.
14. References 14. References
14.1. Normative References 14.1. Normative References
[I-D.ietf-6man-multicast-scopes]
Droms, R., "IPv6 Multicast Address Scopes", draft-ietf-
6man-multicast-scopes-07 (work in progress), June 2014.
[RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,
August 1996. August 1996.
[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, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
[RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in
skipping to change at page 24, line 32 skipping to change at page 24, line 48
[RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 [RFC6282] Hui, J. 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,
September 2011. September 2011.
[RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R.,
Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Levis, P., Pister, K., Struik, R., Vasseur, JP., and R.
Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Alexander, "RPL: IPv6 Routing Protocol for Low-Power and
Lossy Networks", RFC 6550, March 2012. Lossy Networks", RFC 6550, March 2012.
[RFC7346] Droms, R., "IPv6 Multicast Address Scopes", RFC 7346,
August 2014.
14.2. Informative References 14.2. Informative References
[Clausen2013] [Clausen2013]
Clausen, T., Colin de Verdiere, A., and J. Yi, Clausen, T., Colin de Verdiere, A., and J. Yi,
"Performance Analysis of Trickle as a Flooding Mechanism", "Performance Analysis of Trickle as a Flooding Mechanism",
November 2013. November 2013.
[RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol [RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol
Independent Multicast - Dense Mode (PIM-DM): Protocol Independent Multicast - Dense Mode (PIM-DM): Protocol
Specification (Revised)", RFC 3973, January 2005. Specification (Revised)", RFC 3973, January 2005.
 End of changes. 17 change blocks. 
31 lines changed or deleted 42 lines changed or added

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