TL;DR: You can see the information collected to date here .
You can help collect information about the features of the Wi-Fi chips in modern routers. SSH into your router, run the commands below and post the results.
ubus call system board | grep 'model\|description'
iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
iwinfo | grep 'Hardware:\|PHY name'
Why is this information important? How OpenWrt Vanquishes Bufferbloat describes the way the "OpenWrt Wi-Fi Driver" fights bufferbloat by using separate transmit queues/AQL/ATF if the chipset supports the right features. I asked the question:
How can a newcomer know whether a particular router has a chipset that is supported by the OpenWrt Wi-Fi Driver? Can they simply look at the "WLAN Hardware" entry of the Device Page and look in some table?
Here's a list of all the unique Wi-Fi6 and Wi-Fi5 chipsets currently used by OpenWrt devices (below).
Wi-Fi6 Chipsets
======= Wi-Fi6 WLAN Hardware shown as "/n/a/ac/ax" ==========
MediaTek MT7603
MediaTek MT7621DAT
MediaTek MT7622
MediaTek MT7622B
MediaTek MT7622BV
MediaTek MT7905
MediaTek MT7905DAN
MediaTek MT7905N
MediaTek MT7911AN
MediaTek MT7915
MediaTek MT7915A
MediaTek MT7915AN
MediaTek MT7915D
MediaTek MT7915DA
MediaTek MT7915DN
MediaTek MT7915E
MediaTek MT7916
MediaTek MT7975
MediaTek MT7975
MediaTek MT7975AN
MediaTek MT7975DN
MediaTek MT7975N
MediaTek MT7975P
MediaTek MT7975P(N)
MediaTek MT7976
MediaTek MT7976AN
MediaTek MT7976C
MediaTek MT7976CN
MediaTek MT7976CN
MediaTek MT7976DA
MediaTek MT7976DAN
MediaTek MT7976GN
MediaTek MT7981
MediaTek MT7986
MediaTek MT7986AV
Qualcomm Atheros IPQ8074A
Qualcomm Atheros QCA9889
Qualcomm Atheros QCN5024
Qualcomm Atheros QCN5054
Qualcomm Atheros QCN9024
Wi-Fi5 Chipsets
======= Wi-Fi5 WLAN Hardware shown as "/n/a/ac" and not "/n/a/ac/ax" ========
Broadcom BCM43a2
Broadcom BCM435f
Broadcom BCM4331
Broadcom BCM4352
Broadcom BCM4360
Broadcom BCM4365E
Broadcom BCM4366
Broadcom BCM4366B1
Broadcom BCM4366C0
Broadcom BCM4366E
Broadcom BCM4718
Broadcom BCM5358
Broadcom BCM43217
Broadcom BCM43228
Broadcom BCM43428
Broadcom BCM43520
Broadcom BCM43526
Broadcom BCM43602
Broadcom BCM47189
Cypress CYW43455
Cypress CYW43456
Imagination iE1000/D0
Lantiq XWAY WAVE300
Marvell 88W8864
Marvell 88W8964
Marvell 88W8997
MediaTek MT76x8AN
MediaTek MT7602E
MediaTek MT7602EN
Mediatek MT7603
Mediatek MT7603BE
MediaTek MT7603E
MediaTek MT7603EN
MediaTek MT7610E
MediaTek MT7610EN
Mediatek mt7612
MediaTek MT7612E
MediaTek MT7612EN
MediaTek MT7613
MediaTek MT7613AEN
Mediatek MT7613BE
MediaTek MT7613BEN
MediaTek MT7613E
Mediatek MT7615
MediaTek MT7615D
Mediatek MT7615DN
Mediatek MT7615E
MediaTek MT7615N
MediaTek MT7615NE
Mediatek mt7620
MediaTek MT7620A
MediaTek MT7621A
MediaTek MT7622
MediaTek MT7628A
MediaTek MT7628AM
MediaTek MT7628AN
MediaTek MT7628DA
Mediatek MT7628DAN
MediaTek MT7628N
MediaTek MT7662
MediaTek MT7662E
MediaTek MT7662EN
MediaTek MT7663
Mediatek MT7663BEN
MediaTek MT7688AN
MediaTek RT5390
Qualcomm Atheros AR1022
Qualcomm Atheros AR9280
Qualcomm Atheros AR9287
Qualcomm Atheros AR9340
Qualcomm Atheros AR9342
Qualcomm Atheros AR9344
Qualcomm Atheros AR9382
Qualcomm Atheros AR9590
Qualcomm Atheros AR9880
Qualcomm Atheros AR9882-BR4A
Qualcomm Atheros IPQ40xx
Qualcomm Atheros IPQ4018
Qualcomm Atheros IPQ4019
Qualcomm Atheros IPQ4019/29
Qualcomm Atheros IPQ4028
Qualcomm Atheros IPQ4029
Qualcomm Atheros QCA99x0
Qualcomm Atheros QCA899X
Qualcomm Atheros QCA986x/988x
Qualcomm Atheros QCA988x
Qualcomm Atheros QCA4018
Qualcomm Atheros QCA4019
Qualcomm Atheros QCA4029
Qualcomm Atheros QCA9531
Qualcomm Atheros QCA9550
Qualcomm Atheros QCA9556
Qualcomm Atheros QCA9557
Qualcomm Atheros QCA9558
Qualcomm Atheros QCA9558-ATA4
Qualcomm Atheros QCA9561
Qualcomm Atheros QCA9563
Qualcomm Atheros QCA9563-AL3A
Qualcomm Atheros QCA9880
Qualcomm Atheros QCA9880-2R4E
Qualcomm Atheros QCA9880-AR1A
Qualcomm Atheros QCA9880-BR4A
Qualcomm Atheros QCA9880v2
Qualcomm Atheros QCA9882
Qualcomm Atheros QCA9882-2R4E
Qualcomm Atheros QCA9882-BR4A
Qualcomm Atheros QCA9884
Qualcomm Atheros QCA9886
Qualcomm Atheros QCA9887
Qualcomm Atheros QCA9888
Qualcomm Atheros QCA9889
Qualcomm Atheros QCA9890
Qualcomm Atheros QCA9892
Qualcomm Atheros QCA9896
Qualcomm Atheros QCA9980
Qualcomm Atheros QCA9982
Qualcomm Atheros QCA9983
Qualcomm Atheros QCA9984
Qualcomm Atheros QCA9988
Qualcomm Atheros QCA9990
Qualcomm Atheros QCA9992
Qualcomm Atheros QCA9994
Qualcomm Atheros QCN5502
Quantenna QT2518B
Quantenna QT3740BC
Quantenna QT3840BC
Quantenna QT3840BC + QT2518B
Ralink RT3883
Skyworks SKY85806
SparkLAN WPEA-352ACN
To produce these lists, I took the zip archive of the entire ToH (from https://openwrt.org/toh/views/start ) and separated out the WLAN Hardware columns. I made two selections from that list: Wi-Fi5 radios (that is, shown as "a/n/ac") and Wi-Fi6 radios ("a/n/ac/ax"). I then processed those lists to remove duplicates and came up with these two sets of radio chipsets.
3 Likes
Chips that support the OpenWrt Wi-Fi Driver
The following chips support the listed OpenWrt Wi-Fi Driver features, as confirmed by the contributors below. If your router uses other chips, please collect the info from your router and post it below. Thanks all!
WLAN Hardware
Features
Example router
Firmware
Contributor
All MT76xx
TXQS/ATF/AQL
See ToH
23.05.3
[3]
All MT79xx
TXQS/ATF/AQL
See ToH
22.03.5
[3]
Generic MAC80211
TXQS/ATF [only]
Extreme Networks WS-AP3825i
23.05.3
@account4538
IPQ4019
TXQS/ATF/AQL
Linksys MR8300 (Dallas)
22.03.6
@account4538
IPQ8074
TXQS [only]
Xiaomi Mi AIoT AX3600
23.05.3
@dudez7
QCA9880
TXQS/ATF/AQL
Extreme Networks WS-AP3825i
23.05.3
@account4538
QCA9886
TXQS/ATF/AQL
Linksys MR8300 (Dallas)
22.03.6
@account4538
QCA9889
TXQS/ATF/AQL
Xiaomi Mi AIoT AX3600
23.05.3
@dudez7
QCA9984
TXQS/ATF/AQL
Netgear Nighthawk X4S R7800
SNAPSHOT r25830- 8d934c1196
@tapper
QCA AR9280
TXQS/ATF [only]
PC Engines APU2
23.05.3
@KAD
QCN5024
TXQS [only]
Xiaomi Mi AIoT AX3600
23.05.3
@dudez7
QCN5054
TXQS [only]
Xiaomi Mi AIoT AX3600
23.05.3
@dudez7
Notes:
Chip names are abbreviated to conserve space. Manufacturers: MediaTek start with MT...
; Qualcomm Atheros start with QC...
or IPQ
...
Features are:
TXQS: FQ-CoDel-enabled intermediate transmit queues
ATF: Air Time Fairness scheduling
AQL: Airtime Queue Limits
All MT76xx and MT79xx chips have full support for the OpenWrt Wi-Fi Driver, as cited by @brada4 , @greem , and many others:
4 Likes
What a terrific report! I will use this format as the basis for my summary info. Thanks!
I ran the commands in the original post on my Belkin RT3200 (same hardware as Linksys E8450). Here are the results:
root@Belkin-RT3200:~# ubus call system board | grep 'model|description'
"model": "Linksys E8450 (UBI)",
"description": "OpenWrt 22.03.5 r20134-5f15225c1e"
root@Belkin-RT3200:~# iw list | grep 'Wiphy|TXQS|AIRTIME_FAIRNESS|AQL'
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
root@Belkin-RT3200:~# iwinfo | grep 'Hardware:|PHY name'
Hardware: 14C3:7622 14C3:7622 [MediaTek MT7622]
Supports VAPs: yes PHY name: phy0
Hardware: 14C3:7915 14C3:7915 [MediaTek MT7915E]
Supports VAPs: yes PHY name: phy1
tapper
April 9, 2024, 8:53pm
6
root@OpenWrt:~# ubus call system board | grep 'model|description'
"model": "Netgear Nighthawk X4S R7800",
"description": "OpenWrt SNAPSHOT r25830-8d934c1196"
root@OpenWrt:~# iw list | grep 'Wiphy|TXQS|AIRTIME_FAIRNESS|AQL'
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
root@OpenWrt:~# iwinfo | grep 'Hardware:|PHY name'
Hardware: 168C:0046 168C:CAFE [Qualcomm Atheros QCA9984]
Supports VAPs: yes PHY name: phy0
Hardware: 168C:0046 168C:CAFE [Qualcomm Atheros QCA9984]
Supports VAPs: yes PHY name: phy1
root@OpenWrt:~#
brada4
April 9, 2024, 10:59pm
7
It is unconditionally enabled with mt76
SET_IEEE80211_DEV(hw, dev->dev);
SET_IEEE80211_PERM_ADDR(hw, phy->macaddr);
wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR |
NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE;
wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH |
WIPHY_FLAG_SUPPORTS_TDLS |
WIPHY_FLAG_AP_UAPSD;
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_AIRTIME_FAIRNESS);
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_AQL);
wiphy->available_antennas_tx = phy->antenna_mask;
wiphy->available_antennas_rx = phy->antenna_mask;
wiphy->sar_capa = &mt76_sar_capa;
phy->frp = devm_kcalloc(dev->dev, wiphy->sar_capa->num_freq_ranges,
sizeof(struct mt76_freq_range_power),
GFP_KERNEL);
if (!phy->frp)
I think you can refer to my post here to suggest people creating a line like the following then you just need to append to your list without too much editing
| Mediatek MT7981 | TXQS/ATF/AQL | GL-INET MT3000<br>(Beryl AX) | 23.05.3 |
root@MT3000:~# ubus call system board | grep 'model\|description'
"model": "GL.iNet GL-MT3000",
"description": "OpenWrt 23.05.3 r23809-234f1a2efa"
root@MT3000:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
root@MT3000:~# iwinfo | grep 'Hardware:\|PHY name'
Hardware: embedded [MediaTek MT7981]
Supports VAPs: yes PHY name: phy0
Hardware: embedded [MediaTek MT7981]
Supports VAPs: yes PHY name: phy1
Hardware: embedded [MediaTek MT7981]
Supports VAPs: yes PHY name: phy1
I'm not sure this is helpful. How can a newcomer tell which of the chips in Wi-Fi6 and Wi-Fi5 lists (in the original post ) are considered "mt76" chips? Thanks
@tapper @fakemanhk @Pouakai - thanks for the info. I have entered it into the table.
greem
April 10, 2024, 1:10pm
11
The ones with MT76xx designations all use the mt76 driver - see https://github.com/openwrt/mt76
Question: I followed your command but it doesn't show me the WiFi hardware MT7976CN, am I missing something??
brada4
April 10, 2024, 7:48pm
13
All Mediatek MT76xx MT79xx chips have full driver support. Probably worth digging other driver sources for similar blanket conclusions.
@brada4 @greem Thanks for the confirmation re: MT76xx and MT79xx. I have updated the table with the information that those chips support all the features of the OpenWrt Wi-Fi Driver.
@fakemanhk You are right. I (mistakenly) believed the ToH entry for the GL-MT3000 instead of the actual evidence you send in. The table above now shows that all MT79xx chips support all three Wi-Fi features. I have corrected the WLAN Hardware entry on the MT3000 Data Entry page .
@slh @tohojo I'm making pretty broad generalizations about the MediaTek ecosystem above (all MT76xx and MT79xx chips support the three Wi-Fi driver features). Is this true?
Also - any broad groupings of Atheros chips? Or will the table have to be updated chip-by-chip? Thanks.
brada4
April 10, 2024, 11:53pm
16
Source code... TXQS is WMM queues omnipresent since wifi4 plus kernel mac80211 moderation of their size.
tohojo
April 11, 2024, 4:08pm
17
I think so, but not entirely sure...
ubus call system board | grep 'model\|description'
"model": "Extreme Networks WS-AP3825i",
"description": "OpenWrt 23.05.3 r23809-234f1a2efa"
iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
iwinfo | grep 'Hardware:\|PHY name'
Hardware: 168C:003C 0000:0000 [Qualcomm Atheros QCA9880]
Supports VAPs: yes PHY name: phy0
Hardware: 168C:0033 168C:3123 [Generic MAC80211]
Supports VAPs: yes PHY name: phy1
Hardware: 168C:0033 168C:3123 [Generic MAC80211]
Supports VAPs: yes PHY name: phy1
ubus call system board | grep 'model\|description'
"model": "Linksys MR8300 (Dallas)",
"description": "OpenWrt 22.03.6 r20265-f85a79bcb4"
iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy2
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
iwinfo | grep 'Hardware:\|PHY name'
Hardware: 168C:0056 0000:0000 [Qualcomm Atheros QCA9886]
Supports VAPs: yes PHY name: phy0
Hardware: 168C:003C 168C:4019 [Qualcomm Atheros IPQ4019]
Supports VAPs: yes PHY name: phy1
Hardware: 168C:003C 168C:4019 [Qualcomm Atheros IPQ4019]
Supports VAPs: yes PHY name: phy2
Thanks for posting your routers' information. I have used it to update the table.
ubus call system board | grep 'model\|description'
"model": "TP-Link Archer C6 v2 (EU/RU/JP)",
"description": "OpenWrt 23.05.3 r23809-234f1a2efa"
iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
Wiphy phy0
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
iwinfo | grep 'Hardware:\|PHY name'
Hardware: 168C:0056 0000:0000 [Qualcomm Atheros QCA9886]
Supports VAPs: yes PHY name: phy0
Hardware: 168C:0056 0000:0000 [Qualcomm Atheros QCA9886]
Supports VAPs: yes PHY name: phy0
Hardware: embedded [Qualcomm Atheros QCA9560]
Supports VAPs: yes PHY name: phy1
Hardware: embedded [Qualcomm Atheros QCA9560]
Supports VAPs: yes PHY name: phy1