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>
This commit is contained in:
Ansuel Smith 2020-12-06 02:11:17 +01:00 committed by Daniel Golle
parent 3fea655981
commit fd017ba339

View file

@ -403,7 +403,7 @@ rpc_iwinfo_scan(struct ubus_context *ctx, struct ubus_object *obj,
struct blob_attr *msg) struct blob_attr *msg)
{ {
int i, rv, len; int i, rv, len;
void *c, *d; void *c, *d, *t;
char mac[18]; char mac[18];
char res[IWINFO_BUFSIZE]; char res[IWINFO_BUFSIZE];
struct iwinfo_scanlist_entry *e; 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", e->quality);
blobmsg_add_u32(&buf, "quality_max", e->quality_max); 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); rpc_iwinfo_add_encryption("encryption", &e->crypto);
blobmsg_close_table(&buf, d); blobmsg_close_table(&buf, d);