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

Liu CF/TW cfliu.tw at gmail.com
Tue May 12 16:01:21 PDT 2015


On Tue, May 12, 2015 at 3:44 PM, Liu CF/TW <cfliu.tw at gmail.com> wrote:
> I am going to propose just one single module parameter control: enc_mode
>
> - enc_mode = 0: Use HW crypto (default),
>
>   Driver behavior:
>      - ath10k driver uses native WiFi mode for both Tx/Rx.
>      - ath10k driver configures key to HW.
>      Given HW key descriptor is configured, mac80211 would offload Tx
> encryption to HW and only do Rx decryption (by mac80211) if HW failed
> to do it.
>

Recap. Should be: "Given HW key descriptor is configured, Tx
encryption and Rx decryption would be both done by HW."

Note: Due to HW limitation, SW crypto can't be done in native WiFi mode.
Transmit already encrypted frames requires raw mode.
Bypass encrypted frame for SW for decryption in native Wifi mode is
possible, but requires reinserting QoS header on per frame basis which
is tedious.

>   Use case:
>       - The only mode current driver supports to date.
>       - The CT firmware special use case should fall into this
> category where firmware overrides the ath10k driver setting to force
> Rx fallback to SW decryption (in mac80211).
>          (From Ben's description, I believe CT FW overrides the global
> Rx decap mode=raw mode  + mangle the HW Rx descriptor to skip HW
> decryption)
>
> - enc_mode = 1: Use SW crypto.
>
>   Driver behavior:
>      - ath10k driver uses raw encap mode for both Tx/Rx
>      - ath10k driver doesn't configure actual key to HW but program
> CLEAR key context to bypass HW.
>      This is the classic nohwcrypt=1 mode. Only SW crypto is enabled globally.
>   Use case:
>      - NEW: Full SW crypto on both Tx/Rx.
>      - NEW: raw injected Tx frame. If encryption required, would use
> mac80211 SW crypto.
>
> - enc_mode = 2: Supports both HW and SW crypto simultaneously.
>
>   Driver behavior:
>      - ath10k driver uses raw encap mode for both Tx/Rx
>      - ath10k driver configures key to HW only if the per BSS config
> enables it (either via debugfs or nl80211 attribute, TBD)
>        If HW key is configured, use HW crypto. Otherwise, use SW crypto.
>
>   Use case:
>     - NEW: raw injected Tx frame. If encryption is required, could
> support both SW or HW crypto (by the per BSS config)
>     - NEW: some BSS could use HW crypto with no performance hit while
> some BSS could bypass HW crypto (ex: CAPWAP like split-MAC encrypted
> frames)
>
> Ben, in this case, as long as enc_mode == 0, your FW should continue
> to work. I will add a new FW feature TX_RAW_ENCAP_SUPPORTED, and fail
> at module load time if enc_mode !=0 and FW doesn't support it. Would
> this address your concerns?
>
> David.
>
>



More information about the ath10k mailing list