usteer: add option for probe steering
authorStijn Tintel <stijn@linux-ipv6.be>
Mon, 27 Jun 2022 19:26:02 +0000 (22:26 +0300)
committerStijn Tintel <stijn@linux-ipv6.be>
Tue, 28 Jun 2022 00:27:13 +0000 (03:27 +0300)
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 <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
main.c
openwrt/usteer/files/etc/config/usteer
policy.c
usteer.h

diff --git a/main.c b/main.c
index c05b52900baf9c8f2f476e8cedc3414de9d755cf..03a5d74f7b040ef3f120ab305d02421ac9fbc913 100644 (file)
--- 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;
index 0d37108e1126b63c808bfba9c1d11720b472355b..9c28f3d2105f963f3896befbfd966f985481f705 100644 (file)
@@ -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
 
index e6dc9e1948b2028d72fdb0ddd8b1668fe566e31f..9d62b780688efb82e35cf6300f8bb789b8e94843 100644 (file)
--- 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;
 
index 6ec778940884083de5874f3532d9c449baf5c700..239159a632b9e086bc6d7cf7a88d771b13e442f7 100644 (file)
--- 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;