summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_ht.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-09-21 22:22:28 +0000
committersam <sam@FreeBSD.org>2008-09-21 22:22:28 +0000
commit662f17f3f0a1ea7ea40718490d29cfb3b812af14 (patch)
tree89f86a5736c6626913aa13c49cc21830e10db021 /sys/net80211/ieee80211_ht.c
parent4e877e214a5e6ea35103e21b9e82ccd1a3cafb35 (diff)
downloadFreeBSD-src-662f17f3f0a1ea7ea40718490d29cfb3b812af14.zip
FreeBSD-src-662f17f3f0a1ea7ea40718490d29cfb3b812af14.tar.gz
Cleanup starting seq# for tx ampdu:
o use txa_start to form the addba request and purge txa_seqstart o fill txa_start before calling ic_addba_request to permit drivers to override when they handle seq# generation (e.g. mwl)
Diffstat (limited to 'sys/net80211/ieee80211_ht.c')
-rw-r--r--sys/net80211/ieee80211_ht.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c
index ad64de3..2304bc4 100644
--- a/sys/net80211/ieee80211_ht.c
+++ b/sys/net80211/ieee80211_ht.c
@@ -1337,7 +1337,7 @@ ieee80211_addba_request(struct ieee80211_node *ni,
/* XXX locking */
tap->txa_token = dialogtoken;
tap->txa_flags |= IEEE80211_AGGR_IMMEDIATE;
- tap->txa_start = tap->txa_seqstart = 0;
+ tap->txa_start = 0;
bufsiz = MS(baparamset, IEEE80211_BAPS_BUFSIZ);
tap->txa_wnd = (bufsiz == 0) ?
IEEE80211_AGGR_BAWMAX : min(bufsiz, IEEE80211_AGGR_BAWMAX);
@@ -1679,6 +1679,8 @@ ieee80211_ampdu_request(struct ieee80211_node *ni,
tap->txa_flags &= ~IEEE80211_AGGR_NAK;
dialogtoken = (tokens+1) % 63; /* XXX */
+ tid = WME_AC_TO_TID(tap->txa_ac);
+ tap->txa_start = ni->ni_txseqs[tid];
tid = WME_AC_TO_TID(tap->txa_ac);
args[0] = dialogtoken;
@@ -1701,8 +1703,8 @@ 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)
+ /* NB: after calling ic_addba_request so driver can set txa_start */
+ args[3] = SM(tap->txa_start, IEEE80211_BASEQ_START)
| SM(0, IEEE80211_BASEQ_FRAG)
;
return ic->ic_send_action(ni, IEEE80211_ACTION_CAT_BA,
OpenPOWER on IntegriCloud