This section introduces the building blocks for an autonomic edge prefix management solution. As noted in
Section 1, this is not a complete description of a solution, which will depend on the detailed design of the relevant Autonomic Service Agents (ASAs). It uses the generic discovery and negotiation protocol defined by [
RFC 8990]. The relevant GRASP objectives are defined in
Section 5.
The procedures described below are carried out by an ASA in each device that participates in the solution. We will refer to this as the PrefixManager ASA.
If the device containing a PrefixManager ASA has used up its address pool, it can request more space according to its requirements. It should decide the length of the requested prefix and request it via the mechanism described in
Section 6. Note that although the device's role may define certain default allocation lengths, those defaults might be changed dynamically, and the device might request more, or less, address space due to some local operational heuristic.
A PrefixManager ASA that needs additional address space should firstly discover peers that may be able to provide extra address space. The ASA should send out a GRASP Discovery message that contains a PrefixManager Objective option (see
Section 2 of
RFC 8650 and
Section 5.1) in order to discover peers also supporting that option. Then, it should choose one such peer, most likely the first to respond.
If the GRASP Discovery Response message carries a Divert option pointing to an off-link PrefixManager ASA, the requesting ASA may initiate negotiation with that ASA-diverted device to find out whether it can provide the requested length of the prefix.
In any case, the requesting ASA will act as a GRASP negotiation initiator by sending a GRASP Request message with a PrefixManager Objective option. The ASA indicates in this option the length of the requested prefix. This starts a GRASP negotiation process.
During the subsequent negotiation, the ASA will decide at each step whether to accept the offered prefix. That decision, and the decision to end the negotiation, are implementation choices.
The ASA could alternatively initiate GRASP discovery in rapid mode with an embedded negotiation request, if it is implemented.
At least one device on the network must be configured with the initial pool of available prefixes mentioned in
Section 3.2. Apart from that requirement, any device may act as a provider of prefixes.
A device that receives a Discovery message with a PrefixManager Objective option should respond with a GRASP Response message if it contains a PrefixManager ASA. Further details of the discovery process are described in [
RFC 8990]. When this ASA receives a subsequent Request message, it should conduct a GRASP negotiation sequence, using Negotiate, Confirm Waiting, and Negotiation End messages as appropriate. The Negotiate messages carry a PrefixManager Objective option, which will indicate the prefix and its length offered to the requesting ASA. As described in [
RFC 8990], negotiation will continue until either end stops it with a Negotiation End message. If the negotiation succeeds, the ASA that provides the prefix will remove the negotiated prefix from its pool, and the requesting ASA will add it. If the negotiation fails, the party sending the Negotiation End message may include an error code string.
During the negotiation, the ASA will decide at each step how large a prefix to offer. That decision, and the decision to end the negotiation, are implementation choices.
The ASA could alternatively negotiate in response to GRASP discovery in rapid mode, if it is implemented.
This specification is independent of whether the PrefixManager ASAs are all embedded in routers, but that would be a rather natural scenario. In a hierarchical network topology, a given router typically provides prefixes for routers below it in the hierarchy, and it is also likely to contain the first PrefixManager ASA discovered by those downstream routers. However, the GRASP discovery model, including its redirection feature, means that this is not an exclusive scenario, and a downstream PrefixManager ASA could negotiate a new prefix with a device other than its upstream router.
A resource shortage may cause the gateway router to request more resources in turn from its own upstream device. This would be another independent GRASP discovery and negotiation process. During the processing time, the gateway router should send a Confirm Waiting message to the initial requesting router, to extend its timeout. When the new resource becomes available, the gateway router responds with a GRASP Negotiate message with a prefix length matching the request.
The algorithm used to choose which prefixes to assign on the devices that provide prefixes is an implementation choice.
Upon receiving a GRASP Negotiation End message that indicates that an acceptable prefix length is available, the requesting device may use the negotiated prefix without further messages.
There are use cases where the ANI/GRASP-based prefix management approach can work together with DHCPv6-PD [
RFC 8415] as a complement. For example, the ANI/GRASP-based method can be used intra-domain, while the DHCPv6-PD method works inter-domain (i.e., across an administrative boundary). Also, ANI/GRASP can be used inside the domain, and DHCP/DHCPv6-PD can be used on the edge of the domain to clients (non-ANI devices). Another similar use case would be ANI/GRASP inside the domain, with RADIUS [
RFC 2865] providing prefixes to client devices.
Within the autonomic prefix management system, all prefix assignments are done by devices without human intervention. It may be required that all prefix assignment history be recorded -- for example, to detect or trace lost prefixes after outages or to meet legal requirements. However, the logging and reporting process is out of scope for this document.