[RESEND PATCH usteer v3 9/9] New aggr. levels combined with STA specific configuration

2025-01-15 Thread Nils Hendrik Rottgardt
- band_steering: changed config option
- band_steering: handle aggressivness levels in bss transition requests
- local_node: avoid kick reset on bss tm respone if aggressivness is 3
- local_node: changed config option
- main: changed config option
- policy: changed config option
- policy: handle aggressivness levels in bss transition requests
- policy: SM stay in ROAM_TRIGGER_SCAN_DONE until disassoc_timer is over
- policy: roaming skipped if there was a positiv BSS-TM-RESP with code = 0
- policy: load mac list from options to set specific aggressivness per sta
- ubus: correct log message (typo)
- ubus: reassoc_delay is send with diasaccociation imminent = true only
- ubus: changed config option

Signed-off-by: Nils Hendrik Rottgardt 
---
 band_steering.c|  7 --
 local_node.c   | 18 +++
 main.c |  2 +-
 openwrt/usteer/files/etc/config/usteer | 15 +++-
 openwrt/usteer/files/etc/init.d/usteer |  4 ++--
 policy.c   | 32 ++
 sta.c  | 30 +---
 ubus.c | 10 
 usteer.h   | 11 +
 9 files changed, 81 insertions(+), 48 deletions(-)

diff --git a/band_steering.c b/band_steering.c
index 17eca32..a3dfd62 100644
--- a/band_steering.c
+++ b/band_steering.c
@@ -100,10 +100,13 @@ void usteer_band_steering_perform_steer(struct 
usteer_local_node *ln)
if (si->bss_transition) {
si->roam_transition_request_validity_end = current_time 
+ 1;
validity_period = 1 / 
usteer_local_node_get_beacon_interval(ln); /* ~ 10 seconds */
-   if (si->sta->aggressive) {
+   if (si->sta->aggressiveness >= 2) {
if (!si->kick_time)
si->kick_time = current_time + 
config.roam_kick_delay;
-   disassoc_timer = (si->kick_time - current_time) 
/ usteer_local_node_get_beacon_interval(ln);
+   if (si->sta->aggressiveness >= 3)
+   disassoc_timer = (si->kick_time - 
current_time) / usteer_local_node_get_beacon_interval(ln);
+   else
+   disassoc_timer = 0;
usteer_ubus_band_steering_request(si, 0, true, 
disassoc_timer, true, validity_period);
} else
usteer_ubus_band_steering_request(si, 0, false, 
0, true, validity_period);
diff --git a/local_node.c b/local_node.c
index 89490d7..b38f96f 100644
--- a/local_node.c
+++ b/local_node.c
@@ -180,10 +180,10 @@ usteer_handle_bss_tm_response(struct usteer_local_node 
*ln, struct blob_attr *ms
si->bss_transition_response.status_code = 
blobmsg_get_u8(tb[BSS_TM_RESPONSE_STATUS_CODE]);
si->bss_transition_response.timestamp = current_time;
 
-   if (si->bss_transition_response.status_code) {
+   if (si->bss_transition_response.status_code && si->kick_time && 
si->sta->aggressiveness) {
/* Cancel imminent kick in case BSS transition was rejected */
si->kick_time = 0;
-   MSG(VERBOSE, "Kick canceled because transition was rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
+   MSG(VERBOSE, "Kick canceled because transition rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
}
 
return 0;
@@ -978,20 +978,20 @@ void config_get_ssid_list(struct blob_buf *buf)
blobmsg_add_blob(buf, config.ssid_list);
 }
 
-void config_set_aggressive_mac_list(struct blob_attr *data)
+void config_set_aggressiveness_mac_list(struct blob_attr *data)
 {
-   free(config.aggressive_mac_list);
+   free(config.aggressiveness_mac_list);
 
if (data && blobmsg_len(data))
-   config.aggressive_mac_list = blob_memdup(data);
+   config.aggressiveness_mac_list = blob_memdup(data);
else
-   config.aggressive_mac_list = NULL;
+   config.aggressiveness_mac_list = NULL;
 }
 
-void config_get_aggressive_mac_list(struct blob_buf *buf)
+void config_get_aggressiveness_mac_list(struct blob_buf *buf)
 {
-   if (config.aggressive_mac_list)
-   blobmsg_add_blob(buf, config.aggressive_mac_list);
+   if (config.aggressiveness_mac_list)
+   blobmsg_add_blob(buf, config.aggressiveness_mac_list);
 }
 
 void usteer_local_nodes_init(struct ubus_context *ctx)
diff --git a/main.c b/main.c
index 69e05ae..e4a6fd0 100644
--- a/main.c
+++ b/main.c
@@ -97,7 +97,7 @@ void usteer_init_defaults(void)
config.initial_connect_delay = 0;
config.remote_node_timeout = 10;
config.reassociation_delay = 30;
-   config.aggre

[RESEND PATCH usteer v3 9/9] New aggr. levels combined with STA specific configuration

2024-12-03 Thread Nils Hendrik Rottgardt
- band_steering: changed config option
- band_steering: handle aggressivness levels in bss transition requests
- local_node: avoid kick reset on bss tm respone if aggressivness is 3
- local_node: changed config option
- main: changed config option
- policy: changed config option
- policy: handle aggressivness levels in bss transition requests
- policy: SM stay in ROAM_TRIGGER_SCAN_DONE until disassoc_timer is over
- policy: roaming skipped if there was a positiv BSS-TM-RESP with code = 0
- policy: load mac list from options to set specific aggressivness per sta
- ubus: correct log message (typo)
- ubus: reassoc_delay is send with diasaccociation imminent = true only
- ubus: changed config option

Signed-off-by: Nils Hendrik Rottgardt 
---
 band_steering.c|  7 --
 local_node.c   | 18 +++
 main.c |  2 +-
 openwrt/usteer/files/etc/config/usteer | 15 +++-
 openwrt/usteer/files/etc/init.d/usteer |  4 ++--
 policy.c   | 32 ++
 sta.c  | 30 +---
 ubus.c | 10 
 usteer.h   | 11 +
 9 files changed, 81 insertions(+), 48 deletions(-)

diff --git a/band_steering.c b/band_steering.c
index 17eca32..a3dfd62 100644
--- a/band_steering.c
+++ b/band_steering.c
@@ -100,10 +100,13 @@ void usteer_band_steering_perform_steer(struct 
usteer_local_node *ln)
if (si->bss_transition) {
si->roam_transition_request_validity_end = current_time 
+ 1;
validity_period = 1 / 
usteer_local_node_get_beacon_interval(ln); /* ~ 10 seconds */
-   if (si->sta->aggressive) {
+   if (si->sta->aggressiveness >= 2) {
if (!si->kick_time)
si->kick_time = current_time + 
config.roam_kick_delay;
-   disassoc_timer = (si->kick_time - current_time) 
/ usteer_local_node_get_beacon_interval(ln);
+   if (si->sta->aggressiveness >= 3)
+   disassoc_timer = (si->kick_time - 
current_time) / usteer_local_node_get_beacon_interval(ln);
+   else
+   disassoc_timer = 0;
usteer_ubus_band_steering_request(si, 0, true, 
disassoc_timer, true, validity_period);
} else
usteer_ubus_band_steering_request(si, 0, false, 
0, true, validity_period);
diff --git a/local_node.c b/local_node.c
index 89490d7..b38f96f 100644
--- a/local_node.c
+++ b/local_node.c
@@ -180,10 +180,10 @@ usteer_handle_bss_tm_response(struct usteer_local_node 
*ln, struct blob_attr *ms
si->bss_transition_response.status_code = 
blobmsg_get_u8(tb[BSS_TM_RESPONSE_STATUS_CODE]);
si->bss_transition_response.timestamp = current_time;
 
-   if (si->bss_transition_response.status_code) {
+   if (si->bss_transition_response.status_code && si->kick_time && 
si->sta->aggressiveness) {
/* Cancel imminent kick in case BSS transition was rejected */
si->kick_time = 0;
-   MSG(VERBOSE, "Kick canceled because transition was rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
+   MSG(VERBOSE, "Kick canceled because transition rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
}
 
return 0;
@@ -978,20 +978,20 @@ void config_get_ssid_list(struct blob_buf *buf)
blobmsg_add_blob(buf, config.ssid_list);
 }
 
-void config_set_aggressive_mac_list(struct blob_attr *data)
+void config_set_aggressiveness_mac_list(struct blob_attr *data)
 {
-   free(config.aggressive_mac_list);
+   free(config.aggressiveness_mac_list);
 
if (data && blobmsg_len(data))
-   config.aggressive_mac_list = blob_memdup(data);
+   config.aggressiveness_mac_list = blob_memdup(data);
else
-   config.aggressive_mac_list = NULL;
+   config.aggressiveness_mac_list = NULL;
 }
 
-void config_get_aggressive_mac_list(struct blob_buf *buf)
+void config_get_aggressiveness_mac_list(struct blob_buf *buf)
 {
-   if (config.aggressive_mac_list)
-   blobmsg_add_blob(buf, config.aggressive_mac_list);
+   if (config.aggressiveness_mac_list)
+   blobmsg_add_blob(buf, config.aggressiveness_mac_list);
 }
 
 void usteer_local_nodes_init(struct ubus_context *ctx)
diff --git a/main.c b/main.c
index 69e05ae..e4a6fd0 100644
--- a/main.c
+++ b/main.c
@@ -97,7 +97,7 @@ void usteer_init_defaults(void)
config.initial_connect_delay = 0;
config.remote_node_timeout = 10;
config.reassociation_delay = 30;
-   config.aggre

[PATCH usteer v3 9/9] New aggr. levels combined with STA specific configuration

2024-11-07 Thread Nils Hendrik Rottgardt
- band_steering: changed config option
- band_steering: handle aggressivness levels in bss transition requests
- local_node: avoid kick reset on bss tm respone if aggressivness is 3
- local_node: changed config option
- main: changed config option
- policy: changed config option
- policy: handle aggressivness levels in bss transition requests
- policy: SM stay in ROAM_TRIGGER_SCAN_DONE until disassoc_timer is over
- policy: roaming skipped if there was a positiv BSS-TM-RESP with code = 0
- policy: load mac list from options to set specific aggressivness per sta
- ubus: correct log message (typo)
- ubus: reassoc_delay is send with diasaccociation imminent = true only
- ubus: changed config option

Signed-off-by: Nils Hendrik Rottgardt 
---
 band_steering.c|  7 --
 local_node.c   | 18 +++
 main.c |  2 +-
 openwrt/usteer/files/etc/config/usteer | 15 +++-
 openwrt/usteer/files/etc/init.d/usteer |  4 ++--
 policy.c   | 32 ++
 sta.c  | 30 +---
 ubus.c | 10 
 usteer.h   | 11 +
 9 files changed, 81 insertions(+), 48 deletions(-)

diff --git a/band_steering.c b/band_steering.c
index 17eca32..a3dfd62 100644
--- a/band_steering.c
+++ b/band_steering.c
@@ -100,10 +100,13 @@ void usteer_band_steering_perform_steer(struct 
usteer_local_node *ln)
if (si->bss_transition) {
si->roam_transition_request_validity_end = current_time 
+ 1;
validity_period = 1 / 
usteer_local_node_get_beacon_interval(ln); /* ~ 10 seconds */
-   if (si->sta->aggressive) {
+   if (si->sta->aggressiveness >= 2) {
if (!si->kick_time)
si->kick_time = current_time + 
config.roam_kick_delay;
-   disassoc_timer = (si->kick_time - current_time) 
/ usteer_local_node_get_beacon_interval(ln);
+   if (si->sta->aggressiveness >= 3)
+   disassoc_timer = (si->kick_time - 
current_time) / usteer_local_node_get_beacon_interval(ln);
+   else
+   disassoc_timer = 0;
usteer_ubus_band_steering_request(si, 0, true, 
disassoc_timer, true, validity_period);
} else
usteer_ubus_band_steering_request(si, 0, false, 
0, true, validity_period);
diff --git a/local_node.c b/local_node.c
index 89490d7..b38f96f 100644
--- a/local_node.c
+++ b/local_node.c
@@ -180,10 +180,10 @@ usteer_handle_bss_tm_response(struct usteer_local_node 
*ln, struct blob_attr *ms
si->bss_transition_response.status_code = 
blobmsg_get_u8(tb[BSS_TM_RESPONSE_STATUS_CODE]);
si->bss_transition_response.timestamp = current_time;
 
-   if (si->bss_transition_response.status_code) {
+   if (si->bss_transition_response.status_code && si->kick_time && 
si->sta->aggressiveness) {
/* Cancel imminent kick in case BSS transition was rejected */
si->kick_time = 0;
-   MSG(VERBOSE, "Kick canceled because transition was rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
+   MSG(VERBOSE, "Kick canceled because transition rejected by 
sta=" MAC_ADDR_FMT "\n", MAC_ADDR_DATA(si->sta->addr));
}
 
return 0;
@@ -978,20 +978,20 @@ void config_get_ssid_list(struct blob_buf *buf)
blobmsg_add_blob(buf, config.ssid_list);
 }
 
-void config_set_aggressive_mac_list(struct blob_attr *data)
+void config_set_aggressiveness_mac_list(struct blob_attr *data)
 {
-   free(config.aggressive_mac_list);
+   free(config.aggressiveness_mac_list);
 
if (data && blobmsg_len(data))
-   config.aggressive_mac_list = blob_memdup(data);
+   config.aggressiveness_mac_list = blob_memdup(data);
else
-   config.aggressive_mac_list = NULL;
+   config.aggressiveness_mac_list = NULL;
 }
 
-void config_get_aggressive_mac_list(struct blob_buf *buf)
+void config_get_aggressiveness_mac_list(struct blob_buf *buf)
 {
-   if (config.aggressive_mac_list)
-   blobmsg_add_blob(buf, config.aggressive_mac_list);
+   if (config.aggressiveness_mac_list)
+   blobmsg_add_blob(buf, config.aggressiveness_mac_list);
 }
 
 void usteer_local_nodes_init(struct ubus_context *ctx)
diff --git a/main.c b/main.c
index 69e05ae..e4a6fd0 100644
--- a/main.c
+++ b/main.c
@@ -97,7 +97,7 @@ void usteer_init_defaults(void)
config.initial_connect_delay = 0;
config.remote_node_timeout = 10;
config.reassociation_delay = 30;
-   config.aggre