qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Replace blacklist/whitelist with denylist/allowlist for blacklist manager component. and replace blm with dlm. Change-Id: I8dec146d8cb3b61dc891b72bea44704b8ab733fe CRs-Fixed: 3087575
This commit is contained in:

committed by
Madan Koyyalamudi

parent
2d84395960
commit
51509a327f
8
Kbuild
8
Kbuild
@@ -1551,12 +1551,12 @@ MLME_OBJS += $(WFA_TGT_IF_DIR)/src/target_if_wfa_testcmd.o \
|
|||||||
|
|
||||||
$(call add-wlan-objs,mlme,$(MLME_OBJS))
|
$(call add-wlan-objs,mlme,$(MLME_OBJS))
|
||||||
|
|
||||||
####### BLACKLIST_MGR ########
|
####### DENYLIST_MGR ########
|
||||||
|
|
||||||
BLM_DIR := components/blacklist_mgr
|
BLM_DIR := components/blacklist_mgr
|
||||||
BLM_INC := -I$(WLAN_ROOT)/$(BLM_DIR)/core/inc \
|
BLM_INC := -I$(WLAN_ROOT)/$(BLM_DIR)/core/inc \
|
||||||
-I$(WLAN_ROOT)/$(BLM_DIR)/dispatcher/inc
|
-I$(WLAN_ROOT)/$(BLM_DIR)/dispatcher/inc
|
||||||
ifeq ($(CONFIG_FEATURE_BLACKLIST_MGR), y)
|
ifeq ($(CONFIG_FEATURE_DENYLIST_MGR), y)
|
||||||
BLM_OBJS := $(BLM_DIR)/core/src/wlan_blm_main.o \
|
BLM_OBJS := $(BLM_DIR)/core/src/wlan_blm_main.o \
|
||||||
$(BLM_DIR)/core/src/wlan_blm_core.o \
|
$(BLM_DIR)/core/src/wlan_blm_core.o \
|
||||||
$(BLM_DIR)/dispatcher/src/wlan_blm_ucfg_api.o \
|
$(BLM_DIR)/dispatcher/src/wlan_blm_ucfg_api.o \
|
||||||
@@ -1665,7 +1665,7 @@ CLD_TARGET_IF_INC += -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/disa/inc
|
|||||||
CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/disa/src/target_if_disa.o
|
CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/disa/src/target_if_disa.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_FEATURE_BLACKLIST_MGR), y)
|
ifeq ($(CONFIG_FEATURE_DENYLIST_MGR), y)
|
||||||
CLD_TARGET_IF_INC += -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/blacklist_mgr/inc
|
CLD_TARGET_IF_INC += -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/blacklist_mgr/inc
|
||||||
CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/blacklist_mgr/src/target_if_blm.o
|
CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/blacklist_mgr/src/target_if_blm.o
|
||||||
endif
|
endif
|
||||||
@@ -2933,7 +2933,7 @@ cppflags-$(CONFIG_REG_CLIENT) += -DCONFIG_REG_CLIENT
|
|||||||
cppflags-$(CONFIG_WLAN_PMO_ENABLE) += -DWLAN_PMO_ENABLE
|
cppflags-$(CONFIG_WLAN_PMO_ENABLE) += -DWLAN_PMO_ENABLE
|
||||||
cppflags-$(CONFIG_CONVERGED_P2P_ENABLE) += -DCONVERGED_P2P_ENABLE
|
cppflags-$(CONFIG_CONVERGED_P2P_ENABLE) += -DCONVERGED_P2P_ENABLE
|
||||||
cppflags-$(CONFIG_WLAN_POLICY_MGR_ENABLE) += -DWLAN_POLICY_MGR_ENABLE
|
cppflags-$(CONFIG_WLAN_POLICY_MGR_ENABLE) += -DWLAN_POLICY_MGR_ENABLE
|
||||||
cppflags-$(CONFIG_FEATURE_BLACKLIST_MGR) += -DFEATURE_BLACKLIST_MGR
|
cppflags-$(CONFIG_FEATURE_DENYLIST_MGR) += -DFEATURE_DENYLIST_MGR
|
||||||
cppflags-$(CONFIG_WAPI_BIG_ENDIAN) += -DFEATURE_WAPI_BIG_ENDIAN
|
cppflags-$(CONFIG_WAPI_BIG_ENDIAN) += -DFEATURE_WAPI_BIG_ENDIAN
|
||||||
cppflags-$(CONFIG_SUPPORT_11AX) += -DSUPPORT_11AX
|
cppflags-$(CONFIG_SUPPORT_11AX) += -DSUPPORT_11AX
|
||||||
cppflags-$(CONFIG_HDD_INIT_WITH_RTNL_LOCK) += -DCONFIG_HDD_INIT_WITH_RTNL_LOCK
|
cppflags-$(CONFIG_HDD_INIT_WITH_RTNL_LOCK) += -DCONFIG_HDD_INIT_WITH_RTNL_LOCK
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,124 +17,124 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: declare internal APIs related to the blacklist component
|
* DOC: declare internal APIs related to the denylist component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_CORE_H_
|
#ifndef _WLAN_DLM_CORE_H_
|
||||||
#define _WLAN_BLM_CORE_H_
|
#define _WLAN_DLM_CORE_H_
|
||||||
|
|
||||||
#include <wlan_blm_main.h>
|
#include <wlan_blm_main.h>
|
||||||
|
|
||||||
#define BLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) \
|
#define DLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) \
|
||||||
cur_node->userspace_avoidlist
|
(cur_node)->userspace_avoidlist
|
||||||
|
|
||||||
#define BLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) \
|
#define DLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) \
|
||||||
cur_node->driver_avoidlist
|
(cur_node)->driver_avoidlist
|
||||||
|
|
||||||
#define BLM_IS_AP_BLACKLISTED_BY_USERSPACE(cur_node) \
|
#define DLM_IS_AP_DENYLISTED_BY_USERSPACE(cur_node) \
|
||||||
cur_node->userspace_blacklist
|
(cur_node)->userspace_denylist
|
||||||
|
|
||||||
#define BLM_IS_AP_BLACKLISTED_BY_DRIVER(cur_node) \
|
#define DLM_IS_AP_DENYLISTED_BY_DRIVER(cur_node) \
|
||||||
cur_node->driver_blacklist
|
(cur_node)->driver_denylist
|
||||||
|
|
||||||
#define BLM_IS_AP_IN_MONITOR_LIST(cur_node) \
|
#define DLM_IS_AP_IN_MONITOR_LIST(cur_node) \
|
||||||
cur_node->driver_monitorlist
|
(cur_node)->driver_monitorlist
|
||||||
|
|
||||||
#define BLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) \
|
#define DLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) \
|
||||||
cur_node->rssi_reject_list
|
(cur_node)->rssi_reject_list
|
||||||
|
|
||||||
#define BLM_IS_AP_IN_BLACKLIST(cur_node) \
|
#define DLM_IS_AP_IN_DENYLIST(cur_node) \
|
||||||
(BLM_IS_AP_BLACKLISTED_BY_USERSPACE(cur_node) | \
|
(DLM_IS_AP_DENYLISTED_BY_USERSPACE(cur_node) | \
|
||||||
BLM_IS_AP_BLACKLISTED_BY_DRIVER(cur_node) | \
|
DLM_IS_AP_DENYLISTED_BY_DRIVER(cur_node) | \
|
||||||
BLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node))
|
DLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node))
|
||||||
|
|
||||||
#define BLM_IS_AP_IN_AVOIDLIST(cur_node) \
|
#define DLM_IS_AP_IN_AVOIDLIST(cur_node) \
|
||||||
(BLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) | \
|
(DLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) | \
|
||||||
BLM_IS_AP_AVOIDED_BY_DRIVER(cur_node))
|
DLM_IS_AP_AVOIDED_BY_DRIVER(cur_node))
|
||||||
|
|
||||||
#define IS_AP_IN_USERSPACE_BLACKLIST_ONLY(cur_node) \
|
#define IS_AP_IN_USERSPACE_DENYLIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_BLACKLISTED_BY_USERSPACE(cur_node) & \
|
(DLM_IS_AP_DENYLISTED_BY_USERSPACE(cur_node) & \
|
||||||
!(BLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
!(DLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) | \
|
DLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) | \
|
||||||
BLM_IS_AP_BLACKLISTED_BY_DRIVER(cur_node)))
|
DLM_IS_AP_DENYLISTED_BY_DRIVER(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_MONITOR_LIST_ONLY(cur_node) \
|
#define IS_AP_IN_MONITOR_LIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_IN_MONITOR_LIST(cur_node) & \
|
(DLM_IS_AP_IN_MONITOR_LIST(cur_node) & \
|
||||||
!(BLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
!(DLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_BLACKLIST(cur_node)))
|
DLM_IS_AP_IN_DENYLIST(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_AVOID_LIST_ONLY(cur_node) \
|
#define IS_AP_IN_AVOID_LIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_IN_AVOIDLIST(cur_node) & \
|
(DLM_IS_AP_IN_AVOIDLIST(cur_node) & \
|
||||||
!(BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
!(DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_BLACKLIST(cur_node)))
|
DLM_IS_AP_IN_DENYLIST(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_DRIVER_BLACKLIST_ONLY(cur_node) \
|
#define IS_AP_IN_DRIVER_DENYLIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_BLACKLISTED_BY_DRIVER(cur_node) & \
|
(DLM_IS_AP_DENYLISTED_BY_DRIVER(cur_node) & \
|
||||||
!(BLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
!(DLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) | \
|
DLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) | \
|
||||||
BLM_IS_AP_BLACKLISTED_BY_USERSPACE(cur_node)))
|
DLM_IS_AP_DENYLISTED_BY_USERSPACE(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_RSSI_REJECT_LIST_ONLY(cur_node) \
|
#define IS_AP_IN_RSSI_REJECT_LIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) & \
|
(DLM_IS_AP_IN_RSSI_REJECT_LIST(cur_node) & \
|
||||||
!(BLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
!(DLM_IS_AP_IN_AVOIDLIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_BLACKLISTED_BY_DRIVER(cur_node) | \
|
DLM_IS_AP_DENYLISTED_BY_DRIVER(cur_node) | \
|
||||||
BLM_IS_AP_BLACKLISTED_BY_USERSPACE(cur_node)))
|
DLM_IS_AP_DENYLISTED_BY_USERSPACE(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_USERSPACE_AVOID_LIST_ONLY(cur_node) \
|
#define IS_AP_IN_USERSPACE_AVOID_LIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) & \
|
(DLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) & \
|
||||||
!(BLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) | \
|
!(DLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) | \
|
||||||
BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_BLACKLIST(cur_node)))
|
DLM_IS_AP_IN_DENYLIST(cur_node)))
|
||||||
|
|
||||||
#define IS_AP_IN_DRIVER_AVOID_LIST_ONLY(cur_node) \
|
#define IS_AP_IN_DRIVER_AVOID_LIST_ONLY(cur_node) \
|
||||||
(BLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) & \
|
(DLM_IS_AP_AVOIDED_BY_DRIVER(cur_node) & \
|
||||||
!(BLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) | \
|
!(DLM_IS_AP_AVOIDED_BY_USERSPACE(cur_node) | \
|
||||||
BLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
DLM_IS_AP_IN_MONITOR_LIST(cur_node) | \
|
||||||
BLM_IS_AP_IN_BLACKLIST(cur_node)))
|
DLM_IS_AP_IN_DENYLIST(cur_node)))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_reject_ap_timestamp - Structure to store the reject list BSSIDs
|
* struct dlm_reject_ap_timestamp - Structure to store the reject list BSSIDs
|
||||||
* entry time stamp.
|
* entry time stamp.
|
||||||
* @userspace_avoid_timestamp: Time when userspace adds BSSID to avoid list.
|
* @userspace_avoid_timestamp: Time when userspace adds BSSID to avoid list.
|
||||||
* @driver_avoid_timestamp: Time when driver adds BSSID to avoid list.
|
* @driver_avoid_timestamp: Time when driver adds BSSID to avoid list.
|
||||||
* @userspace_blacklist_timestamp: Time when userspace adds BSSID to black list.
|
* @userspace_denylist_timestamp: Time when userspace adds BSSID to deny list.
|
||||||
* @driver_blacklist_timestamp: Time when driver adds BSSID to black list.
|
* @driver_denylist_timestamp: Time when driver adds BSSID to deny list.
|
||||||
* @rssi_reject_timestamp: Time when driver adds BSSID to rssi reject list.
|
* @rssi_reject_timestamp: Time when driver adds BSSID to rssi reject list.
|
||||||
* @driver_monitor_timestamp: Time when driver adds BSSID to monitor list.
|
* @driver_monitor_timestamp: Time when driver adds BSSID to monitor list.
|
||||||
*/
|
*/
|
||||||
struct blm_reject_ap_timestamp {
|
struct dlm_reject_ap_timestamp {
|
||||||
qdf_time_t userspace_avoid_timestamp;
|
qdf_time_t userspace_avoid_timestamp;
|
||||||
qdf_time_t driver_avoid_timestamp;
|
qdf_time_t driver_avoid_timestamp;
|
||||||
qdf_time_t userspace_blacklist_timestamp;
|
qdf_time_t userspace_denylist_timestamp;
|
||||||
qdf_time_t driver_blacklist_timestamp;
|
qdf_time_t driver_denylist_timestamp;
|
||||||
qdf_time_t rssi_reject_timestamp;
|
qdf_time_t rssi_reject_timestamp;
|
||||||
qdf_time_t driver_monitor_timestamp;
|
qdf_time_t driver_monitor_timestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_reject_ap - Structure of a node added to blacklist manager
|
* struct dlm_reject_ap - Structure of a node added to denylist manager
|
||||||
* @node: Node of the entry
|
* @node: Node of the entry
|
||||||
* @bssid: Bssid of the AP entry.
|
* @bssid: Bssid of the AP entry.
|
||||||
* @rssi_reject_params: Rssi reject params of the AP entry.
|
* @rssi_reject_params: Rssi reject params of the AP entry.
|
||||||
* @bad_bssid_counter: It represent how many times data stall happened.
|
* @bad_bssid_counter: It represent how many times data stall happened.
|
||||||
* @ap_timestamp: Ap timestamp.
|
* @ap_timestamp: Ap timestamp.
|
||||||
* @reject_ap_type: what is the type of rejection for the AP (avoid, black etc.)
|
* @reject_ap_type: what is the type of rejection for the AP (avoid, deny etc.)
|
||||||
* @reject_ap_reason: reason for adding the BSSID to BLM
|
* @reject_ap_reason: reason for adding the BSSID to DLM
|
||||||
* @connect_timestamp: Timestamp when the STA got connected with this BSSID
|
* @connect_timestamp: Timestamp when the STA got connected with this BSSID
|
||||||
*/
|
*/
|
||||||
struct blm_reject_ap {
|
struct dlm_reject_ap {
|
||||||
qdf_list_node_t node;
|
qdf_list_node_t node;
|
||||||
struct qdf_mac_addr bssid;
|
struct qdf_mac_addr bssid;
|
||||||
struct blm_rssi_disallow_params rssi_reject_params;
|
struct dlm_rssi_disallow_params rssi_reject_params;
|
||||||
uint8_t bad_bssid_counter;
|
uint8_t bad_bssid_counter;
|
||||||
struct blm_reject_ap_timestamp ap_timestamp;
|
struct dlm_reject_ap_timestamp ap_timestamp;
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
uint8_t userspace_blacklist:1,
|
uint8_t userspace_denylist:1,
|
||||||
driver_blacklist:1,
|
driver_denylist:1,
|
||||||
userspace_avoidlist:1,
|
userspace_avoidlist:1,
|
||||||
driver_avoidlist:1,
|
driver_avoidlist:1,
|
||||||
rssi_reject_list:1,
|
rssi_reject_list:1,
|
||||||
@@ -148,7 +149,7 @@ struct blm_reject_ap {
|
|||||||
ho_fail:1,
|
ho_fail:1,
|
||||||
poor_rssi:1,
|
poor_rssi:1,
|
||||||
oce_assoc_reject:1,
|
oce_assoc_reject:1,
|
||||||
blacklist_userspace:1,
|
denylist_userspace:1,
|
||||||
avoid_userspace:1,
|
avoid_userspace:1,
|
||||||
btm_disassoc_imminent:1,
|
btm_disassoc_imminent:1,
|
||||||
btm_bss_termination:1,
|
btm_bss_termination:1,
|
||||||
@@ -158,145 +159,145 @@ struct blm_reject_ap {
|
|||||||
};
|
};
|
||||||
uint32_t reject_ap_reason;
|
uint32_t reject_ap_reason;
|
||||||
};
|
};
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
qdf_time_t connect_timestamp;
|
qdf_time_t connect_timestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
* dlm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
||||||
* @pdev: Pdev object
|
* @pdev: Pdev object
|
||||||
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
||||||
*
|
*
|
||||||
* This API will add the BSSID to the reject AP list maintained by the blacklist
|
* This API will add the BSSID to the reject AP list maintained by the denylist
|
||||||
* manager.
|
* manager.
|
||||||
*
|
*
|
||||||
* Return: QDF status
|
* Return: QDF status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info);
|
struct reject_ap_info *ap_info);
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
||||||
/**
|
/**
|
||||||
* blm_send_reject_ap_list_to_fw() - Send the blacklist BSSIDs to FW
|
* dlm_send_reject_ap_list_to_fw() - Send the denylist BSSIDs to FW
|
||||||
* @pdev: Pdev object
|
* @pdev: Pdev object
|
||||||
* @reject_db_list: List of blacklist BSSIDs
|
* @reject_db_list: List of denylist BSSIDs
|
||||||
* @cfg: Blacklist manager cfg
|
* @cfg: Denylist manager cfg
|
||||||
*
|
*
|
||||||
* This API will send the blacklist BSSIDs to FW for avoiding or blacklisting
|
* This API will send the denylist BSSIDs to FW for avoiding or denylisting
|
||||||
* in roaming scenarios.
|
* in roaming scenarios.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
blm_send_reject_ap_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
dlm_send_reject_ap_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_list_t *reject_db_list,
|
qdf_list_t *reject_db_list,
|
||||||
struct blm_config *cfg);
|
struct dlm_config *cfg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_update_reject_ap_list_to_fw() - Send the blacklist BSSIDs to FW
|
* dlm_update_reject_ap_list_to_fw() - Send the denylist BSSIDs to FW
|
||||||
* @psoc: psoc object
|
* @psoc: psoc object
|
||||||
*
|
*
|
||||||
* This API will send the blacklist BSSIDs to FW.
|
* This API will send the denylist BSSIDs to FW.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void blm_update_reject_ap_list_to_fw(struct wlan_objmgr_psoc *psoc);
|
void dlm_update_reject_ap_list_to_fw(struct wlan_objmgr_psoc *psoc);
|
||||||
#else
|
#else
|
||||||
static inline void blm_send_reject_ap_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
static inline void dlm_send_reject_ap_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_list_t *reject_db_list,
|
qdf_list_t *reject_db_list,
|
||||||
struct blm_config *cfg)
|
struct dlm_config *cfg)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
blm_update_reject_ap_list_to_fw(struct wlan_objmgr_psoc *psoc)
|
dlm_update_reject_ap_list_to_fw(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_add_userspace_black_list() - Clear already existing userspace BSSID, and
|
* dlm_add_userspace_deny_list() - Clear already existing userspace BSSID, and
|
||||||
* add the new ones to blacklist manager.
|
* add the new ones to denylist manager.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @bssid_black_list: BSSIDs to be blacklisted by userspace.
|
* @bssid_deny_list: BSSIDs to be denylisted by userspace.
|
||||||
* @num_of_bssid: num of bssids to be blacklisted.
|
* @num_of_bssid: num of bssids to be denylisted.
|
||||||
*
|
*
|
||||||
* This API will Clear already existing userspace BSSID, and add the new ones
|
* This API will Clear already existing userspace BSSID, and add the new ones
|
||||||
* to blacklist manager's reject list.
|
* to denylist manager's reject list.
|
||||||
*
|
*
|
||||||
* Return: QDF status
|
* Return: QDF status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_add_userspace_black_list(struct wlan_objmgr_pdev *pdev,
|
dlm_add_userspace_deny_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr *bssid_black_list,
|
struct qdf_mac_addr *bssid_deny_list,
|
||||||
uint8_t num_of_bssid);
|
uint8_t num_of_bssid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_update_bssid_connect_params() - Inform the BLM about connect/disconnect
|
* dlm_update_bssid_connect_params() - Inform the DLM about connect/disconnect
|
||||||
* with the current AP.
|
* with the current AP.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @bssid: BSSID of the AP
|
* @bssid: BSSID of the AP
|
||||||
* @con_state: Connection stae (connected/disconnected)
|
* @con_state: Connection stae (connected/disconnected)
|
||||||
*
|
*
|
||||||
* This API will inform the BLM about the state with the AP so that if the AP
|
* This API will inform the DLM about the state with the AP so that if the AP
|
||||||
* is selected, and the connection went through, and the connection did not
|
* is selected, and the connection went through, and the connection did not
|
||||||
* face any data stall till the bad bssid reset timer, BLM can remove the
|
* face any data stall till the bad bssid reset timer, DLM can remove the
|
||||||
* AP from the reject ap list maintained by it.
|
* AP from the reject ap list maintained by it.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state);
|
enum dlm_connection_state con_state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_flush_reject_ap_list() - Clear away BSSID and destroy the reject ap list
|
* dlm_flush_reject_ap_list() - Clear away BSSID and destroy the reject ap list
|
||||||
* @blm_ctx: blacklist manager pdev priv object
|
* @dlm_ctx: denylist manager pdev priv object
|
||||||
*
|
*
|
||||||
* This API will clear the BSSID info in the reject AP list maintained by the
|
* This API will clear the BSSID info in the reject AP list maintained by the
|
||||||
* blacklist manager, and will destroy the list as well.
|
* denylist manager, and will destroy the list as well.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
blm_flush_reject_ap_list(struct blm_pdev_priv_obj *blm_ctx);
|
dlm_flush_reject_ap_list(struct dlm_pdev_priv_obj *dlm_ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_get_bssid_reject_list() - Get the BSSIDs in reject list from BLM
|
* dlm_get_bssid_reject_list() - Get the BSSIDs in reject list from DLM
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @reject_list: reject list to be filled (passed by caller)
|
* @reject_list: reject list to be filled (passed by caller)
|
||||||
* @max_bssid_to_be_filled: num of bssids filled in reject list by BLM
|
* @max_bssid_to_be_filled: num of bssids filled in reject list by DLM
|
||||||
* @reject_ap_type: reject ap type of the BSSIDs to be filled.
|
* @reject_ap_type: reject ap type of the BSSIDs to be filled.
|
||||||
*
|
*
|
||||||
* This API will fill the reject ap list requested by caller of type given as
|
* This API will fill the reject ap list requested by caller of type given as
|
||||||
* argument reject_ap_type, and will return the number of BSSIDs filled.
|
* argument reject_ap_type, and will return the number of BSSIDs filled.
|
||||||
*
|
*
|
||||||
* Return: Unsigned integer (number of BSSIDs filled by the blacklist manager)
|
* Return: Unsigned integer (number of BSSIDs filled by the denylist manager)
|
||||||
*/
|
*/
|
||||||
uint8_t
|
uint8_t
|
||||||
blm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
dlm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_config_params *reject_list,
|
struct reject_ap_config_params *reject_list,
|
||||||
uint8_t max_bssid_to_be_filled,
|
uint8_t max_bssid_to_be_filled,
|
||||||
enum blm_reject_ap_type reject_ap_type);
|
enum dlm_reject_ap_type reject_ap_type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_dump_blacklist_bssid - Dump blacklisted bssids
|
* dlm_dump_denylist_bssid - Dump denylisted bssids
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void blm_dump_blacklist_bssid(struct wlan_objmgr_pdev *pdev);
|
void dlm_dump_denylist_bssid(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_get_rssi_blacklist_threshold() - Get rssi blacklist threshold value
|
* dlm_get_rssi_denylist_threshold() - Get rssi denylist threshold value
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* This API will get the RSSI blacklist threshold info.
|
* This API will get the RSSI denylist threshold info.
|
||||||
*
|
*
|
||||||
* Return: rssi theshold value
|
* Return: rssi theshold value
|
||||||
*/
|
*/
|
||||||
int32_t
|
int32_t
|
||||||
blm_get_rssi_blacklist_threshold(struct wlan_objmgr_pdev *pdev);
|
dlm_get_rssi_denylist_threshold(struct wlan_objmgr_pdev *pdev);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,79 +17,79 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: declare internal APIs related to the blacklist manager component
|
* DOC: declare internal APIs related to the denylist manager component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_MAIN_H_
|
#ifndef _WLAN_DLM_MAIN_H_
|
||||||
#define _WLAN_BLM_MAIN_H_
|
#define _WLAN_DLM_MAIN_H_
|
||||||
|
|
||||||
#include <qdf_time.h>
|
#include <qdf_time.h>
|
||||||
#include <wlan_objmgr_cmn.h>
|
#include <wlan_objmgr_cmn.h>
|
||||||
#include <wlan_objmgr_global_obj.h>
|
#include <wlan_objmgr_global_obj.h>
|
||||||
#include <wlan_blm_ucfg_api.h>
|
#include <wlan_blm_ucfg_api.h>
|
||||||
|
|
||||||
#define blm_fatal(params...)\
|
#define dlm_fatal(params...)\
|
||||||
QDF_TRACE_FATAL(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_FATAL(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
#define blm_err(params...)\
|
#define dlm_err(params...)\
|
||||||
QDF_TRACE_ERROR(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_ERROR(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
#define blm_warn(params...)\
|
#define dlm_warn(params...)\
|
||||||
QDF_TRACE_WARN(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_WARN(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
#define blm_info(params...)\
|
#define dlm_info(params...)\
|
||||||
QDF_TRACE_INFO(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_INFO(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
#define blm_debug(params...)\
|
#define dlm_debug(params...)\
|
||||||
QDF_TRACE_DEBUG(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_DEBUG(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
#define blm_nofl_debug(params...)\
|
#define dlm_nofl_debug(params...)\
|
||||||
QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_BLACKLIST_MGR, params)
|
QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_DENYLIST_MGR, params)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_pdev_priv_obj - Pdev priv struct to store list of blacklist mgr.
|
* struct dlm_pdev_priv_obj - Pdev priv struct to store list of denylist mgr.
|
||||||
* @reject_ap_list_lock: Mutex needed to restrict two threads updating the list.
|
* @reject_ap_list_lock: Mutex needed to restrict two threads updating the list.
|
||||||
* @reject_ap_list: The reject Ap list which would contain the list of bad APs.
|
* @reject_ap_list: The reject Ap list which would contain the list of bad APs.
|
||||||
* @blm_tx_ops: tx ops to send reject ap list to FW
|
* @dlm_tx_ops: tx ops to send reject ap list to FW
|
||||||
*/
|
*/
|
||||||
struct blm_pdev_priv_obj {
|
struct dlm_pdev_priv_obj {
|
||||||
qdf_mutex_t reject_ap_list_lock;
|
qdf_mutex_t reject_ap_list_lock;
|
||||||
qdf_list_t reject_ap_list;
|
qdf_list_t reject_ap_list;
|
||||||
struct wlan_blm_tx_ops blm_tx_ops;
|
struct wlan_dlm_tx_ops dlm_tx_ops;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_config - Structure to define the config params for blacklist mgr.
|
* struct dlm_config - Structure to define the config params for denylist mgr.
|
||||||
* @avoid_list_exipry_time: Timer after which transition from avoid->monitor
|
* @avoid_list_exipry_time: Timer after which transition from avoid->monitor
|
||||||
* would happen for the BSSID which is in avoid list.
|
* would happen for the BSSID which is in avoid list.
|
||||||
* @black_list_exipry_time: Timer after which transition from black->monitor
|
* @deny_list_exipry_time: Timer after which transition from deny->monitor
|
||||||
* would happen for the BSSID which is in black list.
|
* would happen for the BSSID which is in deny list.
|
||||||
* @bad_bssid_counter_reset_time: Timer after which the bssid would be removed
|
* @bad_bssid_counter_reset_time: Timer after which the bssid would be removed
|
||||||
* from the reject list when connected, and data stall is not seen with the AP.
|
* from the reject list when connected, and data stall is not seen with the AP.
|
||||||
* @bad_bssid_counter_thresh: This is the threshold count which is incremented
|
* @bad_bssid_counter_thresh: This is the threshold count which is incremented
|
||||||
* after every NUD fail, and after this much count, the BSSID would be moved to
|
* after every NUD fail, and after this much count, the BSSID would be moved to
|
||||||
* blacklist.
|
* denylist.
|
||||||
* @delta_rssi: This is the rssi threshold, only when rssi
|
* @delta_rssi: This is the rssi threshold, only when rssi
|
||||||
* improves by this value the entry for BSSID should be removed from black
|
* improves by this value the entry for BSSID should be removed from deny
|
||||||
* list manager list.
|
* list manager list.
|
||||||
*/
|
*/
|
||||||
struct blm_config {
|
struct dlm_config {
|
||||||
qdf_time_t avoid_list_exipry_time;
|
qdf_time_t avoid_list_exipry_time;
|
||||||
qdf_time_t black_list_exipry_time;
|
qdf_time_t deny_list_exipry_time;
|
||||||
qdf_time_t bad_bssid_counter_reset_time;
|
qdf_time_t bad_bssid_counter_reset_time;
|
||||||
uint8_t bad_bssid_counter_thresh;
|
uint8_t bad_bssid_counter_thresh;
|
||||||
uint32_t delta_rssi;
|
uint32_t delta_rssi;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_psoc_priv_obj - Psoc priv structure of the blacklist manager.
|
* struct dlm_psoc_priv_obj - Psoc priv structure of the denylist manager.
|
||||||
* @pdev_id: pdev id
|
* @pdev_id: pdev id
|
||||||
* @is_suspended: is black list manager state suspended
|
* @is_suspended: is deny list manager state suspended
|
||||||
* @blm_cfg: These are the config ini params that the user can configure.
|
* @dlm_cfg: These are the config ini params that the user can configure.
|
||||||
*/
|
*/
|
||||||
struct blm_psoc_priv_obj {
|
struct dlm_psoc_priv_obj {
|
||||||
uint8_t pdev_id;
|
uint8_t pdev_id;
|
||||||
bool is_suspended;
|
bool is_suspended;
|
||||||
struct blm_config blm_cfg;
|
struct dlm_config dlm_cfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_pdev_object_created_notification() - blacklist mgr pdev create
|
* dlm_pdev_object_created_notification() - denylist mgr pdev create
|
||||||
* handler
|
* handler
|
||||||
* @pdev: pdev which is going to be created by objmgr
|
* @pdev: pdev which is going to be created by objmgr
|
||||||
* @arg: argument for pdev create handler
|
* @arg: argument for pdev create handler
|
||||||
@@ -98,11 +99,11 @@ struct blm_psoc_priv_obj {
|
|||||||
* Return: QDF_STATUS status in case of success else return error
|
* Return: QDF_STATUS status in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_pdev_object_created_notification(struct wlan_objmgr_pdev *pdev,
|
dlm_pdev_object_created_notification(struct wlan_objmgr_pdev *pdev,
|
||||||
void *arg);
|
void *arg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_pdev_object_destroyed_notification() - blacklist mgr pdev delete handler
|
* dlm_pdev_object_destroyed_notification() - denylist mgr pdev delete handler
|
||||||
* @pdev: pdev which is going to be deleted by objmgr
|
* @pdev: pdev which is going to be deleted by objmgr
|
||||||
* @arg: argument for pdev delete handler
|
* @arg: argument for pdev delete handler
|
||||||
*
|
*
|
||||||
@@ -111,11 +112,11 @@ blm_pdev_object_created_notification(struct wlan_objmgr_pdev *pdev,
|
|||||||
* Return: QDF_STATUS status in case of success else return error
|
* Return: QDF_STATUS status in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_pdev_object_destroyed_notification(struct wlan_objmgr_pdev *pdev,
|
dlm_pdev_object_destroyed_notification(struct wlan_objmgr_pdev *pdev,
|
||||||
void *arg);
|
void *arg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_psoc_object_created_notification() - blacklist mgr psoc create handler
|
* dlm_psoc_object_created_notification() - denylist mgr psoc create handler
|
||||||
* @psoc: psoc which is going to be created by objmgr
|
* @psoc: psoc which is going to be created by objmgr
|
||||||
* @arg: argument for psoc create handler
|
* @arg: argument for psoc create handler
|
||||||
*
|
*
|
||||||
@@ -124,11 +125,11 @@ blm_pdev_object_destroyed_notification(struct wlan_objmgr_pdev *pdev,
|
|||||||
* Return: QDF_STATUS status in case of success else return error
|
* Return: QDF_STATUS status in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
dlm_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
||||||
void *arg);
|
void *arg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_psoc_object_destroyed_notification() - blacklist mgr psoc delete handler
|
* dlm_psoc_object_destroyed_notification() - denylist mgr psoc delete handler
|
||||||
* @psoc: psoc which is going to be deleted by objmgr
|
* @psoc: psoc which is going to be deleted by objmgr
|
||||||
* @arg: argument for psoc delete handler.
|
* @arg: argument for psoc delete handler.
|
||||||
*
|
*
|
||||||
@@ -137,41 +138,41 @@ blm_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
|||||||
* Return: QDF_STATUS status in case of success else return error
|
* Return: QDF_STATUS status in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_psoc_object_destroyed_notification(struct wlan_objmgr_psoc *psoc,
|
dlm_psoc_object_destroyed_notification(struct wlan_objmgr_psoc *psoc,
|
||||||
void *arg);
|
void *arg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_cfg_psoc_open() - blacklist mgr psoc open handler
|
* dlm_cfg_psoc_open() - denylist mgr psoc open handler
|
||||||
* @psoc: psoc which is initialized by objmgr
|
* @psoc: psoc which is initialized by objmgr
|
||||||
*
|
*
|
||||||
* This API will initialize the config file, and store the config while in the
|
* This API will initialize the config file, and store the config while in the
|
||||||
* psoc priv object of the blacklist manager.
|
* psoc priv object of the denylist manager.
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS status in case of success else return error
|
* Return: QDF_STATUS status in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_cfg_psoc_open(struct wlan_objmgr_psoc *psoc);
|
dlm_cfg_psoc_open(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_get_pdev_obj() - Get the pdev priv object of the blacklist manager
|
* dlm_get_pdev_obj() - Get the pdev priv object of the denylist manager
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* Get the pdev priv object of the blacklist manager
|
* Get the pdev priv object of the denylist manager
|
||||||
*
|
*
|
||||||
* Return: Pdev priv object if present, else NULL.
|
* Return: Pdev priv object if present, else NULL.
|
||||||
*/
|
*/
|
||||||
struct blm_pdev_priv_obj *
|
struct dlm_pdev_priv_obj *
|
||||||
blm_get_pdev_obj(struct wlan_objmgr_pdev *pdev);
|
dlm_get_pdev_obj(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* blm_get_psoc_obj() - Get the psoc priv object of the blacklist manager
|
* dlm_get_psoc_obj() - Get the psoc priv object of the denylist manager
|
||||||
* @psoc: psoc object
|
* @psoc: psoc object
|
||||||
*
|
*
|
||||||
* Get the psoc priv object of the blacklist manager
|
* Get the psoc priv object of the denylist manager
|
||||||
*
|
*
|
||||||
* Return: Psoc priv object if present, else NULL.
|
* Return: Psoc priv object if present, else NULL.
|
||||||
*/
|
*/
|
||||||
struct blm_psoc_priv_obj *
|
struct dlm_psoc_priv_obj *
|
||||||
blm_get_psoc_obj(struct wlan_objmgr_psoc *psoc);
|
dlm_get_psoc_obj(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -17,9 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOC: wlan_blm_main.c
|
* DOC: wlan_dlm_main.c
|
||||||
*
|
*
|
||||||
* WLAN Blacklist Mgr related APIs
|
* WLAN Denylist Mgr related APIs
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -30,160 +31,160 @@
|
|||||||
#include "cfg_ucfg_api.h"
|
#include "cfg_ucfg_api.h"
|
||||||
#include <wlan_blm_core.h>
|
#include <wlan_blm_core.h>
|
||||||
|
|
||||||
struct blm_pdev_priv_obj *
|
struct dlm_pdev_priv_obj *
|
||||||
blm_get_pdev_obj(struct wlan_objmgr_pdev *pdev)
|
dlm_get_pdev_obj(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
struct blm_pdev_priv_obj *blm_pdev_obj;
|
struct dlm_pdev_priv_obj *dlm_pdev_obj;
|
||||||
|
|
||||||
blm_pdev_obj = wlan_objmgr_pdev_get_comp_private_obj(pdev,
|
dlm_pdev_obj = wlan_objmgr_pdev_get_comp_private_obj(pdev,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR);
|
WLAN_UMAC_COMP_DENYLIST_MGR);
|
||||||
|
|
||||||
return blm_pdev_obj;
|
return dlm_pdev_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct blm_psoc_priv_obj *
|
struct dlm_psoc_priv_obj *
|
||||||
blm_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
dlm_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
|
|
||||||
blm_psoc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
dlm_psoc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR);
|
WLAN_UMAC_COMP_DENYLIST_MGR);
|
||||||
|
|
||||||
return blm_psoc_obj;
|
return dlm_psoc_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_pdev_object_created_notification(struct wlan_objmgr_pdev *pdev,
|
dlm_pdev_object_created_notification(struct wlan_objmgr_pdev *pdev,
|
||||||
void *arg)
|
void *arg)
|
||||||
{
|
{
|
||||||
struct blm_pdev_priv_obj *blm_ctx;
|
struct dlm_pdev_priv_obj *dlm_ctx;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
blm_ctx = qdf_mem_malloc(sizeof(*blm_ctx));
|
dlm_ctx = qdf_mem_malloc(sizeof(*dlm_ctx));
|
||||||
|
|
||||||
if (!blm_ctx)
|
if (!dlm_ctx)
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
status = qdf_mutex_create(&blm_ctx->reject_ap_list_lock);
|
status = qdf_mutex_create(&dlm_ctx->reject_ap_list_lock);
|
||||||
|
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("Failed to create mutex");
|
dlm_err("Failed to create mutex");
|
||||||
qdf_mem_free(blm_ctx);
|
qdf_mem_free(dlm_ctx);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
qdf_list_create(&blm_ctx->reject_ap_list, MAX_BAD_AP_LIST_SIZE);
|
qdf_list_create(&dlm_ctx->reject_ap_list, MAX_BAD_AP_LIST_SIZE);
|
||||||
|
|
||||||
target_if_blm_register_tx_ops(&blm_ctx->blm_tx_ops);
|
target_if_dlm_register_tx_ops(&dlm_ctx->dlm_tx_ops);
|
||||||
status = wlan_objmgr_pdev_component_obj_attach(pdev,
|
status = wlan_objmgr_pdev_component_obj_attach(pdev,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_ctx,
|
dlm_ctx,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("Failed to attach pdev_ctx with pdev");
|
dlm_err("Failed to attach pdev_ctx with pdev");
|
||||||
qdf_list_destroy(&blm_ctx->reject_ap_list);
|
qdf_list_destroy(&dlm_ctx->reject_ap_list);
|
||||||
qdf_mutex_destroy(&blm_ctx->reject_ap_list_lock);
|
qdf_mutex_destroy(&dlm_ctx->reject_ap_list_lock);
|
||||||
qdf_mem_free(blm_ctx);
|
qdf_mem_free(dlm_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_pdev_object_destroyed_notification(struct wlan_objmgr_pdev *pdev,
|
dlm_pdev_object_destroyed_notification(struct wlan_objmgr_pdev *pdev,
|
||||||
void *arg)
|
void *arg)
|
||||||
{
|
{
|
||||||
struct blm_pdev_priv_obj *blm_ctx;
|
struct dlm_pdev_priv_obj *dlm_ctx;
|
||||||
|
|
||||||
blm_ctx = blm_get_pdev_obj(pdev);
|
dlm_ctx = dlm_get_pdev_obj(pdev);
|
||||||
|
|
||||||
if (!blm_ctx) {
|
if (!dlm_ctx) {
|
||||||
blm_err("BLM Pdev obj is NULL");
|
dlm_err("DLM Pdev obj is NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
/* Clear away the memory allocated for the bad BSSIDs */
|
/* Clear away the memory allocated for the bad BSSIDs */
|
||||||
blm_flush_reject_ap_list(blm_ctx);
|
dlm_flush_reject_ap_list(dlm_ctx);
|
||||||
qdf_list_destroy(&blm_ctx->reject_ap_list);
|
qdf_list_destroy(&dlm_ctx->reject_ap_list);
|
||||||
qdf_mutex_destroy(&blm_ctx->reject_ap_list_lock);
|
qdf_mutex_destroy(&dlm_ctx->reject_ap_list_lock);
|
||||||
|
|
||||||
wlan_objmgr_pdev_component_obj_detach(pdev,
|
wlan_objmgr_pdev_component_obj_detach(pdev,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_ctx);
|
dlm_ctx);
|
||||||
qdf_mem_free(blm_ctx);
|
qdf_mem_free(dlm_ctx);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
dlm_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
||||||
void *arg)
|
void *arg)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
blm_psoc_obj = qdf_mem_malloc(sizeof(*blm_psoc_obj));
|
dlm_psoc_obj = qdf_mem_malloc(sizeof(*dlm_psoc_obj));
|
||||||
|
|
||||||
if (!blm_psoc_obj)
|
if (!dlm_psoc_obj)
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
status = wlan_objmgr_psoc_component_obj_attach(psoc,
|
status = wlan_objmgr_psoc_component_obj_attach(psoc,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_obj,
|
dlm_psoc_obj,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("Failed to attach psoc_ctx with psoc");
|
dlm_err("Failed to attach psoc_ctx with psoc");
|
||||||
qdf_mem_free(blm_psoc_obj);
|
qdf_mem_free(dlm_psoc_obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_psoc_object_destroyed_notification(struct wlan_objmgr_psoc *psoc, void *arg)
|
dlm_psoc_object_destroyed_notification(struct wlan_objmgr_psoc *psoc, void *arg)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
|
|
||||||
blm_psoc_obj = blm_get_psoc_obj(psoc);
|
dlm_psoc_obj = dlm_get_psoc_obj(psoc);
|
||||||
|
|
||||||
if (!blm_psoc_obj) {
|
if (!dlm_psoc_obj) {
|
||||||
blm_err("BLM psoc obj NULL");
|
dlm_err("DLM psoc obj NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
wlan_objmgr_psoc_component_obj_detach(psoc,
|
wlan_objmgr_psoc_component_obj_detach(psoc,
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_obj);
|
dlm_psoc_obj);
|
||||||
qdf_mem_free(blm_psoc_obj);
|
qdf_mem_free(dlm_psoc_obj);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
blm_init_cfg(struct wlan_objmgr_psoc *psoc, struct blm_config *blm_cfg)
|
dlm_init_cfg(struct wlan_objmgr_psoc *psoc, struct dlm_config *dlm_cfg)
|
||||||
{
|
{
|
||||||
blm_cfg->avoid_list_exipry_time =
|
dlm_cfg->avoid_list_exipry_time =
|
||||||
cfg_get(psoc, CFG_AVOID_LIST_EXPIRY_TIME);
|
cfg_get(psoc, CFG_AVOID_LIST_EXPIRY_TIME);
|
||||||
blm_cfg->black_list_exipry_time =
|
dlm_cfg->deny_list_exipry_time =
|
||||||
cfg_get(psoc, CFG_BLACK_LIST_EXPIRY_TIME);
|
cfg_get(psoc, CFG_DENY_LIST_EXPIRY_TIME);
|
||||||
blm_cfg->bad_bssid_counter_reset_time =
|
dlm_cfg->bad_bssid_counter_reset_time =
|
||||||
cfg_get(psoc, CFG_BAD_BSSID_RESET_TIME);
|
cfg_get(psoc, CFG_BAD_BSSID_RESET_TIME);
|
||||||
blm_cfg->bad_bssid_counter_thresh =
|
dlm_cfg->bad_bssid_counter_thresh =
|
||||||
cfg_get(psoc, CFG_BAD_BSSID_COUNTER_THRESHOLD);
|
cfg_get(psoc, CFG_BAD_BSSID_COUNTER_THRESHOLD);
|
||||||
blm_cfg->delta_rssi =
|
dlm_cfg->delta_rssi =
|
||||||
cfg_get(psoc, CFG_BLACKLIST_RSSI_THRESHOLD);
|
cfg_get(psoc, CFG_DENYLIST_RSSI_THRESHOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
blm_cfg_psoc_open(struct wlan_objmgr_psoc *psoc)
|
dlm_cfg_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
|
|
||||||
blm_psoc_obj = blm_get_psoc_obj(psoc);
|
dlm_psoc_obj = dlm_get_psoc_obj(psoc);
|
||||||
|
|
||||||
if (!blm_psoc_obj) {
|
if (!dlm_psoc_obj) {
|
||||||
blm_err("BLM psoc obj NULL");
|
dlm_err("DLM psoc obj NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
blm_init_cfg(psoc, &blm_psoc_obj->blm_cfg);
|
dlm_init_cfg(psoc, &dlm_psoc_obj->dlm_cfg);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,134 +17,134 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: declare public APIs exposed by the blacklist manager component
|
* DOC: declare public APIs exposed by the denylist manager component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_API_H_
|
#ifndef _WLAN_DLM_API_H_
|
||||||
#define _WLAN_BLM_API_H_
|
#define _WLAN_DLM_API_H_
|
||||||
|
|
||||||
#include "qdf_types.h"
|
#include "qdf_types.h"
|
||||||
#include "wlan_objmgr_pdev_obj.h"
|
#include "wlan_objmgr_pdev_obj.h"
|
||||||
#include <wlan_blm_public_struct.h>
|
#include <wlan_blm_public_struct.h>
|
||||||
|
|
||||||
#ifdef FEATURE_BLACKLIST_MGR
|
#ifdef FEATURE_DENYLIST_MGR
|
||||||
#include "wlan_blm_core.h"
|
#include "wlan_blm_core.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_blm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
* wlan_dlm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
||||||
* @pdev: Pdev object
|
* @pdev: Pdev object
|
||||||
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
||||||
*
|
*
|
||||||
* This API will add the BSSID to the reject AP list maintained by the blacklist
|
* This API will add the BSSID to the reject AP list maintained by the denylist
|
||||||
* manager.
|
* manager.
|
||||||
*/
|
*/
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
wlan_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info)
|
struct reject_ap_info *ap_info)
|
||||||
{
|
{
|
||||||
return blm_add_bssid_to_reject_list(pdev, ap_info);
|
return dlm_add_bssid_to_reject_list(pdev, ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_blm_update_bssid_connect_params() - Inform the BLM about connect or
|
* wlan_dlm_update_bssid_connect_params() - Inform the DLM about connect or
|
||||||
* disconnect with the current AP.
|
* disconnect with the current AP.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @bssid: BSSID of the AP
|
* @bssid: BSSID of the AP
|
||||||
* @con_state: Connection stae (connected/disconnected)
|
* @con_state: Connection stae (connected/disconnected)
|
||||||
*
|
*
|
||||||
* This API will inform the BLM about the state with the AP so that if the AP
|
* This API will inform the DLM about the state with the AP so that if the AP
|
||||||
* is selected, and the connection went through, and the connection did not
|
* is selected, and the connection went through, and the connection did not
|
||||||
* face any data stall till the bad bssid reset timer, BLM can remove the
|
* face any data stall till the bad bssid reset timer, DLM can remove the
|
||||||
* AP from the reject ap list maintained by it.
|
* AP from the reject ap list maintained by it.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static inline void
|
static inline void
|
||||||
wlan_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state)
|
enum dlm_connection_state con_state)
|
||||||
{
|
{
|
||||||
return blm_update_bssid_connect_params(pdev, bssid, con_state);
|
return dlm_update_bssid_connect_params(pdev, bssid, con_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_blm_get_bssid_reject_list() - Get the BSSIDs in reject list from BLM
|
* wlan_dlm_get_bssid_reject_list() - Get the BSSIDs in reject list from DLM
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @reject_list: reject list to be filled (passed by caller)
|
* @reject_list: reject list to be filled (passed by caller)
|
||||||
* @max_bssid_to_be_filled: num of bssids filled in reject list by BLM
|
* @max_bssid_to_be_filled: num of bssids filled in reject list by DLM
|
||||||
* @reject_ap_type: reject ap type of the BSSIDs to be filled.
|
* @reject_ap_type: reject ap type of the BSSIDs to be filled.
|
||||||
*
|
*
|
||||||
* This API is a wrapper to an API of blacklist manager which will fill the
|
* This API is a wrapper to an API of denylist manager which will fill the
|
||||||
* reject ap list requested by caller of type given as argument reject_ap_type,
|
* reject ap list requested by caller of type given as argument reject_ap_type,
|
||||||
* and will return the number of BSSIDs filled.
|
* and will return the number of BSSIDs filled.
|
||||||
*
|
*
|
||||||
* Return: Unsigned integer (number of BSSIDs filled by the blacklist manager)
|
* Return: Unsigned integer (number of BSSIDs filled by the denylist manager)
|
||||||
*/
|
*/
|
||||||
static inline uint8_t
|
static inline uint8_t
|
||||||
wlan_blm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_config_params *reject_list,
|
struct reject_ap_config_params *reject_list,
|
||||||
uint8_t max_bssid_to_be_filled,
|
uint8_t max_bssid_to_be_filled,
|
||||||
enum blm_reject_ap_type reject_ap_type)
|
enum dlm_reject_ap_type reject_ap_type)
|
||||||
{
|
{
|
||||||
return blm_get_bssid_reject_list(pdev, reject_list,
|
return dlm_get_bssid_reject_list(pdev, reject_list,
|
||||||
max_bssid_to_be_filled,
|
max_bssid_to_be_filled,
|
||||||
reject_ap_type);
|
reject_ap_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_blm_dump_blcklist_bssid() - dump the blacklisted BSSIDs from BLM
|
* wlan_dlm_dump_blcklist_bssid() - dump the denylisted BSSIDs from DLM
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static inline void
|
static inline void
|
||||||
wlan_blm_dump_blcklist_bssid(struct wlan_objmgr_pdev *pdev)
|
wlan_dlm_dump_blcklist_bssid(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return blm_dump_blacklist_bssid(pdev);
|
return dlm_dump_denylist_bssid(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_blm_get_rssi_blacklist_threshold() - Get the RSSI blacklist threshold
|
* wlan_dlm_get_rssi_denylist_threshold() - Get the RSSI denylist threshold
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* This API will get the rssi blacklist threshold value configured via
|
* This API will get the rssi denylist threshold value configured via
|
||||||
* CFG_BLACKLIST_RSSI_THRESHOLD.
|
* CFG_DENYLIST_RSSI_THRESHOLD.
|
||||||
*
|
*
|
||||||
* Return: int32_t (threshold value)
|
* Return: int32_t (threshold value)
|
||||||
*/
|
*/
|
||||||
static inline int32_t
|
static inline int32_t
|
||||||
wlan_blm_get_rssi_blacklist_threshold(struct wlan_objmgr_pdev *pdev)
|
wlan_dlm_get_rssi_denylist_threshold(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return blm_get_rssi_blacklist_threshold(pdev);
|
return dlm_get_rssi_denylist_threshold(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
wlan_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info)
|
struct reject_ap_info *ap_info)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint8_t
|
static inline uint8_t
|
||||||
wlan_blm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_config_params *reject_list,
|
struct reject_ap_config_params *reject_list,
|
||||||
uint8_t max_bssid_to_be_filled,
|
uint8_t max_bssid_to_be_filled,
|
||||||
enum blm_reject_ap_type reject_ap_type)
|
enum dlm_reject_ap_type reject_ap_type)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
wlan_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
wlan_dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state)
|
enum dlm_connection_state con_state)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int32_t
|
static inline int32_t
|
||||||
wlan_blm_get_rssi_blacklist_threshold(struct wlan_objmgr_pdev *pdev)
|
wlan_dlm_get_rssi_denylist_threshold(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,82 +17,87 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: define public structures of blacklist mgr.
|
* DOC: define public structures of denylist mgr.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_PUBLIC_STRUCT_H
|
#ifndef _WLAN_DLM_PUBLIC_STRUCT_H
|
||||||
#define _WLAN_BLM_PUBLIC_STRUCT_H
|
#define _WLAN_DLM_PUBLIC_STRUCT_H
|
||||||
|
|
||||||
#include <qdf_types.h>
|
#include <qdf_types.h>
|
||||||
#include "wlan_objmgr_pdev_obj.h"
|
#include "wlan_objmgr_pdev_obj.h"
|
||||||
|
|
||||||
#define MAX_BAD_AP_LIST_SIZE 28
|
#define MAX_BAD_AP_LIST_SIZE 28
|
||||||
#define MAX_RSSI_AVOID_BSSID_LIST 10
|
#define MAX_RSSI_AVOID_BSSID_LIST 10
|
||||||
#define PDEV_MAX_NUM_BSSID_DISALLOW_LIST 28
|
#define PDEV_MAX_NUM_BSSID_DISALLOW_LIST 28
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum blm_reject_ap_reason - Rejection reason for adding BSSID to BLM
|
* enum dlm_reject_ap_reason - Rejection reason for adding BSSID to DLM
|
||||||
* @ADDED_BY_DRIVER: Source adding this BSSID is driver
|
* @ADDED_BY_DRIVER: Source adding this BSSID is driver
|
||||||
* @ADDED_BY_TARGET: Source adding this BSSID is target
|
* @ADDED_BY_TARGET: Source adding this BSSID is target
|
||||||
*/
|
*/
|
||||||
enum blm_reject_ap_source {
|
enum dlm_reject_ap_source {
|
||||||
ADDED_BY_DRIVER = 1,
|
ADDED_BY_DRIVER = 1,
|
||||||
ADDED_BY_TARGET,
|
ADDED_BY_TARGET,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct blm_rssi_disallow_params - structure to specify params for RSSI reject
|
* struct dlm_rssi_disallow_params - structure to specify params for RSSI
|
||||||
|
* reject
|
||||||
* @retry_delay: Time before which the AP doesn't expect a connection.
|
* @retry_delay: Time before which the AP doesn't expect a connection.
|
||||||
* @expected_rssi: RSSI less than which only the STA should try association.
|
* @expected_rssi: RSSI less than which only the STA should try association
|
||||||
* @received_time: Time at which the AP was added to blacklist.
|
* @received_time: Time at which the AP was added to denylist.
|
||||||
* @original_timeout: Original timeout which the AP sent while blacklisting.
|
* @original_timeout: Original timeout which the AP sent while denylisting.
|
||||||
* @source: Source of adding this BSSID to RSSI reject list
|
* @source: Source of adding this BSSID to RSSI reject list
|
||||||
*/
|
*/
|
||||||
struct blm_rssi_disallow_params {
|
struct dlm_rssi_disallow_params {
|
||||||
uint32_t retry_delay;
|
uint32_t retry_delay;
|
||||||
int8_t expected_rssi;
|
int8_t expected_rssi;
|
||||||
qdf_time_t received_time;
|
qdf_time_t received_time;
|
||||||
uint32_t original_timeout;
|
uint32_t original_timeout;
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum blm_reject_ap_type - Rejection type of the AP
|
* enum dlm_reject_ap_type - Rejection type of the AP
|
||||||
* @USERSPACE_AVOID_TYPE: userspace wants the AP to be avoided.
|
* @USERSPACE_AVOID_TYPE: userspace wants the AP to be avoided.
|
||||||
* @USERSPACE_BLACKLIST_TYPE: userspace wants the AP to be blacklisted.
|
* @USERSPACE_DENYLIST_TYPE: userspace wants the AP to be denylisted.
|
||||||
* @DRIVER_AVOID_TYPE: driver wants the AP to be avoided.
|
* @DRIVER_AVOID_TYPE: driver wants the AP to be avoided.
|
||||||
* @DRIVER_BLACKLIST_TYPE: driver wants the AP to be blacklisted.
|
* @DRIVER_DENYLIST_TYPE: driver wants the AP to be denylisted.
|
||||||
* @DRIVER_RSSI_REJECT_TYPE: driver wants the AP to be in driver rssi reject.
|
* @DRIVER_RSSI_REJECT_TYPE: driver wants the AP to be in driver rssi
|
||||||
|
* reject.
|
||||||
* @DRIVER_MONITOR_TYPE: driver wants the AP to be in monitor list.
|
* @DRIVER_MONITOR_TYPE: driver wants the AP to be in monitor list.
|
||||||
* @REJECT_REASON_UNKNOWN: Rejection reason unknown
|
* @REJECT_REASON_UNKNOWN: Rejection reason unknown
|
||||||
*/
|
*/
|
||||||
enum blm_reject_ap_type {
|
enum dlm_reject_ap_type {
|
||||||
USERSPACE_AVOID_TYPE = 0,
|
USERSPACE_AVOID_TYPE = 0,
|
||||||
USERSPACE_BLACKLIST_TYPE = 1,
|
USERSPACE_DENYLIST_TYPE = 1,
|
||||||
DRIVER_AVOID_TYPE = 2,
|
DRIVER_AVOID_TYPE = 2,
|
||||||
DRIVER_BLACKLIST_TYPE = 3,
|
DRIVER_DENYLIST_TYPE = 3,
|
||||||
DRIVER_RSSI_REJECT_TYPE = 4,
|
DRIVER_RSSI_REJECT_TYPE = 4,
|
||||||
DRIVER_MONITOR_TYPE = 5,
|
DRIVER_MONITOR_TYPE = 5,
|
||||||
REJECT_REASON_UNKNOWN = 6,
|
REJECT_REASON_UNKNOWN = 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum blm_reject_ap_reason - Rejection reason for adding BSSID to BLM
|
* enum dlm_reject_ap_reason - Rejection reason for adding BSSID to DLM
|
||||||
* @REASON_UNKNOWN: Unknown reason
|
* @REASON_UNKNOWN: Unknown reason
|
||||||
* @REASON_NUD_FAILURE: NUD failure happened with this BSSID
|
* @REASON_NUD_FAILURE: NUD failure happened with this BSSID
|
||||||
* @REASON_STA_KICKOUT: STA kickout happened with this BSSID
|
* @REASON_STA_KICKOUT: STA kickout happened with this BSSID
|
||||||
* @REASON_ROAM_HO_FAILURE: HO failure happenend with this BSSID
|
* @REASON_ROAM_HO_FAILURE: HO failure happenend with this BSSID
|
||||||
* @REASON_ASSOC_REJECT_POOR_RSSI: assoc rsp with reason 71 received from AP.
|
* @REASON_ASSOC_REJECT_POOR_RSSI: assoc rsp with reason 71 received from
|
||||||
|
* AP.
|
||||||
* @REASON_ASSOC_REJECT_OCE: OCE assoc reject received from the AP.
|
* @REASON_ASSOC_REJECT_OCE: OCE assoc reject received from the AP.
|
||||||
* @REASON_USERSPACE_BL: Userspace wants to blacklist this AP.
|
* @REASON_USERSPACE_BL: Userspace wants to denylist this AP.
|
||||||
* @REASON_USERSPACE_AVOID_LIST: Userspace wants to avoid this AP.
|
* @REASON_USERSPACE_AVOID_LIST: Userspace wants to avoid this AP.
|
||||||
* @REASON_BTM_DISASSOC_IMMINENT: BTM IE received with disassoc imminent set.
|
* @REASON_BTM_DISASSOC_IMMINENT: BTM IE received with disassoc imminent
|
||||||
|
* set.
|
||||||
* @REASON_BTM_BSS_TERMINATION: BTM IE received with BSS termination set.
|
* @REASON_BTM_BSS_TERMINATION: BTM IE received with BSS termination set.
|
||||||
* @REASON_BTM_MBO_RETRY: BTM IE received from AP with MBO retry set.
|
* @REASON_BTM_MBO_RETRY: BTM IE received from AP with MBO retry set.
|
||||||
* @REASON_REASSOC_RSSI_REJECT: Re-Assoc resp received with reason code 34
|
* @REASON_REASSOC_RSSI_REJECT: Re-Assoc resp received with reason code 34
|
||||||
* @REASON_REASSOC_NO_MORE_STAS: Re-assoc reject received with reason code 17
|
* @REASON_REASSOC_NO_MORE_STAS: Re-assoc reject received with reason code
|
||||||
|
* 17
|
||||||
*/
|
*/
|
||||||
enum blm_reject_ap_reason {
|
enum dlm_reject_ap_reason {
|
||||||
REASON_UNKNOWN = 0,
|
REASON_UNKNOWN = 0,
|
||||||
REASON_NUD_FAILURE,
|
REASON_NUD_FAILURE,
|
||||||
REASON_STA_KICKOUT,
|
REASON_STA_KICKOUT,
|
||||||
@@ -108,13 +114,13 @@ enum blm_reject_ap_reason {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum blm_connection_state - State with AP (Connected, Disconnected)
|
* enum dlm_connection_state - State with AP (Connected, Disconnected)
|
||||||
* @BLM_AP_CONNECTED: Connected with the AP
|
* @DLM_AP_CONNECTED: Connected with the AP
|
||||||
* @BLM_AP_DISCONNECTED: Disconnected with the AP
|
* @DLM_AP_DISCONNECTED: Disconnected with the AP
|
||||||
*/
|
*/
|
||||||
enum blm_connection_state {
|
enum dlm_connection_state {
|
||||||
BLM_AP_CONNECTED,
|
DLM_AP_CONNECTED,
|
||||||
BLM_AP_DISCONNECTED,
|
DLM_AP_DISCONNECTED,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,19 +128,20 @@ enum blm_connection_state {
|
|||||||
* @bssid: BSSID of the AP
|
* @bssid: BSSID of the AP
|
||||||
* @reject_ap_type: Type of the rejection done with the BSSID
|
* @reject_ap_type: Type of the rejection done with the BSSID
|
||||||
* @reject_duration: time left till the AP is in the reject list.
|
* @reject_duration: time left till the AP is in the reject list.
|
||||||
* @expected_rssi: expected RSSI when the AP expects the connection to be made.
|
* @expected_rssi: expected RSSI when the AP expects the connection to be
|
||||||
* @reject_reason: reason to add the BSSID to BLM
|
* made.
|
||||||
* @source: Source of adding the BSSID to BLM
|
* @reject_reason: reason to add the BSSID to DLM
|
||||||
* @received_time: Time at which the AP was added to blacklist.
|
* @source: Source of adding the BSSID to DLM
|
||||||
* @original_timeout: Original timeout which the AP sent while blacklisting.
|
* @received_time: Time at which the AP was added to denylist.
|
||||||
|
* @original_timeout: Original timeout which the AP sent while denylisting.
|
||||||
*/
|
*/
|
||||||
struct reject_ap_config_params {
|
struct reject_ap_config_params {
|
||||||
struct qdf_mac_addr bssid;
|
struct qdf_mac_addr bssid;
|
||||||
enum blm_reject_ap_type reject_ap_type;
|
enum dlm_reject_ap_type reject_ap_type;
|
||||||
uint32_t reject_duration;
|
uint32_t reject_duration;
|
||||||
int32_t expected_rssi;
|
int32_t expected_rssi;
|
||||||
enum blm_reject_ap_reason reject_reason;
|
enum dlm_reject_ap_reason reject_reason;
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
qdf_time_t received_time;
|
qdf_time_t received_time;
|
||||||
uint32_t original_timeout;
|
uint32_t original_timeout;
|
||||||
};
|
};
|
||||||
@@ -150,12 +157,12 @@ struct reject_ap_params {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_blm_tx_ops - structure of tx operation function
|
* struct wlan_dlm_tx_ops - structure of tx operation function
|
||||||
* pointers for blacklist manager component
|
* pointers for denylist manager component
|
||||||
* @blm_send_reject_ap_list: send reject ap list to fw
|
* @dlm_send_reject_ap_list: send reject ap list to fw
|
||||||
*/
|
*/
|
||||||
struct wlan_blm_tx_ops {
|
struct wlan_dlm_tx_ops {
|
||||||
QDF_STATUS (*blm_send_reject_ap_list)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*dlm_send_reject_ap_list)(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_params *reject_params);
|
struct reject_ap_params *reject_params);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -163,16 +170,17 @@ struct wlan_blm_tx_ops {
|
|||||||
* struct reject_ap_info - structure to specify the reject ap info.
|
* struct reject_ap_info - structure to specify the reject ap info.
|
||||||
* @bssid: BSSID of the AP.
|
* @bssid: BSSID of the AP.
|
||||||
* @rssi_reject_params: RSSI reject params of the AP is of type RSSI reject
|
* @rssi_reject_params: RSSI reject params of the AP is of type RSSI reject
|
||||||
* @reject_ap_type: Reject type of AP (eg. avoid, blacklist, rssi reject etc.)
|
* @reject_ap_type: Reject type of AP (eg. avoid, denylist, rssi reject
|
||||||
* @reject_reason: reason to add the BSSID to BLM
|
* etc.)
|
||||||
* @source: Source of adding the BSSID to BLM
|
* @reject_reason: reason to add the BSSID to DLM
|
||||||
|
* @source: Source of adding the BSSID to DLM
|
||||||
*/
|
*/
|
||||||
struct reject_ap_info {
|
struct reject_ap_info {
|
||||||
struct qdf_mac_addr bssid;
|
struct qdf_mac_addr bssid;
|
||||||
struct blm_rssi_disallow_params rssi_reject_params;
|
struct dlm_rssi_disallow_params rssi_reject_params;
|
||||||
enum blm_reject_ap_type reject_ap_type;
|
enum dlm_reject_ap_type reject_ap_type;
|
||||||
enum blm_reject_ap_reason reject_reason;
|
enum dlm_reject_ap_reason reject_reason;
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,26 +17,26 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: Declare public API for blacklist manager to interact with target/WMI
|
* DOC: Declare public API for denylist manager to interact with target/WMI
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_TGT_API_H
|
#ifndef _WLAN_DLM_TGT_API_H
|
||||||
#define _WLAN_BLM_TGT_API_H
|
#define _WLAN_DLM_TGT_API_H
|
||||||
|
|
||||||
#include "wlan_blm_main.h"
|
#include "wlan_blm_main.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tgt_blm_send_reject_list_to_fw() - API to send the reject ap list to FW.
|
* tgt_dlm_send_reject_list_to_fw() - API to send the reject ap list to FW.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @reject_params: Reject params contains the bssid list, and num of bssids
|
* @reject_params: Reject params contains the bssid list, and num of bssids
|
||||||
*
|
*
|
||||||
* This API will send the reject AP list maintained by the blacklist manager
|
* This API will send the reject AP list maintained by the denylist manager
|
||||||
* to the target.
|
* to the target.
|
||||||
*
|
*
|
||||||
* Return: QDF status
|
* Return: QDF status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
tgt_blm_send_reject_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
tgt_dlm_send_reject_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_params *reject_params);
|
struct reject_ap_params *reject_params);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,206 +17,206 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: declare UCFG APIs exposed by the blacklist manager component
|
* DOC: declare UCFG APIs exposed by the denylist manager component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _WLAN_BLM_UCFG_H_
|
#ifndef _WLAN_DLM_UCFG_H_
|
||||||
#define _WLAN_BLM_UCFG_H_
|
#define _WLAN_DLM_UCFG_H_
|
||||||
|
|
||||||
#include "qdf_types.h"
|
#include "qdf_types.h"
|
||||||
#include "wlan_objmgr_psoc_obj.h"
|
#include "wlan_objmgr_psoc_obj.h"
|
||||||
#include <wlan_blm_public_struct.h>
|
#include <wlan_blm_public_struct.h>
|
||||||
|
|
||||||
#ifdef FEATURE_BLACKLIST_MGR
|
#ifdef FEATURE_DENYLIST_MGR
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_init() - initialize blacklist mgr context
|
* ucfg_dlm_init() - initialize denylist mgr context
|
||||||
*
|
*
|
||||||
* This function initializes the blacklist mgr context
|
* This function initializes the denylist mgr context
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_init(void);
|
QDF_STATUS ucfg_dlm_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_deinit() - De initialize blacklist mgr context
|
* ucfg_dlm_deinit() - De initialize denylist mgr context
|
||||||
*
|
*
|
||||||
* This function De initializes blacklist mgr context
|
* This function De initializes denylist mgr context
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_deinit(void);
|
QDF_STATUS ucfg_dlm_deinit(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_psoc_set_suspended() - API to set blacklist mgr state suspended
|
* ucfg_dlm_psoc_set_suspended() - API to set denylist mgr state suspended
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
* @state: state to be set
|
* @state: state to be set
|
||||||
*
|
*
|
||||||
* This function sets blacklist mgr state to suspended
|
* This function sets denylist mgr state to suspended
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_psoc_set_suspended(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_dlm_psoc_set_suspended(struct wlan_objmgr_psoc *psoc,
|
||||||
bool state);
|
bool state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_psoc_get_suspended() - API to get blacklist mgr state suspended
|
* ucfg_dlm_psoc_get_suspended() - API to get denylist mgr state suspended
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
* @state: pointer to get suspend state of blacklist manager
|
* @state: pointer to get suspend state of denylist manager
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_psoc_get_suspended(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_dlm_psoc_get_suspended(struct wlan_objmgr_psoc *psoc,
|
||||||
bool *state);
|
bool *state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_psoc_open() - API to initialize the cfg when psoc is initialized.
|
* ucfg_dlm_psoc_open() - API to initialize the cfg when psoc is initialized.
|
||||||
* @psoc: psoc object
|
* @psoc: psoc object
|
||||||
*
|
*
|
||||||
* This function initializes the config of blacklist mgr.
|
* This function initializes the config of denylist mgr.
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_psoc_open(struct wlan_objmgr_psoc *psoc);
|
QDF_STATUS ucfg_dlm_psoc_open(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_psoc_close() - API to deinit the blm when psoc is deinitialized.
|
* ucfg_dlm_psoc_close() - API to deinit the dlm when psoc is deinitialized.
|
||||||
* @psoc: psoc object
|
* @psoc: psoc object
|
||||||
*
|
*
|
||||||
* This function deinits the blm psoc object.
|
* This function deinits the dlm psoc object.
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_blm_psoc_close(struct wlan_objmgr_psoc *psoc);
|
QDF_STATUS ucfg_dlm_psoc_close(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_add_userspace_black_list() - Clear already existing userspace BSSID,
|
* ucfg_dlm_add_userspace_deny_list() - Clear already existing userspace BSSID,
|
||||||
* and add the new ones to blacklist manager.
|
* and add the new ones to denylist manager.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @bssid_black_list: BSSIDs to be blacklisted by userspace.
|
* @bssid_deny_list: BSSIDs to be denylisted by userspace.
|
||||||
* @num_of_bssid: num of bssids to be blacklisted.
|
* @num_of_bssid: num of bssids to be denylisted.
|
||||||
*
|
*
|
||||||
* This API clear already existing userspace BSSID, and add the new ones to
|
* This API clear already existing userspace BSSID, and add the new ones to
|
||||||
* blacklist manager
|
* denylist manager
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error.
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error.
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_blm_add_userspace_black_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_userspace_deny_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr *bssid_black_list,
|
struct qdf_mac_addr *bssid_deny_list,
|
||||||
uint8_t num_of_bssid);
|
uint8_t num_of_bssid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_dump_black_list_ap() - get blacklisted bssid.
|
* ucfg_dlm_dump_deny_list_ap() - get denylisted bssid.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
*
|
*
|
||||||
* This API dumps blacklist ap
|
* This API dumps denylist ap
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void ucfg_blm_dump_black_list_ap(struct wlan_objmgr_pdev *pdev);
|
void ucfg_dlm_dump_deny_list_ap(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_update_bssid_connect_params() - Inform the BLM about connect or
|
* ucfg_dlm_update_bssid_connect_params() - Inform the DLM about connect or
|
||||||
* disconnect with the current AP.
|
* disconnect with the current AP.
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @bssid: BSSID of the AP
|
* @bssid: BSSID of the AP
|
||||||
* @con_state: Connection stae (connected/disconnected)
|
* @con_state: Connection stae (connected/disconnected)
|
||||||
*
|
*
|
||||||
* This API will inform the BLM about the state with the AP so that if the AP
|
* This API will inform the DLM about the state with the AP so that if the AP
|
||||||
* is selected, and the connection went through, and the connection did not
|
* is selected, and the connection went through, and the connection did not
|
||||||
* face any data stall till the bad bssid reset timer, BLM can remove the
|
* face any data stall till the bad bssid reset timer, DLM can remove the
|
||||||
* AP from the reject ap list maintained by it.
|
* AP from the reject ap list maintained by it.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
ucfg_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state);
|
enum dlm_connection_state con_state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
* ucfg_dlm_add_bssid_to_reject_list() - Add BSSID to the specific reject list.
|
||||||
* @pdev: Pdev object
|
* @pdev: Pdev object
|
||||||
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
* @ap_info: Ap info params such as BSSID, and the type of rejection to be done
|
||||||
*
|
*
|
||||||
* This API will add the BSSID to the reject AP list maintained by the blacklist
|
* This API will add the BSSID to the reject AP list maintained by the denylist
|
||||||
* manager.
|
* manager.
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS_SUCCESS - in case of success else return error.
|
* Return: QDF_STATUS_SUCCESS - in case of success else return error.
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info);
|
struct reject_ap_info *ap_info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_blm_wifi_off() - Inform the blacklist manager about wifi off
|
* ucfg_dlm_wifi_off() - Inform the denylist manager about wifi off
|
||||||
* @blm_ctx: blacklist manager pdev priv object
|
* @dlm_ctx: denylist manager pdev priv object
|
||||||
*
|
*
|
||||||
* This API will inform the blacklist manager that the user has turned wifi off
|
* This API will inform the denylist manager that the user has turned wifi off
|
||||||
* from the UI, and the blacklist manager can take action based upon this.
|
* from the UI, and the denylist manager can take action based upon this.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
ucfg_blm_wifi_off(struct wlan_objmgr_pdev *pdev);
|
ucfg_dlm_wifi_off(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_blm_init(void)
|
QDF_STATUS ucfg_dlm_init(void)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_blm_deinit(void)
|
QDF_STATUS ucfg_dlm_deinit(void)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_blm_psoc_open(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS ucfg_dlm_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_blm_psoc_close(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS ucfg_dlm_psoc_close(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void ucfg_blm_dump_black_list_ap(struct wlan_objmgr_pdev *pdev)
|
void ucfg_dlm_dump_deny_list_ap(struct wlan_objmgr_pdev *pdev)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info)
|
struct reject_ap_info *ap_info)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
ucfg_blm_add_userspace_black_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_userspace_deny_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr *bssid_black_list,
|
struct qdf_mac_addr *bssid_deny_list,
|
||||||
uint8_t num_of_bssid)
|
uint8_t num_of_bssid)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
ucfg_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state)
|
enum dlm_connection_state con_state)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void ucfg_blm_wifi_off(struct wlan_objmgr_pdev *pdev)
|
void ucfg_dlm_wifi_off(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif /* _WLAN_BLM_UCFG_H_ */
|
#endif /* _WLAN_DLM_UCFG_H_ */
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -17,13 +18,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOC: This file contains ini params for blacklist mgr component
|
* DOC: This file contains ini params for denylist mgr component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CFG_BLM_H_
|
#ifndef __CFG_DLM_H_
|
||||||
#define __CFG_BLM_H_
|
#define __CFG_DLM_H_
|
||||||
|
|
||||||
#ifdef FEATURE_BLACKLIST_MGR
|
#ifdef FEATURE_DENYLIST_MGR
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
@@ -53,13 +54,13 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* bad_bssid_counter_thresh - Threshold to move the Ap from avoid to blacklist.
|
* bad_bssid_counter_thresh - Threshold to move the Ap from avoid to denylist.
|
||||||
* @Min: 2
|
* @Min: 2
|
||||||
* @Max: 10
|
* @Max: 10
|
||||||
* @Default: 3
|
* @Default: 3
|
||||||
*
|
*
|
||||||
* This ini is used to specify the threshld after which the BSSID which is in
|
* This ini is used to specify the threshld after which the BSSID which is in
|
||||||
* the avoid list should be moved to black list, assuming that the AP or the
|
* the avoid list should be moved to deny list, assuming that the AP or the
|
||||||
* gateway with which the data stall happenend has no recovered, and now
|
* gateway with which the data stall happenend has no recovered, and now
|
||||||
* the STA got the NUD failure again with the BSSID
|
* the STA got the NUD failure again with the BSSID
|
||||||
*
|
*
|
||||||
@@ -79,14 +80,14 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* black_list_expiry_time - Config Param to move AP from blacklist to monitor
|
* deny_list_expiry_time - Config Param to move AP from denylist to monitor
|
||||||
* list.
|
* list.
|
||||||
* @Min: 1 minutes
|
* @Min: 1 minutes
|
||||||
* @Max: 600 minutes
|
* @Max: 600 minutes
|
||||||
* @Default: 10 minutes
|
* @Default: 10 minutes
|
||||||
*
|
*
|
||||||
* This ini is used to specify the time after which the BSSID which is in the
|
* This ini is used to specify the time after which the BSSID which is in the
|
||||||
* black list should be moved to monitor list, assuming that the AP or the
|
* deny list should be moved to monitor list, assuming that the AP or the
|
||||||
* gateway with which the data stall happenend might have recovered, and now
|
* gateway with which the data stall happenend might have recovered, and now
|
||||||
* the STA can give another chance to connect to the AP.
|
* the STA can give another chance to connect to the AP.
|
||||||
*
|
*
|
||||||
@@ -96,13 +97,13 @@
|
|||||||
*
|
*
|
||||||
* </ini>
|
* </ini>
|
||||||
*/
|
*/
|
||||||
#define CFG_BLACK_LIST_EXPIRY_TIME CFG_INI_UINT( \
|
#define CFG_DENY_LIST_EXPIRY_TIME CFG_INI_UINT( \
|
||||||
"black_list_expiry_time", \
|
"black_list_expiry_time", \
|
||||||
1, \
|
1, \
|
||||||
600, \
|
600, \
|
||||||
10, \
|
10, \
|
||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"black list expiry")
|
"deny list expiry")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
@@ -135,14 +136,14 @@
|
|||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* delta_rssi - RSSI threshold value, only when AP rssi improves
|
* delta_rssi - RSSI threshold value, only when AP rssi improves
|
||||||
* by threshold value entry would be removed from blacklist manager and assoc
|
* by threshold value entry would be removed from denylist manager and assoc
|
||||||
* req would be sent by FW.
|
* req would be sent by FW.
|
||||||
* @Min: 0
|
* @Min: 0
|
||||||
* @Max: 10
|
* @Max: 10
|
||||||
* @Default: 5
|
* @Default: 5
|
||||||
*
|
*
|
||||||
* This ini is used to specify the rssi threshold value, after rssi improves
|
* This ini is used to specify the rssi threshold value, after rssi improves
|
||||||
* by threshold the BSSID which is in the blacklist manager list should be
|
* by threshold the BSSID which is in the denylist manager list should be
|
||||||
* removed from the respective list.
|
* removed from the respective list.
|
||||||
*
|
*
|
||||||
* Supported Feature: Customer requirement
|
* Supported Feature: Customer requirement
|
||||||
@@ -151,7 +152,7 @@
|
|||||||
*
|
*
|
||||||
* </ini>
|
* </ini>
|
||||||
*/
|
*/
|
||||||
#define CFG_BLACKLIST_RSSI_THRESHOLD CFG_INI_INT( \
|
#define CFG_DENYLIST_RSSI_THRESHOLD CFG_INI_INT( \
|
||||||
"delta_rssi", \
|
"delta_rssi", \
|
||||||
0, \
|
0, \
|
||||||
10, \
|
10, \
|
||||||
@@ -159,17 +160,17 @@
|
|||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Configure delta RSSI")
|
"Configure delta RSSI")
|
||||||
|
|
||||||
#define CFG_BLACKLIST_MGR_ALL \
|
#define CFG_DENYLIST_MGR_ALL \
|
||||||
CFG(CFG_AVOID_LIST_EXPIRY_TIME) \
|
CFG(CFG_AVOID_LIST_EXPIRY_TIME) \
|
||||||
CFG(CFG_BAD_BSSID_COUNTER_THRESHOLD) \
|
CFG(CFG_BAD_BSSID_COUNTER_THRESHOLD) \
|
||||||
CFG(CFG_BLACK_LIST_EXPIRY_TIME) \
|
CFG(CFG_DENY_LIST_EXPIRY_TIME) \
|
||||||
CFG(CFG_BAD_BSSID_RESET_TIME) \
|
CFG(CFG_BAD_BSSID_RESET_TIME) \
|
||||||
CFG(CFG_BLACKLIST_RSSI_THRESHOLD)
|
CFG(CFG_DENYLIST_RSSI_THRESHOLD)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define CFG_BLACKLIST_MGR_ALL
|
#define CFG_DENYLIST_MGR_ALL
|
||||||
|
|
||||||
#endif /* FEATURE_BLACKLIST_MGR */
|
#endif /* FEATURE_DENYLIST_MGR */
|
||||||
|
|
||||||
#endif /* __CFG_BLACKLIST_MGR */
|
#endif /* __CFG_DENYLIST_MGR */
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,34 +17,34 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: Implements public API for blacklist manager to interact with target/WMI
|
* DOC: Implements public API for denylist manager to interact with target/WMI
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "wlan_blm_tgt_api.h"
|
#include "wlan_blm_tgt_api.h"
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
tgt_blm_send_reject_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
tgt_dlm_send_reject_list_to_fw(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_params *reject_params)
|
struct reject_ap_params *reject_params)
|
||||||
{
|
{
|
||||||
struct wlan_blm_tx_ops *blm_tx_ops;
|
struct wlan_dlm_tx_ops *dlm_tx_ops;
|
||||||
struct blm_pdev_priv_obj *blm_priv;
|
struct dlm_pdev_priv_obj *dlm_priv;
|
||||||
|
|
||||||
blm_priv = blm_get_pdev_obj(pdev);
|
dlm_priv = dlm_get_pdev_obj(pdev);
|
||||||
|
|
||||||
if (!blm_priv) {
|
if (!dlm_priv) {
|
||||||
blm_err("blm_priv is NULL");
|
dlm_err("dlm_priv is NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
blm_tx_ops = &blm_priv->blm_tx_ops;
|
dlm_tx_ops = &dlm_priv->dlm_tx_ops;
|
||||||
if (!blm_tx_ops) {
|
if (!dlm_tx_ops) {
|
||||||
blm_err("blm_tx_ops is NULL");
|
dlm_err("dlm_tx_ops is NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blm_tx_ops->blm_send_reject_ap_list)
|
if (dlm_tx_ops->dlm_send_reject_ap_list)
|
||||||
return blm_tx_ops->blm_send_reject_ap_list(pdev, reject_params);
|
return dlm_tx_ops->dlm_send_reject_ap_list(pdev, reject_params);
|
||||||
blm_err("Tx ops not registered, failed to send reject list to FW");
|
dlm_err("Tx ops not registered, failed to send reject list to FW");
|
||||||
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: define UCFG APIs exposed by the blacklist mgr component
|
* DOC: define UCFG APIs exposed by the denylist mgr component
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wlan_blm_ucfg_api.h>
|
#include <wlan_blm_ucfg_api.h>
|
||||||
@@ -24,229 +25,229 @@
|
|||||||
#include <wlan_blm_api.h>
|
#include <wlan_blm_api.h>
|
||||||
#include "wlan_pmo_obj_mgmt_api.h"
|
#include "wlan_pmo_obj_mgmt_api.h"
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_init(void)
|
QDF_STATUS ucfg_dlm_init(void)
|
||||||
{
|
{
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
status = wlan_objmgr_register_pdev_create_handler(
|
status = wlan_objmgr_register_pdev_create_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_created_notification,
|
dlm_pdev_object_created_notification,
|
||||||
NULL);
|
NULL);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("pdev create register notification failed");
|
dlm_err("pdev create register notification failed");
|
||||||
goto fail_create_pdev;
|
goto fail_create_pdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = wlan_objmgr_register_pdev_destroy_handler(
|
status = wlan_objmgr_register_pdev_destroy_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_destroyed_notification,
|
dlm_pdev_object_destroyed_notification,
|
||||||
NULL);
|
NULL);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("pdev destroy register notification failed");
|
dlm_err("pdev destroy register notification failed");
|
||||||
goto fail_destroy_pdev;
|
goto fail_destroy_pdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = wlan_objmgr_register_psoc_create_handler(
|
status = wlan_objmgr_register_psoc_create_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_object_created_notification,
|
dlm_psoc_object_created_notification,
|
||||||
NULL);
|
NULL);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("psoc create register notification failed");
|
dlm_err("psoc create register notification failed");
|
||||||
goto fail_create_psoc;
|
goto fail_create_psoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = wlan_objmgr_register_psoc_destroy_handler(
|
status = wlan_objmgr_register_psoc_destroy_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_object_destroyed_notification,
|
dlm_psoc_object_destroyed_notification,
|
||||||
NULL);
|
NULL);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("psoc destroy register notification failed");
|
dlm_err("psoc destroy register notification failed");
|
||||||
goto fail_destroy_psoc;
|
goto fail_destroy_psoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
fail_destroy_psoc:
|
fail_destroy_psoc:
|
||||||
wlan_objmgr_unregister_psoc_create_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
wlan_objmgr_unregister_psoc_create_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_object_created_notification, NULL);
|
dlm_psoc_object_created_notification, NULL);
|
||||||
fail_create_psoc:
|
fail_create_psoc:
|
||||||
wlan_objmgr_unregister_pdev_destroy_handler(
|
wlan_objmgr_unregister_pdev_destroy_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_destroyed_notification, NULL);
|
dlm_pdev_object_destroyed_notification, NULL);
|
||||||
fail_destroy_pdev:
|
fail_destroy_pdev:
|
||||||
wlan_objmgr_unregister_pdev_create_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
wlan_objmgr_unregister_pdev_create_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_created_notification, NULL);
|
dlm_pdev_object_created_notification, NULL);
|
||||||
fail_create_pdev:
|
fail_create_pdev:
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_deinit(void)
|
QDF_STATUS ucfg_dlm_deinit(void)
|
||||||
{
|
{
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
status = wlan_objmgr_unregister_psoc_destroy_handler(
|
status = wlan_objmgr_unregister_psoc_destroy_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_object_destroyed_notification,
|
dlm_psoc_object_destroyed_notification,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
status = wlan_objmgr_unregister_psoc_create_handler(
|
status = wlan_objmgr_unregister_psoc_create_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_psoc_object_created_notification,
|
dlm_psoc_object_created_notification,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
status = wlan_objmgr_unregister_pdev_destroy_handler(
|
status = wlan_objmgr_unregister_pdev_destroy_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_destroyed_notification,
|
dlm_pdev_object_destroyed_notification,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
status = wlan_objmgr_unregister_pdev_create_handler(
|
status = wlan_objmgr_unregister_pdev_create_handler(
|
||||||
WLAN_UMAC_COMP_BLACKLIST_MGR,
|
WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
blm_pdev_object_created_notification,
|
dlm_pdev_object_created_notification,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_psoc_set_suspended(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_dlm_psoc_set_suspended(struct wlan_objmgr_psoc *psoc,
|
||||||
bool state)
|
bool state)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
|
|
||||||
blm_psoc_obj = blm_get_psoc_obj(psoc);
|
dlm_psoc_obj = dlm_get_psoc_obj(psoc);
|
||||||
|
|
||||||
if (!blm_psoc_obj) {
|
if (!dlm_psoc_obj) {
|
||||||
blm_err("BLM psoc obj NULL");
|
dlm_err("DLM psoc obj NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
blm_psoc_obj->is_suspended = state;
|
dlm_psoc_obj->is_suspended = state;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_psoc_get_suspended(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_dlm_psoc_get_suspended(struct wlan_objmgr_psoc *psoc,
|
||||||
bool *state)
|
bool *state)
|
||||||
{
|
{
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
|
|
||||||
blm_psoc_obj = blm_get_psoc_obj(psoc);
|
dlm_psoc_obj = dlm_get_psoc_obj(psoc);
|
||||||
|
|
||||||
if (!blm_psoc_obj) {
|
if (!dlm_psoc_obj) {
|
||||||
blm_err("BLM psoc obj NULL");
|
dlm_err("DLM psoc obj NULL");
|
||||||
*state = true;
|
*state = true;
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*state = blm_psoc_obj->is_suspended;
|
*state = dlm_psoc_obj->is_suspended;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
ucfg_blm_suspend_handler(struct wlan_objmgr_psoc *psoc, void *arg)
|
ucfg_dlm_suspend_handler(struct wlan_objmgr_psoc *psoc, void *arg)
|
||||||
{
|
{
|
||||||
ucfg_blm_psoc_set_suspended(psoc, true);
|
ucfg_dlm_psoc_set_suspended(psoc, true);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
ucfg_blm_resume_handler(struct wlan_objmgr_psoc *psoc, void *arg)
|
ucfg_dlm_resume_handler(struct wlan_objmgr_psoc *psoc, void *arg)
|
||||||
{
|
{
|
||||||
ucfg_blm_psoc_set_suspended(psoc, false);
|
ucfg_dlm_psoc_set_suspended(psoc, false);
|
||||||
blm_update_reject_ap_list_to_fw(psoc);
|
dlm_update_reject_ap_list_to_fw(psoc);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
ucfg_blm_register_pmo_handler(void)
|
ucfg_dlm_register_pmo_handler(void)
|
||||||
{
|
{
|
||||||
pmo_register_suspend_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
pmo_register_suspend_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
ucfg_blm_suspend_handler, NULL);
|
ucfg_dlm_suspend_handler, NULL);
|
||||||
pmo_register_resume_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
pmo_register_resume_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
ucfg_blm_resume_handler, NULL);
|
ucfg_dlm_resume_handler, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
ucfg_blm_unregister_pmo_handler(void)
|
ucfg_dlm_unregister_pmo_handler(void)
|
||||||
{
|
{
|
||||||
pmo_unregister_suspend_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
pmo_unregister_suspend_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
ucfg_blm_suspend_handler);
|
ucfg_dlm_suspend_handler);
|
||||||
pmo_unregister_resume_handler(WLAN_UMAC_COMP_BLACKLIST_MGR,
|
pmo_unregister_resume_handler(WLAN_UMAC_COMP_DENYLIST_MGR,
|
||||||
ucfg_blm_resume_handler);
|
ucfg_dlm_resume_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_psoc_open(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS ucfg_dlm_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
ucfg_blm_register_pmo_handler();
|
ucfg_dlm_register_pmo_handler();
|
||||||
return blm_cfg_psoc_open(psoc);
|
return dlm_cfg_psoc_open(psoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_blm_psoc_close(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS ucfg_dlm_psoc_close(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
ucfg_blm_unregister_pmo_handler();
|
ucfg_dlm_unregister_pmo_handler();
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_info *ap_info)
|
struct reject_ap_info *ap_info)
|
||||||
{
|
{
|
||||||
return blm_add_bssid_to_reject_list(pdev, ap_info);
|
return dlm_add_bssid_to_reject_list(pdev, ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_blm_add_userspace_black_list(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_add_userspace_deny_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr *bssid_black_list,
|
struct qdf_mac_addr *bssid_deny_list,
|
||||||
uint8_t num_of_bssid)
|
uint8_t num_of_bssid)
|
||||||
{
|
{
|
||||||
return blm_add_userspace_black_list(pdev, bssid_black_list,
|
return dlm_add_userspace_deny_list(pdev, bssid_deny_list,
|
||||||
num_of_bssid);
|
num_of_bssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ucfg_blm_dump_black_list_ap(struct wlan_objmgr_pdev *pdev)
|
ucfg_dlm_dump_deny_list_ap(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return wlan_blm_dump_blcklist_bssid(pdev);
|
return wlan_dlm_dump_blcklist_bssid(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ucfg_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
ucfg_dlm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
|
||||||
struct qdf_mac_addr bssid,
|
struct qdf_mac_addr bssid,
|
||||||
enum blm_connection_state con_state)
|
enum dlm_connection_state con_state)
|
||||||
{
|
{
|
||||||
wlan_blm_update_bssid_connect_params(pdev, bssid, con_state);
|
wlan_dlm_update_bssid_connect_params(pdev, bssid, con_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ucfg_blm_wifi_off(struct wlan_objmgr_pdev *pdev)
|
ucfg_dlm_wifi_off(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
struct blm_pdev_priv_obj *blm_ctx;
|
struct dlm_pdev_priv_obj *dlm_ctx;
|
||||||
struct blm_psoc_priv_obj *blm_psoc_obj;
|
struct dlm_psoc_priv_obj *dlm_psoc_obj;
|
||||||
struct blm_config *cfg;
|
struct dlm_config *cfg;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
if (!pdev) {
|
if (!pdev) {
|
||||||
blm_err("pdev is NULL");
|
dlm_err("pdev is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
blm_ctx = blm_get_pdev_obj(pdev);
|
dlm_ctx = dlm_get_pdev_obj(pdev);
|
||||||
blm_psoc_obj = blm_get_psoc_obj(wlan_pdev_get_psoc(pdev));
|
dlm_psoc_obj = dlm_get_psoc_obj(wlan_pdev_get_psoc(pdev));
|
||||||
|
|
||||||
if (!blm_ctx || !blm_psoc_obj) {
|
if (!dlm_ctx || !dlm_psoc_obj) {
|
||||||
blm_err("blm_ctx or blm_psoc_obj is NULL");
|
dlm_err("dlm_ctx or dlm_psoc_obj is NULL");
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = qdf_mutex_acquire(&blm_ctx->reject_ap_list_lock);
|
status = qdf_mutex_acquire(&dlm_ctx->reject_ap_list_lock);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
blm_err("failed to acquire reject_ap_list_lock");
|
dlm_err("failed to acquire reject_ap_list_lock");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg = &blm_psoc_obj->blm_cfg;
|
cfg = &dlm_psoc_obj->dlm_cfg;
|
||||||
|
|
||||||
blm_flush_reject_ap_list(blm_ctx);
|
dlm_flush_reject_ap_list(dlm_ctx);
|
||||||
blm_send_reject_ap_list_to_fw(pdev, &blm_ctx->reject_ap_list, cfg);
|
dlm_send_reject_ap_list_to_fw(pdev, &dlm_ctx->reject_ap_list, cfg);
|
||||||
qdf_mutex_release(&blm_ctx->reject_ap_list_lock);
|
qdf_mutex_release(&dlm_ctx->reject_ap_list_lock);
|
||||||
}
|
}
|
||||||
|
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
/* Maintain Alphabetic order here while adding components */
|
/* Maintain Alphabetic order here while adding components */
|
||||||
#define CFG_ALL \
|
#define CFG_ALL \
|
||||||
CFG_BLACKLIST_MGR_ALL \
|
CFG_DENYLIST_MGR_ALL \
|
||||||
CFG_CONVERGED_ALL \
|
CFG_CONVERGED_ALL \
|
||||||
CFG_FWOL_ALL \
|
CFG_FWOL_ALL \
|
||||||
CFG_POLICY_MGR_ALL \
|
CFG_POLICY_MGR_ALL \
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,19 +17,19 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: Target interface file for blacklist manager component to
|
* DOC: Target interface file for denylist manager component to
|
||||||
* declare api's which shall be used by blacklist manager component
|
* declare api's which shall be used by denylist manager component
|
||||||
* in target if internally.
|
* in target if internally.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TARGET_IF_BLM_H
|
#ifndef __TARGET_IF_DLM_H
|
||||||
#define __TARGET_IF_BLM_H
|
#define __TARGET_IF_DLM_H
|
||||||
|
|
||||||
#include "wlan_blm_public_struct.h"
|
#include "wlan_blm_public_struct.h"
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
||||||
/**
|
/**
|
||||||
* target_if_blm_send_reject_ap_list() - API to send reject ap list to FW
|
* target_if_dlm_send_reject_ap_list() - API to send reject ap list to FW
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @reject_params: This contains the reject ap list, and the num of BSSIDs
|
* @reject_params: This contains the reject ap list, and the num of BSSIDs
|
||||||
*
|
*
|
||||||
@@ -38,24 +39,24 @@
|
|||||||
* Return: Qdf status
|
* Return: Qdf status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
target_if_blm_send_reject_ap_list(struct wlan_objmgr_pdev *pdev,
|
target_if_dlm_send_reject_ap_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_params *reject_params);
|
struct reject_ap_params *reject_params);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* target_if_blm_register_tx_ops() - Register blm tx ops
|
* target_if_dlm_register_tx_ops() - Register dlm tx ops
|
||||||
* @blm_tx_ops: BLM tx ops
|
* @dlm_tx_ops: DLM tx ops
|
||||||
*
|
*
|
||||||
* This API will register the tx ops used by the BLM to send commands to the
|
* This API will register the tx ops used by the DLM to send commands to the
|
||||||
* target.
|
* target.
|
||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
void target_if_blm_register_tx_ops(struct wlan_blm_tx_ops *blm_tx_ops);
|
void target_if_dlm_register_tx_ops(struct wlan_dlm_tx_ops *dlm_tx_ops);
|
||||||
#else
|
#else
|
||||||
static inline void target_if_blm_register_tx_ops(
|
static inline void target_if_dlm_register_tx_ops(
|
||||||
struct wlan_blm_tx_ops *blm_tx_ops)
|
struct wlan_dlm_tx_ops *dlm_tx_ops)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif //WLAN_FEATURE_ROAM_OFFLOAD
|
#endif //WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
|
|
||||||
#endif //__TARGET_IF_BLM_H
|
#endif //__TARGET_IF_DLM_H
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -16,8 +17,8 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* DOC: Target interface file for blacklist manager component to
|
* DOC: Target interface file for denylist manager component to
|
||||||
* Implement api's which shall be used by blacklist manager component
|
* Implement api's which shall be used by denylist manager component
|
||||||
* in target if internally.
|
* in target if internally.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@
|
|||||||
|
|
||||||
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
target_if_blm_send_reject_ap_list(struct wlan_objmgr_pdev *pdev,
|
target_if_dlm_send_reject_ap_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct reject_ap_params *reject_params)
|
struct reject_ap_params *reject_params)
|
||||||
{
|
{
|
||||||
struct wmi_unified *wmi_handle;
|
struct wmi_unified *wmi_handle;
|
||||||
@@ -40,13 +41,13 @@ target_if_blm_send_reject_ap_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
return wmi_unified_send_reject_ap_list(wmi_handle, reject_params);
|
return wmi_unified_send_reject_ap_list(wmi_handle, reject_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void target_if_blm_register_tx_ops(struct wlan_blm_tx_ops *blm_tx_ops)
|
void target_if_dlm_register_tx_ops(struct wlan_dlm_tx_ops *dlm_tx_ops)
|
||||||
{
|
{
|
||||||
if (!blm_tx_ops) {
|
if (!dlm_tx_ops) {
|
||||||
target_if_err("blm_tx_ops is null");
|
target_if_err("dlm_tx_ops is null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
blm_tx_ops->blm_send_reject_ap_list = target_if_blm_send_reject_ap_list;
|
dlm_tx_ops->dlm_send_reject_ap_list = target_if_dlm_send_reject_ap_list;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -144,10 +144,10 @@ cm_fw_roam_sync_start_ind(struct wlan_objmgr_vdev *vdev,
|
|||||||
wlan_mlme_get_bssid_vdev_id(pdev, vdev_id,
|
wlan_mlme_get_bssid_vdev_id(pdev, vdev_id,
|
||||||
&connected_bssid);
|
&connected_bssid);
|
||||||
|
|
||||||
/* Update the BLM that the previous profile has disconnected */
|
/* Update the DLM that the previous profile has disconnected */
|
||||||
wlan_blm_update_bssid_connect_params(pdev,
|
wlan_dlm_update_bssid_connect_params(pdev,
|
||||||
connected_bssid,
|
connected_bssid,
|
||||||
BLM_AP_DISCONNECTED);
|
DLM_AP_DISCONNECTED);
|
||||||
if (IS_ROAM_REASON_STA_KICKOUT(roam_reason)) {
|
if (IS_ROAM_REASON_STA_KICKOUT(roam_reason)) {
|
||||||
struct reject_ap_info ap_info;
|
struct reject_ap_info ap_info;
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ cm_fw_roam_sync_start_ind(struct wlan_objmgr_vdev *vdev,
|
|||||||
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
||||||
ap_info.reject_reason = REASON_STA_KICKOUT;
|
ap_info.reject_reason = REASON_STA_KICKOUT;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
wlan_blm_add_bssid_to_reject_list(pdev, &ap_info);
|
wlan_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
cm_update_scan_mlme_on_roam(vdev, &connected_bssid,
|
cm_update_scan_mlme_on_roam(vdev, &connected_bssid,
|
||||||
@@ -1096,7 +1096,7 @@ static QDF_STATUS cm_handle_ho_fail(struct scheduler_msg *msg)
|
|||||||
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
||||||
ap_info.reject_reason = REASON_ROAM_HO_FAILURE;
|
ap_info.reject_reason = REASON_ROAM_HO_FAILURE;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
wlan_blm_add_bssid_to_reject_list(pdev, &ap_info);
|
wlan_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
|
|
||||||
cm_ho_fail_diag_event();
|
cm_ho_fail_diag_event();
|
||||||
wlan_roam_debug_log(ind->vdev_id,
|
wlan_roam_debug_log(ind->vdev_id,
|
||||||
|
@@ -1969,9 +1969,9 @@ cm_add_blacklist_ap_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
params->num_bssid_black_list =
|
params->num_bssid_black_list =
|
||||||
wlan_blm_get_bssid_reject_list(pdev, reject_list,
|
wlan_dlm_get_bssid_reject_list(pdev, reject_list,
|
||||||
MAX_RSSI_AVOID_BSSID_LIST,
|
MAX_RSSI_AVOID_BSSID_LIST,
|
||||||
USERSPACE_BLACKLIST_TYPE);
|
USERSPACE_DENYLIST_TYPE);
|
||||||
if (!params->num_bssid_black_list) {
|
if (!params->num_bssid_black_list) {
|
||||||
qdf_mem_free(reject_list);
|
qdf_mem_free(reject_list);
|
||||||
return;
|
return;
|
||||||
@@ -2058,7 +2058,7 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
* until RSSI OR time condition are matched.
|
* until RSSI OR time condition are matched.
|
||||||
*/
|
*/
|
||||||
params->num_rssi_rejection_ap =
|
params->num_rssi_rejection_ap =
|
||||||
wlan_blm_get_bssid_reject_list(pdev,
|
wlan_dlm_get_bssid_reject_list(pdev,
|
||||||
params->rssi_rejection_ap,
|
params->rssi_rejection_ap,
|
||||||
MAX_RSSI_AVOID_BSSID_LIST,
|
MAX_RSSI_AVOID_BSSID_LIST,
|
||||||
DRIVER_RSSI_REJECT_TYPE);
|
DRIVER_RSSI_REJECT_TYPE);
|
||||||
@@ -2104,7 +2104,7 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
params->num_ssid_white_list = num_ssid_white_list;
|
params->num_ssid_white_list = num_ssid_white_list;
|
||||||
params->num_bssid_preferred_list = num_bssid_preferred_list;
|
params->num_bssid_preferred_list = num_bssid_preferred_list;
|
||||||
params->delta_rssi =
|
params->delta_rssi =
|
||||||
wlan_blm_get_rssi_blacklist_threshold(pdev);
|
wlan_dlm_get_rssi_denylist_threshold(pdev);
|
||||||
|
|
||||||
for (i = 0; i < num_ssid_white_list; i++) {
|
for (i = 0; i < num_ssid_white_list; i++) {
|
||||||
qdf_mem_copy(params->ssid_allowed_list[i].ssid,
|
qdf_mem_copy(params->ssid_allowed_list[i].ssid,
|
||||||
|
@@ -2045,18 +2045,18 @@ enum roam_reason {
|
|||||||
* @timeout: time duration for which the bssid is blacklisted
|
* @timeout: time duration for which the bssid is blacklisted
|
||||||
* @received_time: boot timestamp at which the firmware event was received
|
* @received_time: boot timestamp at which the firmware event was received
|
||||||
* @rssi: rssi value for which the bssid is blacklisted
|
* @rssi: rssi value for which the bssid is blacklisted
|
||||||
* @reject_reason: reason to add the BSSID to BLM
|
* @reject_reason: reason to add the BSSID to DLM
|
||||||
* @original_timeout: original timeout sent by the AP
|
* @original_timeout: original timeout sent by the AP
|
||||||
* @source: Source of adding the BSSID to BLM
|
* @source: Source of adding the BSSID to DLM
|
||||||
*/
|
*/
|
||||||
struct roam_blacklist_timeout {
|
struct roam_blacklist_timeout {
|
||||||
struct qdf_mac_addr bssid;
|
struct qdf_mac_addr bssid;
|
||||||
uint32_t timeout;
|
uint32_t timeout;
|
||||||
qdf_time_t received_time;
|
qdf_time_t received_time;
|
||||||
int32_t rssi;
|
int32_t rssi;
|
||||||
enum blm_reject_ap_reason reject_reason;
|
enum dlm_reject_ap_reason reject_reason;
|
||||||
uint32_t original_timeout;
|
uint32_t original_timeout;
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -2523,8 +2523,8 @@ cm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
ap_info.source = entry->source;
|
ap_info.source = entry->source;
|
||||||
ap_info.rssi_reject_params.received_time = entry->received_time;
|
ap_info.rssi_reject_params.received_time = entry->received_time;
|
||||||
ap_info.rssi_reject_params.original_timeout = entry->original_timeout;
|
ap_info.rssi_reject_params.original_timeout = entry->original_timeout;
|
||||||
/* Add this ap info to the rssi reject ap type in blacklist manager */
|
/* Add this ap info to the rssi reject ap type in denylist manager */
|
||||||
wlan_blm_add_bssid_to_reject_list(pdev, &ap_info);
|
wlan_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
|
@@ -2654,7 +2654,7 @@ end:
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum blm_reject_ap_reason wmi_get_reject_reason(uint32_t reason)
|
static enum dlm_reject_ap_reason wmi_get_reject_reason(uint32_t reason)
|
||||||
{
|
{
|
||||||
switch (reason) {
|
switch (reason) {
|
||||||
case WMI_BL_REASON_NUD_FAILURE:
|
case WMI_BL_REASON_NUD_FAILURE:
|
||||||
|
@@ -1139,7 +1139,7 @@ CONFIG_REG_CLIENT := y
|
|||||||
CONFIG_WLAN_PMO_ENABLE := y
|
CONFIG_WLAN_PMO_ENABLE := y
|
||||||
CONFIG_CONVERGED_P2P_ENABLE := y
|
CONFIG_CONVERGED_P2P_ENABLE := y
|
||||||
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
||||||
CONFIG_FEATURE_BLACKLIST_MGR := y
|
CONFIG_FEATURE_DENYLIST_MGR := y
|
||||||
CONFIG_FOURTH_CONNECTION := y
|
CONFIG_FOURTH_CONNECTION := y
|
||||||
CONFIG_SUPPORT_11AX := y
|
CONFIG_SUPPORT_11AX := y
|
||||||
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
||||||
|
@@ -652,7 +652,7 @@ CONFIG_REG_CLIENT := y
|
|||||||
CONFIG_WLAN_PMO_ENABLE := y
|
CONFIG_WLAN_PMO_ENABLE := y
|
||||||
CONFIG_CONVERGED_P2P_ENABLE := y
|
CONFIG_CONVERGED_P2P_ENABLE := y
|
||||||
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
||||||
CONFIG_FEATURE_BLACKLIST_MGR := y
|
CONFIG_FEATURE_DENYLIST_MGR := y
|
||||||
CONFIG_SUPPORT_11AX := y
|
CONFIG_SUPPORT_11AX := y
|
||||||
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
||||||
CONFIG_WLAN_CONV_SPECTRAL_ENABLE := y
|
CONFIG_WLAN_CONV_SPECTRAL_ENABLE := y
|
||||||
|
@@ -6,8 +6,8 @@ CONFIG_WLAN_MAX_VDEVS := 5
|
|||||||
# Flag to enable/disable TARGET 11d scan
|
# Flag to enable/disable TARGET 11d scan
|
||||||
CONFIG_TARGET_11D_SCAN := y
|
CONFIG_TARGET_11D_SCAN := y
|
||||||
|
|
||||||
# Enable BLACKLIST_MGR
|
# Enable DENYLIST_MGR
|
||||||
CONFIG_FEATURE_BLACKLIST_MGR := y
|
CONFIG_FEATURE_DENYLIST_MGR := y
|
||||||
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y
|
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y
|
||||||
|
|
||||||
# Enable Thermal throttle
|
# Enable Thermal throttle
|
||||||
|
@@ -859,7 +859,7 @@ CONFIG_REG_CLIENT := y
|
|||||||
CONFIG_WLAN_PMO_ENABLE := y
|
CONFIG_WLAN_PMO_ENABLE := y
|
||||||
CONFIG_CONVERGED_P2P_ENABLE := y
|
CONFIG_CONVERGED_P2P_ENABLE := y
|
||||||
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
CONFIG_WLAN_POLICY_MGR_ENABLE := y
|
||||||
CONFIG_FEATURE_BLACKLIST_MGR := y
|
CONFIG_FEATURE_DENYLIST_MGR := y
|
||||||
CONFIG_FOURTH_CONNECTION := y
|
CONFIG_FOURTH_CONNECTION := y
|
||||||
CONFIG_SUPPORT_11AX := y
|
CONFIG_SUPPORT_11AX := y
|
||||||
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
|
||||||
|
@@ -4587,24 +4587,24 @@ static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
|||||||
uint8_t j = 0;
|
uint8_t j = 0;
|
||||||
struct nlattr *tb2[MAX_ROAMING_PARAM + 1];
|
struct nlattr *tb2[MAX_ROAMING_PARAM + 1];
|
||||||
struct nlattr *curr_attr = NULL;
|
struct nlattr *curr_attr = NULL;
|
||||||
struct qdf_mac_addr *black_list_bssid;
|
struct qdf_mac_addr *deny_list_bssid;
|
||||||
mac_handle_t mac_handle;
|
mac_handle_t mac_handle;
|
||||||
|
|
||||||
/* Parse and fetch number of blacklist BSSID */
|
/* Parse and fetch number of denylist BSSID */
|
||||||
if (!tb[PARAMS_NUM_BSSID]) {
|
if (!tb[PARAMS_NUM_BSSID]) {
|
||||||
hdd_err("attr num of blacklist bssid failed");
|
hdd_err("attr num of denylist bssid failed");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
count = nla_get_u32(tb[PARAMS_NUM_BSSID]);
|
count = nla_get_u32(tb[PARAMS_NUM_BSSID]);
|
||||||
if (count > MAX_BSSID_AVOID_LIST) {
|
if (count > MAX_BSSID_AVOID_LIST) {
|
||||||
hdd_err("Blacklist BSSID count %u exceeds max %u",
|
hdd_err("Denylist BSSID count %u exceeds max %u",
|
||||||
count, MAX_BSSID_AVOID_LIST);
|
count, MAX_BSSID_AVOID_LIST);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
hdd_debug("Num of blacklist BSSID (%d)", count);
|
hdd_debug("Num of denylist BSSID (%d)", count);
|
||||||
black_list_bssid = qdf_mem_malloc(sizeof(*black_list_bssid) *
|
deny_list_bssid = qdf_mem_malloc(sizeof(*deny_list_bssid) *
|
||||||
MAX_BSSID_AVOID_LIST);
|
MAX_BSSID_AVOID_LIST);
|
||||||
if (!black_list_bssid)
|
if (!deny_list_bssid)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
@@ -4613,7 +4613,7 @@ static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
|||||||
tb[PARAM_BSSID_PARAMS],
|
tb[PARAM_BSSID_PARAMS],
|
||||||
rem) {
|
rem) {
|
||||||
if (i == count) {
|
if (i == count) {
|
||||||
hdd_warn("Ignoring excess Blacklist BSSID");
|
hdd_warn("Ignoring excess Denylist BSSID");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4623,13 +4623,13 @@ static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
|||||||
nla_len(curr_attr),
|
nla_len(curr_attr),
|
||||||
wlan_hdd_set_roam_param_policy)) {
|
wlan_hdd_set_roam_param_policy)) {
|
||||||
hdd_err("nla_parse failed");
|
hdd_err("nla_parse failed");
|
||||||
qdf_mem_free(black_list_bssid);
|
qdf_mem_free(deny_list_bssid);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
/* Parse and fetch MAC address */
|
/* Parse and fetch MAC address */
|
||||||
if (!tb2[PARAM_SET_BSSID]) {
|
if (!tb2[PARAM_SET_BSSID]) {
|
||||||
hdd_err("attr blacklist addr failed");
|
hdd_err("attr denylist addr failed");
|
||||||
qdf_mem_free(black_list_bssid);
|
qdf_mem_free(deny_list_bssid);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
if (tb2[PARAM_SET_BSSID_HINT]) {
|
if (tb2[PARAM_SET_BSSID_HINT]) {
|
||||||
@@ -4645,28 +4645,28 @@ static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
|||||||
REASON_USERSPACE_AVOID_LIST;
|
REASON_USERSPACE_AVOID_LIST;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
|
|
||||||
/* This BSSID is avoided and not blacklisted */
|
/* This BSSID is avoided and not denylisted */
|
||||||
ucfg_blm_add_bssid_to_reject_list(hdd_ctx->pdev,
|
ucfg_dlm_add_bssid_to_reject_list(hdd_ctx->pdev,
|
||||||
&ap_info);
|
&ap_info);
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
nla_memcpy(black_list_bssid[j].bytes,
|
nla_memcpy(deny_list_bssid[j].bytes,
|
||||||
tb2[PARAM_SET_BSSID], QDF_MAC_ADDR_SIZE);
|
tb2[PARAM_SET_BSSID], QDF_MAC_ADDR_SIZE);
|
||||||
hdd_debug(QDF_MAC_ADDR_FMT,
|
hdd_debug(QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(black_list_bssid[j].bytes));
|
QDF_MAC_ADDR_REF(deny_list_bssid[j].bytes));
|
||||||
i++;
|
i++;
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i < count)
|
if (i < count)
|
||||||
hdd_warn("Num Blacklist BSSID %u less than expected %u",
|
hdd_warn("Num Denylist BSSID %u less than expected %u",
|
||||||
i, count);
|
i, count);
|
||||||
|
|
||||||
/* Send the blacklist to the blacklist mgr component */
|
/* Send the denylist to the denylist mgr component */
|
||||||
ucfg_blm_add_userspace_black_list(hdd_ctx->pdev, black_list_bssid, j);
|
ucfg_dlm_add_userspace_deny_list(hdd_ctx->pdev, deny_list_bssid, j);
|
||||||
qdf_mem_free(black_list_bssid);
|
qdf_mem_free(deny_list_bssid);
|
||||||
mac_handle = hdd_ctx->mac_handle;
|
mac_handle = hdd_ctx->mac_handle;
|
||||||
sme_update_roam_params(mac_handle, vdev_id,
|
sme_update_roam_params(mac_handle, vdev_id,
|
||||||
rso_config, REASON_ROAM_SET_BLACKLIST_BSSID);
|
rso_config, REASON_ROAM_SET_BLACKLIST_BSSID);
|
||||||
|
@@ -618,7 +618,7 @@ int wlan_hdd_cm_connect(struct wiphy *wiphy,
|
|||||||
}
|
}
|
||||||
|
|
||||||
qdf_mem_zero(¶ms, sizeof(params));
|
qdf_mem_zero(¶ms, sizeof(params));
|
||||||
ucfg_blm_dump_black_list_ap(hdd_ctx->pdev);
|
ucfg_dlm_dump_deny_list_ap(hdd_ctx->pdev);
|
||||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_CM_ID);
|
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_CM_ID);
|
||||||
if (!vdev)
|
if (!vdev)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -53,7 +54,7 @@ hdd_dcs_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
ap_info.reject_ap_type = DRIVER_RSSI_REJECT_TYPE;
|
ap_info.reject_ap_type = DRIVER_RSSI_REJECT_TYPE;
|
||||||
ap_info.reject_reason = REASON_STA_KICKOUT;
|
ap_info.reject_reason = REASON_STA_KICKOUT;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
return ucfg_blm_add_bssid_to_reject_list(pdev, &ap_info);
|
return ucfg_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -394,7 +394,7 @@ static const struct category_info cinfo[MAX_SUPPORTED_CATEGORY] = {
|
|||||||
[QDF_MODULE_ID_CP_STATS] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_CP_STATS] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_DCS] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_DCS] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_INTEROP_ISSUES_AP] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_INTEROP_ISSUES_AP] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_BLACKLIST_MGR] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_DENYLIST_MGR] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_DIRECT_BUF_RX] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_DIRECT_BUF_RX] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_SPECTRAL] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_SPECTRAL] = {QDF_TRACE_LEVEL_ALL},
|
||||||
[QDF_MODULE_ID_WIFIPOS] = {QDF_TRACE_LEVEL_ALL},
|
[QDF_MODULE_ID_WIFIPOS] = {QDF_TRACE_LEVEL_ALL},
|
||||||
@@ -17029,7 +17029,7 @@ static void __hdd_inform_wifi_off(void)
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ucfg_blm_wifi_off(hdd_ctx->pdev);
|
ucfg_dlm_wifi_off(hdd_ctx->pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hdd_inform_wifi_off(void)
|
static void hdd_inform_wifi_off(void)
|
||||||
@@ -17358,13 +17358,13 @@ static QDF_STATUS hdd_component_init(void)
|
|||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
goto policy_deinit;
|
goto policy_deinit;
|
||||||
|
|
||||||
status = ucfg_blm_init();
|
status = ucfg_dlm_init();
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
goto tdls_deinit;
|
goto tdls_deinit;
|
||||||
|
|
||||||
status = ucfg_pkt_capture_init();
|
status = ucfg_pkt_capture_init();
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
goto blm_deinit;
|
goto dlm_deinit;
|
||||||
|
|
||||||
status = ucfg_ftm_time_sync_init();
|
status = ucfg_ftm_time_sync_init();
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
@@ -17374,8 +17374,8 @@ static QDF_STATUS hdd_component_init(void)
|
|||||||
|
|
||||||
pkt_capture_deinit:
|
pkt_capture_deinit:
|
||||||
ucfg_pkt_capture_deinit();
|
ucfg_pkt_capture_deinit();
|
||||||
blm_deinit:
|
dlm_deinit:
|
||||||
ucfg_blm_deinit();
|
ucfg_dlm_deinit();
|
||||||
tdls_deinit:
|
tdls_deinit:
|
||||||
ucfg_tdls_deinit();
|
ucfg_tdls_deinit();
|
||||||
policy_deinit:
|
policy_deinit:
|
||||||
@@ -17420,7 +17420,7 @@ static void hdd_component_deinit(void)
|
|||||||
/* deinitialize non-converged components */
|
/* deinitialize non-converged components */
|
||||||
ucfg_ftm_time_sync_deinit();
|
ucfg_ftm_time_sync_deinit();
|
||||||
ucfg_pkt_capture_deinit();
|
ucfg_pkt_capture_deinit();
|
||||||
ucfg_blm_deinit();
|
ucfg_dlm_deinit();
|
||||||
ucfg_tdls_deinit();
|
ucfg_tdls_deinit();
|
||||||
policy_mgr_deinit();
|
policy_mgr_deinit();
|
||||||
ucfg_interop_issues_ap_deinit();
|
ucfg_interop_issues_ap_deinit();
|
||||||
@@ -17448,9 +17448,9 @@ QDF_STATUS hdd_component_psoc_open(struct wlan_objmgr_psoc *psoc)
|
|||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
status = ucfg_blm_psoc_open(psoc);
|
status = ucfg_dlm_psoc_open(psoc);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
goto err_blm;
|
goto err_dlm;
|
||||||
|
|
||||||
status = ucfg_fwol_psoc_open(psoc);
|
status = ucfg_fwol_psoc_open(psoc);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
@@ -17489,8 +17489,8 @@ err_plcy_mgr:
|
|||||||
err_pmo:
|
err_pmo:
|
||||||
ucfg_fwol_psoc_close(psoc);
|
ucfg_fwol_psoc_close(psoc);
|
||||||
err_fwol:
|
err_fwol:
|
||||||
ucfg_blm_psoc_close(psoc);
|
ucfg_dlm_psoc_close(psoc);
|
||||||
err_blm:
|
err_dlm:
|
||||||
ucfg_mlme_psoc_close(psoc);
|
ucfg_mlme_psoc_close(psoc);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
@@ -17503,7 +17503,7 @@ void hdd_component_psoc_close(struct wlan_objmgr_psoc *psoc)
|
|||||||
ucfg_policy_mgr_psoc_close(psoc);
|
ucfg_policy_mgr_psoc_close(psoc);
|
||||||
ucfg_pmo_psoc_close(psoc);
|
ucfg_pmo_psoc_close(psoc);
|
||||||
ucfg_fwol_psoc_close(psoc);
|
ucfg_fwol_psoc_close(psoc);
|
||||||
ucfg_blm_psoc_close(psoc);
|
ucfg_dlm_psoc_close(psoc);
|
||||||
ucfg_mlme_psoc_close(psoc);
|
ucfg_mlme_psoc_close(psoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -253,7 +254,7 @@ hdd_handle_nud_fail_sta(struct hdd_context *hdd_ctx,
|
|||||||
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
||||||
ap_info.reject_reason = REASON_NUD_FAILURE;
|
ap_info.reject_reason = REASON_NUD_FAILURE;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
ucfg_blm_add_bssid_to_reject_list(hdd_ctx->pdev, &ap_info);
|
ucfg_dlm_add_bssid_to_reject_list(hdd_ctx->pdev, &ap_info);
|
||||||
|
|
||||||
if (roaming_offload_enabled(hdd_ctx)) {
|
if (roaming_offload_enabled(hdd_ctx)) {
|
||||||
qdf_zero_macaddr(&bssid);
|
qdf_zero_macaddr(&bssid);
|
||||||
|
@@ -5102,8 +5102,8 @@ struct sir_peer_set_rx_blocksize {
|
|||||||
* @retry_delay: Retry delay received during last rejection in ms
|
* @retry_delay: Retry delay received during last rejection in ms
|
||||||
* @ expected_rssi: RSSI at which STA can initate
|
* @ expected_rssi: RSSI at which STA can initate
|
||||||
* @time_during_rejection: Timestamp during last rejection in millisec
|
* @time_during_rejection: Timestamp during last rejection in millisec
|
||||||
* @reject_reason: reason to add the BSSID to BLM
|
* @reject_reason: reason to add the BSSID to DLM
|
||||||
* @source: Source of adding the BSSID to BLM
|
* @source: Source of adding the BSSID to DLM
|
||||||
* @original_timeout: original timeout sent by the AP
|
* @original_timeout: original timeout sent by the AP
|
||||||
* @received_time: Timestamp when the AP was added to the Blacklist
|
* @received_time: Timestamp when the AP was added to the Blacklist
|
||||||
*/
|
*/
|
||||||
@@ -5113,8 +5113,8 @@ struct sir_rssi_disallow_lst {
|
|||||||
uint32_t retry_delay;
|
uint32_t retry_delay;
|
||||||
int8_t expected_rssi;
|
int8_t expected_rssi;
|
||||||
qdf_time_t time_during_rejection;
|
qdf_time_t time_during_rejection;
|
||||||
enum blm_reject_ap_reason reject_reason;
|
enum dlm_reject_ap_reason reject_reason;
|
||||||
enum blm_reject_ap_source source;
|
enum dlm_reject_ap_source source;
|
||||||
uint32_t original_timeout;
|
uint32_t original_timeout;
|
||||||
qdf_time_t received_time;
|
qdf_time_t received_time;
|
||||||
};
|
};
|
||||||
|
@@ -235,7 +235,7 @@ void lim_delete_sta_context(struct mac_context *mac_ctx,
|
|||||||
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
ap_info.reject_ap_type = DRIVER_AVOID_TYPE;
|
||||||
ap_info.reject_reason = REASON_STA_KICKOUT;
|
ap_info.reject_reason = REASON_STA_KICKOUT;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
wlan_blm_add_bssid_to_reject_list(mac_ctx->pdev,
|
wlan_dlm_add_bssid_to_reject_list(mac_ctx->pdev,
|
||||||
&ap_info);
|
&ap_info);
|
||||||
|
|
||||||
/* only break for STA role (non TDLS) */
|
/* only break for STA role (non TDLS) */
|
||||||
|
@@ -1017,7 +1017,7 @@ lim_process_assoc_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
if (!assoc_rsp->rssi_assoc_rej.retry_delay)
|
if (!assoc_rsp->rssi_assoc_rej.retry_delay)
|
||||||
ap_info.expected_rssi = assoc_rsp->rssi_assoc_rej.delta_rssi +
|
ap_info.expected_rssi = assoc_rsp->rssi_assoc_rej.delta_rssi +
|
||||||
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info) +
|
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info) +
|
||||||
wlan_blm_get_rssi_blacklist_threshold(mac_ctx->pdev);
|
wlan_dlm_get_rssi_denylist_threshold(mac_ctx->pdev);
|
||||||
else
|
else
|
||||||
ap_info.expected_rssi = assoc_rsp->rssi_assoc_rej.delta_rssi +
|
ap_info.expected_rssi = assoc_rsp->rssi_assoc_rej.delta_rssi +
|
||||||
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
|
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
|
||||||
|
@@ -310,7 +310,7 @@ lim_process_disassoc_frame(struct mac_context *mac, uint8_t *pRxPacketInfo,
|
|||||||
|
|
||||||
ap_info.retry_delay = 0;
|
ap_info.retry_delay = 0;
|
||||||
ap_info.expected_rssi = frame_rssi +
|
ap_info.expected_rssi = frame_rssi +
|
||||||
wlan_blm_get_rssi_blacklist_threshold(mac->pdev);
|
wlan_dlm_get_rssi_denylist_threshold(mac->pdev);
|
||||||
qdf_mem_copy(ap_info.bssid.bytes, pHdr->sa, QDF_MAC_ADDR_SIZE);
|
qdf_mem_copy(ap_info.bssid.bytes, pHdr->sa, QDF_MAC_ADDR_SIZE);
|
||||||
ap_info.reject_reason = REASON_ASSOC_REJECT_POOR_RSSI;
|
ap_info.reject_reason = REASON_ASSOC_REJECT_POOR_RSSI;
|
||||||
ap_info.source = ADDED_BY_DRIVER;
|
ap_info.source = ADDED_BY_DRIVER;
|
||||||
|
@@ -8674,7 +8674,7 @@ lim_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
ap_info.rssi_reject_params.received_time = entry->received_time;
|
ap_info.rssi_reject_params.received_time = entry->received_time;
|
||||||
ap_info.rssi_reject_params.original_timeout = entry->original_timeout;
|
ap_info.rssi_reject_params.original_timeout = entry->original_timeout;
|
||||||
/* Add this ap info to the rssi reject ap type in blacklist manager */
|
/* Add this ap info to the rssi reject ap type in blacklist manager */
|
||||||
wlan_blm_add_bssid_to_reject_list(pdev, &ap_info);
|
wlan_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_decrement_pending_mgmt_count(struct mac_context *mac_ctx)
|
void lim_decrement_pending_mgmt_count(struct mac_context *mac_ctx)
|
||||||
|
Reference in New Issue
Block a user