Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6bda667 authored by Eyal Shapira's avatar Eyal Shapira Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: rs: consider a missing BA as a single tx failure



The fw now indicates missing BA with ampdu_ack_len=0.

This will make the whole aggregation being marked
as failed, although it's most likely not the case (and
only the BA itself was failed).

Consider this case as a single tx failure.

Signed-off-by: default avatarEyal Shapira <eyalx.shapira@intel.com>
Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 123f5156
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -1204,6 +1204,13 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
	 * first index into rate scale table.
	 * first index into rate scale table.
	 */
	 */
	if (info->flags & IEEE80211_TX_STAT_AMPDU) {
	if (info->flags & IEEE80211_TX_STAT_AMPDU) {
		/* ampdu_ack_len = 0 marks no BA was received. In this case
		 * treat it as a single frame loss as we don't want the success
		 * ratio to dip too quickly because a BA wasn't received
		 */
		if (info->status.ampdu_ack_len == 0)
			info->status.ampdu_len = 1;

		ucode_rate = le32_to_cpu(table->rs_table[0]);
		ucode_rate = le32_to_cpu(table->rs_table[0]);
		rs_rate_from_ucode_rate(ucode_rate, info->band, &rate);
		rs_rate_from_ucode_rate(ucode_rate, info->band, &rate);
		rs_collect_tx_data(lq_sta, curr_tbl, rate.index,
		rs_collect_tx_data(lq_sta, curr_tbl, rate.index,