2.2.4 AppWFDDiscoveryPrimaryIE Message
The AppWFDDiscoveryPrimaryIE message is contained in advertisement frames that the application sends over WFD to Probe Response or Beacon frames. This message contains application attributes, such as the Display Name, Peer Id, Role and Version. This IE MUST be present in the advertisement frames for applications on proximate devices to discover the advertising application.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VendorExtensionIE |
cbLength |
OUI |
|||||||||||||||||||||||||||||
... |
OUIType |
VendorExtensionAttributeType |
|||||||||||||||||||||||||||||
cbLength1 |
WPSOUI |
||||||||||||||||||||||||||||||
... |
PeerIdAttributeType |
cbLength2 |
|||||||||||||||||||||||||||||
... |
PeerId (variable) |
||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
DisplayNameAttributeType |
cbLength3 |
||||||||||||||||||||||||||||||
DisplayName (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
RoleAttributeType |
cbLength4 |
||||||||||||||||||||||||||||||
Role (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
VersionAttributeType |
cbLength5 |
||||||||||||||||||||||||||||||
Version (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
VendorExtensionIE (1 byte): This field indicates that the message is a vendor extension IE. The field MUST be set to the value 0xDD.
cbLength (1 byte): This field indicates the remaining size of the message in bytes.
OUI (3 bytes): This field MUST be set to the value 0x0050F2 and MUST be specified in big-endian byte order.
OUIType (1 byte): This field MUST be set to the value 0x04.
VendorExtensionAttributeType (2 bytes): This field indicates the vendor extension attribute type for WPS OUI, as specified in [IEEE-OUI]. The field MUST contain the value 0x1049 and MUST be specified in big-endian byte order.
cbLength1 (2 bytes): This field indicates the remaining size of the message in bytes. The field MUST be specified in big-endian byte order.
WPSOUI (3 bytes): This field indicates the WPS OUI. This field MUST be set to the value 0x000137 and MUST be specified in big-endian byte order.
PeerIdAttributeType (2 bytes): This field contains a TLV that specifies the Peer Id. Based on the protocol version, this field MUST contain one of the values noted in the following table. This field MUST be specified in big-endian byte order.
-
Protocol version
Value
0x100B
WFDA2Av2
0x100C
cbLength2 (2 bytes): This field indicates the size of the PeerId field in bytes. This field MUST be specified in big-endian byte order.
PeerId (variable): This field contains the Peer Id. The Peer Id is a unique identifier that identifies the application. The size of this field is indicated by the cbLength2 field. The Peer Id MUST be a SHA-256 hash of the string passed by the higher layer.
DisplayNameAttributeType (2 bytes): This field indicates that the TLV contains a Display Name. Based on the protocol version, this field MUST contain one of the values in the following table. This field MUST be specified in big-endian byte order.
-
Protocol version
Value
WFDA2Av1
0x1008
WFDA2Av2
0x1010
cbLength3 (2 bytes): This field indicates the size of the DisplayName field in bytes. This field MUST be specified in big-endian byte order. The Display Name size MUST NOT exceed 98 bytes.
DisplayName (variable): This field contains the Display Name. The Display Name is a property that the application can set. The size is indicated by the cbLength3 field. Note that if the application does not set a Display Name, the system MUST set the computer’s DNS name as the Display Name.
RoleAttributeType (2 bytes): This TLV MUST be present only in WFDA2Av2. When present, this field indicates that the TLV contains a Role. The field MUST contain the value 0x100D and MUST be specified in big-endian byte order. If the field is not present, by default the application performs the peer role.
cbLength4 (2 bytes): This field indicates the size of the Role field and MUST be set to 1 byte. This field MUST be specified in big-endian byte order.
Role (variable): This field identifies the role that the application is performing (see section 3.1.3). The size of the field is indicated by the cbLength4 field which MUST be set to 1 byte. The field MUST be set to one of the values in the following table to indicate the role.
-
Role
Value
Peer
0x01
Host
0x02
Client
0x03
VersionAttributeType (2 bytes): This field indicates that the TLV contains a Version attribute. It MUST contain the value 0x100F and MUST be specified in big-endian byte order. This TLV MUST be present only in WFDA2Av2.
cbLength5 (2 bytes): This field indicates the size of the Version field and MUST be set to 2 bytes. This field MUST be specified in big-endian byte order.
Version (variable): This field identifies the protocol version. The size of the field is indicated by the cbLength4 field which MUST be set to 2 bytes. This field MUST be specified in big-endian byte order. The most significant byte MUST indicate the major version and the least significant byte MUST indicate the minor version.<2>