diff options
author | 2020-03-05 10:13:12 +0000 | |
---|---|---|
committer | 2020-03-05 10:13:12 +0000 | |
commit | c7c306736a8748c0f15a7aa862c220bc0f975a09 (patch) | |
tree | 9ea65f10d358c92c9ab9e841c45ed847c91e3845 /sys | |
parent | The 'lock spun out' db_printf needs a newline. All other MP_LOCKDEBUG (diff) | |
download | wireguard-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.c | 12 |
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 */ |