[net80211] Initial VHT node upgrade/downgrade support and initial IE parsing.
This is the bulk of the magic to start enabling VHT channel negotiation.
It is absolutely, positively not yet even a complete VHT wave-1 implementation.
- parse IEs in scan, assoc req/resp, probe req/resp;
- break apart the channel upgrade from the HT IE parsing - do it after the VHT IEs are parsed;
- (dirty! sigh) add channel width decision making in ieee80211_ht.c htinfo_update_chw(). This is the main bit where negotiated channel promotion through IEs occur.
- Shoehorn in VHT node init ,teardown, rate control, etc calls like the HT versions;
- Do VHT channel adjustment where appropriate
Tested:
- monitor mode, ath10k port
- STA mode, ath10k port - VHT20, VHT40, VHT80 modes
TODO:
- IBSS;
- hostap;
- (ignore mesh, wds for now);
- finish 11n state engine - channel width change, opmode notifications, SMPS, etc;
- VHT basic rate negotiation and acceptance criteria when scanning, associating, etc;
- VHT control/management frame handling (group managment and operating mode being the two big ones);
- Verify TX/RX VHT rate negotiation is actually working correctly.
Whilst here, add some comments about seqno allocation and locking. To achieve
the full VHT rates I need to push seqno allocation into the drivers and
finally remove the IEEE80211_TX_LOCK() I added years ago to fix issues. :/