summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnsuel Smith <ansuelsmth@gmail.com>2020-12-06 02:11:17 +0100
committerDaniel Golle <daniel@makrotopia.org>2021-01-05 19:09:17 +0000
commitfd017ba339e73536722248afe1478f3a99a73b02 (patch)
tree610151d2a5a077328c953e9c8505f56e25055e0a
parent3fea6559817a22de1b8375b9b1f3d818e6534591 (diff)
downloadrpcd-fd017ba339e73536722248afe1478f3a99a73b02.tar.gz
iwinfo: add ht and vht operation info to wifi scan
Iwinfo exports ht and vht operation info useful to get channel info of nearby stations. Add these new info to ubus output. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
-rw-r--r--iwinfo.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/iwinfo.c b/iwinfo.c
index 7780e69..1e172ee 100644
--- a/iwinfo.c
+++ b/iwinfo.c
@@ -403,7 +403,7 @@ rpc_iwinfo_scan(struct ubus_context *ctx, struct ubus_object *obj,
struct blob_attr *msg)
{
int i, rv, len;
- void *c, *d;
+ void *c, *d, *t;
char mac[18];
char res[IWINFO_BUFSIZE];
struct iwinfo_scanlist_entry *e;
@@ -441,6 +441,20 @@ rpc_iwinfo_scan(struct ubus_context *ctx, struct ubus_object *obj,
blobmsg_add_u32(&buf, "quality", e->quality);
blobmsg_add_u32(&buf, "quality_max", e->quality_max);
+ t = blobmsg_open_table(&buf, "ht_operation");
+ blobmsg_add_u32(&buf, "primary_channel", e->ht_chan_info.primary_chan);
+ blobmsg_add_string(&buf, "secondary_channel_offset", ht_secondary_offset[e->ht_chan_info.secondary_chan_off]);
+ blobmsg_add_u32(&buf, "channel_width", ht_chan_width[e->ht_chan_info.chan_width]);
+ blobmsg_close_table(&buf, t);
+
+ if (e->vht_chan_info.center_chan_1) {
+ t = blobmsg_open_table(&buf, "vht_operation");
+ blobmsg_add_u32(&buf, "channel_width", vht_chan_width[e->vht_chan_info.chan_width]);
+ blobmsg_add_u32(&buf, "center_freq_1", e->vht_chan_info.center_chan_1);
+ blobmsg_add_u32(&buf, "center_freq_2", e->vht_chan_info.center_chan_2);
+ blobmsg_close_table(&buf, t);
+ }
+
rpc_iwinfo_add_encryption("encryption", &e->crypto);
blobmsg_close_table(&buf, d);