diff options
author | David Bauer <mail@david-bauer.net> | 2021-04-17 23:42:30 +0200 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2022-02-18 08:43:23 +0100 |
commit | 8d26a1ba3a175016b342cc5e25d340c08ae20eed (patch) | |
tree | 46f37b5b604a94f55d999f5a8db681e54a2873ba | |
parent | ccb75178cf6a726896729c6904bd623636aa0b29 (diff) | |
download | rpcd-openwrt-21.02.tar.gz |
iwinfo: add 802.11ax HE supportopenwrt-21.02
Expose 802.11ax HE rate as well as HW / HT mode information. This is
required to add 802.11ax support to LuCI.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 7a560a1a5769146ab072f8e0165940459d3e16f7)
-rw-r--r-- | iwinfo.c | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -260,6 +260,21 @@ rpc_iwinfo_call_htmodes(const char *name) if (modes & IWINFO_HTMODE_VHT160) blobmsg_add_string(&buf, NULL, "VHT160"); + if (modes & IWINFO_HTMODE_HE20) + blobmsg_add_string(&buf, NULL, "HE20"); + + if (modes & IWINFO_HTMODE_HE40) + blobmsg_add_string(&buf, NULL, "HE40"); + + if (modes & IWINFO_HTMODE_HE80) + blobmsg_add_string(&buf, NULL, "HE80"); + + if (modes & IWINFO_HTMODE_HE80_80) + blobmsg_add_string(&buf, NULL, "HE80+80"); + + if (modes & IWINFO_HTMODE_HE160) + blobmsg_add_string(&buf, NULL, "HE160"); + blobmsg_close_array(&buf, c); } } @@ -280,6 +295,9 @@ rpc_iwinfo_call_hwmodes(const char *name) if (modes & IWINFO_80211_AC) blobmsg_add_string(&buf, NULL, "ac"); + if (modes & IWINFO_80211_AX) + blobmsg_add_string(&buf, NULL, "ax"); + if (modes & IWINFO_80211_A) blobmsg_add_string(&buf, NULL, "a"); @@ -332,6 +350,26 @@ static void rpc_iwinfo_call_hw_ht_mode() htmode_str = "VHT160"; hwmode_str = "ac"; break; + case IWINFO_HTMODE_HE20: + htmode_str = "HE20"; + hwmode_str = "ax"; + break; + case IWINFO_HTMODE_HE40: + htmode_str = "HE40"; + hwmode_str = "ax"; + break; + case IWINFO_HTMODE_HE80: + htmode_str = "HE80"; + hwmode_str = "ax"; + break; + case IWINFO_HTMODE_HE80_80: + htmode_str = "HE80+80"; + hwmode_str = "ax"; + break; + case IWINFO_HTMODE_HE160: + htmode_str = "HE160"; + hwmode_str = "ax"; + break; case IWINFO_HTMODE_NOHT: htmode_str = "20"; hwmode_str = "a/g"; @@ -491,6 +529,7 @@ rpc_iwinfo_add_rateinfo(struct iwinfo_rate_entry *r) { blobmsg_add_u8(&buf, "ht", r->is_ht); blobmsg_add_u8(&buf, "vht", r->is_vht); + blobmsg_add_u8(&buf, "he", r->is_he); blobmsg_add_u32(&buf, "mhz", r->mhz); blobmsg_add_u32(&buf, "rate", r->rate); @@ -504,6 +543,12 @@ rpc_iwinfo_add_rateinfo(struct iwinfo_rate_entry *r) blobmsg_add_u32(&buf, "nss", r->nss); blobmsg_add_u8(&buf, "short_gi", r->is_short_gi); } + else if (r->is_he) { + blobmsg_add_u32(&buf, "mcs", r->mcs); + blobmsg_add_u32(&buf, "nss", r->nss); + blobmsg_add_u32(&buf, "he_gi", r->he_gi); + blobmsg_add_u32(&buf, "he_dcm", r->he_dcm); + } } static int |