linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* help understanding HT capabilities bits
@ 2018-07-26 23:43 Danek Duvall
  2018-08-13 10:25 ` Johannes Berg
  0 siblings, 1 reply; 5+ messages in thread
From: Danek Duvall @ 2018-07-26 23:43 UTC (permalink / raw)
  To: linux-wireless

I'm writing a library using the nl80211 family to, well, do basically what
iw does (I want a reusable Golang-native implementation, which saves me
from parsing iw's output).  I have most of the bits that I need, but I'd
like to fill out more of the library and make it useful to others.

I'm a bit stuck on properly naming and describing the pieces of the HT
capabilities represented by NL80211_BAND_ATTR_HT_CAPA.  While being
generally impressed with the amount of documentation in nl80211.h and other
places, I've been unable to find any documentation on this particular
field, other than what iw prints for each bit or bit combination.

My first thought was that it was the set of per-band capabilities for the
device (as defined by either the hardware or the driver, but either way
below me enough that I don't think I care), and for the most part I still
think that's right.  But when it came to trying to represent the SMPS bits,
it occurred to me that perhaps that wasn't right, since one of the
supported values gets printed as "disabled", which seems more like a state
than a capability.  Also, "static" and "dynamic" are not representable
separately, and set together, you get "disabled".  But perhaps "disabled"
is really "unsupported", and "static" and "dynamic" can't both be supported
on the same band?

Otherwise, how should I interpret this?  I could simply leave it as a 0-3
value and let consumers handle the interpretation, but I'd like to be a bit
friendlier than that, if I can.

I've tried navigating the code from iw into nl80211.c, the mac80211 driver,
and the various 802.11 headers, but between the transitions from one layer
to the next and the distinctions between things named rdev and wiphy and
sta, I'm a bit lost trying to determine what represents an underlying
capability and what represents some sort of current state.  I'm a complete
newbie to this, both in code and concepts, but I hope I'm not so far in
over my head that a little help won't be very useful.

Thanks,
Danek

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-08-17 22:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-26 23:43 help understanding HT capabilities bits Danek Duvall
2018-08-13 10:25 ` Johannes Berg
2018-08-13 20:41   ` Danek Duvall
2018-08-14  7:48     ` Johannes Berg
2018-08-17 19:22       ` Danek Duvall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).