Sfoglia il codice sorgente

qca-wifi: set frame control for BRP frame

For BRP frame ppdu, frame control is not valid in all user
completion tlv, which is causing to drop ppdu as wrong ctrl mgmt
queue checked for payload.

To fix this, updated frame control based on ppdu frame type

Change-Id: Ia5eb67da14647cccfe2ade7c0626a97171454446
CRs-Fixed: 2677252
Srinivas Pitla 5 anni fa
parent
commit
501f31af2d
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  1. 3 2
      dp/wifi3.0/dp_tx_capture.c

+ 3 - 2
dp/wifi3.0/dp_tx_capture.c

@@ -2368,7 +2368,6 @@ void dp_update_frame_ctrl_from_frame_type(void *desc)
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
 	case HTT_STATS_FTYPE_SGEN_BRP:
-	case HTT_STATS_FTYPE_SGEN_MU_BRP:
 		ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_BRPOLL |
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
@@ -2387,6 +2386,7 @@ void dp_update_frame_ctrl_from_frame_type(void *desc)
 	break;
 	case HTT_STATS_FTYPE_SGEN_MU_TRIG:
 	case HTT_STATS_FTYPE_SGEN_MU_BAR:
+	case HTT_STATS_FTYPE_SGEN_MU_BRP:
 		ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_TRIGGER |
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
@@ -3533,7 +3533,8 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
 	user = &ppdu_desc->user[0];
 
 	ppdu_desc_frame_ctrl = ppdu_desc->frame_ctrl;
-	if (ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BAR)
+	if ((ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BAR) ||
+	    (ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BRP))
 		ppdu_desc_frame_ctrl = (IEEE80211_FC0_SUBTYPE_TRIGGER |
 					IEEE80211_FC0_TYPE_CTL);