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])) {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to