[PATCH v4] ath10k: enable raw encap mode and software crypto engine.

2015-06-12 Thread Liu CF/TW
From: David Liu 

  This patch enables raw Rx/Tx encap mode to support software based
  crypto engine. This patch introduces a new module param 'cryptmode'.

   cryptmode:

 0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX
encapsulation to the firmware. This is the default mode.
 1: Use sofware crypto engine globally with raw mode TX/RX
encapsulation to the firmware.

   Known limitation:
 A-MSDU must be disabled for RAW Tx encap mode to perform well when
 heavy traffic is applied.

   Testing: (by Michal Kazior )

 a) Performance Testing

  cryptmode=1
   ap=qca988x sta=killer1525
killer1525  ->  qca988x 194.496 mbps [tcp1 ip4]
killer1525  ->  qca988x 238.309 mbps [tcp5 ip4]
killer1525  ->  qca988x 266.958 mbps [udp1 ip4]
killer1525  ->  qca988x 477.468 mbps [udp5 ip4]
qca988x ->  killer1525  301.378 mbps [tcp1 ip4]
qca988x ->  killer1525  297.949 mbps [tcp5 ip4]
qca988x ->  killer1525  331.351 mbps [udp1 ip4]
qca988x ->  killer1525  371.528 mbps [udp5 ip4]
   ap=killer1525 sta=qca988x
qca988x ->  killer1525  331.447 mbps [tcp1 ip4]
qca988x ->  killer1525  328.783 mbps [tcp5 ip4]
qca988x ->  killer1525  375.309 mbps [udp1 ip4]
qca988x ->  killer1525  403.379 mbps [udp5 ip4]
killer1525  ->  qca988x 203.689 mbps [tcp1 ip4]
killer1525  ->  qca988x 222.339 mbps [tcp5 ip4]
killer1525  ->  qca988x 264.199 mbps [udp1 ip4]
killer1525  ->  qca988x 479.371 mbps [udp5 ip4]

  Note:
   - only open network tested for RAW vs nwifi performance comparison
   - killer1525 (qca6174 hw2.2) is 2x2 device (hence max 866mbps)
   - used iperf
   - OTA, devices a few cm apart from each other, no shielding
   - tcpX/udpX, X - means number of threads used

  Overview:
   - relative Tx performance drop is seen but is within reasonable and
 expected threshold (A-MSDU must be disabled with RAW Tx)

 b) Connectivity Testing

  cryptmode=1
   ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta  OK
   ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta  OK
   ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta  OK
   ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta  OK
   ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta  OK
   ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta  OK
   ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta  OK
   ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta  OK
   ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br   OK
   ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br   OK
   ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br   OK
   ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br   OK
   ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br   OK
   ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br   OK
   ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br   OK
   ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br   OK
   ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br1vlan  OK
   ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br1vlan  OK
   ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br1vlan  OK
   ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
   ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br1vlan  OK
   ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br1vlan  OK
   ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br1vlan  OK
   ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK

  Note:
   - each test takes all possible endpoint pairs and pings
   - each pair-ping flushes arp table
   - ip6 is used

 c) Testbed Topology:

  1ap1sta:
[ap]  [sta]

endpoints: ap, sta

  1ap1sta2br:
[veth0] [ap]  [sta] [veth2]
   | |  | |
[veth1]  |  \   [veth3]
\   /\  /
[br0][br1]

endpoints: veth0, veth2, br0, br1
note: STA works in 4addr mode, AP has wds_sta=1

  1ap1sta2br1vlan:
[veth0] [ap]  [sta] [veth2]
   | |  | |
[veth1]  |  \   [veth3]
\   /\  /
  [br0]  [br1]
|  |
  [vlan0_id2][vlan1_id2]

endpoints: vlan0_id2, vlan1_id2
note: STA works in 4addr mode, AP has wds_sta=1

  Credits:

Thanks to Michal Kazior  who helped find the
amsdu issue, contributed a workaround (alre

Re: [PATCH v4] ath10k: enable raw encap mode and software crypto engine.

2015-07-24 Thread Kalle Valo
Liu CF/TW  writes:

> From: David Liu 
>
>   This patch enables raw Rx/Tx encap mode to support software based
>   crypto engine. This patch introduces a new module param 'cryptmode'.
>
>cryptmode:
>
>  0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX
> encapsulation to the firmware. This is the default mode.
>  1: Use sofware crypto engine globally with raw mode TX/RX
> encapsulation to the firmware.
>
>Known limitation:
>  A-MSDU must be disabled for RAW Tx encap mode to perform well when
>  heavy traffic is applied.
>
>Testing: (by Michal Kazior )
>
>  a) Performance Testing
>
>   cryptmode=1
>ap=qca988x sta=killer1525
> killer1525  ->  qca988x 194.496 mbps [tcp1 ip4]
> killer1525  ->  qca988x 238.309 mbps [tcp5 ip4]
> killer1525  ->  qca988x 266.958 mbps [udp1 ip4]
> killer1525  ->  qca988x 477.468 mbps [udp5 ip4]
> qca988x ->  killer1525  301.378 mbps [tcp1 ip4]
> qca988x ->  killer1525  297.949 mbps [tcp5 ip4]
> qca988x ->  killer1525  331.351 mbps [udp1 ip4]
> qca988x ->  killer1525  371.528 mbps [udp5 ip4]
>ap=killer1525 sta=qca988x
> qca988x ->  killer1525  331.447 mbps [tcp1 ip4]
> qca988x ->  killer1525  328.783 mbps [tcp5 ip4]
> qca988x ->  killer1525  375.309 mbps [udp1 ip4]
> qca988x ->  killer1525  403.379 mbps [udp5 ip4]
> killer1525  ->  qca988x 203.689 mbps [tcp1 ip4]
> killer1525  ->  qca988x 222.339 mbps [tcp5 ip4]
> killer1525  ->  qca988x 264.199 mbps [udp1 ip4]
> killer1525  ->  qca988x 479.371 mbps [udp5 ip4]
>
>   Note:
>- only open network tested for RAW vs nwifi performance comparison
>- killer1525 (qca6174 hw2.2) is 2x2 device (hence max 866mbps)
>- used iperf
>- OTA, devices a few cm apart from each other, no shielding
>- tcpX/udpX, X - means number of threads used
>
>   Overview:
>- relative Tx performance drop is seen but is within reasonable and
>  expected threshold (A-MSDU must be disabled with RAW Tx)
>
>  b) Connectivity Testing
>
>   cryptmode=1
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>
>   Note:
>- each test takes all possible endpoint pairs and pings
>- each pair-ping flushes arp table
>- ip6 is used
>
>  c) Testbed Topology:
>
>   1ap1sta:
> [ap]  [sta]
>
> endpoints: ap, sta
>
>   1ap1sta2br:
> [veth0] [ap]  [sta] [veth2]
>| |  | |
> [veth1]  |  \   [veth3]
> \   /\  /
> [br0][br1]
>
> endpoints: veth0, veth2, br0, br1
> note: STA works in 4addr mode, AP has wds_sta=1
>
>   1ap1sta2br1vlan:
> [veth0] [ap]  [sta] [veth2]
>| |  | |
> [veth1]  |  \   [veth3]
> \   /\  /
>   [br0]  [br1]
> |  |
>   [vlan0_id2]  

Re: [PATCH v4] ath10k: enable raw encap mode and software crypto engine.

2015-07-27 Thread Liu CF/TW
Hi Kalle. I reviewed the change and it looks good to me.

Thanks
David

On Fri, Jul 24, 2015 at 10:29 AM, Kalle Valo  wrote:
> Liu CF/TW  writes:
>
>> From: David Liu 
>>
>>   This patch enables raw Rx/Tx encap mode to support software based
>>   crypto engine. This patch introduces a new module param 'cryptmode'.
>>
>>cryptmode:
>>
>>  0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX
>> encapsulation to the firmware. This is the default mode.
>>  1: Use sofware crypto engine globally with raw mode TX/RX
>> encapsulation to the firmware.
>>
>>Known limitation:
>>  A-MSDU must be disabled for RAW Tx encap mode to perform well when
>>  heavy traffic is applied.
>>
>>Testing: (by Michal Kazior )
>>
>>  a) Performance Testing
>>
>>   cryptmode=1
>>ap=qca988x sta=killer1525
>> killer1525  ->  qca988x 194.496 mbps [tcp1 ip4]
>> killer1525  ->  qca988x 238.309 mbps [tcp5 ip4]
>> killer1525  ->  qca988x 266.958 mbps [udp1 ip4]
>> killer1525  ->  qca988x 477.468 mbps [udp5 ip4]
>> qca988x ->  killer1525  301.378 mbps [tcp1 ip4]
>> qca988x ->  killer1525  297.949 mbps [tcp5 ip4]
>> qca988x ->  killer1525  331.351 mbps [udp1 ip4]
>> qca988x ->  killer1525  371.528 mbps [udp5 ip4]
>>ap=killer1525 sta=qca988x
>> qca988x ->  killer1525  331.447 mbps [tcp1 ip4]
>> qca988x ->  killer1525  328.783 mbps [tcp5 ip4]
>> qca988x ->  killer1525  375.309 mbps [udp1 ip4]
>> qca988x ->  killer1525  403.379 mbps [udp5 ip4]
>> killer1525  ->  qca988x 203.689 mbps [tcp1 ip4]
>> killer1525  ->  qca988x 222.339 mbps [tcp5 ip4]
>> killer1525  ->  qca988x 264.199 mbps [udp1 ip4]
>> killer1525  ->  qca988x 479.371 mbps [udp5 ip4]
>>
>>   Note:
>>- only open network tested for RAW vs nwifi performance comparison
>>- killer1525 (qca6174 hw2.2) is 2x2 device (hence max 866mbps)
>>- used iperf
>>- OTA, devices a few cm apart from each other, no shielding
>>- tcpX/udpX, X - means number of threads used
>>
>>   Overview:
>>- relative Tx performance drop is seen but is within reasonable and
>>  expected threshold (A-MSDU must be disabled with RAW Tx)
>>
>>  b) Connectivity Testing
>>
>>   cryptmode=1
>>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta  OK
>>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta  OK
>>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta  OK
>>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta  OK
>>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta  OK
>>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta  OK
>>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta  OK
>>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta  OK
>>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br   OK
>>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br   OK
>>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br   OK
>>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br   OK
>>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br   OK
>>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br   OK
>>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br   OK
>>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br   OK
>>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br1vlan  OK
>>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br1vlan  OK
>>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br1vlan  OK
>>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br1vlan  OK
>>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br1vlan  OK
>>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br1vlan  OK
>>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>>
>>   Note:
>>- each test takes all possible endpoint pairs and pings
>>- each pair-ping flushes arp table
>>- ip6 is used
>>
>>  c) Testbed Topology:
>>
>>   1ap1sta:
>> [ap]  [sta]
>>
>> endpoints: ap, sta
>>
>>   1ap1sta2br:
>> [veth0] [ap]  [sta] [veth2]
>>| |  | |
>> [veth1]  |  \   [veth3]
>> \   /\  /
>> [br0][br1]
>>
>> endpoints: veth0, veth2, br0, br1
>> note: STA works in 4addr mode, AP has wds_sta=1
>>
>>   1ap1sta2br1vlan:
>> [veth0] [ap]  

Re: [PATCH v4] ath10k: enable raw encap mode and software crypto engine.

2015-07-29 Thread Kalle Valo
Liu CF/TW  writes:

> From: David Liu 
>
>   This patch enables raw Rx/Tx encap mode to support software based
>   crypto engine. This patch introduces a new module param 'cryptmode'.
>
>cryptmode:
>
>  0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX
> encapsulation to the firmware. This is the default mode.
>  1: Use sofware crypto engine globally with raw mode TX/RX
> encapsulation to the firmware.
>
>Known limitation:
>  A-MSDU must be disabled for RAW Tx encap mode to perform well when
>  heavy traffic is applied.
>
>Testing: (by Michal Kazior )
>
>  a) Performance Testing
>
>   cryptmode=1
>ap=qca988x sta=killer1525
> killer1525  ->  qca988x 194.496 mbps [tcp1 ip4]
> killer1525  ->  qca988x 238.309 mbps [tcp5 ip4]
> killer1525  ->  qca988x 266.958 mbps [udp1 ip4]
> killer1525  ->  qca988x 477.468 mbps [udp5 ip4]
> qca988x ->  killer1525  301.378 mbps [tcp1 ip4]
> qca988x ->  killer1525  297.949 mbps [tcp5 ip4]
> qca988x ->  killer1525  331.351 mbps [udp1 ip4]
> qca988x ->  killer1525  371.528 mbps [udp5 ip4]
>ap=killer1525 sta=qca988x
> qca988x ->  killer1525  331.447 mbps [tcp1 ip4]
> qca988x ->  killer1525  328.783 mbps [tcp5 ip4]
> qca988x ->  killer1525  375.309 mbps [udp1 ip4]
> qca988x ->  killer1525  403.379 mbps [udp5 ip4]
> killer1525  ->  qca988x 203.689 mbps [tcp1 ip4]
> killer1525  ->  qca988x 222.339 mbps [tcp5 ip4]
> killer1525  ->  qca988x 264.199 mbps [udp1 ip4]
> killer1525  ->  qca988x 479.371 mbps [udp5 ip4]
>
>   Note:
>- only open network tested for RAW vs nwifi performance comparison
>- killer1525 (qca6174 hw2.2) is 2x2 device (hence max 866mbps)
>- used iperf
>- OTA, devices a few cm apart from each other, no shielding
>- tcpX/udpX, X - means number of threads used
>
>   Overview:
>- relative Tx performance drop is seen but is within reasonable and
>  expected threshold (A-MSDU must be disabled with RAW Tx)
>
>  b) Connectivity Testing
>
>   cryptmode=1
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta  OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta  OK
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br   OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br   OK
>ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wpa  topology-1ap1sta2br1vlan  OK
>ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wpa  topology-1ap1sta2br1vlan  OK
>ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br1vlan  OK
>
>   Note:
>- each test takes all possible endpoint pairs and pings
>- each pair-ping flushes arp table
>- ip6 is used
>
>  c) Testbed Topology:
>
>   1ap1sta:
> [ap]  [sta]
>
> endpoints: ap, sta
>
>   1ap1sta2br:
> [veth0] [ap]  [sta] [veth2]
>| |  | |
> [veth1]  |  \   [veth3]
> \   /\  /
> [br0][br1]
>
> endpoints: veth0, veth2, br0, br1
> note: STA works in 4addr mode, AP has wds_sta=1
>
>   1ap1sta2br1vlan:
> [veth0] [ap]  [sta] [veth2]
>| |  | |
> [veth1]  |  \   [veth3]
> \   /\  /
>   [br0]  [br1]
> |  |
>   [vlan0_id2]