[RFC] Implementing nohwcrypt in wcn36xx

Eugene Krasnikov k.eugene.e at gmail.com
Wed Apr 16 00:49:12 PDT 2014


Had a quick chat with Yanbo. AFAIU HW will check the frame if it's
encrypted or not. So not sure how easy it is to workaround this
problem without changing the firmware.

2014-04-08 8:51 GMT+01:00 Eugene Krasnikov <k.eugene.e at gmail.com>:
> Hi Yanbo,
>
> Do you know if firmware checks encrypted bit in each frame and then
> decides if it should decrypt it or not?
>
> 2014-04-04 19:32 GMT+01:00 Bob Copeland <me at bobcopeland.com>:
>> On Fri, Mar 28, 2014 at 01:38:59PM +0000, Eugene Krasnikov wrote:
>>> Are you sure you do not set encrypt_type in config_sta command? I am
>>> surprised that FW will not pass frames if frame is encrypted but
>>> wcn36xx  is not configure with keys.
>>
>> Yes, with, nohwcrypt it was bailing out of set_key for all keys
>> with -EOPNOTSUPP, without setting either vif->encrypt_type or
>> sta_priv->is_data_encrypted.
>>
>> I also tried this as an experiment:
>>
>>                 if (sta && (IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) {
>> +#if 0
>>                         sta_priv->is_data_encrypted = true;
>>                         /* Reconfigure bss with encrypt_type */
>>                         if (NL80211_IFTYPE_STATION == vif->type)
>>                                 wcn36xx_smd_config_bss(wcn,
>>                                                        vif,
>>                                                        sta,
>>                                                        sta->addr,
>>                                                        true);
>> +#endif
>>                         wcn36xx_smd_set_stakey(wcn,
>>                                 vif_priv->encrypt_type,
>>                                 key_conf->keyidx,
>>                                 key_conf->keylen,
>>                                 key,
>>                                 get_sta_index(vif, sta_priv));
>> +
>> +           return -EOPNOTSUPP;
>>
>>
>> That is: install the pairwise sta key into the hardware, but
>> do not set sta_priv->is_data_encrypted (so HW will not encrypt
>> TX), but also pretend for the sake of mac80211 that we couldn't
>> install the key.  (I do set vif_priv->encrypt_type in this case,
>> and allow group keys to use HW encryption.)
>>
>> So mac80211 encrypts things fine, hardware doesn't encrypt, and
>> we receive encrypted frames just fine (due to having key in the
>> hardware).  So I'm not sure where to go from here; obviously my
>> goal is to not require the key in hardware for RX, but seems
>> the firmware doesn't want to pass up these frames in that case.
>>
>> --
>> Bob Copeland %% www.bobcopeland.com
>
>
>
> --
> Best regards,
> Eugene



-- 
Best regards,
Eugene



More information about the wcn36xx mailing list