[PATCH ath12k-ng 0/9] wifi: ath12k: Modularization of peer object

Vasanthakumar Thiagarajan vasanthakumar.thiagarajan at oss.qualcomm.com
Mon Oct 27 00:20:11 PDT 2025



On 10/24/2025 11:45 PM, Ripan Deuri wrote:
> struct ath12k_sta has an array of struct ath12k_link_sta wherein each index
> represents one link of the connected station.
> 
> For each ath12k_link_sta, there is a corresponding data path peer which is
> represented by struct ath12k_peer.
> 
> Diagrammatic view of the station is a below:
> 
>          ath12k_sta
>              |
>              |-> ath12k_link_sta <--> ath12k_peer
>              |
>              |-> ath12k_link_sta <--> ath12k_peer
>              |
>              |-> ath12k_link_sta <--> ath12k_peer
> 
> Currently, in control path, ath12k_link_sta and ath12k_peer are used
> interchangeably, while the data path makes use of ath12k_peer only.
> 
> With ath12k next-generation driver framework, in order to have a clean
> segregation between control and data path, the plan is to use ath12k_link_sta
> only for control path operations.
> 
> Station view for the data path is revamped as below:
> 
>          ath12k_dp_peer
>                 |
>                 |-> ath12k_dp_link_peer
>                 |
>                 |-> ath12k_dp_link_peer
>                 |
>                 |-> ath12k_dp_link_peer
> 
> where:
> ath12k_dp_peer is newly introduced structure and represents the data path
> version of corresponding ath12k_sta.
> 
> This ath12k_dp_peer contains the fields used in the per packet Tx Rx paths
> applicable across all the links and maintains an array of ath12k_dp_link_peer.
> Per packet Tx and Rx path operates on ath12k_dp_peer. This ath12k_dp_peer is a
> standalone new object and has back pointer reference to ieee80211_sta.
> 
> ath12k_peer has been renamed to ath12k_dp_link_peer and the fields which
> are common across all the links are moved to ath12k_dp_peer. ath12k_dp_link_peer
> contains the fields specific to a link and these are mostly for statistics and
> monitor usage.
> 
> Final view of station is shown below:
> 
>              Control Path                            Data Path
>          -------------------------------------------------------------------
>          ath12k_sta                            ath12k_dp_peer
>              |                                       |
>              |-> ath12k_link_sta    <---->           |-> ath12k_dp_link_peer
>              |                                       |
>              |-> ath12k_link_sta    <---->           |-> ath12k_dp_link_peer
>              |                                       |
>              |-> ath12k_link_sta    <---->           |-> ath12k_dp_link_peer
> 
> To achieve this, following set of changes are done in this patch series:
> 1. Refactor functions present in file peer.c in such a way to retain functions
>     operating on ath12k_link_sta in peer.c and move functions operating on
>     ath12k_peer to dp_peer.c
> 2. Rename ath12k_peer to ath12k_dp_link_peer and change find APIs
>     correspondingly
> 3. Add hash table for ath12k_link_sta in ath12k_base
> 4. Move peer linked list from ath12k_base to ath12k_dp
> 5. Add hash table for ath12k_dp_link_peer in ath12k_dp
> 6. Define ath12k_dp_peer structure and APIs for creation and deletion
> 7. APIs for assign and unassignment of ath12k_dp_link_peer to ath12k_dp_peer
> 8. Use ath12k_dp_peer in per packet Tx and Rx path
> ---
> Harsh Kumar Bijlani (8):
>    wifi: ath12k: Move DP related functions from peer.c to dp_peer.c file
>    wifi: ath12k: Rename ath12k_peer to ath12k_dp_link_peer
>    wifi: ath12k: Add hash table for ath12k_link_sta in ath12k_base
>    wifi: ath12k: Move ath12k_dp_link_peer list from ath12k_base to
>      ath12k_dp
>    wifi: ath12k: Add hash table for ath12k_dp_link_peer
>    wifi: ath12k: Define ath12k_dp_peer structure & APIs for create &
>      delete
>    wifi: ath12k: Attach and detach ath12k_dp_link_peer to ath12k_dp_peer
>    wifi: ath12k: Use ath12k_dp_peer in per packet Tx & Rx paths
> 
> Ripan Deuri (1):
>    wifi: ath12k: Add lockdep warn for RCU
> 
>   drivers/net/wireless/ath/ath12k/Makefile      |   1 +
>   drivers/net/wireless/ath/ath12k/core.c        |  12 +-
>   drivers/net/wireless/ath/ath12k/core.h        |  17 +-
>   drivers/net/wireless/ath/ath12k/dp.c          |  48 +-
>   drivers/net/wireless/ath/ath12k/dp.h          |  17 +-
>   drivers/net/wireless/ath/ath12k/dp_cmn.h      |  28 +-
>   drivers/net/wireless/ath/ath12k/dp_htt.c      |  44 +-
>   drivers/net/wireless/ath/ath12k/dp_mon.c      |  30 +-
>   drivers/net/wireless/ath/ath12k/dp_peer.c     | 627 ++++++++++++++++++
>   drivers/net/wireless/ath/ath12k/dp_peer.h     | 125 ++++
>   drivers/net/wireless/ath/ath12k/dp_rx.c       | 151 +++--
>   drivers/net/wireless/ath/ath12k/dp_rx.h       |  19 +-
>   drivers/net/wireless/ath/ath12k/mac.c         | 381 ++++++++---
>   drivers/net/wireless/ath/ath12k/mac.h         |   1 +
>   drivers/net/wireless/ath/ath12k/peer.c        | 439 +++++-------
>   drivers/net/wireless/ath/ath12k/peer.h        | 112 +---
>   drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c |  47 +-
>   drivers/net/wireless/ath/ath12k/wifi7/dp_rx.h |   6 +-
>   drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c |  24 +-
>   .../net/wireless/ath/ath12k/wifi7/hal_rx.c    |   5 +-
>   .../net/wireless/ath/ath12k/wifi7/hal_rx.h    |   1 +
>   drivers/net/wireless/ath/ath12k/wifi7/hw.c    |  19 +-
>   drivers/net/wireless/ath/ath12k/wmi.c         |  14 +-
>   23 files changed, 1504 insertions(+), 664 deletions(-)
>   create mode 100644 drivers/net/wireless/ath/ath12k/dp_peer.c
>   create mode 100644 drivers/net/wireless/ath/ath12k/dp_peer.h
> 

Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan at oss.qualcomm.com>



More information about the ath12k mailing list