Jelajahi Sumber

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
Amit Mehta 1 tahun lalu
induk
melakukan
fcf4ae51f3
6 mengubah file dengan 55 tambahan dan 0 penghapusan
  1. 2 0
      dp/wifi3.0/be/dp_be_rx.c
  2. 21 0
      dp/wifi3.0/dp_rx.h
  3. 3 0
      dp/wifi3.0/dp_rx_err.c
  4. 2 0
      dp/wifi3.0/dp_tx.c
  5. 22 0
      dp/wifi3.0/dp_tx.h
  6. 5 0
      dp/wifi3.0/dp_types.h

+ 2 - 0
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
 		 */

+ 21 - 0
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
 
 /**

+ 3 - 0
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:

+ 2 - 0
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);

+ 22 - 0
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

+ 5 - 0
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;