| Internet-Draft | GAAO | July 2026 |
| Iannone, et al. | Expires 20 January 2027 | [Page] |
This document specifies an extension to the IPv6 Neighbor Discovery in Low Power and Lossy Networks (LLNs), enabling a node to request to be assigned an address or a prefix from neighbor routers, without introducing a centralized infrastructure and without relying on multicast messages. Such a mechanism makes it possible to algorithmically assign addresses and prefixes to nodes in a 6LoWPAN deployment. The proposed mechanism is more efficient in such specific scenario with respect to DHCPv6.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 20 January 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Low Power and Lossy Networks (LLNs) require adaptations of Internet protocols to operate efficiently under constraints such as limited energy, low data rates, constrained memory, and duty-cycled radio operation. In many LLN deployments, the wireless interface is the dominant source of energy consumption. As a result, protocol design must minimize transmissions, idle listening, and the number of nodes involved in control-plane operations.¶
IPv6 Neighbor Discovery (ND) was optimized for LLNs in [RFC6775] "ND Optimization for 6LoWPANs" and later extended by [RFC8505] "Registration Extensions for 6LoWPAN ND", [RFC8929] "IPv6 Backbone Router", [RFC9010] "RPL", and [RFC9685] "Multicast and Anycast Subscription". These specifications reduce multicast usage, limit control-plane participation, and introduce explicit address registration mechanisms to better support energy-constrained and duty-cycled devices.¶
Recent work has demonstrated the benefits of algorithmically structured addressing in constrained networks (e.g., [RFC9453] "6lo Applicability and Use Cases", [I-D.ietf-6lo-path-aware-semantic-addressing] "PASA", [SHENOY21], [BLESS22], [RIDOUX05]). Such approaches can simplify routing, reduce forwarding state, and improve scalability. These schemes often require routers to assign addresses or prefixes according to a distributed Address Assignment Function (AAF).¶
Existing mechanisms do not provide a standardized way, within the optimized ND framework defined by [RFC8505], for a 6LoWPAN Node (6LN) to explicitly request an address or prefix from a neighboring 6LoWPAN Router (6LR).¶
In general IPv6 networks, address and prefix assignment are well supported by Stateless Address Auto-Configuration (SLAAC) [RFC4862] and DHCPv6 [RFC9915]. However, these mechanisms do not fully align with the architectural and operational goals of RFC8505-based 6LoWPAN deployments, particularly in scenarios requiring:¶
Strict minimization of multicast traffic,¶
Avoidance of centralized infrastructure,¶
Localized control-plane interactions,¶
Algorithmically structured address assignment to support routing optimizations.¶
This document does not attempt to replace SLAAC or DHCPv6 in general IPv6 networks. Instead, it addresses specifically 6LoWPAN LLNs operating under RFC8505-based Neighbor Discovery optimizations, where nodes may need to request addresses or prefixes, usually algorithmically generated, directly from neighboring routers without introducing a centralized infrastructure (e.g. DHCPv6). In scenarios where a global centralized coordination of addresses and prefixes assignment is necessary, DHCPv6 remains the recommended solution.¶
DHCPv6 relies on a client-server model and typically uses multicast (e.g., Solicit messages sent to ff02::1:2). While DHCPv6 is efficient in traditional IPv6 networks, including support for long lifetimes and reduced renewal frequency, its architectural model does not align with the distributed, strictly localized control-plane design promoted by RFC8505-based 6LoWPAN Neighbor Discovery.¶
In IEEE 802.15.4 [IEEE802154] and similar LLNs, IPv6 multicast is commonly mapped to link-layer broadcast ([RASHID24], [SELIEM17]). Such broadcasts cause all nodes on the channel to wake up and process the frame. In duty-cycled networks, this increases:¶
Furthermore, DHCPv6 requires a reachable server, often via relay agents, which may introduce multi-hop control paths and centralized state management. In lossy multi-hop LLNs, longer control paths increase failure probability and recovery cost. Further analysis is presented in Appendix A.¶
This document specifies a new neighbor discovery option, the Generic Address Assignment Option (GAAO), that enables a node to request an address or prefix directly from a neighboring router using RFC8505-based ND messages. The mechanism:¶
Operates strictly at 1-hop,¶
Avoids introducing a centralized infrastructure,¶
Aligns with RFC8505 registration procedures,¶
Supports distributed algorithmic address assignment.¶
GAAO complements the Extended Address Registration Option (EARO) defined in [RFC8505] and its extensions, integrating address/prefix assignment into the existing optimized ND framework for 6LoWPAN.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document assumes familiarity with the terminology defined in [RFC6775] "ND Optimization for 6LoWPANs", [RFC8505] "Registration Extensions for 6LoWPAN ND", [RFC7136] IPv6 IID, [RFC4861] "IPv6 Neighbor Discovery", and [RFC4862] SLAAC. In particular for the following acronyms:¶
6CIO: Capability Indication Option¶
6LBR: 6LoWPAN Border Router¶
6LN: 6LoWPAN Node¶
6LoWPAN: IPv6 over Low-Power Wireless Personal Area Network¶
6LR: 6LoWPAN Router¶
AAF: Address Assignment Function¶
ARO: Address Registration Option¶
EARO: Extended Address Registration Option¶
GAAO: Generic Address Assignment Option¶
IID: Interface IDentifier¶
LLN: Low-Power and Lossy Network¶
NA: Neighbor Advertisement¶
ND: Neighbor Discovery¶
NS: Neighbor Solicitation¶
PfxLen: Prefix Length¶
RA: Router Advertisement¶
RS: Router Solicitation¶
SLAAC: Stateless Address Auto-Configuration¶
SLLAO: Source Link-Layer Address Option¶
TLLAO: Target Link-Layer Address Option¶
The Address Assignment Function (AAF) is an implementation of the algorithm used by 6LRs/6LBR to assign an address/prefix to requesting nodes. In order to avoid addressing issues, only one AAF is used in a deployment. An AAF assigns either addresses or prefixes but not both. This allows in certain cases to indicate whether a node is requesting an address or a prefix.¶
GAAO: Generic Address Assignment Option defined in this specification (Section 4). GAAO is the exchange format an AAF can use for address/prefix assignments, but it is not itself an AAF.¶
The IPv6 address assignment model within a local layer-2 domain relies on Interface Identifiers (IIDs) generated with various techniques. These can be assigned using two main approaches: a centralized approach using DHCPv6 ([RFC9915]), which guarantees collision-free addresses, or a decentralized approach using SLAAC ([RFC4862]). Additional mechanisms are then required to ensure address uniqueness, via Duplicate Address Detection (DAD) [RFC4862], and security, like in Cryptographically Generated Addresses (CGA) [RFC3972], or Secure Neighbor Discovery (SEND) [RFC3971]. However, there is a third approach for address assignment, which is distributed and collision-free: algorithmically generated addresses (e.g., [SHENOY21], [BLESS22], [RIDOUX05], [ERIKSSON04]).¶
The Address Assignment Function (AAF) will work in a decentralized and distributed fashion. The AAF is used to assign addresses and prefixes to nodes as they join a network. To ensure consistency, all 6LoWPAN Nodes (6LNs), 6LoWPAN Routers (6LRs), and 6LoWPAN Border Routers (6LBRs) MUST use the same AAF within a given network instance. When a node needs an address/prefix, it first selects a neighboring 6LR/6LBR from those that responded to its initial Router Solicitation (RS) with a Router Advertisement (RA), as specified in [RFC6775]. The node then sends an explicit request for an address/prefix to the chosen 6LR/6LBR (see Section 5 for details about messages sequence and processing). The 6LR/6LBR assigns the address/prefix based on the AAF. Depending on the specific technology and algorithm in use, the 6LR/6LBR will either implicitly register this assignment to the requesting 6LN, or will indicate to the 6LN that an explicit registration of the assigned address/prefix is necessary to confirm its use. The overall process is illustrated in Figure 1.¶
The optional registration phase (steps 3 and 4) is implemented using the address/prefix registration procedures defined in [RFC8505], [RFC9685], or [RFC9926] "Prefix Registration". In this phase, an Extended Address Registration Option (EARO) and SLLAO are used to register an address/prefix, which, in this context, is not self-generated. However, to initiate the process—specifically steps 1 and 2, a new Generic Address Assignment Option is required and defined in this document. Because no existing mechanism can be readily used for this purpose. The remainder of this document first defines the format of this option (see Section 4), followed by a revised sequence and processing of Address/Prefix assignment messages (see Section 5).¶
In order for a 6LN to request the assignment of an address or prefix, GAAO message is used. The format of the GAAO message is shown in Figure 2.¶
Generic Address Assignment Option Fields:¶
TBD¶
8-bit unsigned integer. The length of the option in units of 8 octets. This field is set to 1 plus the size of the ROVR field when there is no address/prefix appended to the option. Its value is augmented by 2 (16 octets) when an address/prefix is appended to the option.¶
1-bit flag for explicit Registration being requested. It MUST be initialized to 0 in Neighbor Solicitation (NS) messages by the requester and MUST be ignored by the receiver. The 6LR/6LBR replying to the request with a Neighbor Advertisement (NA) message MAY set this bit to indicate that it requests a confirmation that the address/prefix is accepted and will be used. When the 6LR/6LBR sets the R-flag in a NA(GAAO) message, it indicates that no registration state has been created and that the requester MUST explicitly register the received address/prefix to the same 6LR/6LBR using the procedures defined in [RFC8505], [RFC9926], and [RFC9685], according to the type of the assigned address/prefix. When the 6LR/6LBR does not set this R-flag, it indicates that the assigned address/prefix has been also registered and state created as specified in [RFC8505], [RFC9926], and [RFC9685], according to the type of the assigned address/prefix. In the event that the 6LN does not want to use the allocated address/prefix, it can de-register the allocation by sending an NS(EARO) setting registration lifetime to zero, as defined in [RFC8505].¶
1-bit flag for Crypto-ID used for ROVR as defined in [RFC8928] "Address Protection ND for LLN" and [RFC9927] "Fixing C-FLag in RFC 8928". This flag MUST be set when the ROVR field contains a Crypto-ID.¶
3-bit reserved field for future use. It MUST be initialized to 0 by the sender and MUST be ignored by the receiver.¶
7-bit unsigned integer. It indicates the length in bits of the address/prefix carried in the option.¶
4-bit unsigned integer. Describes the Address Assignment Function (AAF), i.e. the algorithm, used to assign the address/prefix. 0 is a special value indicating that the field is not used. In an NS(GAAO) message, this field is set to 0 to indicate that there is no preference on how the address/prefix is assigned. However, a 6LN MAY use a value different from 0, to indicate that it is requesting the use of a specific AAF to assign the address/prefix. In the case that the requested AAF is not used in the specific deployment, an error condition is returned, see Section 5.4 for details. Section 7.4 describes possible values of this field.¶
16-bit unsigned integer, expressed in minutes. In an NS(GAAO) message, the field expresses a desired lifetime. It MAY be set to zero, indicating no particular desired lifetime. In an NA(GAAO) message it expresses the granted lifetime. A node MUST NOT use the address/prefix after expiration of the lifetime. Address/prefix lifetime MUST be configurable according to the AAF in use and as mitigation of certain attacks (see Section 8).¶
As defined in [RFC8505] and extended in [RFC8928] and [RFC9927].¶
128-bit IPv6 address/prefix. This field MAY be present in NS(GAAO) request messages to indicate the prefix from which the address or sub-prefix has to be derived. If not present in an NS(GAAO) message, it means that the address returned in an NA(GAAO) message is implicitly used on the interface used to send the request. This field MUST be present in NA(GAAO) messages that return a successful address/prefix allocation, but MUST NOT be present in case of error. When the field is used return a prefix, the leftmost bits are used for its encoding according to the length field, the remaining bits are set to zero. The presence of this field is indicated by the length field (cf. above).¶
When a node bootstraps (or in case of a neighbor unreachability detection), it sends an RS message via multicast and receives one or more unicast RA messages from neighbor 6LRs. The node MAY choose one or more 6LRs from which to request address(es) or prefix(es). A node MAY perform a request at any time, not necessarily at boot time, using NS and NA messages.¶
When the node requests an address/prefix, the node will go through the following steps:¶
The node will issue an NS(GAAO) message to obtain the address/prefix. In this initial address request, GAAO Status field MUST be set to 0. Opaque, ROVR, and C-flag are set according to the local configuration. R-Flag MUST be set to 0. The AAF field MUST be set to zero unless by configuration there is a preference for the assignment algorithm. The Assignment Lifetime field MAY be set to the desired lifetime, or zero otherwise. The Address/Prefix field MAY be present to indicate the prefix from which the address or sub-prefix has to be derived. In this case the PfxLen field MUST be set accordingly. If the Address/Prefix field is not present, the PfxLen field MUST be set to 0.¶
Assuming no errors occur, the node will receive an NA(GAAO) message where all fields have been copied back except for:¶
Pfxlen: Now indicating the actual length of the prefix. For address assignments this field MUST be set to 64.¶
R: The R-bit is set if the 6LR requests an explicit registration.¶
AAF: It is the algorithm, used to assign the address/prefix. If the node is a 6LR it MUST use the same AAF to generate addresses/prefixes to requesting neighbor nodes in the 6LoWPAN network.¶
Assignment Lifetime: The maximum lifetime of the assigned address/prefix.¶
Depending on the algorithm in use and the underlying technology, the address/prefix assignment procedure terminates after these two messages. This may be sufficient for instance in deployments where the link-layer offers reliable packet delivery. The use of this option is done by configuration on 6LRs. Documents defining AAFs MUST explicitly state whether this phase remains optional or is mandatory due to factors specific to the proposed algorithm.¶
If the R-flag is set in the received NA(GAAO) message, the 6LN MUST register with the obtained address/prefix by following the procedures in [RFC8505], [RFC9685], or [RFC9926] depending on the type of address/prefix. When setting the R-flag, and as for [RFC4861], the 6LR is expected to receive a registration within RETRANS_TIMER multiplied by MAX_UNICAST_SOLICIT. If no registration is received within this amount of time the 6LR will consider that address/prefix is not in use by the requesting 6LN.¶
The complete sequence of actions is depicted in Figure 4.¶
[RFC8505], [RFC9685], and [RFC9926], define how nodes keep address/prefix registration state in order to maintain addressing in case of reboot. When needed, in order to use this feature with GAAO, after reboot the registration phase MUST be used to perform an explicit registration and continue using the address/prefix. However, when using GAAO, and when performing the re-registration, if a "Registration Refresh Request" or "Invalid Registration" Status value is returned, the node MUST restart from the top with the initial Request Phase.¶
There are two ways to optimize the prefix/address Request Phase: GAAO with Address Registration and GAAO with Router Discovery.¶
Another optimization for prefix/address requests can be performed during the bootstrapping phase of a 6LN. The GAAO MAY be included in the initial RS message, thereby implicitly indicating that the node supports this specification. Similarly, 6LR/6LBR that support this specification MUST include a prefix/address offer in a GAAO appended to the corresponding RA message, as depicted in Figure 5.¶
A 6LR/6LBR that does not support GAAO will simply ignore this option, and the corresponding RA message will not include a GAAO. This behavior implicitly signals that the feature is not supported.¶
Prefix/address Registration utilize NS/NA transactions for the link-local address registration [RFC8505]. In this specification, the prefix/address Request procedure utilizes an additional NS/NA transaction. To minimize the number of transactions, GAAO MAY be used together with the EARO option during address registration phase. This piggybacking approach provides flexibility and maintains compatibility with existing specifications [RFC8505]. In response the NA message will contain GAAO. Figure 6 illustrates the GAAO piggybacked within a link-layer address registration request and response. Piggybacking can be done within the MTU limit of the underlying technology, since ND messages cannot be fragmented.¶
GAAO Status field uses the same Status values defined in [RFC6775] and [RFC8505], further revised in [RFC9010], for error reporting. This specification introduces a new Status value when the AAF in GAAO in an NS message is not in use in the 6LoWPAN network, as follows (see also Section 7):¶
The AAF in GAAO in the NS message is not in use in the 6LoWPAN network.¶
This status MUST be used when a node requesting an address/prefix has set an AAF value, in the corresponding field, which is not in use in the 6LoWPAN network. When the node receives this status back it SHOULD perform one of the following actions:¶
Re-issue the same request without specifying an AAF, meaning set the AAF field to 0. The 6LR will return the AAF in use in the 6LoWPAN network and employed to generate the returned address/prefix. If the requesting node does not support the returned AAF it does not participate in the AAF-based 6LoWPAN network and does not use the proposed address/prefix.¶
Re-issue the same request with a different AAF. The 6LoWPAN network is not using the requested AAF but may be using a different one. Note that such an approach may lead to repeated requests that may consume bandwidth and energy.¶
Do nothing and do not participate in the AAF-based 6LoWPAN network.¶
The action to be used is selected by configuration. When nodes fail to participate in the AAF-based 6LoWPAN network they MAY still use a different mechanism (e.g., [RFC8505]) to configure addresses/prefixes.¶
This specification defines a new capability bit, named M-flag, for use in the 6CIO as defined by [RFC7400] Section 3.3 ("6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks"). A 6LN that supports this specification MUST set the M-flag in RS and RA messages.¶
1-bit flag. The node supports managed addresses/prefixes via the Generic Address Assignment Capability.¶
This section requests that Internet Assigned Numbers Authority (IANA) registers values related to the GAAO specification, in accordance with BCP 26 [RFC8126].¶
IANA is requested to make an addition to the "IPv6 Neighbor Discovery Option Formats" registry [NDOPTIONS], under the heading "Internet Control Message Protocol version 6 (ICMPv6) Parameters", as indicated in Table 1:¶
| Type | Description | Reference |
|---|---|---|
| TBD | Generic Address Assignment Option | [This Document] |
IANA is requested to make an addition to the "6LoWPAN Capability Bits" registry [CAPABILITYBITS], under the registry group "Internet Control Message Protocol version 6 (ICMPv6) Parameters", as indicated in Table 2:¶
| Bit | Description | Reference |
|---|---|---|
| 17 (Suggested) | M-Flag for Generic Address Assignment Capability | [This Document] |
IANA is requested to make an addition to the "Address Registration Option Status Values" registry [OPTIONSTATUS], under the registry group "Internet Control Message Protocol version 6 (ICMPv6) Parameters", as indicated in Table 3:¶
| Value | Description | Reference |
|---|---|---|
| 13 (Suggested) | AAF Not Used | [This Document] |
IANA is asked to create a registry group named "6LoWPAN Generic Address Assignment Option", under the registry group "Internet Control Message Protocol version 6 (ICMPv6) Parameters".¶
Such registry group should be populated with an octet registry named "Address Assignment Function" and used to identify the used AAF. The registry is populated as shown in Table 4:¶
| Value | AAF Name | Reference |
|---|---|---|
| 0x0 | No AAF. This can be used only in NS message to indicate that no specific AAF is demanded. | [This Document] |
| 0x1-0xE | Un-assigned | |
| 0xF | Experimental Use. Used for experimental purposes during implementation of new AAFs. | [This Document] |
Values can be assigned by IANA, after this document is published, using the "RFC Required" procedure according to [RFC8126].¶
This document extends [RFC8505], which already extended [RFC6775], as such the security considerations of both documents apply to this specification. In particular, the link layer MUST provide sufficient protection to prevent potential attacks. Recommendations listed in Section 7 of [RFC8505] MUST be applied as well to this specification.¶
Depending on the AAF in use, the number of available addresses may encounter limitations. A rouge node may leverage on this knowledge to carry out address exhaustion attacks by impersonating different nodes and performing multiple requests. To mitigate such risks the recommendation about the lifetime and number of addresses per node described in Section 7 of [RFC8505] remains valid.¶
Furthermore, depending on the AAF, the algorithmically built addresses may reveal topological or other private information. Documents specifying a new AAF MUST discuss such aspects.¶
This document received many comments and help from community people. The authors would like to thank all of them. Thanks as well to Joel Halpern (GENART) and Brian Haberman (INTDIR) for their reviews that helped to spot overlooked points in the definition of the GAAO mechanism. Thanks to Pascal Thubert for his help in making this specification more integrated with existing 6LoWPAN specifications. Thanks to Carles Gomez Montenegro for his very thorough shepherd review. Thanks to Lorenzo Colitti for helping to clarify the scope of GAAO with respect to DHCPv6. Thanks to Eric Vyncke for the excellent AD review.¶
DHCPv6 is typically used in traditional Ethernet or Wi-Fi networks, it is rarely used in 6LoWPAN (IPv6 over Low-Power Wireless Personal Area Networks) deployments for several critical reasons rooted in efficiency and resource constraints. [RFC9119] considers that the use of multicast transmissions over IEEE 802 wireless technologies may create issues related to:¶
Reliability;¶
Lower and variable data rate;¶
Capacity and impact on interference;¶
Power-save effects on multicast;¶
Hence, the intensive use of multicast may not be optimal. [RFC9119] lists DHCPv6 [RFC9915] among the protocols that make an extensive use of multicast. Neighbor Discovery is also listed, as multicast optimization in this protocol is one of the reasons that lead to the 6LoWPAN protocol stack development (cf. [RFC6775] and [RFC8505]). An extensive study comparing [RFC4861] and [RFC6775], showing the inefficiency of the former in 6LoWPAN deployments, can be found in [SELIEM17].¶
In rare cases, Stateless DHCPv6 is used in 6LoWPAN just to pass "Other" information (like DNS server addresses or NTP servers) if the Router Advertisements don't provide them. However, for actual address assignment, it is almost non-existent in the context of 6LoWPAN. In 6LoWPAN deployments, the use of DHCPv6 entails running an additional service on the 6LRs, beside the 6LoWPAN ND. Running an additional service will have impact on memory usage and battery lifetime. GAAO requires only that the implementation supports the GAAO option, as it is part of the 6LoWPAN ND already present and running, hence, preserving the efficiency of [RFC6775] as shown in [SELIEM17].¶
A typical DHCPv6 exchange involves four messages:¶
Solicit (from 6LN to server - multicast)¶
Advertise (from server to 6LN - unicast)¶
Request (from 6LN to server - multicast)¶
Reply (from server to 6LN - unicast)¶
Message payload (not including link/IPv6/UDP headers):¶
Solicit: 30 octets (minimal size - typical 80 to 150 octets)¶
Advertise: 32 octets (minimal size - typical 100 to 180 octets)¶
Request: 38 octets (minimal size - typical 80 to 150 octets)¶
Reply: 32 octets (minimal size - typical 100 to 200 octets)¶
Size of a minimal exchange: 132 octets (or 70 octets when using Rapid Commit option).¶
DHCPv6 needs dedicated messages which are multicast (depending on the message type) and may span several layer-2 links depending on where the server is placed. As such, channel access and headers' overhead cannot be shared with other messages. In a simple deployment with the server directly accessible on the same layer-2 link, four different messages are necessary with the first and the third being multicast. DHCPv6 includes a "Rapid Commit" option that reduces the exchange to only two messages, namely a Solicit and a Reply, with the first being multicast.¶
A typical GAAO exchange involves two messages, each one carrying one GAAO option:¶
Option size: - GAAO option (24 octets in NS messages and 40 octets on NA messages)¶
Size of a typical exchange: 62 octets.¶
GAAO does not need to be transmitted on dedicated messages. It can be piggybacked on ND messages carrying other options, hence sharing the channel access and headers' overhead with these other options. If not piggybacked, the exchange requires two unicast messages. In both cases the exchange takes place on one single layer-2 link.¶
From an abstract point of view, for a 6LN to obtain an address several messages need to be exchanged, as summarized in Table 5.¶
| Octets Exchanged | Multicast Messages | Unicast Messages | L2 links | |
|---|---|---|---|---|
| DHCPv6 | 142 | 2 | 2 | multiple |
| DHCPv6 Rapid Commit | 70 | 1 | 1 | multiple |
| GAAO | 62 | 0 | 2 | 1 |
In generic and realistic 6LoWPAN deployments, the GAAO option can be piggybacked on other ND messages, hence sharing header and channel access overhead, and it is just transmitted 1-hop away. DHCPv6, cannot share such overhead with other data, specific packets need to be sent per each message. Additionally, unicast messages may span several hops, since the DHCPv6 server is usually deployed on the 6LBR, consuming network resources (e.g., energy, network bandwidth) and experiencing higher latency. The multicast message may even trigger a (resource expensive) network wide broadcast, as explained in Appendix A.5.¶
Address renewal bears a similar cost for both DHCPv6 and GAAO in terms of size, with GAAO having a slightly smaller message length, assuming DHCPv6 packets use the minimal size. The difference lays in the fact that in DHCPv6, the Renew message is also a multicast message, and that messages may traverse several hops, to reach the DHCPv6 server, hence consuming more resources (e.g., energy, network bandwidth, etc.). In case of dense and noisy environment, with higher likelihood of packet losses, this may lead to nodes not being able to renew the DHCPv6 address lease, and the node needing to restart address request using the multicast-based 4-packets exchange.¶
6LoWPAN deployments may have very small MTU limits. For instance, IEEE 802.15.4 frame size is only 127 octets (max PHY layer payload). Assuming that DHCPv6 is configured to use the bare minimal options, there should be no MTU issues neither for DHCPv6 nor GAAO. If the minimal options condition is not respected, fragmentation may be needed for DHCPv6 large messages, increasing delay and energy consumption. GAAO has a fixed size, hence the only consequence is that it can be piggybacked with other options only if the MTU limit is respected.¶
Since DHCPv6 has to deliver almost twice the number of octets compared to GAAO, in terms of pure energy/octet consumption DHCPv6 uses almost double the energy. Because the number of messages is also doubled, there is an additional overhead due to 6LN accessing the channel four times, with nodes staying awake longer which in turn consumes more energy. Any communication pattern that forces many nodes to wake up and receive packets (such as broadcast or multicast) has a disproportionately large impact on battery lifetime [FOURTY12].¶
It is worth noting that the unicast messages are all 1-hop, while the multicast messages must be distributed to the whole network [RASHID24]. Furthermore, multicast in 6LoWPAN is inefficient due to the actual lack of multicast support at lower layers, which is emulated either via broadcast or via unicast floods. Broadcast is generally less energy-efficient than unicast for targeted communication because it sends packets to all nodes, including those not interested in the data, no ACKs are used, so retransmissions for reliability must be handled at higher layers, potentially increasing energy usage, and all nodes must wake up and process the broadcast packet, even if they are not the intended recipients ([FOURTY12], [OZTOPRAK24]). Unicast floods may increase reliability, however, depending on the topology it may lead to higher latency and increased energy consumption.¶