From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wi0-f170.google.com ([209.85.212.170]:36212 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750736AbbFCFEY convert rfc822-to-8bit (ORCPT ); Wed, 3 Jun 2015 01:04:24 -0400 Received: by wibdq8 with SMTP id dq8so77943955wib.1 for ; Tue, 02 Jun 2015 22:04:23 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1433187843-20698-1-git-send-email-cfliu.tw@gmail.com> Date: Wed, 3 Jun 2015 07:04:23 +0200 Message-ID: (sfid-20150603_070431_171433_4D929953) Subject: Re: [PATCH 1/2] ath10k: add cryptmode param to support sw crypto and raw tx injection. From: Michal Kazior To: "Liu CF/TW" Cc: "ath10k@lists.infradead.org" , linux-wireless , Kalle Valo Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 2 June 2015 at 20:21, Liu CF/TW wrote: > On Tue, Jun 2, 2015 at 12:17 AM, Michal Kazior wrote: >> On 1 June 2015 at 21:44, David Liu wrote: >> [...] >>> --- a/drivers/net/wireless/ath/ath10k/core.h >>> +++ b/drivers/net/wireless/ath/ath10k/core.h >>> @@ -91,6 +91,7 @@ struct ath10k_skb_cb { >>> u8 tid; >>> u16 freq; >>> bool is_offchan; >>> + bool nohwcrypt; >>> struct ath10k_htt_txbuf *txbuf; >>> u32 txbuf_paddr; >>> } __packed htt; >>> @@ -349,6 +350,7 @@ struct ath10k_vif { >>> } u; >>> >>> bool use_cts_prot; >>> + bool nohwcrypt; >> >> So this is a bit confusing. This is used only for tx policy only, >> right? It should be named accordingly then. The other nohwcrypt in >> skb_cb pretty much implies Tx already. >> > > No, it's also for Rx. > In this patch, in mac.c, if arvif->nohwcrypt is set, ath10k_send_key() > won't install the actual key to hardware, but a clear key is > installed. This makes all matching STA's encrypted frame passthrough > HW and mac80211 can take care of decryption later in host. > (in patch V2 I will take care of the IEEE80211_HW_SW_CRYPTO_CONTROL setting) Ah, you're right. I've missed that somehow. >> [...] >>> @@ -484,6 +491,12 @@ enum ath10k_dev_flags { >>> * waiters should immediately cancel instead of waiting for a time out. >>> */ >>> ATH10K_FLAG_CRASH_FLUSH, >>> + >>> + /* Use Raw mode for Tx and Rx */ >>> + ATH10K_RAW_MODE, >>> + >>> + /* Disable HW crypto engine */ >>> + ATH10K_HW_CRYPTO_DISABLED, >> >> You're missing the _FLAG prefix. Also this isn't documented well >> enough. RAW_MODE implies sw crypto rx, no? Perhaps a more fine grained >> approach would be better: > > Thanks. Will fix. > > Raw mode doesn't imply SW crypto only. > Indeed Raw mode is the only way to get sw crypto support, but it also > supports HW crypto. > I just tested both HW/SW crypto cases working fine in raw mode. > > So my plan for the new cryptmode parameter has 3 values: > > 0 Use HW crypto engine only. This uses native WiFi mode Tx/Rx encap > > 1 Use SW crypto engine only. This uses raw mode Tx/Rx encap > > 2 Supports both SW & HW crypto engine. This uses raw mode Tx/Rx encap. > > Once this patch is in, I guess people would only use cryptmode=0 or 1. > For cryptmode=2, I have subsequent changes to allow per BSS based > control of HW/SW crypto selection. > Plan is to make make arvif->nohwcrypt configurable via debugfs or > nl80211 (subject to review feedback) > >> >> ATH10K_FLAG_RAW_TX, >> ATH10K_FLAG_RAW_RX, >> ATH10K_FLAG_SW_TX_CRYPTO, >> ATH10K_FLAG_SW_RX_CRYPTO, >> >> Obviously not all combinations are valid/doable but I think this will >> make the code look more obvious. >> > > That would be too many flags and too complex. > I'd suggest keep the proposed ATH10K_RAW_MODE and ATH10K_HW_CRYPTO_DISABLED. > Let's make Tx/Rx HW crypto always both enabled or both disabled AFA > driver is concerned. Okay. This suggestion was based on my incorrect interpretation of your patch wrt arvif->nohwcrypt. >>> diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h >>> index 85cca29..37fd2f83 100644 >>> --- a/drivers/net/wireless/ath/ath10k/hw.h >>> +++ b/drivers/net/wireless/ath/ath10k/hw.h >>> @@ -296,7 +296,7 @@ enum ath10k_hw_rate_cck { >>> #define TARGET_10X_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK 1 >>> #define TARGET_10X_VOW_CONFIG 0 >>> #define TARGET_10X_NUM_MSDU_DESC (1024 + 400) >>> -#define TARGET_10X_MAX_FRAG_ENTRIES 0 >>> +#define TARGET_10X_MAX_FRAG_ENTRIES 10 >> >> This is probably enough at "2" (ath10k doesn't send more than 2 tx >> fragments now). I assume fw crashes with raw tx if this isn't fixed, >> correct? >> >> Sidenote: I guess TARGET_MAX_FRAG_ENTRIES could be fixed as well. It >> might make sense for QCA61X4 hw2.1 which still uses the old Rx >> indication event and might be able to do raw txrx + swcrypto. But I'm >> a bit reluctant to change this without any testing. >> > > Sure. I change it to 10 because the document I got from QCA says so. > Since this is a global setting, I will remove this and keep it =0 for > now so it doesn't affect existing HW based datapath. Sure. I recall 10.x on QCA988X isn't really picky on this value. QCA61X4 with wmi-tlv on the other hand needs an adequate value for this configuration parameter or it'll crash horribly. > Per QCA, the main issue not changing this would be SW crypto then > won't be able to handle large Rx AMSDU. > When HW is not doing Rx decryption, the whole AMSDU needs to be DMA to > host for SW based decryption & AMSDU subframe deaggregation. Hmm.. From what I know this setting refers to the max number of Tx fragments that can be submitted via HTT TX_FRM command eventually to HW MAC, not Rx fragments. MichaƂ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wg0-x22a.google.com ([2a00:1450:400c:c00::22a]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Z00r9-00075r-Gv for ath10k@lists.infradead.org; Wed, 03 Jun 2015 05:04:49 +0000 Received: by wgme6 with SMTP id e6so156157677wgm.2 for ; Tue, 02 Jun 2015 22:04:23 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1433187843-20698-1-git-send-email-cfliu.tw@gmail.com> Date: Wed, 3 Jun 2015 07:04:23 +0200 Message-ID: Subject: Re: [PATCH 1/2] ath10k: add cryptmode param to support sw crypto and raw tx injection. From: Michal Kazior List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: Liu CF/TW Cc: Kalle Valo , linux-wireless , "ath10k@lists.infradead.org" T24gMiBKdW5lIDIwMTUgYXQgMjA6MjEsIExpdSBDRi9UVyA8Y2ZsaXUudHdAZ21haWwuY29tPiB3 cm90ZToKPiBPbiBUdWUsIEp1biAyLCAyMDE1IGF0IDEyOjE3IEFNLCBNaWNoYWwgS2F6aW9yIDxt aWNoYWwua2F6aW9yQHRpZXRvLmNvbT4gd3JvdGU6Cj4+IE9uIDEgSnVuZSAyMDE1IGF0IDIxOjQ0 LCBEYXZpZCBMaXUgPGNmbGl1LnR3QGdtYWlsLmNvbT4gd3JvdGU6Cj4+IFsuLi5dCj4+PiAtLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaAo+Pj4gKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgKPj4+IEBAIC05MSw2ICs5MSw3IEBAIHN0 cnVjdCBhdGgxMGtfc2tiX2NiIHsKPj4+ICAgICAgICAgICAgICAgICB1OCB0aWQ7Cj4+PiAgICAg ICAgICAgICAgICAgdTE2IGZyZXE7Cj4+PiAgICAgICAgICAgICAgICAgYm9vbCBpc19vZmZjaGFu Owo+Pj4gKyAgICAgICAgICAgICAgIGJvb2wgbm9od2NyeXB0Owo+Pj4gICAgICAgICAgICAgICAg IHN0cnVjdCBhdGgxMGtfaHR0X3R4YnVmICp0eGJ1ZjsKPj4+ICAgICAgICAgICAgICAgICB1MzIg dHhidWZfcGFkZHI7Cj4+PiAgICAgICAgIH0gX19wYWNrZWQgaHR0Owo+Pj4gQEAgLTM0OSw2ICsz NTAsNyBAQCBzdHJ1Y3QgYXRoMTBrX3ZpZiB7Cj4+PiAgICAgICAgIH0gdTsKPj4+Cj4+PiAgICAg ICAgIGJvb2wgdXNlX2N0c19wcm90Owo+Pj4gKyAgICAgICBib29sIG5vaHdjcnlwdDsKPj4KPj4g U28gdGhpcyBpcyBhIGJpdCBjb25mdXNpbmcuIFRoaXMgaXMgdXNlZCBvbmx5IGZvciB0eCBwb2xp Y3kgb25seSwKPj4gcmlnaHQ/IEl0IHNob3VsZCBiZSBuYW1lZCBhY2NvcmRpbmdseSB0aGVuLiBU aGUgb3RoZXIgbm9od2NyeXB0IGluCj4+IHNrYl9jYiBwcmV0dHkgbXVjaCBpbXBsaWVzIFR4IGFs cmVhZHkuCj4+Cj4KPiBObywgaXQncyBhbHNvIGZvciBSeC4KPiBJbiB0aGlzIHBhdGNoLCBpbiBt YWMuYywgaWYgYXJ2aWYtPm5vaHdjcnlwdCBpcyBzZXQsIGF0aDEwa19zZW5kX2tleSgpCj4gd29u J3QgaW5zdGFsbCB0aGUgYWN0dWFsIGtleSB0byBoYXJkd2FyZSwgYnV0IGEgY2xlYXIga2V5IGlz Cj4gaW5zdGFsbGVkLiBUaGlzIG1ha2VzIGFsbCBtYXRjaGluZyBTVEEncyBlbmNyeXB0ZWQgZnJh bWUgcGFzc3Rocm91Z2gKPiBIVyBhbmQgbWFjODAyMTEgY2FuIHRha2UgY2FyZSBvZiBkZWNyeXB0 aW9uIGxhdGVyIGluIGhvc3QuCj4gKGluIHBhdGNoIFYyIEkgd2lsbCB0YWtlIGNhcmUgb2YgdGhl IElFRUU4MDIxMV9IV19TV19DUllQVE9fQ09OVFJPTCBzZXR0aW5nKQoKQWgsIHlvdSdyZSByaWdo dC4gSSd2ZSBtaXNzZWQgdGhhdCBzb21laG93LgoKCj4+IFsuLi5dCj4+PiBAQCAtNDg0LDYgKzQ5 MSwxMiBAQCBlbnVtIGF0aDEwa19kZXZfZmxhZ3Mgewo+Pj4gICAgICAgICAgKiB3YWl0ZXJzIHNo b3VsZCBpbW1lZGlhdGVseSBjYW5jZWwgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhIHRpbWUgb3V0 Lgo+Pj4gICAgICAgICAgKi8KPj4+ICAgICAgICAgQVRIMTBLX0ZMQUdfQ1JBU0hfRkxVU0gsCj4+ PiArCj4+PiArICAgICAgIC8qIFVzZSBSYXcgbW9kZSBmb3IgVHggYW5kIFJ4ICovCj4+PiArICAg ICAgIEFUSDEwS19SQVdfTU9ERSwKPj4+ICsKPj4+ICsgICAgICAgLyogRGlzYWJsZSBIVyBjcnlw dG8gZW5naW5lICovCj4+PiArICAgICAgIEFUSDEwS19IV19DUllQVE9fRElTQUJMRUQsCj4+Cj4+ IFlvdSdyZSBtaXNzaW5nIHRoZSBfRkxBRyBwcmVmaXguIEFsc28gdGhpcyBpc24ndCBkb2N1bWVu dGVkIHdlbGwKPj4gZW5vdWdoLiBSQVdfTU9ERSBpbXBsaWVzIHN3IGNyeXB0byByeCwgbm8/IFBl cmhhcHMgYSBtb3JlIGZpbmUgZ3JhaW5lZAo+PiBhcHByb2FjaCB3b3VsZCBiZSBiZXR0ZXI6Cj4K PiBUaGFua3MuIFdpbGwgZml4Lgo+Cj4gUmF3IG1vZGUgZG9lc24ndCBpbXBseSBTVyBjcnlwdG8g b25seS4KPiBJbmRlZWQgUmF3IG1vZGUgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCBzdyBjcnlwdG8g c3VwcG9ydCwgYnV0IGl0IGFsc28KPiBzdXBwb3J0cyBIVyBjcnlwdG8uCj4gSSBqdXN0IHRlc3Rl ZCBib3RoIEhXL1NXIGNyeXB0byBjYXNlcyB3b3JraW5nIGZpbmUgaW4gcmF3IG1vZGUuCj4KPiBT byBteSBwbGFuIGZvciB0aGUgbmV3IGNyeXB0bW9kZSBwYXJhbWV0ZXIgaGFzIDMgdmFsdWVzOgo+ Cj4gICAgICAgIDAgICAgVXNlIEhXIGNyeXB0byBlbmdpbmUgb25seS4gVGhpcyB1c2VzIG5hdGl2 ZSBXaUZpIG1vZGUgVHgvUnggZW5jYXAKPgo+ICAgICAgICAxICAgIFVzZSBTVyBjcnlwdG8gZW5n aW5lIG9ubHkuIFRoaXMgdXNlcyByYXcgbW9kZSBUeC9SeCBlbmNhcAo+Cj4gICAgICAgIDIgICAg U3VwcG9ydHMgYm90aCBTVyAmIEhXIGNyeXB0byBlbmdpbmUuIFRoaXMgdXNlcyByYXcgbW9kZSBU eC9SeCBlbmNhcC4KPgo+IE9uY2UgdGhpcyBwYXRjaCBpcyBpbiwgSSBndWVzcyBwZW9wbGUgd291 bGQgb25seSB1c2UgY3J5cHRtb2RlPTAgb3IgMS4KPiBGb3IgY3J5cHRtb2RlPTIsIEkgaGF2ZSBz dWJzZXF1ZW50IGNoYW5nZXMgdG8gYWxsb3cgcGVyIEJTUyBiYXNlZAo+IGNvbnRyb2wgb2YgSFcv U1cgY3J5cHRvIHNlbGVjdGlvbi4KPiBQbGFuIGlzIHRvIG1ha2UgbWFrZSBhcnZpZi0+bm9od2Ny eXB0IGNvbmZpZ3VyYWJsZSB2aWEgZGVidWdmcyBvcgo+IG5sODAyMTEgKHN1YmplY3QgdG8gcmV2 aWV3IGZlZWRiYWNrKQo+Cj4+Cj4+ICBBVEgxMEtfRkxBR19SQVdfVFgsCj4+ICBBVEgxMEtfRkxB R19SQVdfUlgsCj4+ICBBVEgxMEtfRkxBR19TV19UWF9DUllQVE8sCj4+ICBBVEgxMEtfRkxBR19T V19SWF9DUllQVE8sCj4+Cj4+IE9idmlvdXNseSBub3QgYWxsIGNvbWJpbmF0aW9ucyBhcmUgdmFs aWQvZG9hYmxlIGJ1dCBJIHRoaW5rIHRoaXMgd2lsbAo+PiBtYWtlIHRoZSBjb2RlIGxvb2sgbW9y ZSBvYnZpb3VzLgo+Pgo+Cj4gVGhhdCB3b3VsZCBiZSB0b28gbWFueSBmbGFncyBhbmQgdG9vIGNv bXBsZXguCj4gSSdkIHN1Z2dlc3Qga2VlcCB0aGUgcHJvcG9zZWQgQVRIMTBLX1JBV19NT0RFIGFu ZCBBVEgxMEtfSFdfQ1JZUFRPX0RJU0FCTEVELgo+IExldCdzIG1ha2UgVHgvUnggSFcgY3J5cHRv IGFsd2F5cyBib3RoIGVuYWJsZWQgb3IgYm90aCBkaXNhYmxlZCBBRkEKPiBkcml2ZXIgaXMgY29u Y2VybmVkLgoKT2theS4gVGhpcyBzdWdnZXN0aW9uIHdhcyBiYXNlZCBvbiBteSBpbmNvcnJlY3Qg aW50ZXJwcmV0YXRpb24gb2YgeW91cgpwYXRjaCB3cnQgYXJ2aWYtPm5vaHdjcnlwdC4KCgo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaCBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaAo+Pj4gaW5kZXggODVjY2EyOS4uMzdmZDJm ODMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgK Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaAo+Pj4gQEAgLTI5 Niw3ICsyOTYsNyBAQCBlbnVtIGF0aDEwa19od19yYXRlX2NjayB7Cj4+PiAgI2RlZmluZSBUQVJH RVRfMTBYX1JYX1NLSVBfREVGUkFHX1RJTUVPVVRfRFVQX0RFVEVDVElPTl9DSEVDSyAxCj4+PiAg I2RlZmluZSBUQVJHRVRfMTBYX1ZPV19DT05GSUcgICAgICAgICAgICAgICAgICAwCj4+PiAgI2Rl ZmluZSBUQVJHRVRfMTBYX05VTV9NU0RVX0RFU0MgICAgICAgICAgICAgICAoMTAyNCArIDQwMCkK Pj4+IC0jZGVmaW5lIFRBUkdFVF8xMFhfTUFYX0ZSQUdfRU5UUklFUyAgICAgICAgICAgIDAKPj4+ ICsjZGVmaW5lIFRBUkdFVF8xMFhfTUFYX0ZSQUdfRU5UUklFUyAgICAgICAgICAgIDEwCj4+Cj4+ IFRoaXMgaXMgcHJvYmFibHkgZW5vdWdoIGF0ICIyIiAoYXRoMTBrIGRvZXNuJ3Qgc2VuZCBtb3Jl IHRoYW4gMiB0eAo+PiBmcmFnbWVudHMgbm93KS4gSSBhc3N1bWUgZncgY3Jhc2hlcyB3aXRoIHJh dyB0eCBpZiB0aGlzIGlzbid0IGZpeGVkLAo+PiBjb3JyZWN0Pwo+Pgo+PiBTaWRlbm90ZTogSSBn dWVzcyBUQVJHRVRfTUFYX0ZSQUdfRU5UUklFUyBjb3VsZCBiZSBmaXhlZCBhcyB3ZWxsLiBJdAo+ PiBtaWdodCBtYWtlIHNlbnNlIGZvciBRQ0E2MVg0IGh3Mi4xIHdoaWNoIHN0aWxsIHVzZXMgdGhl IG9sZCBSeAo+PiBpbmRpY2F0aW9uIGV2ZW50IGFuZCBtaWdodCBiZSBhYmxlIHRvIGRvIHJhdyB0 eHJ4ICsgc3djcnlwdG8uIEJ1dCBJJ20KPj4gYSBiaXQgcmVsdWN0YW50IHRvIGNoYW5nZSB0aGlz IHdpdGhvdXQgYW55IHRlc3RpbmcuCj4+Cj4KPiBTdXJlLiBJIGNoYW5nZSBpdCB0byAxMCBiZWNh dXNlIHRoZSBkb2N1bWVudCBJIGdvdCBmcm9tIFFDQSBzYXlzIHNvLgo+IFNpbmNlIHRoaXMgaXMg YSBnbG9iYWwgc2V0dGluZywgSSB3aWxsIHJlbW92ZSB0aGlzIGFuZCBrZWVwIGl0ID0wIGZvcgo+ IG5vdyBzbyBpdCBkb2Vzbid0IGFmZmVjdCBleGlzdGluZyBIVyBiYXNlZCBkYXRhcGF0aC4KClN1 cmUuIEkgcmVjYWxsIDEwLnggb24gUUNBOTg4WCBpc24ndCByZWFsbHkgcGlja3kgb24gdGhpcyB2 YWx1ZS4KUUNBNjFYNCB3aXRoIHdtaS10bHYgb24gdGhlIG90aGVyIGhhbmQgbmVlZHMgYW4gYWRl cXVhdGUgdmFsdWUgZm9yCnRoaXMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb3IgaXQnbGwgY3Jh c2ggaG9ycmlibHkuCgoKPiBQZXIgUUNBLCB0aGUgbWFpbiBpc3N1ZSBub3QgY2hhbmdpbmcgdGhp cyB3b3VsZCBiZSBTVyBjcnlwdG8gdGhlbgo+IHdvbid0IGJlIGFibGUgdG8gaGFuZGxlIGxhcmdl IFJ4IEFNU0RVLgo+IFdoZW4gSFcgaXMgbm90IGRvaW5nIFJ4IGRlY3J5cHRpb24sIHRoZSB3aG9s ZSBBTVNEVSBuZWVkcyB0byBiZSBETUEgdG8KPiBob3N0IGZvciBTVyBiYXNlZCBkZWNyeXB0aW9u ICYgQU1TRFUgc3ViZnJhbWUgZGVhZ2dyZWdhdGlvbi4KCkhtbS4uIEZyb20gd2hhdCBJIGtub3cg dGhpcyBzZXR0aW5nIHJlZmVycyB0byB0aGUgbWF4IG51bWJlciBvZiBUeApmcmFnbWVudHMgdGhh dCBjYW4gYmUgc3VibWl0dGVkIHZpYSBIVFQgVFhfRlJNIGNvbW1hbmQgZXZlbnR1YWxseSB0bwpI VyBNQUMsIG5vdCBSeCBmcmFnbWVudHMuCgoKTWljaGHFggoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYXRoMTBrIG1haWxpbmcgbGlzdAphdGgxMGtAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2F0aDEwawo=