Subject: 802.11 headers

From: Johannes Berg <[email-masked]>
Date: Thu, 17 Aug 2006 09:48:19 +0200

The d80211 headers are messy. Before merging, we definitely need to
clean them up and split them between userland-visible and kernel-only
headers, or else ... ;)

My current thoughts:
 - net/d80211_common.h can die sometime soon due to being replaced with
   linux/nl80211.h (to be published today).
 - net/d80211_mgmt.h needs cleaning up (I know Michael has been doing
   some of that), and then should probably be renamed to
   linux/ieee80211.h and be userland-visible, and contain a bunch of
   other frame definitions as well. A bit like net/ieee80211.h now,
   though more protocol-centric.
 - net/ieee80211_radiotap.h should be userland-visible, and hence
   linux/radiotap.h or such.
 - net/d80211_shared.h probably has the same fate as
   net/d80211_common.h, except for the _RATE_* thingies, but I'm not
   sure why they should be userland-visible.
 - net/d80211.h can stay there as-is, it's in-kernel only API.
 
Or put another way, my suggestions:
 - put all in-kernel API (for drivers) into net/d80211.h
 - put stuff defined in the IEEE 802.11 specification series into
   linux/ieee80211.h, make user-visible (headers-y in Kbuild!). This
   serves just as a reference. It's not really necessary that the kernel
   ships this, but we need it in the kernel and probably won't be
   pulling it from some other source. Besides, I wouldn't know where
   else to maintain it.
 - radiotap simply moves to linux/ and gets to be userland-visible. Of
   course, d80211 should actually start using it too ;)
 - all the other userland stuff seems to be configuration related and
   hence moves over to linux/nl80211.h

Comments?

johannes