802.11ac (Wi-Fi 5) todo
This is a placeholder page to plan out what's required for 11ac support.
- (done) Channel representation - right now we have an array of all valid channel combinations (11b, 11g, 11a, 11n/ht20, 11n/ht40) that have pointers thrown around. For 802.11ac there's 20, 40, 80, 80+80 and 160MHz wide channels - this is a lot of combinations to represent in the current schema.
- (done) VHT IE parsing.
- (done) Figure out channel upgrade.
- Figure out a structured rate representation - right now it's uint8_t which has some clashes between pre-11n and 11n rates. For 11ac there's only 9 MCS rates but then it's multiplied by the number of streams, and some devices have very complicated combinations of rate information. We should likely create a rate_t struct type and start using it in places.
- (done) Parse VHT IEs in 'ifconfig -v list scan'
- (done) Add VHTINFO as a flag in 'ifconfig list scan' (like HTINFO) - this is a scan capability flag ('CAPS') and list.
- Figure out what else is missing for basic 11ac negotiation and support.
- Figure out the differences in the 802.11ac QoS field (2 bytes); it looks slightly different to 802.11 / 802.11n.
- Add VHT basic rate population, parsing and checks for assocation
- Add opmode handling
- MU-MIMO / group-id management
- Add 11ac action frame handling
- Add callbacks for 11n/11ac status changes, ERP, etc, so firmware-based chips can update things as appropriate
- Hostap
- Packet injection
- IBSS
- 11s
New configuration options to handle
- dot11OperatingClassesRequired
IEs to handle
- 8.4.1.50 operating mode IE and operating mode field
- 8.4.1.51 - membership status array field
- 8.4.1.54 - user position array field
- 8.4.2.3 - update supported rates element, include HT/VHT as appropriate for mandatory support
- 8.4.2.10 - country IE - changes depending upon dot11OperatingClassesRequired
- 8.4.2.17 - power capability IE
- 8.4.2.22 - secondary channel offset element
- 8.4.2.23 - measurement request element (the whole thing, as well as vht)
- 8.4.2.23.5 - channel load request element, would be nice
- 8.4.2.24 - measurement report element
- 8.4.2.27 - RSNE; adding GCMP
8.4.2.29 - extended capabilities bitmap/support - TDLS, OpModeNotification, Max MSDUs in A-MSDU
- 8.4.2.31 - EDCA changes based on PHY
- 8.4.2.38 - AP channel report element
- 8.4.2.39 - Neighbor report element
- 8.4.2.40 - RCPI
- 8.4.2.48 - multiple BSSID
- 8.4.2.56 - supported operating classes
- 8.4.2.57 - Management MIC
- 8.4.2.58 - HT capabilities element - need to ensure we're up to date on these + VHT bits
- 8.4.2.69 - Event Request (p2p, right?)
- 8.4.2.71 - Diagnostic Request
- 8.4.2.73 - Location Parameters
- (some others we don't really need)
- 8.4.2.88 Channel Usage element
- 8.4.2.160 VHT Capabilities element
- 8.4.2.161 VHT Operation element
- 8.4.2.162 Extended BSS Load element
- 8.4.2.163 Wide Bandwidth Channel Switch element (in CSAs, extended CSAs, TDLS channel switch request frames)
- 8.4.2.164 VHT Transmit Power Envelope element
- 8.4.2.165 Channel Switch Wrapper element
- 8.4.2.166 AID element
- 8.4.2.167 Quiet Channel element
- 8.4.2.168 Operating Mode Notification element
New Action Frames
- 8.5.2.6 Channel Switch Announcement frame format - changed for VHT
- 8.5.4 - DLS (TDLS?; we don't do this yet)
- 8.5.8.7 Extended Channel Switch Announcement frame format
- (all the TDLS stuff)
- 8.5.14.24 Channel Usage Response frame format
- (all the mesh stuff)
- 8.5.23.1 VHT Action field - compressed beamforming, group-id management, operating mode notification
- 8.5.23.2 VHT Compressed Beamforming frame format
- 8.5.23.3 Group ID Management frame format (MU-MIMO?)
- 8.5.23.4 Operating Mode Notification frame format
(At pg 118, section 9 at this point)