Browse Source

qcacmn: Avoid updating tid for non-mscs station

Check of Invalid QOS tag which can be set for non-mscs clients
connected on same VAP as MSCS clients. TID override needs to be
avoided for those clients

Change-Id: I651a354e740fe6aee74f94b59ac2e6f154a80c6d
Shikha Bakshi 3 năm trước cách đây
mục cha
commit
eaf287ec84
2 tập tin đã thay đổi với 8 bổ sung2 xóa
  1. 7 2
      dp/wifi3.0/dp_tx.c
  2. 1 0
      dp/wifi3.0/dp_types.h

+ 7 - 2
dp/wifi3.0/dp_tx.c

@@ -1780,8 +1780,13 @@ static inline void dp_tx_classify_tid(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
 	if (qdf_likely(vdev->skip_sw_tid_classification)) {
 		/* Update tid in msdu_info from skb priority */
 		if (qdf_unlikely(vdev->skip_sw_tid_classification
-			    & DP_TXRX_HLOS_TID_OVERRIDE_ENABLED)) {
-			msdu_info->tid = qdf_nbuf_get_priority(nbuf);
+			& DP_TXRX_HLOS_TID_OVERRIDE_ENABLED)) {
+			uint32_t tid = qdf_nbuf_get_priority(nbuf);
+
+			if (tid == DP_TX_INVALID_QOS_TAG)
+				return;
+
+			msdu_info->tid = tid;
 			return;
 		}
 		return;

+ 1 - 0
dp/wifi3.0/dp_types.h

@@ -148,6 +148,7 @@
 #define DP_TX_HW_DSCP_TID_MAP_VALID 0x1
 #define DP_TXRX_HLOS_TID_OVERRIDE_ENABLED 0x2
 #define DP_TX_MESH_ENABLED 0x4
+#define DP_TX_INVALID_QOS_TAG 0xf
 
 #ifdef WLAN_SUPPORT_RX_FISA
 #define FISA_FLOW_MAX_AGGR_COUNT        16 /* max flow aggregate count */