diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2012-03-02 17:26:01 +0200 |
---|---|---|
committer | Vishal Mahaveer <vishalm@ti.com> | 2012-12-14 13:35:14 -0600 |
commit | a1fde16cf8e0a4f476e75a0b186f5f3662e5b080 (patch) | |
tree | ed8101496a34598f6e92480111c7739157551cf8 /src/common | |
parent | e7a161667ff70b92ddff15373262d88c9aeb891c (diff) | |
download | external_wpa_supplicant_8_ti-a1fde16cf8e0a4f476e75a0b186f5f3662e5b080.zip external_wpa_supplicant_8_ti-a1fde16cf8e0a4f476e75a0b186f5f3662e5b080.tar.gz external_wpa_supplicant_8_ti-a1fde16cf8e0a4f476e75a0b186f5f3662e5b080.tar.bz2 |
WFD: Add Wi-Fi Display support
This commit adds control interface commands and internal storage of
Wi-Fi Display related configuration. In addition, WFD IE is now added
to various P2P frames, Probe Request/Response, and (Re)Association
Request/Response frames. WFD subelements from peers are stored in the
P2P peer table.
Following control interface commands are now available:
SET wifi_display <0/1>
GET wifi_display
WFD_SUBELEM_SET <subelem> [hexdump of length+body]
WFD_SUBELEM_GET <subelem>
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
[vishalm@ti.com: Backported it to curent tree]
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
Change-Id: Ief0cd61903facd9209927d9dc84c8f093f3b6bac
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/ieee802_11_common.c | 5 | ||||
-rw-r--r-- | src/common/ieee802_11_common.h | 2 | ||||
-rw-r--r-- | src/common/ieee802_11_defs.h | 16 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c index d65675c..f90870a 100644 --- a/src/common/ieee802_11_common.c +++ b/src/common/ieee802_11_common.c @@ -97,6 +97,11 @@ static int ieee802_11_parse_vendor_specific(const u8 *pos, size_t elen, elems->p2p = pos; elems->p2p_len = elen; break; + case WFD_OUI_TYPE: + /* Wi-Fi Alliance - WFD IE */ + elems->wfd = pos; + elems->wfd_len = elen; + break; case HS20_INDICATION_OUI_TYPE: /* Hotspot 2.0 */ elems->hs20 = pos; diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h index d9b2b6c..66c7935 100644 --- a/src/common/ieee802_11_common.h +++ b/src/common/ieee802_11_common.h @@ -35,6 +35,7 @@ struct ieee802_11_elems { const u8 *ht_operation; const u8 *vendor_ht_cap; const u8 *p2p; + const u8 *wfd; const u8 *link_id; const u8 *interworking; const u8 *hs20; @@ -65,6 +66,7 @@ struct ieee802_11_elems { u8 ht_operation_len; u8 vendor_ht_cap_len; u8 p2p_len; + u8 wfd_len; u8 interworking_len; u8 hs20_len; u8 ext_capab_len; diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h index b4f9275..8e68c2a 100644 --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h @@ -701,6 +701,8 @@ struct ieee80211_vht_operation { #define WPS_IE_VENDOR_TYPE 0x0050f204 #define OUI_WFA 0x506f9a #define P2P_IE_VENDOR_TYPE 0x506f9a09 +#define WFD_IE_VENDOR_TYPE 0x506f9a0a +#define WFD_OUI_TYPE 10 #define HS20_IE_VENDOR_TYPE 0x506f9a10 #define WMM_OUI_TYPE 2 @@ -934,6 +936,20 @@ enum p2p_sd_status { }; +enum wifi_display_subelem { + WFD_SUBELEM_DEVICE_INFO = 0, + WFD_SUBELEM_ASSOCIATED_BSSID = 1, + WFD_SUBELEM_AUDIO_FORMATS = 2, + WFD_SUBELEM_VIDEO_FORMATS = 3, + WFD_SUBELEM_3D_VIDEO_FORMATS = 4, + WFD_SUBELEM_CONTENT_PROTECTION = 5, + WFD_SUBELEM_COUPLED_SINK = 6, + WFD_SUBELEM_EXT_CAPAB = 7, + WFD_SUBELEM_LOCAL_IP_ADDRESS = 8, + WFD_SUBELEM_SESSION_INFO = 9 +}; + + #define OUI_BROADCOM 0x00904c /* Broadcom (Epigram) */ #define VENDOR_HT_CAPAB_OUI_TYPE 0x33 /* 00-90-4c:0x33 */ |