svn commit: r361821 - head/sys/net80211
Adrian Chadd
adrian at FreeBSD.org
Fri Jun 5 06:07:24 UTC 2020
Author: adrian
Date: Fri Jun 5 06:07:23 2020
New Revision: 361821
URL: https://svnweb.freebsd.org/changeset/base/361821
Log:
[net80211] Add some TODOs around A-MSDU in A-MPDU negotiation.
net80211 currently doesn't negotiate A-MSDU in A-MPDU during ADDBA.
I've added the field in net80211 and this commit:
* Prints out the ADDBA field value during ADDBA;
* Adds some comments around where I need to follow up with some
negotiation logic.
Right now we don't have a driver flag anywhere which controls
whether A-MSDU in A-MPDU is allowed. I know it works (I have it
manually turned on at home on a couple test APs, heh!) but
I can't flip it on until we can negotiate it.
Tested:
* AR9380, STA/AP mode, printing out ADDBA requests
Modified:
head/sys/net80211/ieee80211_ht.c
Modified: head/sys/net80211/ieee80211_ht.c
==============================================================================
--- head/sys/net80211/ieee80211_ht.c Fri Jun 5 04:24:34 2020 (r361820)
+++ head/sys/net80211/ieee80211_ht.c Fri Jun 5 06:07:23 2020 (r361821)
@@ -2237,12 +2237,13 @@ ht_recv_action_ba_addba_request(struct ieee80211_node
IEEE80211_NOTE(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_11N, ni,
"recv ADDBA request: dialogtoken %u baparamset 0x%x "
- "(tid %d bufsiz %d) batimeout %d baseqctl %d:%d",
+ "(tid %d bufsiz %d) batimeout %d baseqctl %d:%d amsdu %d",
dialogtoken, baparamset,
tid, MS(baparamset, IEEE80211_BAPS_BUFSIZ),
batimeout,
MS(baseqctl, IEEE80211_BASEQ_START),
- MS(baseqctl, IEEE80211_BASEQ_FRAG));
+ MS(baseqctl, IEEE80211_BASEQ_FRAG),
+ MS(baparamset, IEEE80211_BAPS_AMSDU));
rap = &ni->ni_rx_ampdu[tid];
@@ -2274,6 +2275,7 @@ ht_recv_action_ba_addba_request(struct ieee80211_node
| SM(tid, IEEE80211_BAPS_TID)
| SM(rap->rxa_wnd, IEEE80211_BAPS_BUFSIZ)
;
+ /* XXX AMSDU in AMPDU? */
args[3] = 0;
args[4] = 0;
ic->ic_send_action(ni, IEEE80211_ACTION_CAT_BA,
@@ -2346,6 +2348,8 @@ ht_recv_action_ba_addba_response(struct ieee80211_node
return 0;
}
#endif
+
+ /* XXX TODO: check AMSDU in AMPDU configuration */
IEEE80211_NOTE(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_11N, ni,
"recv ADDBA response: dialogtoken %u code %d "
"baparamset 0x%x (tid %d bufsiz %d) batimeout %d",
@@ -2506,6 +2510,8 @@ ieee80211_ampdu_request(struct ieee80211_node *ni,
| SM(tid, IEEE80211_BAPS_TID)
| SM(IEEE80211_AGGR_BAWMAX, IEEE80211_BAPS_BUFSIZ)
;
+ /* XXX TODO: check AMSDU in AMPDU configuration */
+
args[3] = 0; /* batimeout */
/* NB: do first so there's no race against reply */
if (!ic->ic_addba_request(ni, tap, dialogtoken, args[2], args[3])) {
More information about the svn-src-head
mailing list