فهرست منبع

qcacld-3.0: Configure non aggr TX packet retransmission

Wireless application needs to tune parameters per AC based.
Such as VI/VO queue use the different re-transmission attempts
while other queue keeps the default value. It helps to improve
the video/audio performance in noisy environment. this change
add the ability to config re-transmission attempts of non
aggregation QOS packets.

Change-Id: I95404302463275803e3feff3038f04c900b14705
CRs-Fixed: 2323555
stonez 6 سال پیش
والد
کامیت
0817e39220
3فایلهای تغییر یافته به همراه129 افزوده شده و 5 حذف شده
  1. 8 0
      mlme/core/src/wlan_mlme_main.c
  2. 109 1
      mlme/dispatcher/inc/cfg_qos.h
  3. 12 4
      mlme/dispatcher/inc/wlan_mlme_public_struct.h

+ 8 - 0
mlme/core/src/wlan_mlme_main.c

@@ -479,6 +479,14 @@ static void mlme_init_qos_cfg(struct wlan_objmgr_psoc *psoc,
 				cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VI);
 				cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VI);
 	qos_aggr_params->tx_aggr_sw_retry_threshold_vo =
 	qos_aggr_params->tx_aggr_sw_retry_threshold_vo =
 				cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VO);
 				cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VO);
+	qos_aggr_params->tx_non_aggr_sw_retry_threshold_be =
+				cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_BE);
+	qos_aggr_params->tx_non_aggr_sw_retry_threshold_bk =
+				cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_BK);
+	qos_aggr_params->tx_non_aggr_sw_retry_threshold_vi =
+				cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VI);
+	qos_aggr_params->tx_non_aggr_sw_retry_threshold_vo =
+				cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VO);
 	qos_aggr_params->sap_max_inactivity_override =
 	qos_aggr_params->sap_max_inactivity_override =
 				cfg_get(psoc, CFG_SAP_MAX_INACTIVITY_OVERRIDE);
 				cfg_get(psoc, CFG_SAP_MAX_INACTIVITY_OVERRIDE);
 }
 }

+ 109 - 1
mlme/dispatcher/inc/cfg_qos.h

@@ -294,6 +294,110 @@
 			CFG_VALUE_OR_DEFAULT, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx aggregation retry value for VO")
 			"Tx aggregation retry value for VO")
 
 
+/*
+ * <ini>
+ * gTxNonAggSwRetryBE - Configure Tx non aggregation sw retry for BE
+ * @Min: 0
+ * @Max: 64
+ * @Default: 0
+ *
+ * gTxNonAggSwRetryBE gives an option to configure Tx non aggregation sw
+ * retry for BE. This can be useful in debugging throughput issues.
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#define CFG_TX_NON_AGGR_SW_RETRY_BE CFG_INI_UINT( \
+			"gTxNonAggSwRetryBE", \
+			0, \
+			64, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Tx non aggregation retry value for BE")
+
+/*
+ * <ini>
+ * gTxNonAggSwRetryBK - Configure Tx non aggregation sw retry for BK
+ * @Min: 0
+ * @Max: 64
+ * @Default: 0
+ *
+ * gTxNonAggSwRetryBK gives an option to configure Tx non aggregation sw
+ * retry for BK. This can be useful in debugging throughput issues.
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#define CFG_TX_NON_AGGR_SW_RETRY_BK CFG_INI_UINT( \
+			"gTxNonAggSwRetryBK", \
+			0, \
+			64, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Tx non aggregation retry value for BK")
+
+/*
+ * <ini>
+ * gTxNonAggSwRetryVI - Configure Tx non aggregation sw retry for VI
+ * @Min: 0
+ * @Max: 64
+ * @Default: 0
+ *
+ * gTxNonAggSwRetryVI gives an option to configure Tx non aggregation sw
+ * retry for VI. This can be useful in debugging throughput issues.
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#define CFG_TX_NON_AGGR_SW_RETRY_VI CFG_INI_UINT( \
+			"gTxNonAggSwRetryVI", \
+			0, \
+			64, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Tx non aggregation retry value for VI")
+
+/*
+ * <ini>
+ * gTxNonAggSwRetryVO - Configure Tx non aggregation sw retry for VO
+ * @Min: 0
+ * @Max: 64
+ * @Default: 0
+ *
+ * gTxNonAggSwRetryVO gives an option to configure Tx non aggregation sw
+ * retry for VO. This can be useful in debugging throughput issues.
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#define CFG_TX_NON_AGGR_SW_RETRY_VO CFG_INI_UINT( \
+			"gTxNonAggSwRetryVO", \
+			0, \
+			64, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Tx non aggregation retry value for VO")
+
 /*
 /*
  * <ini>
  * <ini>
  * gSapMaxInactivityOverride - Configure
  * gSapMaxInactivityOverride - Configure
@@ -322,6 +426,7 @@
 			"SAP maximum inactivity override flag")
 			"SAP maximum inactivity override flag")
 
 
 #define CFG_QOS_ALL \
 #define CFG_QOS_ALL \
+	CFG(CFG_SAP_MAX_INACTIVITY_OVERRIDE) \
 	CFG(CFG_TX_AGGREGATION_SIZE) \
 	CFG(CFG_TX_AGGREGATION_SIZE) \
 	CFG(CFG_TX_AGGREGATION_SIZEBE) \
 	CFG(CFG_TX_AGGREGATION_SIZEBE) \
 	CFG(CFG_TX_AGGREGATION_SIZEBK) \
 	CFG(CFG_TX_AGGREGATION_SIZEBK) \
@@ -332,6 +437,9 @@
 	CFG(CFG_TX_AGGR_SW_RETRY_BK) \
 	CFG(CFG_TX_AGGR_SW_RETRY_BK) \
 	CFG(CFG_TX_AGGR_SW_RETRY_VI) \
 	CFG(CFG_TX_AGGR_SW_RETRY_VI) \
 	CFG(CFG_TX_AGGR_SW_RETRY_VO) \
 	CFG(CFG_TX_AGGR_SW_RETRY_VO) \
-	CFG(CFG_SAP_MAX_INACTIVITY_OVERRIDE)
+	CFG(CFG_TX_NON_AGGR_SW_RETRY_BE) \
+	CFG(CFG_TX_NON_AGGR_SW_RETRY_BK) \
+	CFG(CFG_TX_NON_AGGR_SW_RETRY_VI) \
+	CFG(CFG_TX_NON_AGGR_SW_RETRY_VO)
 
 
 #endif /* __CFG_MLME_QOS_H */
 #endif /* __CFG_MLME_QOS_H */

+ 12 - 4
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -486,10 +486,14 @@ struct wlan_mlme_vht_caps {
  * @tx_aggregation_size_vi: No. of MPDUs for VI queue for TX aggr
  * @tx_aggregation_size_vi: No. of MPDUs for VI queue for TX aggr
  * @tx_aggregation_size_vo: No. of MPDUs for VO queue for TX aggr
  * @tx_aggregation_size_vo: No. of MPDUs for VO queue for TX aggr
  * @rx_aggregation_size: No. of MPDUs for RX aggr
  * @rx_aggregation_size: No. of MPDUs for RX aggr
- * @tx_aggr_sw_retry_threshold_be: Tx aggregation sw retry for BE
- * @tx_aggr_sw_retry_threshold_bk: Tx aggregation sw retry for BK
- * @tx_aggr_sw_retry_threshold_vi: Tx aggregation sw retry for VI
- * @tx_aggr_sw_retry_threshold_vo: Tx aggregation sw retry for VO
+ * @tx_aggr_sw_retry_threshold_be: aggr sw retry threshold for BE
+ * @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK
+ * @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI
+ * @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO
+ * @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE
+ * @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK
+ * @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI
+ * @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO
  * @sap_max_inactivity_override: Override updating ap_sta_inactivity from
  * @sap_max_inactivity_override: Override updating ap_sta_inactivity from
  * hostapd.conf
  * hostapd.conf
  */
  */
@@ -504,6 +508,10 @@ struct wlan_mlme_qos {
 	uint32_t tx_aggr_sw_retry_threshold_bk;
 	uint32_t tx_aggr_sw_retry_threshold_bk;
 	uint32_t tx_aggr_sw_retry_threshold_vi;
 	uint32_t tx_aggr_sw_retry_threshold_vi;
 	uint32_t tx_aggr_sw_retry_threshold_vo;
 	uint32_t tx_aggr_sw_retry_threshold_vo;
+	uint32_t tx_non_aggr_sw_retry_threshold_be;
+	uint32_t tx_non_aggr_sw_retry_threshold_bk;
+	uint32_t tx_non_aggr_sw_retry_threshold_vi;
+	uint32_t tx_non_aggr_sw_retry_threshold_vo;
 	bool sap_max_inactivity_override;
 	bool sap_max_inactivity_override;
 };
 };