[openwrt/openwrt] wifi-scripts: ucode: get the phy capabilities for the correct band
LEDE Commits
lede-commits at lists.infradead.org
Wed Aug 13 01:55:22 PDT 2025
nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d223d29feb7ae6eca61b5cc0072fcecc3bcc20ef
commit d223d29feb7ae6eca61b5cc0072fcecc3bcc20ef
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Wed Aug 13 10:54:03 2025 +0200
wifi-scripts: ucode: get the phy capabilities for the correct band
On multi-band phys, capabilities can differ between bands.
Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
.../files-ucode/usr/share/ucode/wifi/hostapd.uc | 34 +++++++++++++---------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
index a31b2955eb..b97597a1b3 100644
--- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
+++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
@@ -11,6 +11,7 @@ import * as fs from 'fs';
const NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 33;
const NL80211_EXT_FEATURE_RADAR_BACKGROUND = 61;
+const nl80211_bands = [ '2g', '5g', '60g', '6g' ];
let phy_features = {};
let phy_capabilities = {};
@@ -436,23 +437,28 @@ function device_extended_features(data, flag) {
return !!(data[flag / 8] | (1 << (flag % 8)));
}
-function device_capabilities(phy) {
+function device_capabilities(config) {
+ let phy = config.phy;
let idx = +fs.readfile(`/sys/class/ieee80211/${phy}/index`);
phy = nl80211.request(nl80211.const.NL80211_CMD_GET_WIPHY, nl80211.const.NLM_F_DUMP, { wiphy: idx, split_wiphy_dump: true });
if (!phy)
return;
- for (let band in phy.wiphy_bands) {
- if (!band)
+
+ let band_idx = index(nl80211_bands, config.band);
+ if (band_idx < 0)
+ return;
+
+ let band = phy.wiphy_bands[band_idx];
+ if (!band)
+ return;
+
+ phy_capabilities.ht_capa = band.ht_capa ?? 0;
+ phy_capabilities.vht_capa = band.vht_capa ?? 0;
+ for (let iftype in band.iftype_data) {
+ if (!iftype.iftypes.ap)
continue;
- phy_capabilities.ht_capa = band.ht_capa ?? 0;
- phy_capabilities.vht_capa = band.vht_capa ?? 0;
- for (let iftype in band.iftype_data) {
- if (!iftype.iftypes.ap)
- continue;
- phy_capabilities.he_mac_cap = iftype.he_cap_mac;
- phy_capabilities.he_phy_cap = iftype.he_cap_phy;
- }
- break;
+ phy_capabilities.he_mac_cap = iftype.he_cap_mac;
+ phy_capabilities.he_phy_cap = iftype.he_cap_phy;
}
phy_features.ftm_responder = device_extended_features(phy.extended_features, NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER);
@@ -460,10 +466,10 @@ function device_capabilities(phy) {
}
function generate(config) {
- if (!config.phy)
+ if (!config)
die(`${config.path} is an unknown phy`);
- device_capabilities(config.phy);
+ device_capabilities(config);
append('driver', 'nl80211');
More information about the lede-commits
mailing list