brcmfmac: add vendor ie for association responses
Miracast Certification clause 6.1.2 may fail if there is no WFD IE in p2p assoc response. This change allows WFD IE to be added to p2p assoc response. Related WFA certification: 6.1.2 P-SnUT operating as a Group Owner accepts a WFD Session with a Reference Source Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: Ryohei Kondo <ryohei.kondo@cypress.com> Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/1587970803-77700-6-git-send-email-chi-hsien.lin@cypress.com
This commit is contained in:
parent
053ac9e143
commit
2719afcae7
|
@ -4449,6 +4449,11 @@ s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag,
|
|||
mgmt_ie_len = &saved_ie->assoc_req_ie_len;
|
||||
mgmt_ie_buf_len = sizeof(saved_ie->assoc_req_ie);
|
||||
break;
|
||||
case BRCMF_VNDR_IE_ASSOCRSP_FLAG:
|
||||
mgmt_ie_buf = saved_ie->assoc_res_ie;
|
||||
mgmt_ie_len = &saved_ie->assoc_res_ie_len;
|
||||
mgmt_ie_buf_len = sizeof(saved_ie->assoc_res_ie);
|
||||
break;
|
||||
default:
|
||||
err = -EPERM;
|
||||
bphy_err(drvr, "not suitable type\n");
|
||||
|
@ -4595,6 +4600,15 @@ brcmf_config_ap_mgmt_ie(struct brcmf_cfg80211_vif *vif,
|
|||
else
|
||||
brcmf_dbg(TRACE, "Applied Vndr IEs for Probe Resp\n");
|
||||
|
||||
/* Set Assoc Response IEs to FW */
|
||||
err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_ASSOCRSP_FLAG,
|
||||
beacon->assocresp_ies,
|
||||
beacon->assocresp_ies_len);
|
||||
if (err)
|
||||
brcmf_err("Set Assoc Resp IE Failed\n");
|
||||
else
|
||||
brcmf_dbg(TRACE, "Applied Vndr IEs for Assoc Resp\n");
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -153,19 +153,23 @@ enum brcmf_vif_status {
|
|||
* @probe_req_ie: IE info for probe request.
|
||||
* @probe_res_ie: IE info for probe response.
|
||||
* @beacon_ie: IE info for beacon frame.
|
||||
* @assoc_res_ie: IE info for association response frame.
|
||||
* @probe_req_ie_len: IE info length for probe request.
|
||||
* @probe_res_ie_len: IE info length for probe response.
|
||||
* @beacon_ie_len: IE info length for beacon frame.
|
||||
* @assoc_res_ie_len: IE info length for association response frame.
|
||||
*/
|
||||
struct vif_saved_ie {
|
||||
u8 probe_req_ie[IE_MAX_LEN];
|
||||
u8 probe_res_ie[IE_MAX_LEN];
|
||||
u8 beacon_ie[IE_MAX_LEN];
|
||||
u8 assoc_req_ie[IE_MAX_LEN];
|
||||
u8 assoc_res_ie[IE_MAX_LEN];
|
||||
u32 probe_req_ie_len;
|
||||
u32 probe_res_ie_len;
|
||||
u32 beacon_ie_len;
|
||||
u32 assoc_req_ie_len;
|
||||
u32 assoc_res_ie_len;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue