> -----Original Message----- > From: ath10k <ath10k-bounces@xxxxxxxxxxxxxxxxxxx> On Behalf Of Ben > Greear > Sent: Tuesday, June 18, 2019 12:04 AM > To: Wen Gong <wgong@xxxxxxxxxxxxxx>; ath10k@xxxxxxxxxxxxxxxxxxx > Cc: linux-wireless@xxxxxxxxxxxxxxx > Subject: [EXT] Re: [PATCH] ath10k: add mic bytes for pmf management > packet > > I was looking at mac80211 code recently, and it seems some action > frames are NOT supposed to be protected. I added my own helper > method to my local ath10k. Maybe you want to use this? > > > /* Copied from ieee80211_is_robust_mgmt_frame, but disable the check for > has_protected > * since we do tx hw crypt, and it won't actually be encrypted even when this > flag is > * set. > */ > bool ieee80211_is_robust_mgmt_frame_tx(struct ieee80211_hdr *hdr) > { > if (ieee80211_is_disassoc(hdr->frame_control) || > ieee80211_is_deauth(hdr->frame_control)) > return true; > > if (ieee80211_is_action(hdr->frame_control)) { > u8 *category; > > /* > * Action frames, excluding Public Action frames, are Robust > * Management Frames. However, if we are looking at a Protected > * frame, skip the check since the data may be encrypted and > * the frame has already been found to be a Robust Management > * Frame (by the other end). > */ > /* > if (ieee80211_has_protected(hdr->frame_control)) > return true; > */ > category = ((u8 *) hdr) + 24; > return *category != WLAN_CATEGORY_PUBLIC && > *category != WLAN_CATEGORY_HT && > *category != WLAN_CATEGORY_WNM_UNPROTECTED && > *category != WLAN_CATEGORY_SELF_PROTECTED && > *category != WLAN_CATEGORY_UNPROT_DMG && > *category != WLAN_CATEGORY_VHT && > *category != WLAN_CATEGORY_VENDOR_SPECIFIC; > } > > return false; > } > > Thanks, > Ben > > > + > > data_len = msdu->len; > > > > switch (txmode) { > > > > Thanks Ben, seems the ieee80211_is_robust_mgmt_frame_tx is not match my change.