From 8632ab09348c57b9a45caa836902cbdee78cbdd9 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Tue, 13 Jun 2023 13:23:19 +0200 Subject: [PATCH] fix backhaul bss config TLV on SIGHUP --- src/cntlr.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/cntlr.c b/src/cntlr.c index ee04438c..4fa2428a 100644 --- a/src/cntlr.c +++ b/src/cntlr.c @@ -1521,20 +1521,31 @@ bool cntlr_check_config_diff(struct controller *c, uint8_t diff) /* send the policy config cmdu to the marked agent */ list_for_each_entry(n, &c->nodelist, list) { struct cmdu_buff *cmdu; - int num_bk = 1; - uint8_t bk_id[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - struct radio_policy *rp = NULL; + int num_bk = 0; + uint8_t bk_id[16 * 6] = {0}; uint8_t radio_id[MAX_NUM_RADIO * 6] = {0}; + struct netif_radio *r = NULL; int num_radio = 0; if ((diff & CONFIG_DIFF_AGENT_POLICY) && !n->np->is_policy_diff) continue; - list_for_each_entry(rp, &n->np->radiolist, list) { + list_for_each_entry(r, &n->radiolist, list) { + struct netif_iface *iface = NULL; + memcpy(&radio_id[num_radio * 6], - rp->macaddr, - 6); + r->radio_el->macaddr, 6); num_radio++; + + list_for_each_entry(iface, &r->iflist, list) { + if (!iface->bss->is_bbss) + continue; + + memcpy(&bk_id[num_bk * 6], + iface->bss->bssid, 6); + num_bk++; + } + } cmdu = cntlr_gen_policy_config_req(c, n->alid, -- GitLab