Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| wifi:todostuff [2020/07/05 20:46] – AdrianChadd | wifi:todostuff [2021/06/06 02:46] (current) – add CategoryWiFi MarkLinimon | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== Wifi (net80211, driver) wishlist ====== |
| - | ===== 802.11n bits ===== | + | ===== net80211 |
| - | | + | ==== Global state ==== |
| + | |||
| + | | ||
| + | * Update the per-VAP / global state for 11g ERP, short/long slot time, WME, HT protection, etc to assign the state per-channel, | ||
| + | * Look at what it'd take to push node creation/ | ||
| + | |||
| + | ==== Encryption ==== | ||
| + | |||
| + | * Need CCMP-256 key support (11ac, 11ax) | ||
| + | * Need GCMP-256 key support (11ac, 11ax) | ||
| + | * Add support for the >1 pairwise key that showed up in 802.11-2016 | ||
| + | * Explicitly tag keys as pairwise and remove the pointer-comparison logic done to determine if a given key is pairwise or not; it's dumb and error-prone | ||
| + | |||
| + | ==== IBSS ==== | ||
| + | |||
| + | * (done) implement WME and HT info field parameter configuration and parsing when " | ||
| + | * (done) update the ibss support to negotiate 11n aggregation (which should happen automatically when the above is working); | ||
| + | * IBSS encryption - get it better documented; avos@ figured out how to get it working a while ago! | ||
| + | |||
| + | ==== 802.11n ==== | ||
| + | |||
| + | * The channel width change | ||
| * operating mode change - fix the 2ghz ping-pong that happens when overlapping BSSes have both HT and non-HT stations, so the HT protmode flips between 0x11 and 0x13 | * operating mode change - fix the 2ghz ping-pong that happens when overlapping BSSes have both HT and non-HT stations, so the HT protmode flips between 0x11 and 0x13 | ||
| * make the A-MPDU negotiation configurable per-TID - eg, disable ADDBA/DELBA for voice/ | * make the A-MPDU negotiation configurable per-TID - eg, disable ADDBA/DELBA for voice/ | ||
| Line 10: | Line 31: | ||
| * .. and I guess whilst here at least add in the bits for correctly handling the greenfield bits during HTCAP/ | * .. and I guess whilst here at least add in the bits for correctly handling the greenfield bits during HTCAP/ | ||
| - | ===== 802.11ac | + | ==== 802.11s (mesh) ==== |
| + | |||
| + | * fix the " | ||
| + | * work with monthadar@ to include whatever other missing patches there are from his tree | ||
| + | * monthadar' | ||
| + | |||
| + | ==== 802.11ac ==== | ||
| - | * Need CCMP-256 key support; | ||
| - | * Need GCMP-256 key support; | ||
| * Need to add the TX beamforming, | * Need to add the TX beamforming, | ||
| - | * (adrian - in progress) Need to migrate the rest of the 11g protection (barker/ | + | * (done) Need to migrate the rest of the 11g protection (barker/ |
| * Update the channel width (80+80, 160) negotiation to the 802.11-2016 spec rather than the draft 11ac spec; the meanings of the bits changed a little in the released final spec because of implementation incompatibilities; | * Update the channel width (80+80, 160) negotiation to the 802.11-2016 spec rather than the draft 11ac spec; the meanings of the bits changed a little in the released final spec because of implementation incompatibilities; | ||
| * Add support for PMF/MFP (management frame protection) - hardware and software encrypted ones! | * Add support for PMF/MFP (management frame protection) - hardware and software encrypted ones! | ||
| - | * Add support for the spatial stream grouping for 11ac AP/STAs | + | * Add support for the spatial stream grouping for 11ac AP/ |
| - | %%=%%= Interesting IE's to add (as mini projects) | + | ==== Interesting IE's to add (as mini projects) |
| - | * BSSLOAD | + | * BSSLOAD |
| + | * BSSLOAD - implement updating the beacon IEs sent/stored on the IBSS/ | ||
| - | ===== net80211 channel configuration | + | ==== net80211 channel configuration ==== |
| * The new whitespace cards (eg from Xagyl) don't necessarily tune on a 1MHz boundary. They have xxx.5MHz channel frequency centres. It would be nice to " | * The new whitespace cards (eg from Xagyl) don't necessarily tune on a 1MHz boundary. They have xxx.5MHz channel frequency centres. It would be nice to " | ||
| Line 47: | Line 73: | ||
| * .. the rate control code would also need to be taught about shifting duration calculations as appropriate. | * .. the rate control code would also need to be taught about shifting duration calculations as appropriate. | ||
| - | ===== net80211 TX datapath | + | ==== net80211 TX datapath ==== |
| * figure out how to serialise the net80211 TX path without causing LORs; | * figure out how to serialise the net80211 TX path without causing LORs; | ||
| * document how to abuse the driver if_transmit for sending 802.11 fragments, then convert all the drivers over to using that; | * document how to abuse the driver if_transmit for sending 802.11 fragments, then convert all the drivers over to using that; | ||
| * migrate the last remaining remnants of " | * migrate the last remaining remnants of " | ||
| + | * Add support for " | ||
| - | ===== net80211 rate control and rate representation | + | ==== net80211 rate control and rate representation ==== |
| * Reimplement the net80211 rate control API so it takes a TX info structure and fills out a whole series of TX rate related information; | * Reimplement the net80211 rate control API so it takes a TX info structure and fills out a whole series of TX rate related information; | ||
| Line 66: | Line 93: | ||
| * Whilst we're at it, make it so ifconfig can tell the difference between basic rates and 11n/11ac rates; so a non-MCS rate can be configured during 11n. Right now if the VAP is in 11n mode, an ifconfig XXX ucastrate|mcastrate|mgmtrate nn will interpret nn as an MCS rate, NOT a legacy rate. This is very problematic. | * Whilst we're at it, make it so ifconfig can tell the difference between basic rates and 11n/11ac rates; so a non-MCS rate can be configured during 11n. Right now if the VAP is in 11n mode, an ifconfig XXX ucastrate|mcastrate|mgmtrate nn will interpret nn as an MCS rate, NOT a legacy rate. This is very problematic. | ||
| - | ===== net80211 802.11n support ===== | + | ==== net80211 regulatory ==== |
| - | + | ||
| - | * The channel width change in net80211 needs to be extended to defer the actual channel width change/ | + | |
| - | + | ||
| - | ===== net80211 regulatory | + | |
| * the regulatory database is indexed by SKU, rather than by country. So adding a new _country_ is actually rather annoyingly difficult. | * the regulatory database is indexed by SKU, rather than by country. So adding a new _country_ is actually rather annoyingly difficult. | ||
| Line 78: | Line 101: | ||
| * add VHT flags and 80/ | * add VHT flags and 80/ | ||
| - | ===== long distance links (ath, but any drivers that support it) ===== | + | ===== ath(4) changes ===== |
| + | |||
| + | ==== long distance links (ath, but any drivers that support it) ==== | ||
| * " | * " | ||
| Line 84: | Line 109: | ||
| * validate interoperability | * validate interoperability | ||
| - | ===== ath(4) 802.11n support | + | ==== ath(4) 802.11n support ==== |
| * When doing a channel width change, do a reset which doesn' | * When doing a channel width change, do a reset which doesn' | ||
| * Add support for transmitting beacon frames as 11n frames. This includes setting up the rate scenario so the beacons go out as HT20 frames (regardless of HT20 or HT40) as well as setting the MCS rate, the antenna configuration, | * Add support for transmitting beacon frames as 11n frames. This includes setting up the rate scenario so the beacons go out as HT20 frames (regardless of HT20 or HT40) as well as setting the MCS rate, the antenna configuration, | ||
| - | ===== ath(4) half/ | + | ==== ath(4) half/ |
| * test the half/ | * test the half/ | ||
| Line 95: | Line 120: | ||
| * better document all of how this works. | * better document all of how this works. | ||
| - | ===== ath(4) RX path / radiotap support | + | ==== ath(4) RX path / radiotap support ==== |
| * Many of the status fields don't apply for intermediary RX frames in an aggregate. This includes RSSI values. These should be tossed in the RSSI tracking logic. | * Many of the status fields don't apply for intermediary RX frames in an aggregate. This includes RSSI values. These should be tossed in the RSSI tracking logic. | ||
| Line 103: | Line 128: | ||
| * .. and this is difficult for 802.11n RX aggregate frames, as you don't necessarily _receive_ all the frames! | * .. and this is difficult for 802.11n RX aggregate frames, as you don't necessarily _receive_ all the frames! | ||
| - | ===== 802.11s ===== | + | ==== 802.11n ==== |
| - | + | ||
| - | * test half/ | + | |
| - | * fix the " | + | |
| - | * work with monthadar@ to include whatever other missing patches there are from his tree | + | |
| - | * monthadar' | + | |
| - | + | ||
| - | ===== 802.11n | + | |
| * (done) port over the uAPSD negotiation and basic support from the old madwifi branch; | * (done) port over the uAPSD negotiation and basic support from the old madwifi branch; | ||
| * plan and implement uAPSD support; at least hostap side; | * plan and implement uAPSD support; at least hostap side; | ||
| + | * implement ADD-TS / DEL-TS support in net80211 for drivers that support U-APSD in firmware; | ||
| * implement delayed block-ack support; | * implement delayed block-ack support; | ||
| * implement a userland tool to log RX and TX EVM for 802.11n frames, in order to assist with TX power calibration and rate control work; | * implement a userland tool to log RX and TX EVM for 802.11n frames, in order to assist with TX power calibration and rate control work; | ||
| - | |||
| - | ===== IBSS ===== | ||
| - | |||
| - | * (done) implement WME and HT info field parameter configuration and parsing when " | ||
| - | * (done) update the ibss support to negotiate 11n aggregation (which should happen automatically when the above is working); | ||
| ===== TDMA ===== | ===== TDMA ===== | ||
| Line 152: | Line 166: | ||
| * when doing TDMA, ensure that chips that implement the TX "abort if it will exceed %%TxOP%%" | * when doing TDMA, ensure that chips that implement the TX "abort if it will exceed %%TxOP%%" | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||