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
- Packet injection
New configuration options to handle
IEs to handle
- 18.104.22.168 operating mode IE and operating mode field
- 22.214.171.124 - membership status array field
- 126.96.36.199 - user position array field
- 188.8.131.52 - update supported rates element, include HT/VHT as appropriate for mandatory support
- 184.108.40.206 - country IE - changes depending upon dot11OperatingClassesRequired
- 220.127.116.11 - power capability IE
- 18.104.22.168 - secondary channel offset element
- 22.214.171.124 - measurement request element (the whole thing, as well as vht)
- 126.96.36.199.5 - channel load request element, would be nice
- 188.8.131.52 - measurement report element
- 184.108.40.206 - RSNE; adding GCMP
220.127.116.11 - extended capabilities bitmap/support - TDLS, OpModeNotification, Max MSDUs in A-MSDU
- 18.104.22.168 - EDCA changes based on PHY
- 22.214.171.124 - AP channel report element
- 126.96.36.199 - Neighbor report element
- 188.8.131.52 - RCPI
- 184.108.40.206 - multiple BSSID
- 220.127.116.11 - supported operating classes
- 18.104.22.168 - Management MIC
- 22.214.171.124 - HT capabilities element - need to ensure we're up to date on these + VHT bits
- 126.96.36.199 - Event Request (p2p, right?)
- 188.8.131.52 - Diagnostic Request
- 184.108.40.206 - Location Parameters
- (some others we don't really need)
- 220.127.116.11 Channel Usage element
- 18.104.22.168 VHT Capabilities element
- 22.214.171.124 VHT Operation element
- 126.96.36.199 Extended BSS Load element
- 188.8.131.52 Wide Bandwidth Channel Switch element (in CSAs, extended CSAs, TDLS channel switch request frames)
- 184.108.40.206 VHT Transmit Power Envelope element
- 220.127.116.11 Channel Switch Wrapper element
- 18.104.22.168 AID element
- 22.214.171.124 Quiet Channel element
- 126.96.36.199 Operating Mode Notification element
New Action Frames
- 188.8.131.52 Channel Switch Announcement frame format - changed for VHT
- 8.5.4 - DLS (TDLS?; we don't do this yet)
- 184.108.40.206 Extended Channel Switch Announcement frame format
- (all the TDLS stuff)
- 220.127.116.11 Channel Usage Response frame format
- (all the mesh stuff)
- 18.104.22.168 VHT Action field - compressed beamforming, group-id management, operating mode notification
- 22.214.171.124 VHT Compressed Beamforming frame format
- 126.96.36.199 Group ID Management frame format (MU-MIMO?)
- 188.8.131.52 Operating Mode Notification frame format
(At pg 118, section 9 at this point)