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.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

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

WFDA2Av1

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>