Am 14.11.2014 um 06:07 schrieb Chun-Yeow Yeoh: > Secured mesh encrypts the unicast mgmt frame using the same > key that used for encrypting the unicast data frame. The patch > "ath9k_htc_firmware: fix the offset of CCMP header for mesh > data frame" applied to open-ath9k-htc-firmware allows the > ath9k_htc to be loaded without "nohwcrypt=1". Unfortunately, > this is not working and we still need CCMP encryption of > management frames to be done in software. Fix this. > > This patch is tested with the following hardwares: > - TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287] > - AR9271 802.11n > > and managed to work with peer mesh STA equipped with ath9k. > > Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@xxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/htc_drv_main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c > index 689ac99..d3f65a2 100644 > --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c > +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c > @@ -1447,7 +1447,8 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw, > key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; > if (key->cipher == WLAN_CIPHER_SUITE_TKIP) > key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; > - if (priv->ah->sw_mgmt_crypto && > + if ((vif->type == NL80211_IFTYPE_MESH_POINT || > + priv->ah->sw_mgmt_crypto) && > key->cipher == WLAN_CIPHER_SUITE_CCMP) > key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; > ret = 0; > Hmm.. may be we should generally do it here: if ((vif->type == NL80211_IFTYPE_ADHOC || vif->type == NL80211_IFTYPE_MESH_POINT) && (key->cipher == WLAN_CIPHER_SUITE_TKIP || key->cipher == WLAN_CIPHER_SUITE_CCMP) && !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { or probably set "sw_mgmt_crypto = true" in ath9k_hw_init_mfp() for all usb devices? -- Regards, Oleksij
Attachment:
signature.asc
Description: OpenPGP digital signature