mbox series

[0/7] wifi: ath12k: Add monitor interface support on QCN9274

Message ID 20250107021017.3857555-1-quic_periyasa@quicinc.com
Headers show
Series wifi: ath12k: Add monitor interface support on QCN9274 | expand

Message

Karthikeyan Periyasamy Jan. 7, 2025, 2:10 a.m. UTC
Currently, monitor interface not supported. Therefore, add the missed TLV
tags parsing in the monitor parser, configure the monitor vdev state
identifier with HTT filter setup.

Depends-On:
	[PATCH v3 0/3] wifi: ath12k: Refactor monitor Rx handler
	https://lore.kernel.org/all/20241224143613.164921-1-quic_periyasa@quicinc.com/

	[PATCH v2 00/14] wifi: ath12k: Enable monitor ring for updating station dump in QCN9274
	https://lore.kernel.org/all/20241223060132.3506372-1-quic_ppranees@quicinc.com/

	[PATCH v2 00/10] wifi: ath12k: Add peer extended Rx statistics debugfs support
	https://lore.kernel.org/all/20241224161442.263729-1-quic_periyasa@quicinc.com/

Hari Chandrakanthan (1):
  wifi: ath12k: fix link valid field initialization in the monitor Rx

Karthikeyan Periyasamy (1):
  wifi: ath12k: Replace band define G with GHZ where appropriate

P Praneesh (5):
  wifi: ath12k: Add extra TLV tag parsing support in monitor Rx path
  wifi: ath12k: Avoid fetch Error bitmap and decap format from Rx TLV
  wifi: ath12k: change the status update in the monitor Rx
  wifi: ath12k: Avoid packet offset and FCS length from Rx TLV
  wifi: ath12k: add monitor interface support on QCN9274

 drivers/net/wireless/ath/ath12k/core.c   |   7 +-
 drivers/net/wireless/ath/ath12k/core.h   |  20 +-
 drivers/net/wireless/ath/ath12k/dp.h     |   4 +-
 drivers/net/wireless/ath/ath12k/dp_mon.c | 364 +++++++++++++++++++----
 drivers/net/wireless/ath/ath12k/dp_mon.h |   5 +-
 drivers/net/wireless/ath/ath12k/dp_rx.c  |   7 +-
 drivers/net/wireless/ath/ath12k/dp_tx.c  |   4 +-
 drivers/net/wireless/ath/ath12k/hal_rx.h |  17 +-
 drivers/net/wireless/ath/ath12k/hw.c     |   4 +-
 drivers/net/wireless/ath/ath12k/mac.c    |  76 +++--
 drivers/net/wireless/ath/ath12k/wmi.c    |  38 +--
 drivers/net/wireless/ath/ath12k/wmi.h    |  20 +-
 12 files changed, 439 insertions(+), 127 deletions(-)


base-commit: 09fa3b6974a1245ddd0751747609431494ba5b4f
prerequisite-patch-id: 5f5721a4c9f1c26659fd8f09a8eda648d8ecccf5
prerequisite-patch-id: 59cc2121e734e4e1e7e461a3ae24f3f1f9d0fa02
prerequisite-patch-id: fdc512e43ea7cb6c097ba4c0d9c661a74c0c2a6f
prerequisite-patch-id: afb04ab90da26435239077de723d1276946a194a
prerequisite-patch-id: 1b12bea72973c14f461b8202eed9432f27932876
prerequisite-patch-id: a6719494f46b8568504be8c64255676e67b4deda
prerequisite-patch-id: 054756eb1705babff324a743e62685bb78035198
prerequisite-patch-id: 889c4a0174fac23261705a42b46e923d7e7a0a18
prerequisite-patch-id: ea0321fbd8a59c09191873f59b6aea8225f4b8e5
prerequisite-patch-id: 3c8ccb635d319f8755649e445b68feb615fd82c4
prerequisite-patch-id: d516b2a3196218f42fdf4567516a1fd2c8b4c40f
prerequisite-patch-id: a2c59b4e468384e27d934a986e5fe9a951685fd9
prerequisite-patch-id: 359fecf93ef53f39243cc1b3466ab06fbd33cc71
prerequisite-patch-id: bf0b6542c65299c0bfa7fef2da6f09dd8453c39f
prerequisite-patch-id: 1dc79cafb399be590d1e418afcc5a719ae35834f
prerequisite-patch-id: fb1e39f2dce024ff692b0e6b112dc90c6a43ad00
prerequisite-patch-id: 9ea3943ae0b6e6a5a09cb648eaa35f8087967ac3
prerequisite-patch-id: 35da9ccb2466675b50e819029c13cbda70702fc2
prerequisite-patch-id: 282cdacca7b9bbef5a94b1a78457304d38362af2
prerequisite-patch-id: 5bdb2bd29cd4c92d23708432f451e92951c23f0e
prerequisite-patch-id: 4b6f75cfa4d25f974f8fa61adbc85fff35a187fa
prerequisite-patch-id: 6a015b7d89f3d61adb5d60eff2d63fea10d9c3b0
prerequisite-patch-id: eab7d17c9891dd9a1c6152d8e180b72a08980956
prerequisite-patch-id: 12367e8ecdccf254c41bd0518cea6877e4673bb3
prerequisite-patch-id: d94f4a9c9b0b3bdc9e709efcae0cba4983bf440f
prerequisite-patch-id: 8c9df1e16a25c3b9a3fb709ba9bc8d37e6f14a5e
prerequisite-patch-id: 35a364a01fcf09cff2d3c7a7630465e4977b5c06

Comments

Nicolas Escande Jan. 15, 2025, 5:55 p.m. UTC | #1
On Tue Jan 7, 2025 at 3:10 AM CET, Karthikeyan Periyasamy wrote:
> Currently, monitor interface not supported. Therefore, add the missed TLV
> tags parsing in the monitor parser, configure the monitor vdev state
> identifier with HTT filter setup.
>
> Depends-On:
> 	[PATCH v3 0/3] wifi: ath12k: Refactor monitor Rx handler
> 	https://lore.kernel.org/all/20241224143613.164921-1-quic_periyasa@quicinc.com/
>
> 	[PATCH v2 00/14] wifi: ath12k: Enable monitor ring for updating station dump in QCN9274
> 	https://lore.kernel.org/all/20241223060132.3506372-1-quic_ppranees@quicinc.com/
>
> 	[PATCH v2 00/10] wifi: ath12k: Add peer extended Rx statistics debugfs support
> 	https://lore.kernel.org/all/20241224161442.263729-1-quic_periyasa@quicinc.com/
>
> Hari Chandrakanthan (1):
>   wifi: ath12k: fix link valid field initialization in the monitor Rx
>
> Karthikeyan Periyasamy (1):
>   wifi: ath12k: Replace band define G with GHZ where appropriate
>
> P Praneesh (5):
>   wifi: ath12k: Add extra TLV tag parsing support in monitor Rx path
>   wifi: ath12k: Avoid fetch Error bitmap and decap format from Rx TLV
>   wifi: ath12k: change the status update in the monitor Rx
>   wifi: ath12k: Avoid packet offset and FCS length from Rx TLV
>   wifi: ath12k: add monitor interface support on QCN9274
>
[...]

Hello,

There might be something wrong with this series.

I applied it on top of ath-pending-202501150104 + the "ath12k: Add peer extended
Rx statistics debugfs support" and now 'iw dev wlan0 station dump' shows me
that the RSSI value seems to not be updated anymore after I stop a monitor
interface on the same phy.

Steps to reproduce:
iw phy phy0 interface add mon0 type monitor
ip link set mon0 up
# then just for 1 sec but it might not be usefull at all
tcpdump -nepi mon0
ip link set mon0 down
watch -n1 iw dev wlan0 station dump
# 'signal' seems to not be updating anymore, maybe some other fields too ?

Don't know if this is from this series or something else broken before, but as
we could not add a monitor interface before, I could not see it.

There still is a possibility that I messed something up while applying it so I
would greatly appreciate if you could check it.

This is on split-phy QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Thanks
Jeff Johnson Jan. 15, 2025, 7:56 p.m. UTC | #2
On 1/15/2025 9:55 AM, Nicolas Escande wrote:
> This is on split-phy QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

I don't know if it will help, but I just pushed out

new firmware WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1:
https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/commit/a289ab4de56345be86d2c89c81aa12577c2c5a30

new board file:
https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/commit/bd2ca865d78f3d7d899e06cef57e5bbb9da60bf7
Nicolas Escande Jan. 16, 2025, 1:51 p.m. UTC | #3
On Wed Jan 15, 2025 at 8:56 PM CET, Jeff Johnson wrote:
> On 1/15/2025 9:55 AM, Nicolas Escande wrote:
> > This is on split-phy QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
>
> I don't know if it will help, but I just pushed out
>
> new firmware WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1:
> https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/commit/a289ab4de56345be86d2c89c81aa12577c2c5a30
>
> new board file:
> https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/commit/bd2ca865d78f3d7d899e06cef57e5bbb9da60bf7

Thanks for the tip, I just tried it but alas it doesn't change a thing.
RSSI (and maybe rx/tx bitrates not so sure) is still broken for all connected
STA after a monitor device goes up & down.
Karthikeyan Periyasamy Jan. 17, 2025, 4:37 a.m. UTC | #4
On 1/15/2025 11:25 PM, Nicolas Escande wrote:
> On Tue Jan 7, 2025 at 3:10 AM CET, Karthikeyan Periyasamy wrote:
>> Currently, monitor interface not supported. Therefore, add the missed TLV
>> tags parsing in the monitor parser, configure the monitor vdev state
>> identifier with HTT filter setup.
>>
>> Depends-On:
>> 	[PATCH v3 0/3] wifi: ath12k: Refactor monitor Rx handler
>> 	https://lore.kernel.org/all/20241224143613.164921-1-quic_periyasa@quicinc.com/
>>
>> 	[PATCH v2 00/14] wifi: ath12k: Enable monitor ring for updating station dump in QCN9274
>> 	https://lore.kernel.org/all/20241223060132.3506372-1-quic_ppranees@quicinc.com/
>>
>> 	[PATCH v2 00/10] wifi: ath12k: Add peer extended Rx statistics debugfs support
>> 	https://lore.kernel.org/all/20241224161442.263729-1-quic_periyasa@quicinc.com/
>>
>> Hari Chandrakanthan (1):
>>    wifi: ath12k: fix link valid field initialization in the monitor Rx
>>
>> Karthikeyan Periyasamy (1):
>>    wifi: ath12k: Replace band define G with GHZ where appropriate
>>
>> P Praneesh (5):
>>    wifi: ath12k: Add extra TLV tag parsing support in monitor Rx path
>>    wifi: ath12k: Avoid fetch Error bitmap and decap format from Rx TLV
>>    wifi: ath12k: change the status update in the monitor Rx
>>    wifi: ath12k: Avoid packet offset and FCS length from Rx TLV
>>    wifi: ath12k: add monitor interface support on QCN9274
>>
> [...]
> 
> Hello,
> 
> There might be something wrong with this series.
> 
> I applied it on top of ath-pending-202501150104 + the "ath12k: Add peer extended
> Rx statistics debugfs support" and now 'iw dev wlan0 station dump' shows me
> that the RSSI value seems to not be updated anymore after I stop a monitor
> interface on the same phy.
> 
> Steps to reproduce:
> iw phy phy0 interface add mon0 type monitor
> ip link set mon0 up
> # then just for 1 sec but it might not be usefull at all
> tcpdump -nepi mon0
> ip link set mon0 down
> watch -n1 iw dev wlan0 station dump
> # 'signal' seems to not be updating anymore, maybe some other fields too ?
> 

Not able to find the wlan0 interface details from the above steps ?
Nicolas Escande Jan. 17, 2025, 9:46 a.m. UTC | #5
On Fri Jan 17, 2025 at 5:37 AM CET, Karthikeyan Periyasamy wrote:
> On 1/15/2025 11:25 PM, Nicolas Escande wrote:
> > On Tue Jan 7, 2025 at 3:10 AM CET, Karthikeyan Periyasamy wrote:
[...] 
> > I applied it on top of ath-pending-202501150104 + the "ath12k: Add peer extended
> > Rx statistics debugfs support" and now 'iw dev wlan0 station dump' shows me
> > that the RSSI value seems to not be updated anymore after I stop a monitor
> > interface on the same phy.
> > 
> > Steps to reproduce:
> > iw phy phy0 interface add mon0 type monitor
> > ip link set mon0 up
> > # then just for 1 sec but it might not be usefull at all
> > tcpdump -nepi mon0
> > ip link set mon0 down
> > watch -n1 iw dev wlan0 station dump
> > # 'signal' seems to not be updating anymore, maybe some other fields too ?
> > 
>
> Not able to find the wlan0 interface details from the above steps ?

Arf maybe I wasn't clear, my bad.

I have a running AP on wlan0. I constantly monitor connected stations infos
using 'iw dev wlan0 station dump' on the side in another terminal, and then I
add a monitor interface with the above steps, and thats when I see that the
stations connected to my AP have frozen values in station dump.

I suspect that ath12k_dp_tx_htt_rx_monitor_mode_ring_config() should reset the
rx filters to ath12k_mac_mon_status_filter_default when disabling monitor. But
I'm not so sure, you guys know better.