[openwrt/openwrt] wifi-scripts: ucode: export HE and EHT operation in scan results
LEDE Commits
lede-commits at lists.infradead.org
Sun Oct 19 15:39:34 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/10356157316b7a183ba7d4f17250dbd2211bfbaf
commit 10356157316b7a183ba7d4f17250dbd2211bfbaf
Author: Aleksander Jan Bajkowski <olek2 at wp.pl>
AuthorDate: Sat May 17 10:01:27 2025 +0200
wifi-scripts: ucode: export HE and EHT operation in scan results
Export WiFi 6E (HE) and WiFi 7 (EHT) operation data in scan results.
These additional data can be useful to check wifi channel utilization
by nearby stations.
Example:
Cell 32 - Address: xx:xx:xx:xx:xx:xx
Mode: Master Frequency: 6.115 GHz Band: 6 GHz Channel: 33
Signal: -14 dBm Quality: 70/70
Encryption: SAE (CCMP)
HE Operation:
Center Frequency 1: 39
Center Frequency 2: 47
Channel Width: 160 MHz
EHT Operation:
Center Frequency 1: 47
Center Frequency 2: 63
Channel Width: 320 MHz
Signed-off-by: Aleksander Jan Bajkowski <olek2 at wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19208
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../config/wifi-scripts/files-ucode/usr/bin/iwinfo | 14 ++++++++
.../files-ucode/usr/share/ucode/iwinfo.uc | 40 ++++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/package/network/config/wifi-scripts/files-ucode/usr/bin/iwinfo b/package/network/config/wifi-scripts/files-ucode/usr/bin/iwinfo
index 5b492d6cfa..204a6e5b30 100755
--- a/package/network/config/wifi-scripts/files-ucode/usr/bin/iwinfo
+++ b/package/network/config/wifi-scripts/files-ucode/usr/bin/iwinfo
@@ -91,6 +91,20 @@ function print_scan(cells) {
printf('\t\tChannel Width: %s\n', cell.vht.chan_width);
}
+ if (cell.he) {
+ printf('\t HE Operation:\n');
+ printf('\t\tCenter Frequency 1: %d\n', cell.he.center_chan_1);
+ printf('\t\tCenter Frequency 2: %s\n', cell.he.center_chan_2);
+ printf('\t\tChannel Width: %s\n', cell.he.chan_width);
+ }
+
+ if (cell.eht) {
+ printf('\t EHT Operation:\n');
+ printf('\t\tCenter Frequency 1: %d\n', cell.eht.center_chan_1);
+ printf('\t\tCenter Frequency 2: %s\n', cell.eht.center_chan_2);
+ printf('\t\tChannel Width: %s\n', cell.eht.chan_width);
+ }
+
printf('\n');
}
}
diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/iwinfo.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/iwinfo.uc
index 29d75b4130..73bd9515a0 100644
--- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/iwinfo.uc
+++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/iwinfo.uc
@@ -481,6 +481,42 @@ export function countrylist(dev) {
return list;
};
+function scan_extension(ext, cell) {
+ const eht_chan_width = [ '20 MHz', '40 MHz', '80 MHz', '160 MHz', '320 MHz'];
+
+ switch(ord(ext, 0)) {
+ case 36:
+ let offset = 7;
+
+ if (!(ord(ext, 3) & 0x2))
+ break;
+
+ if (ord(ext, 2) & 0x40)
+ offset += 3;
+
+ if (ord(ext, 2) & 0x80)
+ offset += 1;
+
+ cell.he = {
+ chan_width: eht_chan_width[ord(ext, offset + 1) & 0x3],
+ center_chan_1: ord(ext, offset + 2),
+ center_chan_2: ord(ext, offset + 3),
+ };
+ break;
+
+ case 106:
+ if (!(ord(ext, 1) & 0x1))
+ break;
+
+ cell.eht = {
+ chan_width: eht_chan_width[ord(ext, 6) & 0x7],
+ center_chan_1: ord(ext, 7),
+ center_chan_2: ord(ext, 8),
+ };
+ break;
+ }
+};
+
export function scan(dev) {
const rsn_cipher = [ 'NONE', 'WEP-40', 'TKIP', 'WRAP', 'CCMP', 'WEP-104', 'AES-OCB', 'CKIP', 'GCMP', 'GCMP-256', 'CCMP-256' ];
const ht_chan_offset = [ 'no secondary', 'above', '[reserved]', 'below' ];
@@ -591,6 +627,10 @@ export function scan(dev) {
center_chan_2: ord(ie.data, 2),
};
break;
+
+ case 255:
+ scan_extension(ie.data, cell);
+ break;
};
More information about the lede-commits
mailing list