Attribute List Extension for the Service Location Protocol
Extracted elements (12)
The extension was designed to optimize the SLPv2 message exchange by allowing attributes to be piggybacked on Service Reply messages, reducing the number of round trips required for a UA to acquire all service information from two exchanges to one.
If the UA receives a Service Reply without an Attrlist Extension, it must assume the SA or DA does not support the extension and must send a separate Attribute Request for each URL obtained in the Service Reply.
The Extension ID 0x0002 is assigned from the range indicating that receivers MUST ignore unrecognized extensions per RFC 2608, ensuring backward compatibility with SLPv2 implementations that do not support this extension.
If the SA or DA does not support or is unable to return an authentication block for the SLP SPI included in the Service Request, then the SA or DA MUST NOT return an Attribute List Extension.
If the Service Request message includes a SLP SPI string, then the attribute list extension MUST include an authentication block.
Support of the Attrlist extension is OPTIONAL; existing implementations will ignore it since its Extension ID is from the range indicating that the receiver MUST ignore unrecognized extensions.
The order of the Attribute List Extensions SHOULD be the same as the URL Entries in the Service Reply.
The Attribute List Extension (Extension ID 0x0002) allows a UA to request that a service's attributes be included in Service Reply messages, eliminating the need for separate Attribute Request round trips. The UA sends an empty extension in the Service Request; the SA/DA returns one Attribute List Extension per URL Entry in the Service Reply.
When a UA sends a Service Request with the Attribute List Extension, the Service URL Length and Attribute List Length fields are set to 0 and the corresponding fields are omitted, forming an 'empty' extension that signals the UA's request for attributes.
IANA has assigned Extension ID 0x0002 for the Attribute List Extension in the SLPv2 extension ID registry.
The Attribute List Extension reuses SLPv2's existing authentication mechanism for attribute lists, allowing UAs to verify a digital signature over the attributes. The extension is no less secure than SLPv2 without the extension, as the same authenticator format used in Attribute Reply and Service Registration messages is used here.
The Attribute List Extension wire format contains: Extension ID (2 octets, value 0x0002), Next Extension Offset (3 octets), Service URL Length (2 octets), Service URL (variable), Attribute List Length (2 octets), Attribute List (variable), number of AttrAuths (1 octet), and optional Attribute Authentication Blocks.