mbox series

[v5,0/3] wifi: ath12k: report station mode stats

Message ID 20240718120725.130265-1-quic_lingbok@quicinc.com (mailing list archive)
Headers show
Series wifi: ath12k: report station mode stats | expand

Message

Lingbo Kong July 18, 2024, 12:07 p.m. UTC
Currently, the transmit rate, the receive rate and signal strength of "iw
dev xxx station dump" always show an invalid value. 

This is because ath12k has no logic to handle this relevant information.

To solve this issue, ath12k parses the information passed by the firmware
and passes it to mac80211.

After that, "iw dev xxx station dump" show the correct value.
Such as:

Station 00:03:7f:12:03:03 (on wlo1)
        inactive time:  600 ms
        rx bytes:       4642228
        rx packets:     23796
        tx bytes:       933967
        tx packets:     8761
        tx retries:     66
        tx failed:      0
        beacon loss:    0
        beacon rx:      8925
        rx drop misc:   191
        signal:         -20 dBm
        beacon signal avg:      -18 dBm
        tx bitrate:     1441.1 MBit/s 80MHz EHT-MCS 13 EHT-NSS 2 EHT-GI 0
        tx duration:    0 us
        rx bitrate:     1801.4 MBit/s 80MHz EHT-MCS 11 EHT-NSS 3 EHT-GI 0
        rx duration:    0 us

v5:
1.use ieee80211_find_sta_by_ifaddr() to avoid using base_lock

v4:
1.rebase ath-pending-202404181533
2.change ATH12K_EHT_MCS_MAX from 13 to 15

v3:
1.change wmi_vdev_stats_event to wmi_vdev_stats_params

v2:
1.change copyright
2.change name according Naming conventions for structures

Lingbo Kong (3):
  wifi: ath12k: report station mode transmit rate
  wifi: ath12k: report station mode receive rate for IEEE 802.11be
  wifi: ath12k: report station mode signal strength

 drivers/net/wireless/ath/ath12k/core.h    |   5 +
 drivers/net/wireless/ath/ath12k/dp_rx.c   |  20 ++-
 drivers/net/wireless/ath/ath12k/dp_rx.h   |   3 +
 drivers/net/wireless/ath/ath12k/dp_tx.c   | 117 +++++++++++++++++-
 drivers/net/wireless/ath/ath12k/hal_rx.h  |   3 +
 drivers/net/wireless/ath/ath12k/hal_tx.h  |   7 +-
 drivers/net/wireless/ath/ath12k/mac.c     | 141 +++++++++++++++++++++-
 drivers/net/wireless/ath/ath12k/mac.h     |   4 +-
 drivers/net/wireless/ath/ath12k/rx_desc.h |   3 +
 drivers/net/wireless/ath/ath12k/wmi.c     | 130 ++++++++++++++++++++
 drivers/net/wireless/ath/ath12k/wmi.h     |  49 +++++++-
 11 files changed, 472 insertions(+), 10 deletions(-)


base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45

Comments

Jeff Johnson July 19, 2024, 11:58 p.m. UTC | #1
On 7/18/2024 5:07 AM, Lingbo Kong wrote:
> Currently, the transmit rate, the receive rate and signal strength of "iw
> dev xxx station dump" always show an invalid value. 
> 
> This is because ath12k has no logic to handle this relevant information.
> 
> To solve this issue, ath12k parses the information passed by the firmware
> and passes it to mac80211.
> 
> After that, "iw dev xxx station dump" show the correct value.
> Such as:
> 
> Station 00:03:7f:12:03:03 (on wlo1)
>         inactive time:  600 ms
>         rx bytes:       4642228
>         rx packets:     23796
>         tx bytes:       933967
>         tx packets:     8761
>         tx retries:     66
>         tx failed:      0
>         beacon loss:    0
>         beacon rx:      8925
>         rx drop misc:   191
>         signal:         -20 dBm
>         beacon signal avg:      -18 dBm
>         tx bitrate:     1441.1 MBit/s 80MHz EHT-MCS 13 EHT-NSS 2 EHT-GI 0
>         tx duration:    0 us
>         rx bitrate:     1801.4 MBit/s 80MHz EHT-MCS 11 EHT-NSS 3 EHT-GI 0
>         rx duration:    0 us
> 
> v5:
> 1.use ieee80211_find_sta_by_ifaddr() to avoid using base_lock
> 
> v4:
> 1.rebase ath-pending-202404181533
> 2.change ATH12K_EHT_MCS_MAX from 13 to 15
> 
> v3:
> 1.change wmi_vdev_stats_event to wmi_vdev_stats_params
> 
> v2:
> 1.change copyright
> 2.change name according Naming conventions for structures
> 
> Lingbo Kong (3):
>   wifi: ath12k: report station mode transmit rate
>   wifi: ath12k: report station mode receive rate for IEEE 802.11be
>   wifi: ath12k: report station mode signal strength
> 
>  drivers/net/wireless/ath/ath12k/core.h    |   5 +
>  drivers/net/wireless/ath/ath12k/dp_rx.c   |  20 ++-
>  drivers/net/wireless/ath/ath12k/dp_rx.h   |   3 +
>  drivers/net/wireless/ath/ath12k/dp_tx.c   | 117 +++++++++++++++++-
>  drivers/net/wireless/ath/ath12k/hal_rx.h  |   3 +
>  drivers/net/wireless/ath/ath12k/hal_tx.h  |   7 +-
>  drivers/net/wireless/ath/ath12k/mac.c     | 141 +++++++++++++++++++++-
>  drivers/net/wireless/ath/ath12k/mac.h     |   4 +-
>  drivers/net/wireless/ath/ath12k/rx_desc.h |   3 +
>  drivers/net/wireless/ath/ath12k/wmi.c     | 130 ++++++++++++++++++++
>  drivers/net/wireless/ath/ath12k/wmi.h     |  49 +++++++-
>  11 files changed, 472 insertions(+), 10 deletions(-)
> 
> 
> base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45

FYI this series does not apply cleanly on top of:
4c1cf2d8e5dd ("wifi: ath12k: prepare sta data structure for MLO handling")

And I currently have that as my basis of work since it is high priority to be
merged since the MLO feature is dependent upon it.

Can you rebase against that series?

/jeff
Lingbo Kong July 20, 2024, 8:57 a.m. UTC | #2
On 2024/7/20 7:58, Jeff Johnson wrote:
> On 7/18/2024 5:07 AM, Lingbo Kong wrote:
>> Currently, the transmit rate, the receive rate and signal strength of "iw
>> dev xxx station dump" always show an invalid value.
>>
>> This is because ath12k has no logic to handle this relevant information.
>>
>> To solve this issue, ath12k parses the information passed by the firmware
>> and passes it to mac80211.
>>
>> After that, "iw dev xxx station dump" show the correct value.
>> Such as:
>>
>> Station 00:03:7f:12:03:03 (on wlo1)
>>          inactive time:  600 ms
>>          rx bytes:       4642228
>>          rx packets:     23796
>>          tx bytes:       933967
>>          tx packets:     8761
>>          tx retries:     66
>>          tx failed:      0
>>          beacon loss:    0
>>          beacon rx:      8925
>>          rx drop misc:   191
>>          signal:         -20 dBm
>>          beacon signal avg:      -18 dBm
>>          tx bitrate:     1441.1 MBit/s 80MHz EHT-MCS 13 EHT-NSS 2 EHT-GI 0
>>          tx duration:    0 us
>>          rx bitrate:     1801.4 MBit/s 80MHz EHT-MCS 11 EHT-NSS 3 EHT-GI 0
>>          rx duration:    0 us
>>
>> v5:
>> 1.use ieee80211_find_sta_by_ifaddr() to avoid using base_lock
>>
>> v4:
>> 1.rebase ath-pending-202404181533
>> 2.change ATH12K_EHT_MCS_MAX from 13 to 15
>>
>> v3:
>> 1.change wmi_vdev_stats_event to wmi_vdev_stats_params
>>
>> v2:
>> 1.change copyright
>> 2.change name according Naming conventions for structures
>>
>> Lingbo Kong (3):
>>    wifi: ath12k: report station mode transmit rate
>>    wifi: ath12k: report station mode receive rate for IEEE 802.11be
>>    wifi: ath12k: report station mode signal strength
>>
>>   drivers/net/wireless/ath/ath12k/core.h    |   5 +
>>   drivers/net/wireless/ath/ath12k/dp_rx.c   |  20 ++-
>>   drivers/net/wireless/ath/ath12k/dp_rx.h   |   3 +
>>   drivers/net/wireless/ath/ath12k/dp_tx.c   | 117 +++++++++++++++++-
>>   drivers/net/wireless/ath/ath12k/hal_rx.h  |   3 +
>>   drivers/net/wireless/ath/ath12k/hal_tx.h  |   7 +-
>>   drivers/net/wireless/ath/ath12k/mac.c     | 141 +++++++++++++++++++++-
>>   drivers/net/wireless/ath/ath12k/mac.h     |   4 +-
>>   drivers/net/wireless/ath/ath12k/rx_desc.h |   3 +
>>   drivers/net/wireless/ath/ath12k/wmi.c     | 130 ++++++++++++++++++++
>>   drivers/net/wireless/ath/ath12k/wmi.h     |  49 +++++++-
>>   11 files changed, 472 insertions(+), 10 deletions(-)
>>
>>
>> base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45
> 
> FYI this series does not apply cleanly on top of:
> 4c1cf2d8e5dd ("wifi: ath12k: prepare sta data structure for MLO handling")
> 
> And I currently have that as my basis of work since it is high priority to be
> merged since the MLO feature is dependent upon it.
> 
> Can you rebase against that series?
> 
> /jeff

sure, i'll rebase against "wifi: ath12k: prepare sta data structure for 
MLO handling".

/lingbo kong