mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-03-09 15:40:12 +00:00
ubus: filter neighbors by SSID when preparing nr
Only add neighbors with the same SSID to an interface's neighbor report. While it is possible to offer roaming to a different SSID, it is often not desired, while at least Apple devices limit the number of entries they will use to 6. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
This commit is contained in:
parent
3db9607b14
commit
555268b91d
2 changed files with 6 additions and 5 deletions
|
@ -78,7 +78,7 @@ int build_hearing_map_sort_client(struct blob_buf* b);
|
||||||
|
|
||||||
int build_network_overview(struct blob_buf* b);
|
int build_network_overview(struct blob_buf* b);
|
||||||
|
|
||||||
int ap_get_nr(struct blob_buf* b, struct dawn_mac own_bssid_addr);
|
int ap_get_nr(struct blob_buf* b, struct dawn_mac own_bssid_addr, const char *ssid);
|
||||||
|
|
||||||
int parse_add_mac_to_file(struct blob_attr* msg);
|
int parse_add_mac_to_file(struct blob_attr* msg);
|
||||||
|
|
||||||
|
|
|
@ -867,7 +867,7 @@ void ubus_set_nr(){
|
||||||
if (sub->subscribed) {
|
if (sub->subscribed) {
|
||||||
int timeout = 1;
|
int timeout = 1;
|
||||||
blob_buf_init(&b_nr, 0);
|
blob_buf_init(&b_nr, 0);
|
||||||
ap_get_nr(&b_nr, sub->bssid_addr);
|
ap_get_nr(&b_nr, sub->bssid_addr, sub->ssid);
|
||||||
ubus_invoke(ctx, sub->id, "rrm_nr_set", b_nr.head, NULL, NULL, timeout * 1000);
|
ubus_invoke(ctx, sub->id, "rrm_nr_set", b_nr.head, NULL, NULL, timeout * 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1563,7 +1563,7 @@ int build_network_overview(struct blob_buf *b) {
|
||||||
|
|
||||||
// TODO: Does all APs constitute neighbor report? How about using list of AP connected
|
// TODO: Does all APs constitute neighbor report? How about using list of AP connected
|
||||||
// clients can also see (from probe_set) to give more (physically) local set?
|
// clients can also see (from probe_set) to give more (physically) local set?
|
||||||
int ap_get_nr(struct blob_buf *b_local, struct dawn_mac own_bssid_addr) {
|
int ap_get_nr(struct blob_buf *b_local, struct dawn_mac own_bssid_addr, const char *ssid) {
|
||||||
|
|
||||||
pthread_mutex_lock(&ap_array_mutex);
|
pthread_mutex_lock(&ap_array_mutex);
|
||||||
ap *i;
|
ap *i;
|
||||||
|
@ -1571,8 +1571,9 @@ int ap_get_nr(struct blob_buf *b_local, struct dawn_mac own_bssid_addr) {
|
||||||
void* nbs = blobmsg_open_array(b_local, "list");
|
void* nbs = blobmsg_open_array(b_local, "list");
|
||||||
|
|
||||||
for (i = ap_set; i != NULL; i = i->next_ap) {
|
for (i = ap_set; i != NULL; i = i->next_ap) {
|
||||||
if (mac_is_equal_bb(own_bssid_addr, i->bssid_addr)) {
|
if (mac_is_equal_bb(own_bssid_addr, i->bssid_addr) ||
|
||||||
continue; //TODO: Skip own entry?!
|
strncmp((char *)i->ssid, ssid, SSID_MAX_LEN)) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* nr_entry = blobmsg_open_array(b_local, NULL);
|
void* nr_entry = blobmsg_open_array(b_local, NULL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue