Search Linux Wireless

Re: [PATCH] ath9k_htc: turn on software mgmt crypto for secured mesh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 14.11.2014 um 10:18 schrieb Yeoh Chun-Yeow:
> Hi, Oleksij Rpel
> 
> If we do it in ath9k_hw_init_mfp, these MAC version are related to USB devices:
> 
> AR_SREV_VERSION_9271
> AR_SREV_VERSION_9280
> AR_SREV_VERSION_9287
> 
> Right?

yes. ar9271 with usb interface. ar9280 and ar9287 are pcie attached to
ar7010 cpu.

> ----
> ChunYeow
> 
> On Fri, Nov 14, 2014 at 5:06 PM, Yeoh Chun-Yeow <yeohchunyeow@xxxxxxxxx> wrote:
>> On Fri, Nov 14, 2014 at 4:54 PM, Oleksij Rempel <linux@xxxxxxxxxxxxxxxx> wrote:
>>> 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)) {
>>>
>>
>> Not so sure doing here is correctly. It is a pairwise key for unicast
>> management frame, right?
>>
>>> or probably set "sw_mgmt_crypto = true" in ath9k_hw_init_mfp() for all
>>> usb devices?
>>
>> All ath9k USB devices don't have MFP support?
>>
>> ---
>> ChunYeow


-- 
Regards,
Oleksij

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux