mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-06-08 06:27:23 +02:00

This adds a new (less severe) 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. Now that we have multiple blacklist reasons there may be situations where a blacklist entry already exists but with a different reason. This is going to be handled by the reason severity. Since we have just two reasons we will treat a connection failure as most severe and a roam requested as less severe. This leaves us with two possible situations: 1. BSS is roam blacklisted, then gets connection blacklisted: The reason will be "promoted" to connection blacklisted. 2. BSS is connection blacklisted, then gets roam blacklisted: The blacklist request will be ignored
41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
/*
|
|
*
|
|
* Wireless daemon for Linux
|
|
*
|
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
enum blacklist_reason {
|
|
/*
|
|
* When a BSS is blacklisted using this reason IWD will refuse to
|
|
* connect to it via autoconnect
|
|
*/
|
|
BLACKLIST_REASON_CONNECT_FAILED,
|
|
/*
|
|
* 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);
|
|
bool blacklist_contains_bss(const uint8_t *addr, enum blacklist_reason reason);
|
|
void blacklist_remove_bss(const uint8_t *addr, enum blacklist_reason reason);
|