From afa6bf2f08cc0678e9bfa6ff8d553206382f7b6c Mon Sep 17 00:00:00 2001 From: PolynomialDivision Date: Sat, 27 Jan 2018 17:30:22 +0100 Subject: [PATCH] add bandwith and collision domain --- files/dawn.config | 1 + src/include/datastorage.h | 4 +++- src/utils/dawn_uci.c | 1 + src/utils/ubus.c | 13 ++++++++++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/files/dawn.config b/files/dawn.config index a763a19..8996d98 100644 --- a/files/dawn.config +++ b/files/dawn.config @@ -7,6 +7,7 @@ config network option iv 'Niiiiiiiiiiiiiik' option use_symm_enc '1' option collision_domain '0' # enter here aps which are in the same collision domain + option bandwidth '1000' config ordering option sort_order 'cbfs' diff --git a/src/include/datastorage.h b/src/include/datastorage.h index 88ae52e..463fb12 100644 --- a/src/include/datastorage.h +++ b/src/include/datastorage.h @@ -82,6 +82,7 @@ struct network_config_s { int bool_multicast; int use_symm_enc; int collision_domain; + int bandwidth; }; struct network_config_s network_config; @@ -187,7 +188,8 @@ typedef struct ap_s { time_t time; uint32_t station_count; uint8_t ssid[SSID_MAX_LEN]; - int collision_domain; + uint32_t collision_domain; + uint32_t bandwidth; } ap; // ---------------- Defines ---------------- diff --git a/src/utils/dawn_uci.c b/src/utils/dawn_uci.c index bf0da96..20bfca4 100644 --- a/src/utils/dawn_uci.c +++ b/src/utils/dawn_uci.c @@ -99,6 +99,7 @@ struct network_config_s uci_get_dawn_network() { ret.tcp_port = uci_lookup_option_int(uci_ctx, s, "tcp_port"); ret.use_symm_enc = uci_lookup_option_int(uci_ctx, s, "use_symm_enc"); ret.collision_domain = uci_lookup_option_int(uci_ctx, s, "collision_domain"); + ret.bandwidth = uci_lookup_option_int(uci_ctx, s, "bandwidth"); return ret; } } diff --git a/src/utils/ubus.c b/src/utils/ubus.c index e7dfca4..72d98c2 100644 --- a/src/utils/ubus.c +++ b/src/utils/ubus.c @@ -123,6 +123,7 @@ enum { CLIENT_TABLE_CHAN_UTIL, CLIENT_TABLE_NUM_STA, CLIENT_TABLE_COL_DOMAIN, + CLIENT_TABLE_BANDWIDTH, __CLIENT_TABLE_MAX, }; @@ -136,6 +137,7 @@ static const struct blobmsg_policy client_table_policy[__CLIENT_TABLE_MAX] = { [CLIENT_TABLE_CHAN_UTIL] = {.name = "channel_utilization", .type = BLOBMSG_TYPE_INT32}, [CLIENT_TABLE_NUM_STA] = {.name = "num_sta", .type = BLOBMSG_TYPE_INT32}, [CLIENT_TABLE_COL_DOMAIN] = {.name = "collision_domain", .type = BLOBMSG_TYPE_INT32}, + [CLIENT_TABLE_BANDWIDTH] = {.name = "bandwidth", .type = BLOBMSG_TYPE_INT32}, }; enum { @@ -864,6 +866,13 @@ int parse_to_clients(struct blob_attr *msg, int do_kick, uint32_t id) { ap_entry.collision_domain = -1; } + if (tb[CLIENT_TABLE_BANDWIDTH]) + { + ap_entry.bandwidth = blobmsg_get_u32(tb[CLIENT_TABLE_BANDWIDTH]); + } else { + ap_entry.bandwidth = -1; + } + if (tb[CLIENT_TABLE_NUM_STA]) { ap_entry.station_count = blobmsg_get_u32(tb[CLIENT_TABLE_NUM_STA]); } else { @@ -888,8 +897,10 @@ static void ubus_get_clients_cb(struct ubus_request *req, int type, struct blob_ blob_buf_init(&b_domain, 0); blobmsg_add_json_from_string(&b_domain, data_str); blobmsg_add_u32(&b_domain, "collision_domain", network_config.collision_domain); + blobmsg_add_u32(&b_domain, "bandwidth", network_config.bandwidth); + char* collision_string = blobmsg_format_json(b_domain.head, 1); - printf("ADDED COLLISION DOMAIN: %s\n", collision_string); + printf("ADDED COLLISION DOMAIN AND BANDWITDH: %s\n", collision_string); send_blob_attr_via_network(b_domain.head, "clients"); parse_to_clients(b_domain.head, 1, req->peer);