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-all mailing list