draft-ietf-roll-trickle-mcast-07.txt | draft-ietf-roll-trickle-mcast-08.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: August 19, 2014 Silicon Labs | Expires: September 29, 2014 Silicon Labs | |||
February 15, 2014 | March 28, 2014 | |||
Multicast Protocol for Low power and Lossy Networks (MPL) | Multicast Protocol for Low power and Lossy Networks (MPL) | |||
draft-ietf-roll-trickle-mcast-07 | draft-ietf-roll-trickle-mcast-08 | |||
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 August 19, 2014. | This Internet-Draft will expire on September 29, 2014. | |||
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 17 | skipping to change at page 2, line 17 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
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. 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 . . . . . . . . . . . . . . . . 8 | |||
5.1. MPL Multicast Addresses . . . . . . . . . . . . . . . . . 8 | 5.1. MPL Multicast Addresses . . . . . . . . . . . . . . . . . 8 | |||
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 . . . . . . . . . . . . . . . . . . . 12 | 6.2. MPL Control Message . . . . . . . . . . . . . . . . . . . 12 | |||
6.3. MPL Seed Info . . . . . . . . . . . . . . . . . . . . . . 13 | 6.3. MPL Seed Info . . . . . . . . . . . . . . . . . . . . . . 13 | |||
skipping to change at page 3, line 13 | skipping to change at page 3, line 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
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 LLNs | [RFC3973] [RFC4601]). However, maintaining such topologies in Low | |||
is costly and may not be feasible given the available resources. | power and Lossy Networks (LLNs) is costly and may not be feasible | |||
given the available resources. | ||||
Memory constraints may limit devices to maintaining links/routes to | Memory constraints may limit devices to maintaining links/routes to | |||
one or a few neighbors. For this reason, the Routing Protocol for | one or a few neighbors. For this reason, the Routing Protocol for | |||
LLNs (RPL) specifies both storing and non-storing modes [RFC6550]. | LLNs (RPL) specifies both storing and non-storing modes [RFC6550]. | |||
The latter allows RPL routers to maintain only one or a few default | The latter allows RPL routers to maintain only one or a few default | |||
routes towards a LLN Border Router (LBR) and use source routing to | routes towards a LLN Border Router (LBR) and use source routing to | |||
forward messages away from the LBR. For the same reasons, a LLN | forward messages away from the LBR. For the same reasons, a LLN | |||
device may not be able to maintain a multicast routing topology when | device may not be able to maintain a multicast routing topology when | |||
operating with limited memory. | operating with limited memory. | |||
skipping to change at page 4, line 5 | skipping to change at page 4, line 5 | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
[RFC2119]. | [RFC2119]. | |||
The following terms are used throughout this document: | The following terms are used throughout this document: | |||
MPL Forwarder - A router that implements this protocol. An MPL | MPL Forwarder - A router that implements MPL. An MPL Forwarder | |||
Forwarder is equipped with at least one MPL | is equipped with at least one MPL Interface. | |||
Interface. | ||||
MPL Interface - An MPL Forwarder's attachment to a | MPL Interface - An MPL Forwarder's attachment to a | |||
communications medium, over which it transmits | communications medium, over which it transmits | |||
and receives MPL Data Messages and MPL Control | and receives MPL Data Messages and MPL Control | |||
Messages according to this specification. An MPL | Messages according to this specification. An MPL | |||
Interface is assigned one or more unicast | Interface is assigned one or more unicast | |||
addresses and is subscribed to one or more MPL | addresses and is subscribed to one or more MPL | |||
Domain Addresses. | Domain Addresses. | |||
MPL Domain Address - A multicast address that identifies the set of | MPL Domain Address - A multicast address that identifies the set of | |||
skipping to change at page 4, line 48 | skipping to change at page 4, line 47 | |||
MPL Seed - An MPL Forwarder that generates MPL Data | MPL Seed - An MPL Forwarder that generates MPL Data | |||
Messages and serves as an entry point into an MPL | Messages and serves as an entry point into an MPL | |||
Domain. | Domain. | |||
MPL Seed Identifier - An unsigned integer that uniquely identifies an | MPL Seed Identifier - An unsigned integer that uniquely identifies an | |||
MPL Seed within an MPL Domain. | MPL Seed within an MPL Domain. | |||
3. Applicability Statement | 3. Applicability Statement | |||
This protocol is an IPv6 multicast forwarding protocol designed for | MPL is an IPv6 multicast forwarding protocol designed for the | |||
the communication characteristics and resource constraints of Low- | communication characteristics and resource constraints of Low-Power | |||
Power and Lossy Networks. By implementing controlled disseminations | and Lossy Networks. By implementing controlled disseminations of | |||
of multicast messages using the Trickle algorithm, this protocol is | multicast messages using the Trickle algorithm, MPL is designed for | |||
designed for networks that communicate using low-power and lossy | networks that communicate using low-power and lossy links with widely | |||
links with widely varying topologies in both the space and time | varying topologies in both the space and time dimensions. | |||
dimensions. | ||||
While designed specifically for Low-Power and Lossy Networks, this | While designed specifically for Low-Power and Lossy Networks, MPL is | |||
protocol is not limited to use over such networks. This protocol may | not limited to use over such networks. MPL may be applicable to any | |||
be applicable to any network where no multicast routing state is | network where no multicast routing state is desired. MPL may also be | |||
desired. This protocol may also be used in environments where only a | used in environments where only a subset of links are considered Low- | |||
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 | A host need not be aware that their multicast is supported by MPL as | |||
long as its attachment router forwards multicast messages between the | long as its attachment router forwards multicast messages between the | |||
MPL Domain and the host. However, a host may choose to implement MPL | 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 | so that it can take advantage of the broadcast medium inherent in | |||
many Low-Power and Lossy Networks and receive multicast messages | many Low-Power and Lossy Networks and receive multicast messages | |||
carried by MPL directly. | carried by MPL directly. | |||
4. Protocol Overview | 4. Protocol Overview | |||
skipping to change at page 6, line 34 | skipping to change at page 6, line 34 | |||
o A Buffered Message Set records recently received MPL Data Messages | o A Buffered Message Set records recently received MPL Data Messages | |||
from an MPL Seed within an MPL Domain. Each MPL Domain has an | from an MPL Seed within an MPL Domain. Each MPL Domain has an | |||
associated Buffered Message Set. MPL Data Messages resident in a | associated Buffered Message Set. MPL Data Messages resident in a | |||
Buffered Message Set have sequence numbers that are greater than | Buffered Message Set have sequence numbers that are greater than | |||
or equal to the minimum threshold maintained in the corresponding | or equal to the minimum threshold maintained in the corresponding | |||
Seed Set. MPL uses Buffered Message Sets to store MPL Data | Seed Set. MPL uses Buffered Message Sets to store MPL Data | |||
Messages that may be transmitted by the MPL Forwarder for | Messages that may be transmitted by the MPL Forwarder for | |||
forwarding. | forwarding. | |||
4.3. Overview | 4.3. Protocol Overview | |||
MPL achieves its goal by implementing a controlled flood that | MPL achieves its goal by implementing a controlled flood that | |||
attempts to disseminate the multicast data message to all interfaces | attempts to disseminate the multicast data message to all interfaces | |||
within an MPL Domain. MPL performs the following tasks to | within an MPL Domain. MPL performs the following tasks to | |||
disseminate a multicast message: | disseminate a multicast message: | |||
o When having a multicast message to forward into an MPL Domain, the | o When having a multicast message to forward into an MPL Domain, the | |||
MPL Seed generates an MPL Data Message that includes the MPL | MPL Seed generates an MPL Data Message that includes the MPL | |||
Domain Address as the IPv6 Destination Address, the MPL Seed | Domain Address as the IPv6 Destination Address, the MPL Seed | |||
Identifier, a newly generated sequence number, and the multicast | Identifier, a newly generated sequence number, and the multicast | |||
skipping to change at page 8, line 9 | skipping to change at page 8, line 9 | |||
Note that the use of proactive and reactive forwarding strategies | Note that the use of proactive and reactive forwarding strategies | |||
within the same MPL Domain are not mutually exclusive and may be used | within the same MPL Domain are not mutually exclusive and may be used | |||
simultaneously. For example, upon receiving a new MPL Data Message | simultaneously. For example, upon receiving a new MPL Data Message | |||
when both proactive and reactive forwarding techniques are enabled, | when both proactive and reactive forwarding techniques are enabled, | |||
an MPL Forwarder will proactively retransmit the MPL Data Message a | an MPL Forwarder will proactively retransmit the MPL Data Message a | |||
limited number of times and schedule further transmissions upon | limited number of times and schedule further transmissions upon | |||
receiving MPL Control Messages. | receiving MPL Control Messages. | |||
4.4. Signaling Overview | 4.4. Signaling Overview | |||
This protocol generates and processes the following messages: | MPL generates and processes the following messages: | |||
MPL Data Message - Generated by an MPL Seed to deliver a multicast | MPL Data Message - Generated by an MPL Seed to deliver a multicast | |||
message across an MPL Domain. The MPL Data Message's source is an | message across an MPL Domain. The MPL Data Message's source is an | |||
address in the Local Interface Set of the MPL Seed that generated | address in the Local Interface Set of the MPL Seed that generated | |||
the message and is valid within the MPL Domain. The MPL Data | the message and is valid within the MPL Domain. The MPL Data | |||
Message's destination is the MPL Domain Address corresponding to | Message's destination is the MPL Domain Address corresponding to | |||
the MPL Domain. An MPL Data Message contains: | the MPL Domain. An MPL Data Message contains: | |||
* The Seed Identifier of the MPL Seed that generated the MPL Data | * The Seed Identifier of the MPL Seed that generated the MPL Data | |||
Message. | Message. | |||
skipping to change at page 23, line 32 | skipping to change at page 23, line 32 | |||
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] | [I-D.ietf-6man-multicast-scopes] | |||
Droms, R., "IPv6 Multicast Address Scopes", draft-ietf- | Droms, R., "IPv6 Multicast Address Scopes", draft-ietf- | |||
6man-multicast-scopes-02 (work in progress), November | 6man-multicast-scopes-03 (work in progress), February | |||
2013. | 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. | |||
End of changes. 11 change blocks. | ||||
26 lines changed or deleted | 25 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/ |