Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Apr 2016 00:26:11 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r298174 - head/sys/net80211
Message-ID:  <201604180026.u3I0QB6f030823@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Mon Apr 18 00:26:11 2016
New Revision: 298174
URL: https://svnweb.freebsd.org/changeset/base/298174

Log:
  [net80211] put in a comment about the not-quite-correctness of A-MPDU parameters.
  
  Although we correctly (now!) calculate the right A-MPDU parameters, the
  ioctl() has some faulty logic for choosing which to display.  The BSS
  params are what were advertised to us, and we would have chosen the
  lower of theirs/ours when advertising the HT bits back at them.
  
  So, we /should/ track and fix that so we display the correct A-MPDU
  density and size.
  
  However, since I'm a forgetful type, and I don't want to have to re-learn
  that this is wrong, drop in a comment so I or someone else fixes it.
  Or, when I discover this again in 4 years, I don't have to go digging
  too much to remember.

Modified:
  head/sys/net80211/ieee80211_ioctl.c

Modified: head/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- head/sys/net80211/ieee80211_ioctl.c	Sun Apr 17 23:22:32 2016	(r298173)
+++ head/sys/net80211/ieee80211_ioctl.c	Mon Apr 18 00:26:11 2016	(r298174)
@@ -1020,6 +1020,10 @@ ieee80211_ioctl_get80211(struct ieee8021
 		if (vap->iv_opmode == IEEE80211_M_HOSTAP)
 			ireq->i_val = vap->iv_ampdu_rxmax;
 		else if (vap->iv_state == IEEE80211_S_RUN || vap->iv_state == IEEE80211_S_SLEEP)
+			/*
+			 * XXX TODO: this isn't completely correct, as we've
+			 * negotiated the higher of the two.
+			 */
 			ireq->i_val = MS(vap->iv_bss->ni_htparam,
 			    IEEE80211_HTCAP_MAXRXAMPDU);
 		else
@@ -1028,6 +1032,10 @@ ieee80211_ioctl_get80211(struct ieee8021
 	case IEEE80211_IOC_AMPDU_DENSITY:
 		if (vap->iv_opmode == IEEE80211_M_STA &&
 		    (vap->iv_state == IEEE80211_S_RUN || vap->iv_state == IEEE80211_S_SLEEP))
+			/*
+			 * XXX TODO: this isn't completely correct, as we've
+			 * negotiated the higher of the two.
+			 */
 			ireq->i_val = MS(vap->iv_bss->ni_htparam,
 			    IEEE80211_HTCAP_MPDUDENSITY);
 		else



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604180026.u3I0QB6f030823>