{
static const struct blob_attr_info policy[__APMSG_NODE_MAX] = {
[APMSG_NODE_NAME] = { .type = BLOB_ATTR_STRING },
+ [APMSG_NODE_BSSID] = { .type = BLOB_ATTR_BINARY },
[APMSG_NODE_FREQ] = { .type = BLOB_ATTR_INT32 },
[APMSG_NODE_N_ASSOC] = { .type = BLOB_ATTR_INT32 },
[APMSG_NODE_MAX_ASSOC] = { .type = BLOB_ATTR_INT32 },
blob_parse(data, tb, policy, __APMSG_NODE_MAX);
if (!tb[APMSG_NODE_NAME] ||
+ !tb[APMSG_NODE_BSSID] ||
+ blob_len(tb[APMSG_NODE_BSSID]) != 6 ||
!tb[APMSG_NODE_FREQ] ||
!tb[APMSG_NODE_N_ASSOC] ||
!tb[APMSG_NODE_STATIONS] ||
msg->freq = blob_get_int32(tb[APMSG_NODE_FREQ]);
msg->stations = tb[APMSG_NODE_STATIONS];
msg->ssid = blob_data(tb[APMSG_NODE_SSID]);
+ msg->bssid = blob_data(tb[APMSG_NODE_BSSID]);
msg->noise = get_int32(tb[APMSG_NODE_NOISE]);
msg->load = get_int32(tb[APMSG_NODE_LOAD]);
node->node.max_assoc = msg.max_assoc;
node->node.noise = msg.noise;
node->node.load = msg.load;
+
+ memcpy(node->node.bssid, msg.bssid, sizeof(node->node.bssid));
+
snprintf(node->node.ssid, sizeof(node->node.ssid), "%s", msg.ssid);
usteer_node_set_blob(&node->node.rrm_nr, msg.rrm_nr);
usteer_node_set_blob(&node->node.node_info, msg.node_info);
blob_put_int32(&buf, APMSG_NODE_LOAD, node->load);
blob_put_int32(&buf, APMSG_NODE_N_ASSOC, node->n_assoc);
blob_put_int32(&buf, APMSG_NODE_MAX_ASSOC, node->max_assoc);
+ blob_put(&buf, APMSG_NODE_BSSID, node->bssid, sizeof(node->bssid));
if (node->rrm_nr) {
r = blob_nest_start(&buf, APMSG_NODE_RRM_NR);
blobmsg_add_field(&buf, BLOBMSG_TYPE_ARRAY, "",