From 73c424b9e4d7251aa23f110cce1ea70e06c1a51f Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Mon, 27 Jun 2022 22:26:02 +0300 Subject: [PATCH] usteer: add option for probe steering Probe suppression is mostly useful in high density deployments, where all APs responding to all client probes would result in all channels being saturated. It effectively hides APs from clients, and can cause problems in normal density deployments. Add an option for it, so it can be disabled. Signed-off-by: Stijn Tintel Acked-by: David Bauer --- main.c | 2 ++ openwrt/usteer/files/etc/config/usteer | 3 +++ policy.c | 3 +++ usteer.h | 1 + 4 files changed, 9 insertions(+) diff --git a/main.c b/main.c index c05b529..03a5d74 100644 --- a/main.c +++ b/main.c @@ -104,6 +104,8 @@ void usteer_init_defaults(void) config.link_measurement_interval = 30000; + config.probe_steering = 1; + config.roam_kick_delay = 10000; config.roam_process_timeout = 5 * 1000; config.roam_scan_tries = 3; diff --git a/openwrt/usteer/files/etc/config/usteer b/openwrt/usteer/files/etc/config/usteer index 0d37108..9c28f3d 100644 --- a/openwrt/usteer/files/etc/config/usteer +++ b/openwrt/usteer/files/etc/config/usteer @@ -56,6 +56,9 @@ config usteer # Allow rejecting assoc requests for steering purposes (0/1) #option assoc_steering 0 + # Allow ignoring probe requests for steering purposes (0/1) + #option probe_steering 1 + # Minimum signal-to-noise ratio or signal level (dBm) to allow connections #option min_connect_snr 0 diff --git a/policy.c b/policy.c index e6dc9e1..9d62b78 100644 --- a/policy.c +++ b/policy.c @@ -176,6 +176,9 @@ usteer_check_request(struct sta_info *si, enum usteer_event_type type) int min_signal; bool ret = true; + if (type == EVENT_TYPE_PROBE && !config.probe_steering) + goto out; + if (type == EVENT_TYPE_AUTH) goto out; diff --git a/usteer.h b/usteer.h index 6ec7789..239159a 100644 --- a/usteer.h +++ b/usteer.h @@ -160,6 +160,7 @@ struct usteer_config { uint32_t measurement_report_timeout; bool assoc_steering; + bool probe_steering; uint32_t max_neighbor_reports;