diff options
author | sam <sam@FreeBSD.org> | 2008-09-21 22:22:28 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2008-09-21 22:22:28 +0000 |
commit | 662f17f3f0a1ea7ea40718490d29cfb3b812af14 (patch) | |
tree | 89f86a5736c6626913aa13c49cc21830e10db021 /sys/net80211/ieee80211_ht.c | |
parent | 4e877e214a5e6ea35103e21b9e82ccd1a3cafb35 (diff) | |
download | FreeBSD-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.c | 8 |
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, |