[PATCH] ath10k/mac80211: add rawtxrx, nohwcrypt module param for raw tx injection, sw crypto support.

Ben Greear greearb at candelatech.com
Fri May 8 09:28:40 PDT 2015


On 05/08/2015 04:54 AM, Kalle Valo wrote:
> Hi David,
> 
> "Liu CF/TW" <cfliu.tw at gmail.com> writes:
> 
>>  - ath10k:   add rawtxrx param for 10.2+ firmware to support sw, hw crypto
>>              engine and raw Tx injection.
>>  - mac80211: Add IEEE80211_KEY_FLAG_RESERVE_TAILROOM support for TKIP and
>>              CCMP required by ath10k and add per BSS(vif) based sw_crypto
>>              control.
> 
> This patch has few major problems. First of all, ath10k and mac80211
> changes should be in separate patches. Secondly the patch is whitespace
> damaged, I recommend using git-send-email to avoid that.
> 
> And there's just too much feature changes in one patch, it's usually
> better to split the features into separate patches. For example, you
> could first add a simple raw mode support to ath10k (ie. the bare
> minimum needed to get the feature) and then adding more advanced
> features per patch.
> 
>> This change enables the raw Tx/Rx feature in ath10k 10.2+ firmware with a
>> module parameter 'rawtxrx'. With rawtxrx=1, the ath10k hardware crypto
>> engine could be optionally skipped to support use cases such as enabling
>> mac80211 sw crypto engine, user level crypto engine, raw Tx frame
>> injection.
> 
> Lots of people, especially in Qualcomm, seem to call this feature as
> "raw mode". Would it be more descriptive to name the module paramer as
> 'rawmode'?
> 
>> Testing: used QCA988x hw 2.0 with 10.2 firmware.
>>
>> ath10k    ath10k     nl80211
>> rawtxrx   nohwcrypt  SW_CRYPTO
>> param     param      attribute    Testing Status
>> -------   ---------  ---------    ---------------------------------
>>    0          0           -         HW CCMP/TKIP tested ok.
>>    0          1           -         Not supported by ath10k hw.
>>    1          0           -         HW CCMP/TKIP tested ok.
>>    1          0           0         BSS 1 tested HW CCMP/TKIP ok.
>>    1          0           1         BSS 2 can bypass HW engine.
>>                                     - mac80211 SW crypto tested ok.
>>                                     - raw Tx frame injection tested ok.
>>    1          1           -         HW crypto globally disabled.
>>                                     - mac80211 SW crypto tested ok.
>>                                     - raw Tx frame injection tested ok.
> 
> I wonder does it make any sense to have nohwcrypt parameter? Especially
> if ath10k doesn't support case rawtxrx=0 and nohwcrypt=1. One
> possibility I came up is to have multiple values for rawtxrx, for
> example is rawtxrx=1 means HW crypt enabled and rawtxrx=2 HW crypt
> disabled. Ideas welcome.


In my CT firmware, I end up using native tx and raw rx to enable rx-sw-crypt.

(I could not figure out how to do raw-tx with encrypted frames, though since
 10.2 FW can do it, I guess it must be possible...)

Maybe we could have a way to specify both rx and rx mode independently of
each other to support that use case as well?

Maybe:


txmode=x;  // 0 == native, 1 == raw (and maybe support other tx modes in the future as desired)
rxmode=x;  // 0 == native, 1 == raw
nohwcrypt=x; // 0 == standard hw crypt, 0x1 == rx-sw-crypt, 0x2 == tx-sw-crypt, 0x3 == tx/rx-sw-crypt

If any limits are placed, please do use feature flags instead of firmware version comparisons
..that way I might can support at least some of this in CT firmware.

Thanks,
Ben


-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com




More information about the ath10k mailing list