diff options
author | Daniel Danzberger <daniel@dd-wrt.com> | 2019-11-27 18:29:51 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2020-01-05 19:56:34 +0100 |
commit | efe51f41d6288fa8503cc4f2efb37a777767d505 (patch) | |
tree | dc0dbbf707d5ba3e94ec47cebd79e8235d917429 | |
parent | aaa08366e6384d9933a405d1218b03c1b167f9e5 (diff) | |
download | rpcd-efe51f41d6288fa8503cc4f2efb37a777767d505.tar.gz |
iwinfo: add current hw and ht mode to info call
Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
-rw-r--r-- | iwinfo.c | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -290,6 +290,48 @@ rpc_iwinfo_call_hwmodes(const char *name) } } +static void rpc_iwinfo_call_hw_ht_mode() +{ + const char *hwmode_str; + const char *htmode_str; + int32_t htmode = 0; + + if (iw->htmode(ifname, &htmode)) + return; + + switch (htmode) { + case IWINFO_HTMODE_HT20: + htmode_str = "HT20"; + hwmode_str = "n"; + break; + case IWINFO_HTMODE_HT40: + htmode_str = "HT40"; + hwmode_str = "n"; + break; + case IWINFO_HTMODE_VHT80: + htmode_str = "VHT80"; + hwmode_str = "ac"; + break; + case IWINFO_HTMODE_VHT80_80: + htmode_str = "VHT80+80"; + hwmode_str = "ac"; + break; + case IWINFO_HTMODE_VHT160: + htmode_str = "VHT160"; + hwmode_str = "ac"; + break; + case IWINFO_HTMODE_NOHT: + htmode_str = "20"; + hwmode_str = "a/g"; + break; + default: + htmode_str = hwmode_str = "unknown"; + break; + } + blobmsg_add_string(&buf, "hwmode", hwmode_str); + blobmsg_add_string(&buf, "htmode", htmode_str); +} + static void rpc_iwinfo_call_str(const char *name, int (*func)(const char *, char *)) { @@ -341,6 +383,8 @@ rpc_iwinfo_info(struct ubus_context *ctx, struct ubus_object *obj, rpc_iwinfo_call_htmodes("htmodes"); rpc_iwinfo_call_hwmodes("hwmodes"); + rpc_iwinfo_call_hw_ht_mode(); + c = blobmsg_open_table(&buf, "hardware"); rpc_iwinfo_call_hardware_id("id"); rpc_iwinfo_call_str("name", iw->hardware_name); |