Multicast Protocol for Low-Power and Lossy Networks (MPL) Parameter Configuration Option for DHCPv6
Extracted elements (23)
RFC 7731 requires all MPL Forwarders in a domain to share identical parameters but does not define a configuration distribution mechanism. This document fills that gap by piggybacking on DHCPv6, which is already used in many managed wireless mesh networks (e.g., ZigBee IP) for network parameter distribution.
The wildcard form of the option (option_len=16, no MPL Domain Address) provides a single default parameter set for all MPL Domains on the network, simplifying deployment when multiple domains need identical configuration. A specific-domain option (option_len=32) overrides the wildcard for that domain, enabling per-domain tuning without requiring individual options for every domain.
TUNIT is introduced as a configurable time unit (in milliseconds) for timer parameters rather than encoding absolute millisecond values directly. This allows a single 16-bit field to represent a wide range of timer durations with appropriate precision for the target network, avoiding excessively large field widths in constrained-node environments.
Because MPL parameter updates via DHCP are not synchronized across nodes, nodes may temporarily hold inconsistent parameter sets. Inconsistent Trickle timer parameters reduce performance but remain functional as long as both old and new sets are reasonable for the communication load. Operators must account for nodes that lag behind refresh intervals.
A node MUST leave an MPL Domain if it receives updated, all-valid MPL Parameter Configuration Options that contain no configuration for that domain, unless the node has an overriding manual configuration for the domain.
Clients MUST ignore all MPL Parameter Configuration Options in a DHCPv6 message if any option contains invalid values (e.g., reserved all-0 or all-1 values). In this case, the entire message is treated as not received, triggering the T2/refresh-time suspension logic.
DHCPv6 clients MUST support multiple MPL Parameter Configuration Options in a single DHCPv6 message, enabling configuration of multiple MPL Domains simultaneously.
DHCPv6 packets SHOULD be filtered on the border router between the ROLL network and the Internet, except for packets between the ROLL network and a remote DHCPv6 server or configured relay agents, to protect against attacks from outside the network.
DHCPv6 servers MUST ignore any incoming MPL Parameter Configuration Option and MUST support multiple MPL Parameter Configuration Options in their responses. Servers send the option only when specifically configured with values and when the client requests it.
If a DHCPv6 client with an MPL Forwarder configured via this option cannot receive a valid server response within T2 (stateful) or twice the information refresh time (stateless), it MUST suspend the MPL Forwarders configured by the option. MPL Forwarders configured by other methods (e.g., static file) MUST NOT be suspended.
Parameter updates SHOULD NOT occur too frequently; a reasonable update rate is once per expected information refresh interval (T1 per RFC 3315 or information refresh time per RFC 4242) to keep Trickle timers synchronized across nodes.
Servers MUST set the 7-bit Z (reserved) field to zero. Clients SHOULD ignore any bits that have been set in the Z field.
The option_len field MUST be set to 16 if no MPL Domain Address is present, or 32 if an MPL Domain Address is present. No other lengths are valid.
There MUST be no more than one MPL Parameter Configuration Option for a given MPL Domain or for the wildcard in any DHCPv6 message, so the order of options in the packet has no effect on precedence.
TUNIT (the unit time for timer parameters SE_LIFETIME and *_IMIN, in milliseconds) MUST NOT be set to 0 or 0xff, which are reserved values. Similarly, SE_LIFETIME, DM_IMIN, DM_T_EXP, C_IMIN, and C_T_EXP MUST NOT be set to 0 or 0xffff; DM_IMAX and C_IMAX MUST NOT be set to 0 or 0xff.
When a node receives and acts on OPTION_MPL_PARAMETERS, it SHOULD join the MPL Domain identified by the option and act as an MPL Forwarder, and SHOULD configure its MPL Forwarder with the given parameter set. Failure to join due to resource constraints is permitted.
Configuration priority for MPL parameters applied to an MPL Domain is (highest to lowest): specific domain option (option_len=32), wildcard option (option_len=16), and default configuration from RFC 7731. Manual configuration priority relative to DHCP-derived configuration is not defined.
MPL parameters are encoded with timer values (SE_LIFETIME, DM_IMIN, C_IMIN) expressed as multiples of TUNIT milliseconds, while maximum interval sizes (DM_IMAX, C_IMAX) follow RFC 6206 Trickle semantics as a count of doublings of the corresponding minimum interval.
OPTION_MPL_PARAMETERS is a new DHCPv6 option (code 104) that distributes MPL parameter sets to MPL Forwarders. It can configure a specific MPL Domain (option_len=32) or serve as a wildcard default for all MPL Domains (option_len=16) within a DHCP-managed network.
IANA assigned option code 104 to OPTION_MPL_PARAMETERS in the 'Option Codes' table of the 'Dynamic Host Configuration Protocol for IPv6 (DHCPv6)' registry.
A forged MPL Parameter Configuration Option can cause excessive Layer 2 broadcasting by setting DM/C_K too high or DM/C_IMIN too low. Implementations MUST set reasonable bounds for each parameter, derived from implementation constraints or MAC/PHY specifications, to avoid network overload.
The DHCPv6 server or network SHOULD be trusted via DHCPv6 authentication (RFC 3315 Section 21). In ROLL environments where authentication may be unavailable due to resource constraints, alternative integrity protection mechanisms or node authentication at join time (e.g., ZigBee IP, RFC 5191/PANA) should be applied.
The OPTION_MPL_PARAMETERS option is 16 or 32 octets. The 16-octet form contains: 1-bit P flag (PROACTIVE_FORWARDING), 7-bit reserved Z, 8-bit TUNIT, 16-bit SE_LIFETIME, 8-bit DM_K, 16-bit DM_IMIN, 8-bit DM_IMAX, 16-bit DM_T_EXP, 8-bit C_K, 16-bit C_IMIN, 8-bit C_IMAX, 16-bit C_T_EXP. The optional 32-octet form appends a 128-bit MPL Domain Address.