From: James Prestwood <prestwoj@gmail.com>
To: iwd@lists.linux.dev
Cc: James Prestwood <prestwoj@gmail.com>
Subject: [PATCH 5/8] blacklist: add new blacklist reason, ROAM_REQUESTED
Date: Mon, 10 Mar 2025 14:40:56 -0700 [thread overview]
Message-ID: <20250310214059.20809-5-prestwoj@gmail.com> (raw)
In-Reply-To: <20250310214059.20809-1-prestwoj@gmail.com>
This adds a new blacklist reason as well as an option to configure
the timeout. This blacklist reason will be used in cases where a
BSS has requested IWD roam elsewhere. At that time a new blacklist
entry will be added which will be used along with some other criteria
to determine if IWD should connect/roam to that BSS again.
---
src/blacklist.c | 16 ++++++++++++++++
src/blacklist.h | 7 +++++++
2 files changed, 23 insertions(+)
diff --git a/src/blacklist.c b/src/blacklist.c
index eef3f730..178cb41c 100644
--- a/src/blacklist.c
+++ b/src/blacklist.c
@@ -45,6 +45,7 @@
static uint64_t blacklist_multiplier;
static uint64_t blacklist_initial_timeout;
+static uint64_t blacklist_roam_initial_timeout;
static uint64_t blacklist_max_timeout;
struct blacklist_entry {
@@ -86,6 +87,13 @@ static struct blacklist_entry *blacklist_entry_new(const uint8_t *addr,
added = 0;
expires = 0;
break;
+ case BLACKLIST_REASON_ROAM_REQUESTED:
+ if (!blacklist_roam_initial_timeout)
+ return NULL;
+
+ added = l_time_now();
+ expires = l_time_offset(added, blacklist_roam_initial_timeout);
+ break;
default:
l_warn("Unhandled blacklist reason: %u", reason);
return NULL;
@@ -211,6 +219,14 @@ static int blacklist_init(void)
/* For easier user configuration the timeout values are in seconds */
blacklist_initial_timeout *= L_USEC_PER_SEC;
+ if (!l_settings_get_uint64(config, "Blacklist",
+ "InitialRoamRequestedTimeout",
+ &blacklist_roam_initial_timeout))
+ blacklist_roam_initial_timeout = BLACKLIST_DEFAULT_TIMEOUT;
+
+ /* For easier user configuration the timeout values are in seconds */
+ blacklist_roam_initial_timeout *= L_USEC_PER_SEC;
+
if (!l_settings_get_uint64(config, "Blacklist",
"Multiplier",
&blacklist_multiplier))
diff --git a/src/blacklist.h b/src/blacklist.h
index 6ce26aba..ec4c6de3 100644
--- a/src/blacklist.h
+++ b/src/blacklist.h
@@ -33,6 +33,13 @@ enum blacklist_reason {
* appropriate (after a connection/disconnection)
*/
BLACKLIST_REASON_TEMPORARY,
+ /*
+ * This type of blacklist is added when a BSS requests IWD roams
+ * elsewhere. This is to aid in preventing IWD from roaming/connecting
+ * back to that BSS in the future unless there are no other "good"
+ * candidates to connect to.
+ */
+ BLACKLIST_REASON_ROAM_REQUESTED,
};
void blacklist_add_bss(const uint8_t *addr, enum blacklist_reason reason);
--
2.34.1
next prev parent reply other threads:[~2025-03-10 21:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 21:40 [PATCH 1/8] blacklist: include a blacklist reason when adding/finding James Prestwood
2025-03-10 21:40 ` [PATCH 2/8] blacklist: fix pruning to remove the entry if its expired James Prestwood
2025-03-10 21:40 ` [PATCH 3/8] blacklist: add BLACKLIST_REASON_TEMPORARY James Prestwood
2025-03-10 21:40 ` [PATCH 4/8] network: update to use blacklist's new temporary type James Prestwood
2025-03-10 21:40 ` James Prestwood [this message]
2025-03-10 21:40 ` [PATCH 6/8] scan: Introduce higher level scan BSS groups James Prestwood
2025-03-10 21:40 ` [PATCH 7/8] station: roam blacklist BSS when a roam is requested James Prestwood
2025-03-10 21:40 ` [PATCH 8/8] auto-t: add test for AP roam blacklisting James Prestwood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250310214059.20809-5-prestwoj@gmail.com \
--to=prestwoj@gmail.com \
--cc=iwd@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.