2.2.9 Service Descriptor Structure
The Service Descriptor (SD) structure specifies a service to be activated and provides for explicit capability negotiation. An array of SD structures is specified in a Service Descriptor message (section 2.2.8). The SD structure format is specified as follows.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
ServiceActivationUUID (16 bytes) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
ExtendedInfo1 |
ServiceVersion |
||||||||||||||||||||||||||||||
|
ExtendedInfo2 |
ExtendedPayloadLength |
||||||||||||||||||||||||||||||
|
ExtendedPayload (variable, optional) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
ServiceActivationUUID (16 bytes): The UUID of the specific service being activated.
ExtendedInfo1 (2 bytes): Service-specific extension information. Each service protocol SHOULD define what this field is used for.
ServiceVersion (2 bytes): A positive integer that specifies the version of the service being activated. The value SHOULD be nonzero; service activations containing a zero service version MUST be ignored. The first version of all service protocols MUST be 1. A peer that claims to support version X of a given service MUST support activations with versions 1 through X.
ExtendedInfo2 (2 bytes): Service-specific extension information. Each service protocol SHOULD define what this field is used for.
ExtendedPayloadLength (2 bytes): The length in bytes of additional service-specific extension information in the ExtendedPayload field. Each service protocol SHOULD define whether or not the Extended Payload is used. If this field is nonzero, but there are not enough bytes left in this message, then this last entry is ill-formed and MUST be ignored.
ExtendedPayload (variable, optional): Additional service-specific extension information. Each service protocol defines whether or not this information is used, and if so, how it is used.
-
The service listed in the SD MUST have a positive integer ServiceVersion value associated with it. If an implementation specifies a service with version X in its published SD, the implementation MUST be compatible with all version numbers less than or equal to X. If an implementation cannot support prior versions, it MUST specify a new ServiceActivationUUID, in effect creating a new service. A Service Activation header (section 2.2.7) contains the UUID of the service to activate and the service version number.