- policy: DEAUTH reason code linked to the trigger caused the DEAUTH
- ubus: add reason code to method usteer_ubus_kick_client

Signed-off-by: Nils Hendrik Rottgardt <n.rottga...@gmail.com>
---
 policy.c | 9 +++------
 ubus.c   | 4 ++--
 usteer.h | 2 +-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/policy.c b/policy.c
index b6b393f..f3150e9 100644
--- a/policy.c
+++ b/policy.c
@@ -498,8 +498,7 @@ usteer_local_node_snr_kick(struct usteer_local_node *ln)
                ev.threshold.cur = si->signal;
                ev.count = si->kick_count;
                usteer_event(&ev);
-
-               usteer_ubus_kick_client(si);
+               usteer_ubus_kick_client(si, 1);
                return;
        }
 }
@@ -582,8 +581,7 @@ usteer_local_node_load_kick(struct usteer_local_node *ln)
        ev.si_cur = kick1;
        ev.si_other = candidate;
        ev.count = kick1->kick_count;
-
-       usteer_ubus_kick_client(kick1);
+       usteer_ubus_kick_client(kick1, config.load_kick_reason_code);
 
 out:
        usteer_event(&ev);
@@ -597,8 +595,7 @@ usteer_local_node_perform_kick(struct usteer_local_node *ln)
        list_for_each_entry(si, &ln->node.sta_info, node_list) {
                if (!si->kick_time || si->kick_time > current_time)
                        continue;
-
-               usteer_ubus_kick_client(si);
+               usteer_ubus_kick_client(si, 12);
        }
 }
 
diff --git a/ubus.c b/ubus.c
index 57b7d29..856ea3f 100644
--- a/ubus.c
+++ b/ubus.c
@@ -771,13 +771,13 @@ int usteer_ubus_trigger_client_scan(struct sta_info *si)
        return ubus_invoke(ubus_ctx, ln->obj_id, "rrm_beacon_req", b.head, 
NULL, 0, 100);
 }
 
-void usteer_ubus_kick_client(struct sta_info *si)
+void usteer_ubus_kick_client(struct sta_info *si, uint32_t kick_reason_code)
 {
        struct usteer_local_node *ln = container_of(si->node, struct 
usteer_local_node, node);
 
        blob_buf_init(&b, 0);
        blobmsg_printf(&b, "addr", MAC_ADDR_FMT, MAC_ADDR_DATA(si->sta->addr));
-       blobmsg_add_u32(&b, "reason", config.load_kick_reason_code);
+       blobmsg_add_u32(&b, "reason", kick_reason_code);
        blobmsg_add_u8(&b, "deauth", 1);
        ubus_invoke(ubus_ctx, ln->obj_id, "del_client", b.head, NULL, 0, 100);
        usteer_sta_disconnected(si);
diff --git a/usteer.h b/usteer.h
index ec6e251..680981f 100644
--- a/usteer.h
+++ b/usteer.h
@@ -341,7 +341,7 @@ void usteer_band_steering_sta_update(struct sta_info *si);
 bool usteer_band_steering_is_target(struct usteer_local_node *ln, struct 
usteer_node *node);
 
 void usteer_ubus_init(struct ubus_context *ctx);
-void usteer_ubus_kick_client(struct sta_info *si);
+void usteer_ubus_kick_client(struct sta_info *si, uint32_t kick_reason_code);
 int usteer_ubus_trigger_client_scan(struct sta_info *si);
 int usteer_ubus_band_steering_request(struct sta_info *si,
                                       uint8_t dialog_token,
-- 
2.39.5


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to