[RFC] Implementing nohwcrypt in wcn36xx
Eugene Krasnikov
k.eugene.e at gmail.com
Tue Apr 8 00:51:36 PDT 2014
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
More information about the wcn36xx
mailing list