Search Linux Wireless

Re: [PATCH v4 02/14] wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

On 2024-04-09, Bitterblue Smith wrote:
> Some (all?) management frames are incorrectly reported to mac80211 as
> decrypted when actually the hardware did not decrypt them. This results
> in speeds 3-5 times lower than expected, 20-30 Mbps instead of 100
> Mbps.
>
> Fix this by checking the encryption type field of the RX descriptor.
> rtw88 does the same thing.
>
> This fix was tested only with rtl8192du, which will use the same code.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
> ---
> v4:
>  - Patch is new in v4.

This patch indeed provides a nice speedup with WPA3/ SAE on my
rtl8192du:

v3 of the patch series:

$ iperf3 -c <remote_server_ipv6>
Connecting to host <remote_server_ipv6>, port 5201
[  5] local <local_client_ipv6> port 45806 connected to <remote_server_ipv6> port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.75 MBytes  31.4 Mbits/sec    0    241 KBytes
[  5]   1.00-2.00   sec  3.88 MBytes  32.5 Mbits/sec    0    411 KBytes
[  5]   2.00-3.00   sec  3.88 MBytes  32.5 Mbits/sec    0    580 KBytes
[  5]   3.00-4.00   sec  3.88 MBytes  32.5 Mbits/sec    0    720 KBytes
[  5]   4.00-5.00   sec  2.62 MBytes  22.0 Mbits/sec    0    846 KBytes
[  5]   5.00-6.00   sec  2.75 MBytes  23.1 Mbits/sec    0   1004 KBytes
[  5]   6.00-7.00   sec  2.62 MBytes  22.0 Mbits/sec    0   1.14 MBytes
[  5]   7.00-8.00   sec  2.75 MBytes  23.1 Mbits/sec    0   1.27 MBytes
[  5]   8.00-9.00   sec  2.62 MBytes  22.0 Mbits/sec    0   1.41 MBytes
[  5]   9.00-10.00  sec  2.75 MBytes  23.1 Mbits/sec    0   1.55 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  31.5 MBytes  26.4 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  30.4 MBytes  25.5 Mbits/sec                  receiver

iperf Done.

$ iperf3 -c <remote_server_ipv6> --reverse
Connecting to host <remote_server_ipv6>, port 5201
Reverse mode, remote host <remote_server_ipv6> is sending
[  5] local <local_client_ipv6> port 57564 connected to <remote_server_ipv6> port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  3.25 MBytes  27.2 Mbits/sec
[  5]   1.00-2.00   sec  2.50 MBytes  21.0 Mbits/sec
[  5]   2.00-3.00   sec  2.25 MBytes  18.9 Mbits/sec
[  5]   3.00-4.00   sec  2.25 MBytes  18.9 Mbits/sec
[  5]   4.00-5.00   sec  2.88 MBytes  24.1 Mbits/sec
[  5]   5.00-6.00   sec  2.88 MBytes  24.1 Mbits/sec
[  5]   6.00-7.00   sec  2.38 MBytes  19.9 Mbits/sec
[  5]   7.00-8.00   sec  2.62 MBytes  22.0 Mbits/sec
[  5]   8.00-9.00   sec  3.00 MBytes  25.2 Mbits/sec
[  5]   9.00-10.00  sec  3.00 MBytes  25.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec  29.9 MBytes  25.0 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  27.0 MBytes  22.6 Mbits/sec                  receiver

iperf Done.

$ iperf3 -c <remote_server_ipv6> --bidir
Connecting to host <remote_server_ipv6>, port 5201
[  5] local <local_client_ipv6> port 44242 connected to <remote_server_ipv6> port 5201
[  7] local <local_client_ipv6> port 44252 connected to <remote_server_ipv6> port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  2.00 MBytes  16.8 Mbits/sec    0    109 KBytes
[  7][RX-C]   0.00-1.00   sec  1.00 MBytes  8.38 Mbits/sec
[  5][TX-C]   1.00-2.00   sec  2.75 MBytes  23.1 Mbits/sec    0    212 KBytes
[  7][RX-C]   1.00-2.00   sec   640 KBytes  5.24 Mbits/sec
[  5][TX-C]   2.00-3.00   sec  2.25 MBytes  18.9 Mbits/sec    0    315 KBytes
[  7][RX-C]   2.00-3.00   sec   640 KBytes  5.24 Mbits/sec
[  5][TX-C]   3.00-4.00   sec  3.12 MBytes  26.2 Mbits/sec    0    421 KBytes
[  7][RX-C]   3.00-4.00   sec   512 KBytes  4.19 Mbits/sec
[  5][TX-C]   4.00-5.00   sec  4.00 MBytes  33.6 Mbits/sec    0    551 KBytes
[  7][RX-C]   4.00-5.00   sec   640 KBytes  5.24 Mbits/sec
[  5][TX-C]   5.00-6.00   sec  2.50 MBytes  21.0 Mbits/sec    0    676 KBytes
[  7][RX-C]   5.00-6.00   sec   384 KBytes  3.15 Mbits/sec
[  5][TX-C]   6.00-7.00   sec  2.75 MBytes  23.1 Mbits/sec    0    802 KBytes
[  7][RX-C]   6.00-7.00   sec   384 KBytes  3.15 Mbits/sec
[  5][TX-C]   7.00-8.00   sec  2.62 MBytes  22.0 Mbits/sec    0    925 KBytes
[  7][RX-C]   7.00-8.00   sec   256 KBytes  2.10 Mbits/sec
[  5][TX-C]   8.00-9.00   sec  2.75 MBytes  23.1 Mbits/sec    0   1.05 MBytes
[  7][RX-C]   8.00-9.00   sec   512 KBytes  4.19 Mbits/sec
[  5][TX-C]   9.00-10.00  sec  2.62 MBytes  22.0 Mbits/sec    0   1.19 MBytes
[  7][RX-C]   9.00-10.00  sec   256 KBytes  2.10 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  27.4 MBytes  23.0 Mbits/sec    0             sender
[  5][TX-C]   0.00-10.00  sec  25.4 MBytes  21.3 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  6.12 MBytes  5.14 Mbits/sec    1             sender
[  7][RX-C]   0.00-10.00  sec  5.12 MBytes  4.30 Mbits/sec                  receiver

iperf Done.

***********************************************************************

v4 of the patch series:

$ iperf3 -c <remote_server_ipv6>
Connecting to host <remote_server_ipv6>, port 5201
[  5] local <local_client_ipv6> port 60528 connected to <remote_server_ipv6> port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  13.1 MBytes   110 Mbits/sec    0    445 KBytes
[  5]   1.00-2.00   sec  13.2 MBytes   111 Mbits/sec    0    644 KBytes
[  5]   2.00-3.00   sec  11.9 MBytes  99.6 Mbits/sec    0    768 KBytes
[  5]   3.00-4.00   sec  11.5 MBytes  96.5 Mbits/sec    0    855 KBytes
[  5]   4.00-5.00   sec  12.0 MBytes   101 Mbits/sec    0    945 KBytes
[  5]   5.00-6.00   sec  11.4 MBytes  95.5 Mbits/sec    0    945 KBytes
[  5]   6.00-7.00   sec  11.6 MBytes  97.5 Mbits/sec    0    945 KBytes
[  5]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    0    945 KBytes
[  5]   8.00-9.00   sec  13.0 MBytes   109 Mbits/sec    0    945 KBytes
[  5]   9.00-10.00  sec  12.0 MBytes   101 Mbits/sec    0   1000 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   121 MBytes   101 Mbits/sec    0             sender
[  5]   0.00-10.03  sec   118 MBytes  98.3 Mbits/sec                  receiver

iperf Done.

$ iperf3 -c <remote_server_ipv6> --reverse
Connecting to host <remote_server_ipv6>, port 5201
Reverse mode, remote host <remote_server_ipv6> is sending
[  5] local <local_client_ipv6> port 59562 connected to <remote_server_ipv6> port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  16.0 MBytes   134 Mbits/sec
[  5]   1.00-2.00   sec  14.9 MBytes   125 Mbits/sec
[  5]   2.00-3.00   sec  19.2 MBytes   162 Mbits/sec
[  5]   3.00-4.00   sec  14.9 MBytes   125 Mbits/sec
[  5]   4.00-5.00   sec  18.2 MBytes   153 Mbits/sec
[  5]   5.00-6.00   sec  18.9 MBytes   158 Mbits/sec
[  5]   6.00-7.00   sec  17.8 MBytes   149 Mbits/sec
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec
[  5]   8.00-9.00   sec  15.1 MBytes   127 Mbits/sec
[  5]   9.00-10.00  sec  14.8 MBytes   124 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   171 MBytes   144 Mbits/sec    1             sender
[  5]   0.00-10.00  sec   167 MBytes   140 Mbits/sec                  receiver

iperf Done

$ iperf3 -c <remote_server_ipv6> --bidir
Connecting to host <remote_server_ipv6>, port 5201
[  5] local <local_client_ipv6> port 34312 connected to <remote_server_ipv6> port 5201
[  7] local <local_client_ipv6> port 34318 connected to <remote_server_ipv6> port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  8.25 MBytes  69.1 Mbits/sec    0    395 KBytes
[  7][RX-C]   0.00-1.00   sec  7.00 MBytes  58.7 Mbits/sec
[  5][TX-C]   1.00-2.00   sec  3.38 MBytes  28.3 Mbits/sec    0    420 KBytes
[  7][RX-C]   1.00-2.00   sec  14.6 MBytes   123 Mbits/sec
[  5][TX-C]   2.00-3.00   sec  2.88 MBytes  24.1 Mbits/sec    0    473 KBytes
[  7][RX-C]   2.00-3.00   sec  15.4 MBytes   129 Mbits/sec
[  5][TX-C]   3.00-4.00   sec  1.12 MBytes  9.44 Mbits/sec    0    531 KBytes
[  7][RX-C]   3.00-4.00   sec  10.9 MBytes  91.2 Mbits/sec
[  5][TX-C]   4.00-5.00   sec  1.12 MBytes  9.44 Mbits/sec    0    558 KBytes
[  7][RX-C]   4.00-5.00   sec  10.8 MBytes  90.2 Mbits/sec
[  5][TX-C]   5.00-6.00   sec  1.38 MBytes  11.5 Mbits/sec    0    600 KBytes
[  7][RX-C]   5.00-6.00   sec  3.62 MBytes  30.4 Mbits/sec
[  5][TX-C]   6.00-7.00   sec  2.75 MBytes  23.1 Mbits/sec    0    718 KBytes
[  7][RX-C]   6.00-7.00   sec  12.2 MBytes   103 Mbits/sec
[  5][TX-C]   7.00-8.00   sec  2.75 MBytes  23.1 Mbits/sec    0    853 KBytes
[  7][RX-C]   7.00-8.00   sec  11.1 MBytes  93.3 Mbits/sec
[  5][TX-C]   8.00-9.00   sec  2.75 MBytes  23.1 Mbits/sec    0   1.03 MBytes
[  7][RX-C]   8.00-9.00   sec  13.6 MBytes   114 Mbits/sec
[  5][TX-C]   9.00-10.00  sec  4.12 MBytes  34.6 Mbits/sec    0   1.12 MBytes
[  7][RX-C]   9.00-10.00  sec  16.6 MBytes   139 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  30.5 MBytes  25.6 Mbits/sec    0             sender
[  5][TX-C]   0.00-10.04  sec  27.1 MBytes  22.7 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec   119 MBytes  99.7 Mbits/sec   10             sender
[  7][RX-C]   0.00-10.04  sec   116 MBytes  96.8 Mbits/sec                  receiver

iperf Done.


Regards
	Stefan Lippers-Hollmann





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux