3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-25 17:59:25 +01:00

ie: Add ie_tlv_extract_wfd_payload

This commit is contained in:
Andrew Zaborowski 2020-03-19 22:12:16 +01:00 committed by Denis Kenzior
parent 430ccf8714
commit 264ab685ba
2 changed files with 20 additions and 0 deletions

View File

@ -200,6 +200,23 @@ void *ie_tlv_extract_p2p_payload(const unsigned char *ies, size_t len,
ies, len, true, out_len);
}
/*
* Wi-Fi Display Technical Specification v2.1.0, Section 5.1.1:
* "More than one WFD IE may be included in a single frame. If multiple WFD
* IEs are present, the complete WFD subelement data consists of the
* concatenation of the WFD subelement fields of the WFD IEs. The WFD
* subelements field of each WFD IE may be any length up to the maximum
* (251 octets). The order of the concatenated WFD subelement data shall be
* preserved in the ordering of the WFD IEs in the frame. All of the WFD IEs
* shall fit within a single frame and shall be adjacent in the frame."
*/
void *ie_tlv_extract_wfd_payload(const unsigned char *ies, size_t len,
ssize_t *out_len)
{
return ie_tlv_vendor_ie_concat(wifi_alliance_oui, 0x0a,
ies, len, true, out_len);
}
/*
* Encapsulate & Fragment data into Vendor IE with a given OUI + type
*

View File

@ -431,6 +431,9 @@ void *ie_tlv_extract_p2p_payload(const uint8_t *ies, size_t len,
void *ie_tlv_encapsulate_p2p_payload(const uint8_t *data, size_t len,
size_t *out_len);
void *ie_tlv_extract_wfd_payload(const unsigned char *ies, size_t len,
ssize_t *out_len);
bool ie_tlv_builder_init(struct ie_tlv_builder *builder, unsigned char *buf,
size_t len);
bool ie_tlv_builder_set_length(struct ie_tlv_builder *builder,