freebsd-dev/sys/net80211
Adrian Chadd fdbc9e6e82 [net80211] start laying down the foundation for 11ac support.
This is a work in progress and some of this stuff may change;
but hopefully I'm laying down enough stuff and space in fields
to allow it to grow without another major recompile.

We'll see!

* Add a net80211 PHY type for VHT 2G and VHT 5G.

  Note - yes, VHT is supposed to be for 5GHZ, however some vendors
  (*cough* most of them) support some subset of VHT rate support
  in 2GHz.  No - not 80MHz wide channels, but at least some MCS8-9
  support, maybe some beamforming, and maybe some longer A-MPDU
  aggregates.  I don't want to even think about MU-MIMO on 2GHz.

* Add an ifmedia placeholder type for VHT rates.

* Add channel flags for VHT, VHT20/40U/40D/80/80+80/160
* Add channel macros for the above
* Add ieee80211_channel fields for the VHT information and flags,
  along with some padding (so this struct definitely grows.)
* Add a phy type flag for VHT - 'v'

* Bump the number of channels to a much higher amount - until we get
  something like the linux mac80211 chanctx abstraction (where the
  stack provides a current channel configuration via callbacks,
  versus the driver ever checking ic->ic_curchan or similar) we'll
  have to populate VHT+HT combinations.

Eg, there'll likely be a full set of duplicate VHT20/40 channels to match
HT channels.  There will also be a full set of duplicate VHT80 channels -
note that for VHT80, its assumed you're doing VHT40 as a base, so we
don't need a duplicate of VHT80 + 20MHz only primary channels, only
a duplicate of all the VHT40 combinations.

I don't want to think about VHT80+80 or VHT160 for now - and I won't,
as the current device I'm doing 11ac bringup on (QCA9880) only does
VHT80.

I'll likely revisit the channel configuration and scanning related
stuff after I get VHT20/40 up.

* Add vht flags and the basic MCS rate setup to ieee80211com, ieee80211vap
  and ieee80211_node in preparation for 11ac configuration.
  There is zero code that uses this right now.
* Whilst here, add some more placeholders in case I need to extend
  out things by some uint32_t flag sized fields.  Hopefully I won't!

What I haven't yet done:

* any of the code that uses this
* any of the beamforming related fields
* any of the MU-MIMO fields required for STA/AP operation
* any of the IE fields in beacon frame / probe request/response handling
  and the calculations required for shifting beacon contents around
  when the TIM grows/shrinks

This will require a full rebuild of net80211 related programs -
ifconfig, hostapd, wpa_supplicant.
2016-12-16 04:43:31 +00:00
..
_ieee80211.h [net80211] start laying down the foundation for 11ac support. 2016-12-16 04:43:31 +00:00
ieee80211_acl.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211_action.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_action.h
ieee80211_adhoc.c [net80211] Only send out a probe request if we see an unknown IBSS node that matches our SSID. 2016-11-22 06:53:52 +00:00
ieee80211_adhoc.h
ieee80211_ageq.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211_ageq.h
ieee80211_alq.c [net80211] extend the net80211 ALQ code to support variable payloads. 2016-11-06 19:18:25 +00:00
ieee80211_alq.h [net80211] extend the net80211 ALQ code to support variable payloads. 2016-11-06 19:18:25 +00:00
ieee80211_amrr.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_amrr.h
ieee80211_crypto_ccmp.c [net80211] high oops on the high seas, or "god damnit compilers, it's 2016 and you're supposed to save me from this." 2016-11-22 17:36:16 +00:00
ieee80211_crypto_none.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_crypto_tkip.c [net80211] handle hardware encryption offload in the receive path 2016-11-19 02:00:24 +00:00
ieee80211_crypto_wep.c sys: replace comma with semicolon when pertinent. 2016-08-09 19:42:20 +00:00
ieee80211_crypto.c net80211 + drivers: convert to ieee80211_crypto_get_key_wepidx(). 2016-12-07 22:16:07 +00:00
ieee80211_crypto.h [net80211] start refactoring out the "am I a wep / group key!" code. 2016-12-07 04:02:41 +00:00
ieee80211_ddb.c net80211: fix LOR/deadlock in ieee80211_ff_node_cleanup(). 2016-06-29 17:25:46 +00:00
ieee80211_dfs.c [net80211] migrate the time_* macros to ieee80211_* namespace. 2016-03-30 00:44:10 +00:00
ieee80211_dfs.h
ieee80211_freebsd.c [net80211] Add a variant on ieee80211_get_rx_params() that returns a pointer. 2016-10-23 08:21:35 +00:00
ieee80211_freebsd.h [net80211] add a field for storing a 64 bit TSC. 2016-12-08 07:57:16 +00:00
ieee80211_hostap.c [net80211] handle hardware encryption offload in the receive path 2016-11-19 02:00:24 +00:00
ieee80211_hostap.h
ieee80211_ht.c [net80211] Remove extra \n. 2016-11-22 02:02:13 +00:00
ieee80211_ht.h [net80211] implement "first RX defines the BAW" hack. 2016-11-10 18:36:40 +00:00
ieee80211_hwmp.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_input.c net80211: convert all ieee80211_input_mimo*() consumers 2016-10-12 20:50:13 +00:00
ieee80211_input.h net80211: hide subtype mask & shift in function call. 2016-04-20 21:15:55 +00:00
ieee80211_ioctl.c net80211: switch from ieee80211_iterate_nodes() to 2016-11-14 23:51:28 +00:00
ieee80211_ioctl.h [net80211] add an ioctl for LDPC configuration. 2016-04-26 01:26:11 +00:00
ieee80211_mesh.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_mesh.h Migrate the 802.11s locks out into ieee80211_freebsd.h, so they can be 2015-05-26 04:25:11 +00:00
ieee80211_monitor.c Begin plumbing ieee80211_rx_stats through the receive path. 2015-05-25 16:37:41 +00:00
ieee80211_monitor.h
ieee80211_node.c [net80211] store references to VHT and related IEs. 2016-11-22 02:51:06 +00:00
ieee80211_node.h [net80211] start laying down the foundation for 11ac support. 2016-12-16 04:43:31 +00:00
ieee80211_output.c [net80211] announce 11n capabilities in probe requests in IBSS mode. 2016-11-15 01:47:37 +00:00
ieee80211_phy.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_phy.h [net80211] rename 11n rate macros into a useful spot 2016-04-05 22:01:56 +00:00
ieee80211_power.c [net80211] migrate the time_* macros to ieee80211_* namespace. 2016-03-30 00:44:10 +00:00
ieee80211_power.h
ieee80211_proto.c sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
ieee80211_proto.h net80211: convert all ieee80211_input_mimo*() consumers 2016-10-12 20:50:13 +00:00
ieee80211_radiotap.c Remove unused include. 2015-05-25 14:54:10 +00:00
ieee80211_radiotap.h
ieee80211_ratectl_none.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_ratectl.c [net80211] Begin implementing rate control module stats. 2016-03-16 02:07:04 +00:00
ieee80211_ratectl.h net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_regdomain.c ifconfig: set by default FCC regulatory domain for wireless interfaces. 2016-05-26 13:14:08 +00:00
ieee80211_regdomain.h
ieee80211_rssadapt.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_rssadapt.h
ieee80211_scan_sta.c [net80211] Don't check bgscanidle setting in net80211 for full-offload scan. 2016-11-17 21:52:00 +00:00
ieee80211_scan_sw.c [net80211] don't abort a background scan upon reception of a single packet. 2016-10-28 02:09:45 +00:00
ieee80211_scan_sw.h Break out the current 802.11 software scan methods into an indirect table. 2015-06-08 02:35:43 +00:00
ieee80211_scan.c [net80211] add comments! 2016-10-28 02:10:07 +00:00
ieee80211_scan.h Break out the current 802.11 software scan methods into an indirect table. 2015-06-08 02:35:43 +00:00
ieee80211_sta.c [net80211] handle hardware encryption offload in the receive path 2016-11-19 02:00:24 +00:00
ieee80211_sta.h
ieee80211_superg.c net80211: remove obsolete comment. 2016-12-07 23:33:59 +00:00
ieee80211_superg.h net80211: fix LOR/deadlock in ieee80211_ff_node_cleanup(). 2016-06-29 17:25:46 +00:00
ieee80211_tdma.c net80211: switch from ieee80211_iterate_nodes() to 2016-11-14 23:51:28 +00:00
ieee80211_tdma.h Begin plumbing ieee80211_rx_stats through the receive path. 2015-05-25 16:37:41 +00:00
ieee80211_var.h [net80211] start laying down the foundation for 11ac support. 2016-12-16 04:43:31 +00:00
ieee80211_wds.c [net80211] handle hardware encryption offload in the receive path 2016-11-19 02:00:24 +00:00
ieee80211_wds.h
ieee80211_xauth.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211.c [net80211] prepare for 11ac aware NICs that want to know per-vdev channel and centre frequencies. 2016-12-03 02:45:18 +00:00
ieee80211.h [net80211] Add a macro to see if a frame is a management frame or not. 2016-10-23 08:19:43 +00:00