summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-05-11 23:27:57 +0000
committersam <sam@FreeBSD.org>2008-05-11 23:27:57 +0000
commitd58b2a7dc0f8fe495c18a72cfceee93ea9f1ce93 (patch)
tree804220085da1228b0e44e0f87901340b2a96e0dd /sys/net80211
parente78391fb48f61170e4d02b738a5ec7ee367caa6e (diff)
downloadFreeBSD-src-d58b2a7dc0f8fe495c18a72cfceee93ea9f1ce93.zip
FreeBSD-src-d58b2a7dc0f8fe495c18a72cfceee93ea9f1ce93.tar.gz
use the current left edge of the BA window when forming ADDBA request
so an existing session is re-established with the correct seq#
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_ht.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c
index d8b2d3d..a370100 100644
--- a/sys/net80211/ieee80211_ht.c
+++ b/sys/net80211/ieee80211_ht.c
@@ -1651,9 +1651,6 @@ ieee80211_ampdu_request(struct ieee80211_node *ni,
| SM(IEEE80211_AGGR_BAWMAX, IEEE80211_BAPS_BUFSIZ)
;
args[2] = 0; /* batimeout */
- args[3] = SM(0, IEEE80211_BASEQ_START)
- | SM(0, IEEE80211_BASEQ_FRAG)
- ;
/* NB: do first so there's no race against reply */
if (!ic->ic_addba_request(ni, tap, dialogtoken, args[1], args[2])) {
/* unable to setup state, don't make request */
@@ -1668,6 +1665,10 @@ ieee80211_ampdu_request(struct ieee80211_node *ni,
return 0;
}
tokens = dialogtoken; /* allocate token */
+ /* NB: after calling ic_addba_request so driver can set seqstart */
+ args[3] = SM(tap->txa_seqstart, IEEE80211_BASEQ_START)
+ | SM(0, IEEE80211_BASEQ_FRAG)
+ ;
return ic->ic_send_action(ni, IEEE80211_ACTION_CAT_BA,
IEEE80211_ACTION_BA_ADDBA_REQUEST, args);
}
OpenPOWER on IntegriCloud