The QUAD option is used to specify the preferences for the selected quadrants within an IA_LL. The option
MUST be encapsulated either in the IA_LL-options field of an IA_LL option or in a Relay-forward message.
The format of the QUAD option is:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_SLAP_QUAD | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| quadrant-1 | pref-1 | quadrant-2 | pref-2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| quadrant-n-1 | pref-n-1 | quadrant-n | pref-n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
option-code
-
OPTION_SLAP_QUAD (140).
-
option-len
-
2 * number of included (quadrant, preference). This is a 2-byte field containing thetotal length of all (quadrant, preference) pairs included in the option.
-
quadrant-n
-
Identifier of the quadrant (0: AAI, 1: ELI, 2: Reserved by IEEE[IEEEStd802c], and 3: SAI). Each quadrantMUST only appear once at most in the option. This is a 1-byte field.
-
pref-n
-
Preference associated to quadrant-n. A higher value means a more preferredquadrant. This is a 1-byte field.
A quadrant identifier value
MUST only appear, at most, once in the option. If an option includes more than one occurrence of the same quadrant identifier, only the first occurrence is processed, and the rest
MUST be ignored by the server.
If the same preference value is used for more than one quadrant, the server
MAY select which quadrant should be preferred (if the server can assign addresses from all or some of the quadrants with the same assigned preference). Note that this is not a simple list of quadrants ordered by preference with no preference value, but a list of quadrants with explicit preference values. This way it can support the case whereby a client really has no preference between two or three quadrants, leaving the decision to the server.
If the client or relay agent provides the OPTION_SLAP_QUAD, the server
MUST use the quadrant-n/pref-n values to order the selection of the quadrants. If the server can provide an assignment from one of the specified quadrants, it
SHOULD proceed with the assignment. If the server does not have a configured address pool matching any of the specified quadrant-n fields or if the server has a configured address pool of the correct quadrant but no available addresses, it
MUST return the IA_LL option containing a status of NoAddrsAvail.
There is no requirement that the client or relay agent order the quadrant/pref values in any specific order; hence, servers
MUST NOT assume that quadrant-1/pref-1 have the highest preference (except if there is only one set of values).
For cases where a server may not be configured to have pools for the client or relay quadrant preferences, clients and relays
SHOULD specify all quadrants in the QUAD option to assure the client gets an address (or addresses) -- if any are available. Specifying all quadrants also results in a QUAD option supporting server responding like a non-QUAD option supporting server, i.e., an address (or addresses) from any available quadrants can be returned.