diff --git a/src/agent_tlv.c b/src/agent_tlv.c index 5a9a1604123d5d7525d67c5711cb6fec62865f99..799ffd0d21befc21a8b33f0c278c20ad3e463f45 100644 --- a/src/agent_tlv.c +++ b/src/agent_tlv.c @@ -3305,6 +3305,7 @@ put_tlv: int agent_gen_bk_sta_radio_cap_tlv(struct agent *a, struct cmdu_buff *cmdu, struct wifi_radio_element *re) { + uint8_t empty[6] = {}; struct tlv_bsta_radio_cap *p; struct tlv *t; int ret; @@ -3322,9 +3323,13 @@ int agent_gen_bk_sta_radio_cap_tlv(struct agent *a, struct cmdu_buff *cmdu, t->len = 7; p = (struct tlv_bsta_radio_cap *) t->data; memcpy(p->radio, re->macaddr, 6); - memcpy(p->macaddr, re->bk.macaddr, 6); - p->macaddr_included = BSTA_MACADDRESS_INCLUDED; - t->len += 6; + + p->macaddr_included = 0; + if (memcmp(re->bk.macaddr, empty, 6)) { + memcpy(p->macaddr, re->bk.macaddr, 6); + p->macaddr_included = BSTA_MACADDRESS_INCLUDED; + t->len += 6; + } ret = cmdu_put_tlv(cmdu, t); if (ret) {