From fcf4ae51f3cef16d5e55ea80804037daa305eaad Mon Sep 17 00:00:00 2001 From: Amit Mehta Date: Wed, 16 Aug 2023 09:44:30 +0530 Subject: [PATCH] qcacmn: Add changes to update band info in nbuf cb Add changes to update band info into nbuf cb for connectivity logging. Change-Id: Iec5e91fe6b39a9a0f8a7a37d4945914d7a9e748f CRs-Fixed: 3571823 --- dp/wifi3.0/be/dp_be_rx.c | 2 ++ dp/wifi3.0/dp_rx.h | 21 +++++++++++++++++++++ dp/wifi3.0/dp_rx_err.c | 3 +++ dp/wifi3.0/dp_tx.c | 2 ++ dp/wifi3.0/dp_tx.h | 22 ++++++++++++++++++++++ dp/wifi3.0/dp_types.h | 5 +++++ 6 files changed, 55 insertions(+) diff --git a/dp/wifi3.0/be/dp_be_rx.c b/dp/wifi3.0/be/dp_be_rx.c index b67391d80c..18281d4267 100644 --- a/dp/wifi3.0/be/dp_be_rx.c +++ b/dp/wifi3.0/be/dp_be_rx.c @@ -585,6 +585,8 @@ done: link_id = 0; } + dp_rx_set_nbuf_band(nbuf, txrx_peer, link_id); + /* when hlos tid override is enabled, save tid in * skb->priority */ diff --git a/dp/wifi3.0/dp_rx.h b/dp/wifi3.0/dp_rx.h index 33dd30bce4..2672edb38b 100644 --- a/dp/wifi3.0/dp_rx.h +++ b/dp/wifi3.0/dp_rx.h @@ -2438,12 +2438,33 @@ dp_rx_nbuf_set_link_id_from_tlv(struct dp_soc *soc, uint8_t *tlv_hdr, if (soc->arch_ops.dp_rx_peer_set_link_id) soc->arch_ops.dp_rx_peer_set_link_id(nbuf, peer_metadata); } + +/** + * dp_rx_set_nbuf_band() - Set band info in nbuf cb + * @nbuf: nbuf pointer + * @txrx_peer: txrx_peer pointer + * @link_id: Peer Link ID + * + * Returen: None + */ +static inline void +dp_rx_set_nbuf_band(qdf_nbuf_t nbuf, struct dp_txrx_peer *txrx_peer, + uint8_t link_id) +{ + qdf_nbuf_rx_set_band(nbuf, txrx_peer->band[link_id]); +} #else static inline void dp_rx_nbuf_set_link_id_from_tlv(struct dp_soc *soc, uint8_t *tlv_hdr, qdf_nbuf_t nbuf) { } + +static inline void +dp_rx_set_nbuf_band(qdf_nbuf_t nbuf, struct dp_txrx_peer *txrx_peer, + uint8_t link_id) +{ +} #endif /** diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 4d88a06168..7e8d99d824 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -1217,6 +1217,9 @@ more_msdu_link_desc: txrx_peer); } + if (txrx_peer) + dp_rx_set_nbuf_band(nbuf, txrx_peer, link_id); + switch (err_code) { case HAL_REO_ERR_REGULAR_FRAME_2K_JUMP: case HAL_REO_ERR_2K_ERROR_HANDLING_FLAG_SET: diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 26690eff1e..ef973e0d06 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -5357,6 +5357,8 @@ void dp_tx_comp_process_tx_status(struct dp_soc *soc, link_id = dp_tx_get_link_id_from_ppdu_id(soc, ts, txrx_peer, vdev); + dp_tx_set_nbuf_band(nbuf, txrx_peer, link_id); + op_mode = vdev->qdf_opmode; dp_tx_update_connectivity_stats(soc, vdev, tx_desc, ts->status); dp_tx_update_uplink_delay(soc, vdev, ts); diff --git a/dp/wifi3.0/dp_tx.h b/dp/wifi3.0/dp_tx.h index bf806922ba..b08c90496e 100644 --- a/dp/wifi3.0/dp_tx.h +++ b/dp/wifi3.0/dp_tx.h @@ -2203,4 +2203,26 @@ static inline int dp_get_rtpm_tput_policy_requirement(struct dp_soc *soc) return 0; } #endif +#if defined WLAN_FEATURE_11BE_MLO && defined DP_MLO_LINK_STATS_SUPPORT +/** + * dp_tx_set_nbuf_band() - Set band info in nbuf cb + * @nbuf: nbuf pointer + * @txrx_peer: txrx_peer pointer + * @link_id: Peer Link ID + * + * Returen: None + */ +static inline void +dp_tx_set_nbuf_band(qdf_nbuf_t nbuf, struct dp_txrx_peer *txrx_peer, + uint8_t link_id) +{ + qdf_nbuf_tx_set_band(nbuf, txrx_peer->band[link_id]); +} +#else +static inline void +dp_tx_set_nbuf_band(qdf_nbuf_t nbuf, struct dp_txrx_peer *txrx_peer, + uint8_t link_id) +{ +} +#endif #endif diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 96873506b0..456e929d7f 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -4799,6 +4799,7 @@ struct dp_peer_stats { * @sawf_stats: * @bw: bandwidth of peer connection * @mpdu_retry_threshold: MPDU retry threshold to increment tx bad count + * @band: Link ID to band mapping * @stats_arr_size: peer stats array size * @stats: Peer link and mld statistics */ @@ -4848,6 +4849,10 @@ struct dp_txrx_peer { #ifdef DP_PEER_EXTENDED_API enum cdp_peer_bw bw; uint8_t mpdu_retry_threshold; +#endif +#if defined WLAN_FEATURE_11BE_MLO && defined DP_MLO_LINK_STATS_SUPPORT + /* Link ID to band mapping, (1 MLD + DP_MAX_MLO_LINKS) */ + uint8_t band[DP_MAX_MLO_LINKS + 1]; #endif uint8_t stats_arr_size;