summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorstsp <stsp@openbsd.org>2020-03-05 10:13:12 +0000
committerstsp <stsp@openbsd.org>2020-03-05 10:13:12 +0000
commitc7c306736a8748c0f15a7aa862c220bc0f975a09 (patch)
tree9ea65f10d358c92c9ab9e841c45ed847c91e3845 /sys
parentThe 'lock spun out' db_printf needs a newline. All other MP_LOCKDEBUG (diff)
downloadwireguard-openbsd-c7c306736a8748c0f15a7aa862c220bc0f975a09.tar.xz
wireguard-openbsd-c7c306736a8748c0f15a7aa862c220bc0f975a09.zip
MiRA needs to add tx time overhead for ACK only for single-frame transmissions.
Resolves XXX comments regarding block-ack support. with simplification tweak from + ok tb@
Diffstat (limited to 'sys')
-rw-r--r--sys/net80211/ieee80211_mira.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/net80211/ieee80211_mira.c b/sys/net80211/ieee80211_mira.c
index d65e643ef0c..2d5ecb65b26 100644
--- a/sys/net80211/ieee80211_mira.c
+++ b/sys/net80211/ieee80211_mira.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_mira.c,v 1.18 2020/03/03 21:00:11 stsp Exp $ */
+/* $OpenBSD: ieee80211_mira.c,v 1.19 2020/03/05 10:13:12 stsp Exp $ */
/*
* Copyright (c) 2016 Stefan Sperling <stsp@openbsd.org>
@@ -305,7 +305,6 @@ ieee80211_mira_best_basic_rate(struct ieee80211_node *ni)
/*
* See 802.11-2012, 9.7.6.5 "Rate selection for control response frames".
- * XXX Does not support BlockAck.
*/
int
ieee80211_mira_ack_rate(struct ieee80211_node *ni)
@@ -360,9 +359,12 @@ ieee80211_mira_toverhead(struct ieee80211_mira_node *mn,
overhead += ieee80211_mira_legacy_txtime(MIRA_CTSLEN, rate, ic);
}
- /* XXX This does not yet support BlockAck. */
- rate = ieee80211_mira_ack_rate(ni);
- overhead += ieee80211_mira_legacy_txtime(IEEE80211_ACK_LEN, rate, ic);
+ if (mn->agglen == 1) {
+ /* Single-frame transmissions must wait for an ACK frame. */
+ rate = ieee80211_mira_ack_rate(ni);
+ overhead += ieee80211_mira_legacy_txtime(IEEE80211_ACK_LEN,
+ rate, ic);
+ }
toverhead = overhead;
toverhead <<= MIRA_FP_SHIFT; /* convert to fixed-point */