Skip to content
Snippets Groups Projects
Commit c0083f8f authored by Jakob Olsson's avatar Jakob Olsson Committed by Filip Matusiak
Browse files

periodically query 1905 link metrics

parent 5eb51d87
No related tags found
1 merge request!377Backport changes in combined_link_metric_periodic_collection
Pipeline #172549 passed
......@@ -1912,24 +1912,23 @@ static void cntlr_ageout_nodes(struct controller *c)
static void combined_link_metric_periodic_collection(struct controller *c)
{
trace("%s: --->\n", __func__);
struct node *p = NULL;
uint8_t *radiolist = NULL, *bsslist = NULL;
struct cmdu_buff *cmdu;
struct node *n = NULL;
/* AP metrics query for each agent */
/* For each agent */
list_for_each_entry(p, &c->nodelist, list) {
list_for_each_entry(n, &c->nodelist, list) {
uint8_t *new_radiolist;
struct node *n;
struct cmdu_buff *cmdu;
struct netif_radio *r = NULL;
int num_bss = 0, num_radio = 0;
uint8_t hwaddr[6];
num_radio = 0;
num_bss = 0;
memcpy(hwaddr, p->alid, 6);
memcpy(hwaddr, n->alid, 6);
/* For each radio */
list_for_each_entry(r, &p->radiolist, list) {
list_for_each_entry(r, &n->radiolist, list) {
struct netif_iface *bss = NULL;
int radio_index;
......@@ -1975,7 +1974,7 @@ static void combined_link_metric_periodic_collection(struct controller *c)
if (num_bss > 0) {
cmdu = cntlr_gen_ap_metrics_query(c, hwaddr, num_bss, bsslist, num_radio, radiolist);
if (!cmdu) {
trace("cmdu_gen failed!\n");
trace("cmdu cntlr_gen_ap_metrics_query failed!\n");
goto error;
}
send_cmdu(c, cmdu);
......@@ -1984,6 +1983,16 @@ static void combined_link_metric_periodic_collection(struct controller *c)
dbg("Skip sending AP metrics query, no BSS to query\n");
}
cmdu = cntlr_gen_1905_link_metric_query(c, n->alid);
if (!cmdu) {
trace("cmdu cntlr_gen_1905_link_metric_query failed!\n");
goto error;
}
send_cmdu(c, cmdu);
cmdu_free(cmdu);
}
/* query i1905d base CMDU */
cmdu = ieee1905_ubus_buildcmdu(c->ubus_ctx, CMDU_TYPE_LINK_METRIC_RESPONSE);
if (!cmdu)
......@@ -1998,7 +2007,6 @@ static void combined_link_metric_periodic_collection(struct controller *c)
handle_link_metrics_response(c, cmdu, n);
cmdu_free(cmdu);
}
error:
if (radiolist)
free(radiolist);
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment