qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Replace blacklist/whitelist with denylist/allowlist in qcacld3.0. and replace blm with dlm. Change-Id: I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1 CRs-Fixed: 3091211
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1d3d395705
commit
f07969a044
@@ -138,8 +138,8 @@ struct wlan_fwol_thermal_temp {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_fwol_ie_whitelist - Probe request IE whitelist config items
|
* struct wlan_fwol_ie_allowlist - Probe request IE allowlist config items
|
||||||
* @ie_whitelist: IE whitelist flag
|
* @ie_allowlist: IE allowlist flag
|
||||||
* @ie_bitmap_0: IE bitmap 0
|
* @ie_bitmap_0: IE bitmap 0
|
||||||
* @ie_bitmap_1: IE bitmap 1
|
* @ie_bitmap_1: IE bitmap 1
|
||||||
* @ie_bitmap_2: IE bitmap 2
|
* @ie_bitmap_2: IE bitmap 2
|
||||||
@@ -151,8 +151,8 @@ struct wlan_fwol_thermal_temp {
|
|||||||
* @no_of_probe_req_ouis: Total number of ouis present in probe req
|
* @no_of_probe_req_ouis: Total number of ouis present in probe req
|
||||||
* @probe_req_voui: Stores oui values after parsing probe req ouis
|
* @probe_req_voui: Stores oui values after parsing probe req ouis
|
||||||
*/
|
*/
|
||||||
struct wlan_fwol_ie_whitelist {
|
struct wlan_fwol_ie_allowlist {
|
||||||
bool ie_whitelist;
|
bool ie_allowlist;
|
||||||
uint32_t ie_bitmap_0;
|
uint32_t ie_bitmap_0;
|
||||||
uint32_t ie_bitmap_1;
|
uint32_t ie_bitmap_1;
|
||||||
uint32_t ie_bitmap_2;
|
uint32_t ie_bitmap_2;
|
||||||
@@ -191,7 +191,7 @@ struct wlan_fwol_neighbor_report_cfg {
|
|||||||
* struct wlan_fwol_cfg - fwol config items
|
* struct wlan_fwol_cfg - fwol config items
|
||||||
* @coex_config: coex config items
|
* @coex_config: coex config items
|
||||||
* @thermal_temp_cfg: Thermal temperature related config items
|
* @thermal_temp_cfg: Thermal temperature related config items
|
||||||
* @ie_whitelist_cfg: IE Whitelist related config items
|
* @ie_allowlist_cfg: IE Allowlist related config items
|
||||||
* @neighbor_report_cfg: 11K neighbor report config
|
* @neighbor_report_cfg: 11K neighbor report config
|
||||||
* @ani_enabled: ANI enable/disable
|
* @ani_enabled: ANI enable/disable
|
||||||
* @enable_rts_sifsbursting: Enable RTS SIFS Bursting
|
* @enable_rts_sifsbursting: Enable RTS SIFS Bursting
|
||||||
@@ -233,7 +233,7 @@ struct wlan_fwol_cfg {
|
|||||||
/* Add CFG and INI items here */
|
/* Add CFG and INI items here */
|
||||||
struct wlan_fwol_coex_config coex_config;
|
struct wlan_fwol_coex_config coex_config;
|
||||||
struct wlan_fwol_thermal_temp thermal_temp_cfg;
|
struct wlan_fwol_thermal_temp thermal_temp_cfg;
|
||||||
struct wlan_fwol_ie_whitelist ie_whitelist_cfg;
|
struct wlan_fwol_ie_allowlist ie_allowlist_cfg;
|
||||||
struct wlan_fwol_neighbor_report_cfg neighbor_report_cfg;
|
struct wlan_fwol_neighbor_report_cfg neighbor_report_cfg;
|
||||||
bool ani_enabled;
|
bool ani_enabled;
|
||||||
bool enable_rts_sifsbursting;
|
bool enable_rts_sifsbursting;
|
||||||
|
@@ -290,7 +290,7 @@ fwol_set_adaptive_dwelltime_config(
|
|||||||
/**
|
/**
|
||||||
* fwol_parse_probe_req_ouis - form ouis from ini gProbeReqOUIs
|
* fwol_parse_probe_req_ouis - form ouis from ini gProbeReqOUIs
|
||||||
* @psoc: Pointer to struct wlan_objmgr_psoc context
|
* @psoc: Pointer to struct wlan_objmgr_psoc context
|
||||||
* @whitelist: Pointer to struct wlan_fwol_ie_whitelist
|
* @allowlist: Pointer to struct wlan_fwol_ie_allowlist
|
||||||
*
|
*
|
||||||
* This function parses the ini string gProbeReqOUIs which needs be to in the
|
* This function parses the ini string gProbeReqOUIs which needs be to in the
|
||||||
* following format:
|
* following format:
|
||||||
@@ -302,10 +302,10 @@ fwol_set_adaptive_dwelltime_config(
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void fwol_parse_probe_req_ouis(struct wlan_objmgr_psoc *psoc,
|
static void fwol_parse_probe_req_ouis(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist)
|
struct wlan_fwol_ie_allowlist *allowlist)
|
||||||
{
|
{
|
||||||
uint8_t probe_req_ouis[MAX_PRB_REQ_VENDOR_OUI_INI_LEN] = {0};
|
uint8_t probe_req_ouis[MAX_PRB_REQ_VENDOR_OUI_INI_LEN] = {0};
|
||||||
uint32_t *voui = whitelist->probe_req_voui;
|
uint32_t *voui = allowlist->probe_req_voui;
|
||||||
char *str;
|
char *str;
|
||||||
uint8_t *token;
|
uint8_t *token;
|
||||||
uint32_t oui_indx = 0;
|
uint32_t oui_indx = 0;
|
||||||
@@ -315,7 +315,7 @@ static void fwol_parse_probe_req_ouis(struct wlan_objmgr_psoc *psoc,
|
|||||||
qdf_str_lcopy(probe_req_ouis, cfg_get(psoc, CFG_PROBE_REQ_OUI),
|
qdf_str_lcopy(probe_req_ouis, cfg_get(psoc, CFG_PROBE_REQ_OUI),
|
||||||
MAX_PRB_REQ_VENDOR_OUI_INI_LEN);
|
MAX_PRB_REQ_VENDOR_OUI_INI_LEN);
|
||||||
str = probe_req_ouis;
|
str = probe_req_ouis;
|
||||||
whitelist->no_of_probe_req_ouis = 0;
|
allowlist->no_of_probe_req_ouis = 0;
|
||||||
|
|
||||||
if (!qdf_str_len(str)) {
|
if (!qdf_str_len(str)) {
|
||||||
fwol_debug("NO OUIs to parse");
|
fwol_debug("NO OUIs to parse");
|
||||||
@@ -339,27 +339,27 @@ next_token:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!oui_indx) {
|
if (!oui_indx) {
|
||||||
whitelist->ie_whitelist = false;
|
allowlist->ie_allowlist = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
whitelist->no_of_probe_req_ouis = oui_indx;
|
allowlist->no_of_probe_req_ouis = oui_indx;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fwol_validate_ie_bitmaps() - Validate all IE whitelist bitmap param values
|
* fwol_validate_ie_bitmaps() - Validate all IE allowlist bitmap param values
|
||||||
* @psoc: Pointer to struct wlan_objmgr_psoc
|
* @psoc: Pointer to struct wlan_objmgr_psoc
|
||||||
* @whitelist: Pointer to struct wlan_fwol_ie_whitelist
|
* @allowlist: Pointer to struct wlan_fwol_ie_allowlist
|
||||||
*
|
*
|
||||||
* Return: True if all bitmap values are valid, else false
|
* Return: True if all bitmap values are valid, else false
|
||||||
*/
|
*/
|
||||||
static bool fwol_validate_ie_bitmaps(struct wlan_objmgr_psoc *psoc,
|
static bool fwol_validate_ie_bitmaps(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist)
|
struct wlan_fwol_ie_allowlist *allowlist)
|
||||||
{
|
{
|
||||||
if (!(whitelist->ie_bitmap_0 || whitelist->ie_bitmap_1 ||
|
if (!(allowlist->ie_bitmap_0 || allowlist->ie_bitmap_1 ||
|
||||||
whitelist->ie_bitmap_2 || whitelist->ie_bitmap_3 ||
|
allowlist->ie_bitmap_2 || allowlist->ie_bitmap_3 ||
|
||||||
whitelist->ie_bitmap_4 || whitelist->ie_bitmap_5 ||
|
allowlist->ie_bitmap_4 || allowlist->ie_bitmap_5 ||
|
||||||
whitelist->ie_bitmap_6 || whitelist->ie_bitmap_7))
|
allowlist->ie_bitmap_6 || allowlist->ie_bitmap_7))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -368,12 +368,12 @@ static bool fwol_validate_ie_bitmaps(struct wlan_objmgr_psoc *psoc,
|
|||||||
* for atleast one OUI, minimum length is 8 and hence this string length
|
* for atleast one OUI, minimum length is 8 and hence this string length
|
||||||
* is checked for minimum of 8
|
* is checked for minimum of 8
|
||||||
*/
|
*/
|
||||||
if ((whitelist->ie_bitmap_6 & VENDOR_SPECIFIC_IE_BITMAP) &&
|
if ((allowlist->ie_bitmap_6 & VENDOR_SPECIFIC_IE_BITMAP) &&
|
||||||
(qdf_str_len(cfg_get(psoc, CFG_PROBE_REQ_OUI)) < 8))
|
(qdf_str_len(cfg_get(psoc, CFG_PROBE_REQ_OUI)) < 8))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* check whether vendor oui IE is not set but OUIs are present */
|
/* check whether vendor oui IE is not set but OUIs are present */
|
||||||
if (!(whitelist->ie_bitmap_6 & VENDOR_SPECIFIC_IE_BITMAP) &&
|
if (!(allowlist->ie_bitmap_6 & VENDOR_SPECIFIC_IE_BITMAP) &&
|
||||||
(qdf_str_len(cfg_get(psoc, CFG_PROBE_REQ_OUI)) > 0))
|
(qdf_str_len(cfg_get(psoc, CFG_PROBE_REQ_OUI)) > 0))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -382,20 +382,20 @@ static bool fwol_validate_ie_bitmaps(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
fwol_init_ie_whiltelist_in_cfg(struct wlan_objmgr_psoc *psoc,
|
fwol_init_ie_whiltelist_in_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist)
|
struct wlan_fwol_ie_allowlist *allowlist)
|
||||||
{
|
{
|
||||||
whitelist->ie_whitelist = cfg_get(psoc, CFG_PROBE_REQ_IE_WHITELIST);
|
allowlist->ie_allowlist = cfg_get(psoc, CFG_PROBE_REQ_IE_ALLOWLIST);
|
||||||
whitelist->ie_bitmap_0 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP0);
|
allowlist->ie_bitmap_0 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP0);
|
||||||
whitelist->ie_bitmap_1 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP1);
|
allowlist->ie_bitmap_1 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP1);
|
||||||
whitelist->ie_bitmap_2 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP2);
|
allowlist->ie_bitmap_2 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP2);
|
||||||
whitelist->ie_bitmap_3 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP3);
|
allowlist->ie_bitmap_3 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP3);
|
||||||
whitelist->ie_bitmap_4 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP4);
|
allowlist->ie_bitmap_4 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP4);
|
||||||
whitelist->ie_bitmap_5 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP5);
|
allowlist->ie_bitmap_5 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP5);
|
||||||
whitelist->ie_bitmap_6 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP6);
|
allowlist->ie_bitmap_6 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP6);
|
||||||
whitelist->ie_bitmap_7 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP7);
|
allowlist->ie_bitmap_7 = cfg_get(psoc, CFG_PROBE_REQ_IE_BIT_MAP7);
|
||||||
if (!fwol_validate_ie_bitmaps(psoc, whitelist))
|
if (!fwol_validate_ie_bitmaps(psoc, allowlist))
|
||||||
whitelist->ie_whitelist = false;
|
allowlist->ie_allowlist = false;
|
||||||
fwol_parse_probe_req_ouis(psoc, whitelist);
|
fwol_parse_probe_req_ouis(psoc, allowlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -600,7 +600,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
|||||||
|
|
||||||
fwol_init_coex_config_in_cfg(psoc, &fwol_cfg->coex_config);
|
fwol_init_coex_config_in_cfg(psoc, &fwol_cfg->coex_config);
|
||||||
fwol_init_thermal_temp_in_cfg(psoc, &fwol_cfg->thermal_temp_cfg);
|
fwol_init_thermal_temp_in_cfg(psoc, &fwol_cfg->thermal_temp_cfg);
|
||||||
fwol_init_ie_whiltelist_in_cfg(psoc, &fwol_cfg->ie_whitelist_cfg);
|
fwol_init_ie_whiltelist_in_cfg(psoc, &fwol_cfg->ie_allowlist_cfg);
|
||||||
fwol_init_neighbor_report_cfg(psoc, &fwol_cfg->neighbor_report_cfg);
|
fwol_init_neighbor_report_cfg(psoc, &fwol_cfg->neighbor_report_cfg);
|
||||||
fwol_cfg->ani_enabled = cfg_get(psoc, CFG_ENABLE_ANI);
|
fwol_cfg->ani_enabled = cfg_get(psoc, CFG_ENABLE_ANI);
|
||||||
fwol_cfg->enable_rts_sifsbursting =
|
fwol_cfg->enable_rts_sifsbursting =
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 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
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
CFG_11K_ALL \
|
CFG_11K_ALL \
|
||||||
CFG_COEX_ALL \
|
CFG_COEX_ALL \
|
||||||
CFG_FWOL_GENERIC_ALL \
|
CFG_FWOL_GENERIC_ALL \
|
||||||
CFG_IE_WHITELIST \
|
CFG_IE_ALLOWLIST \
|
||||||
CFG_THERMAL_TEMP_ALL
|
CFG_THERMAL_TEMP_ALL
|
||||||
#else
|
#else
|
||||||
#define CFG_FWOL_ALL
|
#define CFG_FWOL_ALL
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 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
|
||||||
@@ -25,30 +26,30 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* g_enable_probereq_whitelist_ies - Enable IE white listing
|
* g_enable_probereq_whitelist_ies - Enable IE allow listing
|
||||||
* @Min: 0
|
* @Min: 0
|
||||||
* @Max: 1
|
* @Max: 1
|
||||||
* @Default: 0
|
* @Default: 0
|
||||||
*
|
*
|
||||||
* This ini is used to enable/disable probe request IE white listing feature.
|
* This ini is used to enable/disable probe request IE allow listing feature.
|
||||||
* Values 0 and 1 are used to disable and enable respectively, by default this
|
* Values 0 and 1 are used to disable and enable respectively, by default this
|
||||||
* feature is disabled.
|
* feature is disabled.
|
||||||
*
|
*
|
||||||
* Related: None
|
* Related: None
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request IE whitelisting
|
* Supported Feature: Probe request IE allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
* </ini>
|
* </ini>
|
||||||
*/
|
*/
|
||||||
#define CFG_PROBE_REQ_IE_WHITELIST CFG_INI_BOOL( \
|
#define CFG_PROBE_REQ_IE_ALLOWLIST CFG_INI_BOOL( \
|
||||||
"g_enable_probereq_whitelist_ies", \
|
"g_enable_probereq_whitelist_ies", \
|
||||||
0, \
|
0, \
|
||||||
"Enable IE whitelisting")
|
"Enable IE allowlisting")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For IE white listing in Probe Req, following ini parameters from
|
* For IE allow listing in Probe Req, following ini parameters from
|
||||||
* g_probe_req_ie_bitmap_0 to g_probe_req_ie_bitmap_7 are used. User needs to
|
* g_probe_req_ie_bitmap_0 to g_probe_req_ie_bitmap_7 are used. User needs to
|
||||||
* input this values in hexa decimal format, when bit is set in bitmap,
|
* input this values in hexa decimal format, when bit is set in bitmap,
|
||||||
* corresponding IE needs to be included in probe request.
|
* corresponding IE needs to be included in probe request.
|
||||||
@@ -78,7 +79,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -104,7 +105,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -130,7 +131,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -156,7 +157,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -182,7 +183,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -208,7 +209,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -234,7 +235,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -260,7 +261,7 @@
|
|||||||
*
|
*
|
||||||
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
* Related: Need to enable g_enable_probereq_whitelist_ies.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -278,7 +279,7 @@
|
|||||||
#define VENDOR_SPECIFIC_IE_BITMAP 0x20000000
|
#define VENDOR_SPECIFIC_IE_BITMAP 0x20000000
|
||||||
/*
|
/*
|
||||||
* For vendor specific IE, Probe Req OUI types and sub types which are
|
* For vendor specific IE, Probe Req OUI types and sub types which are
|
||||||
* to be white listed are specified in gProbeReqOUIs in the following
|
* to be allow listed are specified in gProbeReqOUIs in the following
|
||||||
* example format - gProbeReqOUIs=AABBCCDD EEFF1122
|
* example format - gProbeReqOUIs=AABBCCDD EEFF1122
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -293,7 +294,7 @@
|
|||||||
* Related: Need to enable g_enable_probereq_whitelist_ies and
|
* Related: Need to enable g_enable_probereq_whitelist_ies and
|
||||||
* vendor specific IE should be set in g_probe_req_ie_bitmap_6.
|
* vendor specific IE should be set in g_probe_req_ie_bitmap_6.
|
||||||
*
|
*
|
||||||
* Supported Feature: Probe request ie whitelisting
|
* Supported Feature: Probe request ie allowlisting
|
||||||
*
|
*
|
||||||
* Usage: Internal/External
|
* Usage: Internal/External
|
||||||
*
|
*
|
||||||
@@ -306,8 +307,8 @@
|
|||||||
"", \
|
"", \
|
||||||
"Probe Req OUIs")
|
"Probe Req OUIs")
|
||||||
|
|
||||||
#define CFG_IE_WHITELIST \
|
#define CFG_IE_ALLOWLIST \
|
||||||
CFG(CFG_PROBE_REQ_IE_WHITELIST) \
|
CFG(CFG_PROBE_REQ_IE_ALLOWLIST) \
|
||||||
CFG(CFG_PROBE_REQ_IE_BIT_MAP0) \
|
CFG(CFG_PROBE_REQ_IE_BIT_MAP0) \
|
||||||
CFG(CFG_PROBE_REQ_IE_BIT_MAP1) \
|
CFG(CFG_PROBE_REQ_IE_BIT_MAP1) \
|
||||||
CFG(CFG_PROBE_REQ_IE_BIT_MAP2) \
|
CFG(CFG_PROBE_REQ_IE_BIT_MAP2) \
|
||||||
|
@@ -178,35 +178,35 @@ ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
|
|||||||
bool *neighbor_report_req);
|
bool *neighbor_report_req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_fwol_get_ie_whitelist() - Get IE whitelist param value
|
* ucfg_fwol_get_ie_allowlist() - Get IE allowlist param value
|
||||||
* @psoc: Pointer to psoc object
|
* @psoc: Pointer to psoc object
|
||||||
* @ie_whitelist: Pointer to return the IE whitelist param value
|
* @ie_allowlist: Pointer to return the IE allowlist param value
|
||||||
*
|
*
|
||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_get_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool *ie_whitelist);
|
ucfg_fwol_get_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool *ie_allowlist);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_fwol_set_ie_whitelist() - Set IE whitelist param value
|
* ucfg_fwol_set_ie_allowlist() - Set IE allowlist param value
|
||||||
* @psoc: Pointer to psoc object
|
* @psoc: Pointer to psoc object
|
||||||
* @ie_whitelist: Value to set IE whitelist param
|
* @ie_allowlist: Value to set IE allowlist param
|
||||||
*
|
*
|
||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_set_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool ie_whitelist);
|
ucfg_fwol_set_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool ie_allowlist);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_fwol_get_all_whitelist_params() - Get all IE whitelist param values
|
* ucfg_fwol_get_all_allowlist_params() - Get all IE allowlist param values
|
||||||
* @psoc: Pointer to psoc object
|
* @psoc: Pointer to psoc object
|
||||||
* @whitelist: Pointer to struct wlan_fwol_ie_whitelist
|
* @allowlist: Pointer to struct wlan_fwol_ie_allowlist
|
||||||
*
|
*
|
||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_get_all_whitelist_params(struct wlan_objmgr_psoc *psoc,
|
ucfg_fwol_get_all_allowlist_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist);
|
struct wlan_fwol_ie_allowlist *allowlist);
|
||||||
|
|
||||||
/** ucfg_fwol_get_ani_enabled() - Assigns the ani_enabled value
|
/** ucfg_fwol_get_ani_enabled() - Assigns the ani_enabled value
|
||||||
* @psoc: pointer to the psoc object
|
* @psoc: pointer to the psoc object
|
||||||
@@ -809,20 +809,20 @@ ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
ucfg_fwol_get_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool *ie_whitelist)
|
ucfg_fwol_get_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool *ie_allowlist)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
ucfg_fwol_set_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool ie_whitelist)
|
ucfg_fwol_set_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool ie_allowlist)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
ucfg_fwol_get_all_whitelist_params(struct wlan_objmgr_psoc *psoc,
|
ucfg_fwol_get_all_allowlist_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist)
|
struct wlan_fwol_ie_allowlist *allowlist)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
@@ -276,7 +276,7 @@ ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_get_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool *ie_whitelist)
|
ucfg_fwol_get_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool *ie_allowlist)
|
||||||
{
|
{
|
||||||
struct wlan_fwol_psoc_obj *fwol_obj;
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
@@ -286,13 +286,13 @@ ucfg_fwol_get_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool *ie_whitelist)
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ie_whitelist = fwol_obj->cfg.ie_whitelist_cfg.ie_whitelist;
|
*ie_allowlist = fwol_obj->cfg.ie_allowlist_cfg.ie_allowlist;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_set_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool ie_whitelist)
|
ucfg_fwol_set_ie_allowlist(struct wlan_objmgr_psoc *psoc, bool ie_allowlist)
|
||||||
{
|
{
|
||||||
struct wlan_fwol_psoc_obj *fwol_obj;
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
@@ -302,7 +302,7 @@ ucfg_fwol_set_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool ie_whitelist)
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
fwol_obj->cfg.ie_whitelist_cfg.ie_whitelist = ie_whitelist;
|
fwol_obj->cfg.ie_allowlist_cfg.ie_allowlist = ie_allowlist;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -428,8 +428,8 @@ QDF_STATUS ucfg_get_enable_phy_reg_retention(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_fwol_get_all_whitelist_params(struct wlan_objmgr_psoc *psoc,
|
ucfg_fwol_get_all_allowlist_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_ie_whitelist *whitelist)
|
struct wlan_fwol_ie_allowlist *allowlist)
|
||||||
{
|
{
|
||||||
struct wlan_fwol_psoc_obj *fwol_obj;
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
@@ -439,7 +439,7 @@ ucfg_fwol_get_all_whitelist_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*whitelist = fwol_obj->cfg.ie_whitelist_cfg;
|
*allowlist = fwol_obj->cfg.ie_allowlist_cfg;
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 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
|
||||||
@@ -108,7 +109,7 @@
|
|||||||
* BIT 10: When this bit is set, Firmware will forward BTM Request Frame to
|
* BIT 10: When this bit is set, Firmware will forward BTM Request Frame to
|
||||||
* driver when the frame contains MBO assoc retry attribute. Driver will send
|
* driver when the frame contains MBO assoc retry attribute. Driver will send
|
||||||
* this frame to supplicant and supplicant will use the frame info for
|
* this frame to supplicant and supplicant will use the frame info for
|
||||||
* blacklisting the AP so for the next connection framework will avoid this AP.
|
* denylisting the AP so for the next connection framework will avoid this AP.
|
||||||
*
|
*
|
||||||
* BIT 11-31: Reserved
|
* BIT 11-31: Reserved
|
||||||
*
|
*
|
||||||
|
@@ -58,7 +58,7 @@ target_if_cm_roam_register_rx_ops(struct wlan_cm_roam_rx_ops *rx_ops)
|
|||||||
rx_ops->roam_sync_event = cm_roam_sync_event_handler;
|
rx_ops->roam_sync_event = cm_roam_sync_event_handler;
|
||||||
rx_ops->roam_sync_frame_event = cm_roam_sync_frame_event_handler;
|
rx_ops->roam_sync_frame_event = cm_roam_sync_frame_event_handler;
|
||||||
rx_ops->roam_event_rx = cm_roam_event_handler;
|
rx_ops->roam_event_rx = cm_roam_event_handler;
|
||||||
rx_ops->btm_blacklist_event = cm_btm_blacklist_event_handler;
|
rx_ops->btm_denylist_event = cm_btm_denylist_event_handler;
|
||||||
rx_ops->vdev_disconnect_event = cm_vdev_disconnect_event_handler;
|
rx_ops->vdev_disconnect_event = cm_vdev_disconnect_event_handler;
|
||||||
rx_ops->roam_scan_chan_list_event = cm_roam_scan_ch_list_event_handler;
|
rx_ops->roam_scan_chan_list_event = cm_roam_scan_ch_list_event_handler;
|
||||||
rx_ops->roam_stats_event_rx = cm_roam_stats_event_handler;
|
rx_ops->roam_stats_event_rx = cm_roam_stats_event_handler;
|
||||||
@@ -270,11 +270,11 @@ done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
target_if_cm_btm_blacklist_event(ol_scn_t scn, uint8_t *event, uint32_t len)
|
target_if_cm_btm_denylist_event(ol_scn_t scn, uint8_t *event, uint32_t len)
|
||||||
{
|
{
|
||||||
QDF_STATUS qdf_status;
|
QDF_STATUS qdf_status;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
struct roam_blacklist_event *dst_list = NULL;
|
struct roam_denylist_event *dst_list = NULL;
|
||||||
struct wmi_unified *wmi_handle;
|
struct wmi_unified *wmi_handle;
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
struct wlan_cm_roam_rx_ops *roam_rx_ops;
|
struct wlan_cm_roam_rx_ops *roam_rx_ops;
|
||||||
@@ -291,26 +291,26 @@ target_if_cm_btm_blacklist_event(ol_scn_t scn, uint8_t *event, uint32_t len)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_status = wmi_extract_btm_blacklist_event(wmi_handle, event, len,
|
qdf_status = wmi_extract_btm_denylist_event(wmi_handle, event, len,
|
||||||
&dst_list);
|
&dst_list);
|
||||||
if (QDF_IS_STATUS_ERROR(qdf_status)) {
|
if (QDF_IS_STATUS_ERROR(qdf_status)) {
|
||||||
target_if_err("parsing of event failed, %d", qdf_status);
|
target_if_err("parsing of event failed, %d", qdf_status);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dst_list) {
|
if (!dst_list) {
|
||||||
/* No APs to blacklist, just return */
|
/* No APs to denylist, just return */
|
||||||
target_if_err_rl("No APs in blacklist received");
|
target_if_err_rl("No APs in denylist received");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
roam_rx_ops = target_if_cm_get_roam_rx_ops(psoc);
|
roam_rx_ops = target_if_cm_get_roam_rx_ops(psoc);
|
||||||
if (!roam_rx_ops || !roam_rx_ops->btm_blacklist_event) {
|
if (!roam_rx_ops || !roam_rx_ops->btm_denylist_event) {
|
||||||
target_if_err("No valid roam rx ops");
|
target_if_err("No valid roam rx ops");
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
qdf_status = roam_rx_ops->btm_blacklist_event(psoc, dst_list);
|
qdf_status = roam_rx_ops->btm_denylist_event(psoc, dst_list);
|
||||||
if (QDF_IS_STATUS_ERROR(qdf_status))
|
if (QDF_IS_STATUS_ERROR(qdf_status))
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
|
|
||||||
@@ -639,12 +639,12 @@ target_if_roam_offload_register_events(struct wlan_objmgr_psoc *psoc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = wmi_unified_register_event_handler(handle,
|
ret = wmi_unified_register_event_handler(handle,
|
||||||
wmi_roam_blacklist_event_id,
|
wmi_roam_denylist_event_id,
|
||||||
target_if_cm_btm_blacklist_event,
|
target_if_cm_btm_denylist_event,
|
||||||
WMI_RX_SERIALIZER_CTX);
|
WMI_RX_SERIALIZER_CTX);
|
||||||
if (QDF_IS_STATUS_ERROR(ret)) {
|
if (QDF_IS_STATUS_ERROR(ret)) {
|
||||||
target_if_err("wmi event(%u) registration failed, ret: %d",
|
target_if_err("wmi event(%u) registration failed, ret: %d",
|
||||||
wmi_roam_blacklist_event_id, ret);
|
wmi_roam_denylist_event_id, ret);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -724,7 +724,7 @@ target_if_cm_roam_scan_filter(wmi_unified_t wmi_handle, uint8_t command,
|
|||||||
|
|
||||||
if (command != ROAM_SCAN_OFFLOAD_STOP) {
|
if (command != ROAM_SCAN_OFFLOAD_STOP) {
|
||||||
switch (req->reason) {
|
switch (req->reason) {
|
||||||
case REASON_ROAM_SET_BLACKLIST_BSSID:
|
case REASON_ROAM_SET_DENYLIST_BSSID:
|
||||||
case REASON_ROAM_SET_SSID_ALLOWED:
|
case REASON_ROAM_SET_SSID_ALLOWED:
|
||||||
case REASON_ROAM_SET_FAVORED_BSSID:
|
case REASON_ROAM_SET_FAVORED_BSSID:
|
||||||
break;
|
break;
|
||||||
|
@@ -845,7 +845,7 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
|||||||
if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
|
if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
|
||||||
cm_if_mgr_inform_connect_complete(cm_ctx->vdev,
|
cm_if_mgr_inform_connect_complete(cm_ctx->vdev,
|
||||||
connect_rsp->connect_status);
|
connect_rsp->connect_status);
|
||||||
cm_inform_blm_connect_complete(cm_ctx->vdev, connect_rsp);
|
cm_inform_dlm_connect_complete(cm_ctx->vdev, connect_rsp);
|
||||||
wlan_tdls_notify_sta_connect(vdev_id,
|
wlan_tdls_notify_sta_connect(vdev_id,
|
||||||
mlme_get_tdls_chan_switch_prohibited(vdev),
|
mlme_get_tdls_chan_switch_prohibited(vdev),
|
||||||
mlme_get_tdls_prohibited(vdev), vdev);
|
mlme_get_tdls_prohibited(vdev), vdev);
|
||||||
|
@@ -1950,8 +1950,8 @@ cm_fill_rso_channel_list(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cm_add_blacklist_ap_list(struct wlan_objmgr_pdev *pdev,
|
cm_add_denylist_ap_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct roam_scan_filter_params *params)
|
struct roam_scan_filter_params *params)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
struct reject_ap_config_params *reject_list;
|
struct reject_ap_config_params *reject_list;
|
||||||
@@ -1961,19 +1961,19 @@ cm_add_blacklist_ap_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
if (!reject_list)
|
if (!reject_list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
params->num_bssid_black_list =
|
params->num_bssid_deny_list =
|
||||||
wlan_dlm_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_DENYLIST_TYPE);
|
USERSPACE_DENYLIST_TYPE);
|
||||||
if (!params->num_bssid_black_list) {
|
if (!params->num_bssid_deny_list) {
|
||||||
qdf_mem_free(reject_list);
|
qdf_mem_free(reject_list);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < params->num_bssid_black_list; i++) {
|
for (i = 0; i < params->num_bssid_deny_list; i++) {
|
||||||
qdf_copy_macaddr(¶ms->bssid_avoid_list[i],
|
qdf_copy_macaddr(¶ms->bssid_avoid_list[i],
|
||||||
&reject_list[i].bssid);
|
&reject_list[i].bssid);
|
||||||
mlme_debug("Blacklist bssid[%d]:" QDF_MAC_ADDR_FMT, i,
|
mlme_debug("Denylist bssid[%d]:" QDF_MAC_ADDR_FMT, i,
|
||||||
QDF_MAC_ADDR_REF(params->bssid_avoid_list[i].bytes));
|
QDF_MAC_ADDR_REF(params->bssid_avoid_list[i].bytes));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1989,7 +1989,7 @@ cm_add_blacklist_ap_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
* @reason: reason to roam
|
* @reason: reason to roam
|
||||||
* @scan_filter_params: roam scan filter related parameters
|
* @scan_filter_params: roam scan filter related parameters
|
||||||
*
|
*
|
||||||
* There are filters such as whitelist, blacklist and preferred
|
* There are filters such as allowlist, denylist and preferred
|
||||||
* list that need to be applied to the scan results to form the
|
* list that need to be applied to the scan results to form the
|
||||||
* probable candidates for roaming.
|
* probable candidates for roaming.
|
||||||
*
|
*
|
||||||
@@ -2002,7 +2002,7 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
struct wlan_roam_scan_filter_params *scan_filter_params)
|
struct wlan_roam_scan_filter_params *scan_filter_params)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
uint32_t num_ssid_white_list = 0, num_bssid_preferred_list = 0;
|
uint32_t num_ssid_allow_list = 0, num_bssid_preferred_list = 0;
|
||||||
uint32_t op_bitmap = 0;
|
uint32_t op_bitmap = 0;
|
||||||
struct roam_scan_filter_params *params;
|
struct roam_scan_filter_params *params;
|
||||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||||
@@ -2017,13 +2017,13 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
rso_usr_cfg = &mlme_obj->cfg.lfr.rso_user_config;
|
rso_usr_cfg = &mlme_obj->cfg.lfr.rso_user_config;
|
||||||
if (command != ROAM_SCAN_OFFLOAD_STOP) {
|
if (command != ROAM_SCAN_OFFLOAD_STOP) {
|
||||||
switch (reason) {
|
switch (reason) {
|
||||||
case REASON_ROAM_SET_BLACKLIST_BSSID:
|
case REASON_ROAM_SET_DENYLIST_BSSID:
|
||||||
op_bitmap |= ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
op_bitmap |= ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
||||||
cm_add_blacklist_ap_list(pdev, params);
|
cm_add_denylist_ap_list(pdev, params);
|
||||||
break;
|
break;
|
||||||
case REASON_ROAM_SET_SSID_ALLOWED:
|
case REASON_ROAM_SET_SSID_ALLOWED:
|
||||||
op_bitmap |= ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
op_bitmap |= ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
||||||
num_ssid_white_list =
|
num_ssid_allow_list =
|
||||||
rso_usr_cfg->num_ssid_allowed_list;
|
rso_usr_cfg->num_ssid_allowed_list;
|
||||||
break;
|
break;
|
||||||
case REASON_ROAM_SET_FAVORED_BSSID:
|
case REASON_ROAM_SET_FAVORED_BSSID:
|
||||||
@@ -2033,13 +2033,13 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
break;
|
break;
|
||||||
case REASON_CTX_INIT:
|
case REASON_CTX_INIT:
|
||||||
if (command == ROAM_SCAN_OFFLOAD_START) {
|
if (command == ROAM_SCAN_OFFLOAD_START) {
|
||||||
num_ssid_white_list =
|
num_ssid_allow_list =
|
||||||
rso_usr_cfg->num_ssid_allowed_list;
|
rso_usr_cfg->num_ssid_allowed_list;
|
||||||
if (num_ssid_white_list)
|
if (num_ssid_allow_list)
|
||||||
op_bitmap |=
|
op_bitmap |=
|
||||||
ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
||||||
cm_add_blacklist_ap_list(pdev, params);
|
cm_add_denylist_ap_list(pdev, params);
|
||||||
if (params->num_bssid_black_list)
|
if (params->num_bssid_deny_list)
|
||||||
op_bitmap |=
|
op_bitmap |=
|
||||||
ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
||||||
|
|
||||||
@@ -2062,13 +2062,13 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (command == ROAM_SCAN_OFFLOAD_START) {
|
if (command == ROAM_SCAN_OFFLOAD_START) {
|
||||||
num_ssid_white_list =
|
num_ssid_allow_list =
|
||||||
rso_usr_cfg->num_ssid_allowed_list;
|
rso_usr_cfg->num_ssid_allowed_list;
|
||||||
if (num_ssid_white_list)
|
if (num_ssid_allow_list)
|
||||||
op_bitmap |=
|
op_bitmap |=
|
||||||
ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
ROAM_FILTER_OP_BITMAP_WHITE_LIST;
|
||||||
cm_add_blacklist_ap_list(pdev, params);
|
cm_add_denylist_ap_list(pdev, params);
|
||||||
if (params->num_bssid_black_list)
|
if (params->num_bssid_deny_list)
|
||||||
op_bitmap |=
|
op_bitmap |=
|
||||||
ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
ROAM_FILTER_OP_BITMAP_BLACK_LIST;
|
||||||
}
|
}
|
||||||
@@ -2080,13 +2080,13 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* In case of STOP command, reset all the variables
|
/* In case of STOP command, reset all the variables
|
||||||
* except for blacklist BSSID which should be retained
|
* except for denylist BSSID which should be retained
|
||||||
* across connections.
|
* across connections.
|
||||||
*/
|
*/
|
||||||
op_bitmap = ROAM_FILTER_OP_BITMAP_WHITE_LIST |
|
op_bitmap = ROAM_FILTER_OP_BITMAP_WHITE_LIST |
|
||||||
ROAM_FILTER_OP_BITMAP_PREFER_BSSID;
|
ROAM_FILTER_OP_BITMAP_PREFER_BSSID;
|
||||||
if (reason == REASON_ROAM_SET_SSID_ALLOWED)
|
if (reason == REASON_ROAM_SET_SSID_ALLOWED)
|
||||||
num_ssid_white_list =
|
num_ssid_allow_list =
|
||||||
rso_usr_cfg->num_ssid_allowed_list;
|
rso_usr_cfg->num_ssid_allowed_list;
|
||||||
num_bssid_preferred_list = rso_usr_cfg->num_bssid_favored;
|
num_bssid_preferred_list = rso_usr_cfg->num_bssid_favored;
|
||||||
}
|
}
|
||||||
@@ -2094,12 +2094,12 @@ cm_roam_scan_filter(struct wlan_objmgr_psoc *psoc,
|
|||||||
/* fill in fixed values */
|
/* fill in fixed values */
|
||||||
params->vdev_id = vdev_id;
|
params->vdev_id = vdev_id;
|
||||||
params->op_bitmap = op_bitmap;
|
params->op_bitmap = op_bitmap;
|
||||||
params->num_ssid_white_list = num_ssid_white_list;
|
params->num_ssid_allow_list = num_ssid_allow_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_dlm_get_rssi_denylist_threshold(pdev);
|
wlan_dlm_get_rssi_denylist_threshold(pdev);
|
||||||
|
|
||||||
for (i = 0; i < num_ssid_white_list; i++) {
|
for (i = 0; i < num_ssid_allow_list; i++) {
|
||||||
qdf_mem_copy(params->ssid_allowed_list[i].ssid,
|
qdf_mem_copy(params->ssid_allowed_list[i].ssid,
|
||||||
rso_usr_cfg->ssid_allowed_list[i].ssid,
|
rso_usr_cfg->ssid_allowed_list[i].ssid,
|
||||||
rso_usr_cfg->ssid_allowed_list[i].length);
|
rso_usr_cfg->ssid_allowed_list[i].length);
|
||||||
@@ -3294,14 +3294,14 @@ cm_roam_cmd_allowed(struct wlan_objmgr_psoc *psoc,
|
|||||||
* station could also be in a PREAUTH or REASSOC states.
|
* station could also be in a PREAUTH or REASSOC states.
|
||||||
* 1) Block all CMDs that are not STOP in INIT State. For STOP always
|
* 1) Block all CMDs that are not STOP in INIT State. For STOP always
|
||||||
* inform firmware irrespective of state.
|
* inform firmware irrespective of state.
|
||||||
* 2) Block update cfg CMD if its for REASON_ROAM_SET_BLACKLIST_BSSID,
|
* 2) Block update cfg CMD if its for REASON_ROAM_SET_DENYLIST_BSSID,
|
||||||
* because we need to inform firmware of blacklisted AP for PNO in
|
* because we need to inform firmware of denylisted AP for PNO in
|
||||||
* all states.
|
* all states.
|
||||||
*/
|
*/
|
||||||
if ((cm_is_vdev_disconnecting(vdev) ||
|
if ((cm_is_vdev_disconnecting(vdev) ||
|
||||||
cm_is_vdev_disconnected(vdev)) &&
|
cm_is_vdev_disconnected(vdev)) &&
|
||||||
(command != ROAM_SCAN_OFFLOAD_STOP) &&
|
(command != ROAM_SCAN_OFFLOAD_STOP) &&
|
||||||
(reason != REASON_ROAM_SET_BLACKLIST_BSSID)) {
|
(reason != REASON_ROAM_SET_DENYLIST_BSSID)) {
|
||||||
mlme_info("Scan Command not sent to FW and cmd=%d", command);
|
mlme_info("Scan Command not sent to FW and cmd=%d", command);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
@@ -1416,15 +1416,15 @@ QDF_STATUS
|
|||||||
cm_roam_event_handler(struct roam_offload_roam_event *roam_event);
|
cm_roam_event_handler(struct roam_offload_roam_event *roam_event);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cm_btm_blacklist_event_handler() - Black list the given BSSID due to btm
|
* cm_btm_denylist_event_handler() - Deny list the given BSSID due to btm
|
||||||
* @psoc: PSOC pointer
|
* @psoc: PSOC pointer
|
||||||
* @list: Roam blacklist info
|
* @list: Roam denylist info
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
cm_btm_blacklist_event_handler(struct wlan_objmgr_psoc *psoc,
|
cm_btm_denylist_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||||
struct roam_blacklist_event *list);
|
struct roam_denylist_event *list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cm_vdev_disconnect_event_handler() - disconnect evt handler for target_if
|
* cm_vdev_disconnect_event_handler() - disconnect evt handler for target_if
|
||||||
|
@@ -64,7 +64,7 @@
|
|||||||
#define REASON_ROAM_SET_SSID_ALLOWED 26
|
#define REASON_ROAM_SET_SSID_ALLOWED 26
|
||||||
#define REASON_ROAM_SET_FAVORED_BSSID 27
|
#define REASON_ROAM_SET_FAVORED_BSSID 27
|
||||||
#define REASON_ROAM_GOOD_RSSI_CHANGED 28
|
#define REASON_ROAM_GOOD_RSSI_CHANGED 28
|
||||||
#define REASON_ROAM_SET_BLACKLIST_BSSID 29
|
#define REASON_ROAM_SET_DENYLIST_BSSID 29
|
||||||
#define REASON_ROAM_SCAN_HI_RSSI_MAXCOUNT_CHANGED 30
|
#define REASON_ROAM_SCAN_HI_RSSI_MAXCOUNT_CHANGED 30
|
||||||
#define REASON_ROAM_SCAN_HI_RSSI_DELTA_CHANGED 31
|
#define REASON_ROAM_SCAN_HI_RSSI_DELTA_CHANGED 31
|
||||||
#define REASON_ROAM_SCAN_HI_RSSI_DELAY_CHANGED 32
|
#define REASON_ROAM_SCAN_HI_RSSI_DELAY_CHANGED 32
|
||||||
@@ -570,10 +570,10 @@ struct rso_roam_policy_params {
|
|||||||
/**
|
/**
|
||||||
* struct rso_params - global RSO params
|
* struct rso_params - global RSO params
|
||||||
* @num_ssid_allowed_list: The number of SSID profiles that are
|
* @num_ssid_allowed_list: The number of SSID profiles that are
|
||||||
* in the Whitelist. When roaming, we
|
* in the Allowlist. When roaming, we
|
||||||
* consider the BSSID's with this SSID
|
* consider the BSSID's with this SSID
|
||||||
* also for roaming apart from the connected one's
|
* also for roaming apart from the connected one's
|
||||||
* @ssid_allowed_list: Whitelist SSID's
|
* @ssid_allowed_list: Allowlist SSID's
|
||||||
* @num_bssid_favored: Number of BSSID's which have a preference over others
|
* @num_bssid_favored: Number of BSSID's which have a preference over others
|
||||||
* @bssid_favored: Favorable BSSID's
|
* @bssid_favored: Favorable BSSID's
|
||||||
* @bssid_favored_factor: RSSI to be added to this BSSID to prefer it
|
* @bssid_favored_factor: RSSI to be added to this BSSID to prefer it
|
||||||
@@ -987,16 +987,16 @@ struct wlan_roam_mawc_params {
|
|||||||
* parameters
|
* parameters
|
||||||
* @op_bitmap: bitmap to determine reason of roaming
|
* @op_bitmap: bitmap to determine reason of roaming
|
||||||
* @vdev_id: vdev id
|
* @vdev_id: vdev id
|
||||||
* @num_bssid_black_list: The number of BSSID's that we should avoid
|
* @num_bssid_deny_list: The number of BSSID's that we should avoid
|
||||||
* connecting to. It is like a blacklist of BSSID's.
|
* connecting to. It is like a denylist of BSSID's.
|
||||||
* @num_ssid_white_list: The number of SSID profiles that are in the
|
* @num_ssid_allow_list: The number of SSID profiles that are in the
|
||||||
* Whitelist. When roaming, we consider the BSSID's with
|
* Allowlist. When roaming, we consider the BSSID's with
|
||||||
* this SSID also for roaming apart from the connected
|
* this SSID also for roaming apart from the connected
|
||||||
* one's
|
* one's
|
||||||
* @num_bssid_preferred_list: Number of BSSID's which have a preference over
|
* @num_bssid_preferred_list: Number of BSSID's which have a preference over
|
||||||
* others
|
* others
|
||||||
* @bssid_avoid_list: Blacklist SSID's
|
* @bssid_avoid_list: Denylist SSID's
|
||||||
* @ssid_allowed_list: Whitelist SSID's
|
* @ssid_allowed_list: Allowlist SSID's
|
||||||
* @bssid_favored: Favorable BSSID's
|
* @bssid_favored: Favorable BSSID's
|
||||||
* @bssid_favored_factor: RSSI to be added to this BSSID to prefer it
|
* @bssid_favored_factor: RSSI to be added to this BSSID to prefer it
|
||||||
* @lca_disallow_config_present: LCA [Last Connected AP] disallow config
|
* @lca_disallow_config_present: LCA [Last Connected AP] disallow config
|
||||||
@@ -1008,8 +1008,8 @@ struct wlan_roam_mawc_params {
|
|||||||
* AP's, in units of db
|
* AP's, in units of db
|
||||||
* @num_disallowed_aps: How many APs the target should maintain in its LCA
|
* @num_disallowed_aps: How many APs the target should maintain in its LCA
|
||||||
* list
|
* list
|
||||||
* @delta_rssi: (dB units) when AB in RSSI blacklist improved by at least
|
* @delta_rssi: (dB units) when AB in RSSI denylist improved by at least
|
||||||
* delta_rssi,it will be removed from blacklist
|
* delta_rssi,it will be removed from denylist
|
||||||
*
|
*
|
||||||
* This structure holds all the key parameters related to
|
* This structure holds all the key parameters related to
|
||||||
* initial connection and roaming connections.
|
* initial connection and roaming connections.
|
||||||
@@ -1018,8 +1018,8 @@ struct wlan_roam_mawc_params {
|
|||||||
struct roam_scan_filter_params {
|
struct roam_scan_filter_params {
|
||||||
uint32_t op_bitmap;
|
uint32_t op_bitmap;
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
uint32_t num_bssid_black_list;
|
uint32_t num_bssid_deny_list;
|
||||||
uint32_t num_ssid_white_list;
|
uint32_t num_ssid_allow_list;
|
||||||
uint32_t num_bssid_preferred_list;
|
uint32_t num_bssid_preferred_list;
|
||||||
struct qdf_mac_addr bssid_avoid_list[MAX_BSSID_AVOID_LIST];
|
struct qdf_mac_addr bssid_avoid_list[MAX_BSSID_AVOID_LIST];
|
||||||
struct wlan_ssid ssid_allowed_list[MAX_SSID_ALLOWED_LIST];
|
struct wlan_ssid ssid_allowed_list[MAX_SSID_ALLOWED_LIST];
|
||||||
@@ -2048,16 +2048,16 @@ enum roam_reason {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* struct roam_blacklist_timeout - BTM blacklist entry
|
* struct roam_denylist_timeout - BTM denylist entry
|
||||||
* @bssid: bssid that is to be blacklisted
|
* @bssid: bssid that is to be denylisted
|
||||||
* @timeout: time duration for which the bssid is blacklisted
|
* @timeout: time duration for which the bssid is denylisted
|
||||||
* @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 denylisted
|
||||||
* @reject_reason: reason to add the BSSID to DLM
|
* @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 DLM
|
* @source: Source of adding the BSSID to DLM
|
||||||
*/
|
*/
|
||||||
struct roam_blacklist_timeout {
|
struct roam_denylist_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;
|
||||||
@@ -2068,15 +2068,15 @@ struct roam_blacklist_timeout {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* struct roam_blacklist_event - Blacklist event entries destination structure
|
* struct roam_denylist_event - Denylist event entries destination structure
|
||||||
* @vdev_id: vdev id
|
* @vdev_id: vdev id
|
||||||
* @num_entries: total entries sent over the event
|
* @num_entries: total entries sent over the event
|
||||||
* @roam_blacklist: blacklist details
|
* @roam_denylist: denylist details
|
||||||
*/
|
*/
|
||||||
struct roam_blacklist_event {
|
struct roam_denylist_event {
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
uint32_t num_entries;
|
uint32_t num_entries;
|
||||||
struct roam_blacklist_timeout roam_blacklist[];
|
struct roam_denylist_timeout roam_denylist[];
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2466,7 +2466,7 @@ struct roam_scan_candidate_frame {
|
|||||||
* @roam_sync_event: RX ops function pointer for roam sync event
|
* @roam_sync_event: RX ops function pointer for roam sync event
|
||||||
* @roam_sync_frame_event: Rx ops function pointer for roam sync frame event
|
* @roam_sync_frame_event: Rx ops function pointer for roam sync frame event
|
||||||
* @roam_event_rx: Rx ops function pointer for roam info event
|
* @roam_event_rx: Rx ops function pointer for roam info event
|
||||||
* @btm_blacklist_event: Rx ops function pointer for btm blacklist event
|
* @btm_denylist_event: Rx ops function pointer for btm denylist event
|
||||||
* @vdev_disconnect_event: Rx ops function pointer for vdev disconnect event
|
* @vdev_disconnect_event: Rx ops function pointer for vdev disconnect event
|
||||||
* @roam_scan_chan_list_event: Rx ops function pointer for roam scan ch event
|
* @roam_scan_chan_list_event: Rx ops function pointer for roam scan ch event
|
||||||
* @roam_stats_event_rx: Rx ops function pointer for roam stats event
|
* @roam_stats_event_rx: Rx ops function pointer for roam stats event
|
||||||
@@ -2482,8 +2482,8 @@ struct wlan_cm_roam_rx_ops {
|
|||||||
QDF_STATUS (*roam_sync_frame_event)(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS (*roam_sync_frame_event)(struct wlan_objmgr_psoc *psoc,
|
||||||
struct roam_synch_frame_ind *frm);
|
struct roam_synch_frame_ind *frm);
|
||||||
QDF_STATUS (*roam_event_rx)(struct roam_offload_roam_event *roam_event);
|
QDF_STATUS (*roam_event_rx)(struct roam_offload_roam_event *roam_event);
|
||||||
QDF_STATUS (*btm_blacklist_event)(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS (*btm_denylist_event)(struct wlan_objmgr_psoc *psoc,
|
||||||
struct roam_blacklist_event *list);
|
struct roam_denylist_event *list);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*vdev_disconnect_event)(struct vdev_disconnect_event_data *data);
|
(*vdev_disconnect_event)(struct vdev_disconnect_event_data *data);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
|
@@ -1392,7 +1392,7 @@ void wlan_roam_reset_roam_params(struct wlan_objmgr_psoc *psoc)
|
|||||||
rso_usr_cfg = &mlme_obj->cfg.lfr.rso_user_config;
|
rso_usr_cfg = &mlme_obj->cfg.lfr.rso_user_config;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* clear all the whitelist parameters and remaining
|
* clear all the allowlist parameters and remaining
|
||||||
* needs to be retained across connections.
|
* needs to be retained across connections.
|
||||||
*/
|
*/
|
||||||
rso_usr_cfg->num_ssid_allowed_list = 0;
|
rso_usr_cfg->num_ssid_allowed_list = 0;
|
||||||
@@ -2550,12 +2550,12 @@ cm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
cm_btm_blacklist_event_handler(struct wlan_objmgr_psoc *psoc,
|
cm_btm_denylist_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||||
struct roam_blacklist_event *list)
|
struct roam_denylist_event *list)
|
||||||
{
|
{
|
||||||
uint32_t i, pdev_id;
|
uint32_t i, pdev_id;
|
||||||
struct sir_rssi_disallow_lst entry;
|
struct sir_rssi_disallow_lst entry;
|
||||||
struct roam_blacklist_timeout *blacklist;
|
struct roam_denylist_timeout *denylist;
|
||||||
struct wlan_objmgr_pdev *pdev;
|
struct wlan_objmgr_pdev *pdev;
|
||||||
|
|
||||||
pdev_id = wlan_get_pdev_id_from_vdev_id(psoc, list->vdev_id,
|
pdev_id = wlan_get_pdev_id_from_vdev_id(psoc, list->vdev_id,
|
||||||
@@ -2571,34 +2571,34 @@ cm_btm_blacklist_event_handler(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
mlme_debug("Received Blacklist event from FW num entries %d",
|
mlme_debug("Received Denylist event from FW num entries %d",
|
||||||
list->num_entries);
|
list->num_entries);
|
||||||
blacklist = &list->roam_blacklist[0];
|
denylist = &list->roam_denylist[0];
|
||||||
for (i = 0; i < list->num_entries; i++) {
|
for (i = 0; i < list->num_entries; i++) {
|
||||||
qdf_mem_zero(&entry, sizeof(struct sir_rssi_disallow_lst));
|
qdf_mem_zero(&entry, sizeof(struct sir_rssi_disallow_lst));
|
||||||
entry.bssid = blacklist->bssid;
|
entry.bssid = denylist->bssid;
|
||||||
entry.time_during_rejection = blacklist->received_time;
|
entry.time_during_rejection = denylist->received_time;
|
||||||
entry.reject_reason = blacklist->reject_reason;
|
entry.reject_reason = denylist->reject_reason;
|
||||||
entry.source = blacklist->source ? blacklist->source :
|
entry.source = denylist->source ? denylist->source :
|
||||||
ADDED_BY_TARGET;
|
ADDED_BY_TARGET;
|
||||||
entry.original_timeout = blacklist->original_timeout;
|
entry.original_timeout = denylist->original_timeout;
|
||||||
entry.received_time = blacklist->received_time;
|
entry.received_time = denylist->received_time;
|
||||||
/* If timeout = 0 and rssi = 0 ignore the entry */
|
/* If timeout = 0 and rssi = 0 ignore the entry */
|
||||||
if (!blacklist->timeout && !blacklist->rssi) {
|
if (!denylist->timeout && !denylist->rssi) {
|
||||||
continue;
|
continue;
|
||||||
} else if (blacklist->timeout) {
|
} else if (denylist->timeout) {
|
||||||
entry.retry_delay = blacklist->timeout;
|
entry.retry_delay = denylist->timeout;
|
||||||
/* set 0dbm as expected rssi */
|
/* set 0dbm as expected rssi */
|
||||||
entry.expected_rssi = CM_MIN_RSSI;
|
entry.expected_rssi = CM_MIN_RSSI;
|
||||||
} else {
|
} else {
|
||||||
/* blacklist timeout as 0 */
|
/* denylist timeout as 0 */
|
||||||
entry.retry_delay = blacklist->timeout;
|
entry.retry_delay = denylist->timeout;
|
||||||
entry.expected_rssi = blacklist->rssi;
|
entry.expected_rssi = denylist->rssi;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add this bssid to the rssi reject ap type in blacklist mgr */
|
/* Add this bssid to the rssi reject ap type in denylist mgr */
|
||||||
cm_add_bssid_to_reject_list(pdev, &entry);
|
cm_add_bssid_to_reject_list(pdev, &entry);
|
||||||
blacklist++;
|
denylist++;
|
||||||
}
|
}
|
||||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_CM_ID);
|
wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_CM_ID);
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 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
|
||||||
@@ -101,8 +101,8 @@ wmi_unified_roam_mawc_params_cmd(wmi_unified_t wmi_handle,
|
|||||||
struct wlan_roam_mawc_params *params);
|
struct wlan_roam_mawc_params *params);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_unified_roam_scan_filter_cmd() - send roam scan whitelist,
|
* wmi_unified_roam_scan_filter_cmd() - send roam scan allowlist,
|
||||||
* blacklist and preferred list
|
* denylist and preferred list
|
||||||
* @wmi_handle: wmi handle
|
* @wmi_handle: wmi handle
|
||||||
* @roam_req: roam scan lists related parameters
|
* @roam_req: roam scan lists related parameters
|
||||||
*
|
*
|
||||||
@@ -286,7 +286,7 @@ wmi_extract_roam_event(wmi_unified_t wmi_handle, uint8_t *event,
|
|||||||
struct roam_offload_roam_event *roam_event);
|
struct roam_offload_roam_event *roam_event);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_extract_btm_blacklist_event - Extract btm blacklist event
|
* wmi_extract_btm_denylist_event - Extract btm denylist event
|
||||||
* @wmi_handle: WMI handle
|
* @wmi_handle: WMI handle
|
||||||
* @event: Event data received from firmware
|
* @event: Event data received from firmware
|
||||||
* @data_len: Event data length received from firmware
|
* @data_len: Event data length received from firmware
|
||||||
@@ -295,9 +295,9 @@ wmi_extract_roam_event(wmi_unified_t wmi_handle, uint8_t *event,
|
|||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
wmi_extract_btm_blacklist_event(wmi_unified_t wmi_handle,
|
wmi_extract_btm_denylist_event(wmi_unified_t wmi_handle,
|
||||||
uint8_t *event, uint32_t data_len,
|
uint8_t *event, uint32_t data_len,
|
||||||
struct roam_blacklist_event **dst_list);
|
struct roam_denylist_event **dst_list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_extract_vdev_disconnect_event - Extract disconnect event data
|
* wmi_extract_vdev_disconnect_event - Extract disconnect event data
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 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
|
||||||
@@ -380,9 +380,10 @@ wmi_extract_roam_event(wmi_unified_t wmi_handle, uint8_t *event,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
wmi_extract_btm_blacklist_event(wmi_unified_t wmi_handle,
|
wmi_extract_btm_denylist_event(wmi_unified_t wmi_handle,
|
||||||
uint8_t *event, uint32_t data_len,
|
uint8_t *event,
|
||||||
struct roam_blacklist_event **dst_list)
|
uint32_t data_len,
|
||||||
|
struct roam_denylist_event **dst_list)
|
||||||
{
|
{
|
||||||
if (wmi_handle->ops->extract_btm_bl_event)
|
if (wmi_handle->ops->extract_btm_bl_event)
|
||||||
return wmi_handle->ops->extract_btm_bl_event(wmi_handle,
|
return wmi_handle->ops->extract_btm_bl_event(wmi_handle,
|
||||||
|
@@ -461,7 +461,7 @@ static QDF_STATUS send_roam_mawc_params_cmd_tlv(
|
|||||||
* @wmi_handle: wmi handle
|
* @wmi_handle: wmi handle
|
||||||
* @roam_req: Request which contains the filters
|
* @roam_req: Request which contains the filters
|
||||||
*
|
*
|
||||||
* There are filters such as whitelist, blacklist and preferred
|
* There are filters such as allowlist, denylist and preferred
|
||||||
* list that need to be applied to the scan results to form the
|
* list that need to be applied to the scan results to form the
|
||||||
* probable candidates for roaming.
|
* probable candidates for roaming.
|
||||||
*
|
*
|
||||||
@@ -487,11 +487,11 @@ static QDF_STATUS send_roam_scan_filter_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
len = sizeof(wmi_roam_filter_fixed_param);
|
len = sizeof(wmi_roam_filter_fixed_param);
|
||||||
|
|
||||||
len += WMI_TLV_HDR_SIZE;
|
len += WMI_TLV_HDR_SIZE;
|
||||||
if (roam_req->num_bssid_black_list)
|
if (roam_req->num_bssid_deny_list)
|
||||||
len += roam_req->num_bssid_black_list * sizeof(wmi_mac_addr);
|
len += roam_req->num_bssid_deny_list * sizeof(wmi_mac_addr);
|
||||||
len += WMI_TLV_HDR_SIZE;
|
len += WMI_TLV_HDR_SIZE;
|
||||||
if (roam_req->num_ssid_white_list)
|
if (roam_req->num_ssid_allow_list)
|
||||||
len += roam_req->num_ssid_white_list * sizeof(wmi_ssid);
|
len += roam_req->num_ssid_allow_list * sizeof(wmi_ssid);
|
||||||
len += 2 * WMI_TLV_HDR_SIZE;
|
len += 2 * WMI_TLV_HDR_SIZE;
|
||||||
if (roam_req->num_bssid_preferred_list) {
|
if (roam_req->num_bssid_preferred_list) {
|
||||||
len += (roam_req->num_bssid_preferred_list *
|
len += (roam_req->num_bssid_preferred_list *
|
||||||
@@ -521,8 +521,8 @@ static QDF_STATUS send_roam_scan_filter_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
roam_filter->vdev_id = roam_req->vdev_id;
|
roam_filter->vdev_id = roam_req->vdev_id;
|
||||||
roam_filter->flags = 0;
|
roam_filter->flags = 0;
|
||||||
roam_filter->op_bitmap = roam_req->op_bitmap;
|
roam_filter->op_bitmap = roam_req->op_bitmap;
|
||||||
roam_filter->num_bssid_black_list = roam_req->num_bssid_black_list;
|
roam_filter->num_bssid_black_list = roam_req->num_bssid_deny_list;
|
||||||
roam_filter->num_ssid_white_list = roam_req->num_ssid_white_list;
|
roam_filter->num_ssid_white_list = roam_req->num_ssid_allow_list;
|
||||||
roam_filter->num_bssid_preferred_list =
|
roam_filter->num_bssid_preferred_list =
|
||||||
roam_req->num_bssid_preferred_list;
|
roam_req->num_bssid_preferred_list;
|
||||||
roam_filter->num_rssi_rejection_ap =
|
roam_filter->num_rssi_rejection_ap =
|
||||||
@@ -532,28 +532,28 @@ static QDF_STATUS send_roam_scan_filter_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
WMITLV_SET_HDR((buf_ptr),
|
WMITLV_SET_HDR((buf_ptr),
|
||||||
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
||||||
(roam_req->num_bssid_black_list * sizeof(wmi_mac_addr)));
|
(roam_req->num_bssid_deny_list * sizeof(wmi_mac_addr)));
|
||||||
bssid_src_ptr = (uint8_t *)&roam_req->bssid_avoid_list;
|
bssid_src_ptr = (uint8_t *)&roam_req->bssid_avoid_list;
|
||||||
bssid_dst_ptr = (wmi_mac_addr *)(buf_ptr + WMI_TLV_HDR_SIZE);
|
bssid_dst_ptr = (wmi_mac_addr *)(buf_ptr + WMI_TLV_HDR_SIZE);
|
||||||
for (i = 0; i < roam_req->num_bssid_black_list; i++) {
|
for (i = 0; i < roam_req->num_bssid_deny_list; i++) {
|
||||||
WMI_CHAR_ARRAY_TO_MAC_ADDR(bssid_src_ptr, bssid_dst_ptr);
|
WMI_CHAR_ARRAY_TO_MAC_ADDR(bssid_src_ptr, bssid_dst_ptr);
|
||||||
bssid_src_ptr += ATH_MAC_LEN;
|
bssid_src_ptr += ATH_MAC_LEN;
|
||||||
bssid_dst_ptr++;
|
bssid_dst_ptr++;
|
||||||
}
|
}
|
||||||
buf_ptr += WMI_TLV_HDR_SIZE +
|
buf_ptr += WMI_TLV_HDR_SIZE +
|
||||||
(roam_req->num_bssid_black_list * sizeof(wmi_mac_addr));
|
(roam_req->num_bssid_deny_list * sizeof(wmi_mac_addr));
|
||||||
WMITLV_SET_HDR((buf_ptr),
|
WMITLV_SET_HDR((buf_ptr),
|
||||||
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
||||||
(roam_req->num_ssid_white_list * sizeof(wmi_ssid)));
|
(roam_req->num_ssid_allow_list * sizeof(wmi_ssid)));
|
||||||
ssid_ptr = (wmi_ssid *)(buf_ptr + WMI_TLV_HDR_SIZE);
|
ssid_ptr = (wmi_ssid *)(buf_ptr + WMI_TLV_HDR_SIZE);
|
||||||
for (i = 0; i < roam_req->num_ssid_white_list; i++) {
|
for (i = 0; i < roam_req->num_ssid_allow_list; i++) {
|
||||||
qdf_mem_copy(&ssid_ptr->ssid,
|
qdf_mem_copy(&ssid_ptr->ssid,
|
||||||
&roam_req->ssid_allowed_list[i].ssid,
|
&roam_req->ssid_allowed_list[i].ssid,
|
||||||
roam_req->ssid_allowed_list[i].length);
|
roam_req->ssid_allowed_list[i].length);
|
||||||
ssid_ptr->ssid_len = roam_req->ssid_allowed_list[i].length;
|
ssid_ptr->ssid_len = roam_req->ssid_allowed_list[i].length;
|
||||||
ssid_ptr++;
|
ssid_ptr++;
|
||||||
}
|
}
|
||||||
buf_ptr += WMI_TLV_HDR_SIZE + (roam_req->num_ssid_white_list *
|
buf_ptr += WMI_TLV_HDR_SIZE + (roam_req->num_ssid_allow_list *
|
||||||
sizeof(wmi_ssid));
|
sizeof(wmi_ssid));
|
||||||
WMITLV_SET_HDR((buf_ptr),
|
WMITLV_SET_HDR((buf_ptr),
|
||||||
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
||||||
@@ -2724,15 +2724,15 @@ static enum dlm_reject_ap_reason wmi_get_reject_reason(uint32_t reason)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
extract_btm_blacklist_event(wmi_unified_t wmi_handle,
|
extract_btm_denylist_event(wmi_unified_t wmi_handle,
|
||||||
uint8_t *event, uint32_t len,
|
uint8_t *event, uint32_t len,
|
||||||
struct roam_blacklist_event **list)
|
struct roam_denylist_event **list)
|
||||||
{
|
{
|
||||||
WMI_ROAM_BLACKLIST_EVENTID_param_tlvs *param_buf;
|
WMI_ROAM_BLACKLIST_EVENTID_param_tlvs *param_buf;
|
||||||
wmi_roam_blacklist_event_fixed_param *resp_event;
|
wmi_roam_blacklist_event_fixed_param *resp_event;
|
||||||
wmi_roam_blacklist_with_timeout_tlv_param *src_list;
|
wmi_roam_blacklist_with_timeout_tlv_param *src_list;
|
||||||
struct roam_blacklist_timeout *roam_blacklist;
|
struct roam_denylist_timeout *roam_denylist;
|
||||||
struct roam_blacklist_event *dst_list;
|
struct roam_denylist_event *dst_list;
|
||||||
uint32_t num_entries, i;
|
uint32_t num_entries, i;
|
||||||
|
|
||||||
param_buf = (WMI_ROAM_BLACKLIST_EVENTID_param_tlvs *)event;
|
param_buf = (WMI_ROAM_BLACKLIST_EVENTID_param_tlvs *)event;
|
||||||
@@ -2768,24 +2768,24 @@ extract_btm_blacklist_event(wmi_unified_t wmi_handle,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dst_list = qdf_mem_malloc(sizeof(struct roam_blacklist_event) +
|
dst_list = qdf_mem_malloc(sizeof(struct roam_denylist_event) +
|
||||||
(sizeof(struct roam_blacklist_timeout) *
|
(sizeof(struct roam_denylist_timeout) *
|
||||||
num_entries));
|
num_entries));
|
||||||
if (!dst_list)
|
if (!dst_list)
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
|
|
||||||
dst_list->vdev_id = resp_event->vdev_id;
|
dst_list->vdev_id = resp_event->vdev_id;
|
||||||
roam_blacklist = &dst_list->roam_blacklist[0];
|
roam_denylist = &dst_list->roam_denylist[0];
|
||||||
for (i = 0; i < num_entries; i++) {
|
for (i = 0; i < num_entries; i++) {
|
||||||
WMI_MAC_ADDR_TO_CHAR_ARRAY(&src_list->bssid,
|
WMI_MAC_ADDR_TO_CHAR_ARRAY(&src_list->bssid,
|
||||||
roam_blacklist->bssid.bytes);
|
roam_denylist->bssid.bytes);
|
||||||
roam_blacklist->timeout = src_list->timeout;
|
roam_denylist->timeout = src_list->timeout;
|
||||||
roam_blacklist->received_time = src_list->timestamp;
|
roam_denylist->received_time = src_list->timestamp;
|
||||||
roam_blacklist->original_timeout = src_list->original_timeout;
|
roam_denylist->original_timeout = src_list->original_timeout;
|
||||||
roam_blacklist->reject_reason =
|
roam_denylist->reject_reason =
|
||||||
wmi_get_reject_reason(src_list->reason);
|
wmi_get_reject_reason(src_list->reason);
|
||||||
roam_blacklist->source = src_list->source;
|
roam_denylist->source = src_list->source;
|
||||||
roam_blacklist++;
|
roam_denylist++;
|
||||||
src_list++;
|
src_list++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3331,7 +3331,7 @@ void wmi_roam_offload_attach_tlv(wmi_unified_t wmi_handle)
|
|||||||
ops->extract_roam_sync_event = extract_roam_sync_event_tlv;
|
ops->extract_roam_sync_event = extract_roam_sync_event_tlv;
|
||||||
ops->extract_roam_sync_frame_event = extract_roam_sync_frame_event_tlv;
|
ops->extract_roam_sync_frame_event = extract_roam_sync_frame_event_tlv;
|
||||||
ops->extract_roam_event = extract_roam_event_tlv;
|
ops->extract_roam_event = extract_roam_event_tlv;
|
||||||
ops->extract_btm_bl_event = extract_btm_blacklist_event;
|
ops->extract_btm_bl_event = extract_btm_denylist_event;
|
||||||
ops->extract_vdev_disconnect_event = extract_vdev_disconnect_event_tlv;
|
ops->extract_vdev_disconnect_event = extract_vdev_disconnect_event_tlv;
|
||||||
ops->extract_roam_scan_chan_list = extract_roam_scan_chan_list_tlv;
|
ops->extract_roam_scan_chan_list = extract_roam_scan_chan_list_tlv;
|
||||||
ops->extract_roam_stats_event = extract_roam_stats_event_tlv;
|
ops->extract_roam_stats_event = extract_roam_stats_event_tlv;
|
||||||
|
@@ -4377,13 +4377,13 @@ void hdd_chip_pwr_save_fail_detected_cb(hdd_handle_t hdd_handle,
|
|||||||
*data);
|
*data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_update_ie_whitelist_attr() - Copy probe req ie whitelist attrs from cfg
|
* hdd_update_ie_allowlist_attr() - Copy probe req ie allowlist attrs from cfg
|
||||||
* @ie_whitelist: output parameter
|
* @ie_allowlist: output parameter
|
||||||
* @hdd_ctx: pointer to hdd context
|
* @hdd_ctx: pointer to hdd context
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void hdd_update_ie_whitelist_attr(struct probe_req_whitelist_attr *ie_whitelist,
|
void hdd_update_ie_allowlist_attr(struct probe_req_allowlist_attr *ie_allowlist,
|
||||||
struct hdd_context *hdd_ctx);
|
struct hdd_context *hdd_ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -4093,7 +4093,7 @@ __wlan_hdd_cfg80211_set_scanning_mac_oui(struct wiphy *wiphy,
|
|||||||
scan_mac_oui.oui[0], scan_mac_oui.oui[1],
|
scan_mac_oui.oui[0], scan_mac_oui.oui[1],
|
||||||
scan_mac_oui.oui[2], scan_mac_oui.vdev_id);
|
scan_mac_oui.oui[2], scan_mac_oui.vdev_id);
|
||||||
|
|
||||||
hdd_update_ie_whitelist_attr(&scan_mac_oui.ie_whitelist, hdd_ctx);
|
hdd_update_ie_allowlist_attr(&scan_mac_oui.ie_allowlist, hdd_ctx);
|
||||||
|
|
||||||
mac_handle = hdd_ctx->mac_handle;
|
mac_handle = hdd_ctx->mac_handle;
|
||||||
status = sme_set_scanning_mac_oui(mac_handle, &scan_mac_oui);
|
status = sme_set_scanning_mac_oui(mac_handle, &scan_mac_oui);
|
||||||
@@ -4435,7 +4435,7 @@ const struct nla_policy wlan_hdd_set_roam_param_policy[
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_set_white_list() - parse white list
|
* hdd_set_allow_list() - parse allow list
|
||||||
* @hdd_ctx: HDD context
|
* @hdd_ctx: HDD context
|
||||||
* @rso_config: rso config
|
* @rso_config: rso config
|
||||||
* @tb: list of attributes
|
* @tb: list of attributes
|
||||||
@@ -4443,7 +4443,7 @@ const struct nla_policy wlan_hdd_set_roam_param_policy[
|
|||||||
*
|
*
|
||||||
* Return: 0 on success; error number on failure
|
* Return: 0 on success; error number on failure
|
||||||
*/
|
*/
|
||||||
static int hdd_set_white_list(struct hdd_context *hdd_ctx,
|
static int hdd_set_allow_list(struct hdd_context *hdd_ctx,
|
||||||
struct rso_config_params *rso_config,
|
struct rso_config_params *rso_config,
|
||||||
struct nlattr **tb, uint8_t vdev_id)
|
struct nlattr **tb, uint8_t vdev_id)
|
||||||
{
|
{
|
||||||
@@ -4612,7 +4612,7 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_set_blacklist_bssid() - parse set blacklist bssid
|
* hdd_set_denylist_bssid() - parse set denylist bssid
|
||||||
* @hdd_ctx: HDD context
|
* @hdd_ctx: HDD context
|
||||||
* @rso_config: roam params
|
* @rso_config: roam params
|
||||||
* @tb: list of attributes
|
* @tb: list of attributes
|
||||||
@@ -4620,10 +4620,10 @@ fail:
|
|||||||
*
|
*
|
||||||
* Return: 0 on success; error number on failure
|
* Return: 0 on success; error number on failure
|
||||||
*/
|
*/
|
||||||
static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
static int hdd_set_denylist_bssid(struct hdd_context *hdd_ctx,
|
||||||
struct rso_config_params *rso_config,
|
struct rso_config_params *rso_config,
|
||||||
struct nlattr **tb,
|
struct nlattr **tb,
|
||||||
uint8_t vdev_id)
|
uint8_t vdev_id)
|
||||||
{
|
{
|
||||||
int rem, i;
|
int rem, i;
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
@@ -4712,7 +4712,7 @@ static int hdd_set_blacklist_bssid(struct hdd_context *hdd_ctx,
|
|||||||
qdf_mem_free(deny_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_DENYLIST_BSSID);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
fail:
|
fail:
|
||||||
@@ -5821,7 +5821,7 @@ static int hdd_set_ext_roam_params(struct hdd_context *hdd_ctx,
|
|||||||
hdd_debug("Req Id: %u Cmd Type: %u", req_id, cmd_type);
|
hdd_debug("Req Id: %u Cmd Type: %u", req_id, cmd_type);
|
||||||
switch (cmd_type) {
|
switch (cmd_type) {
|
||||||
case QCA_WLAN_VENDOR_ROAMING_SUBCMD_SSID_WHITE_LIST:
|
case QCA_WLAN_VENDOR_ROAMING_SUBCMD_SSID_WHITE_LIST:
|
||||||
ret = hdd_set_white_list(hdd_ctx, rso_config, tb, vdev_id);
|
ret = hdd_set_allow_list(hdd_ctx, rso_config, tb, vdev_id);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
break;
|
break;
|
||||||
@@ -5912,7 +5912,7 @@ static int hdd_set_ext_roam_params(struct hdd_context *hdd_ctx,
|
|||||||
goto fail;
|
goto fail;
|
||||||
break;
|
break;
|
||||||
case QCA_WLAN_VENDOR_ROAMING_SUBCMD_SET_BLACKLIST_BSSID:
|
case QCA_WLAN_VENDOR_ROAMING_SUBCMD_SET_BLACKLIST_BSSID:
|
||||||
ret = hdd_set_blacklist_bssid(hdd_ctx, rso_config, tb, vdev_id);
|
ret = hdd_set_denylist_bssid(hdd_ctx, rso_config, tb, vdev_id);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
break;
|
break;
|
||||||
@@ -21919,7 +21919,7 @@ static int __wlan_hdd_cfg80211_set_mac_acl(struct wiphy *wiphy,
|
|||||||
} else if (eSAP_ACCEPT_UNLESS_DENIED == config->SapMacaddr_acl) {
|
} else if (eSAP_ACCEPT_UNLESS_DENIED == config->SapMacaddr_acl) {
|
||||||
config->num_deny_mac = params->n_acl_entries;
|
config->num_deny_mac = params->n_acl_entries;
|
||||||
for (i = 0; i < params->n_acl_entries; i++) {
|
for (i = 0; i < params->n_acl_entries; i++) {
|
||||||
hdd_debug("** Add ACL MAC entry %i in BlackList :"
|
hdd_debug("** Add ACL MAC entry %i in DenyList :"
|
||||||
QDF_MAC_ADDR_FMT, i,
|
QDF_MAC_ADDR_FMT, i,
|
||||||
QDF_MAC_ADDR_REF(
|
QDF_MAC_ADDR_REF(
|
||||||
params->mac_addrs[i].addr));
|
params->mac_addrs[i].addr));
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 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
|
||||||
@@ -121,8 +121,8 @@ extern const struct nla_policy wlan_hdd_wisa_cmd_policy[
|
|||||||
#define WNM_NOTIFICATION_FRAME_SIZE 2
|
#define WNM_NOTIFICATION_FRAME_SIZE 2
|
||||||
|
|
||||||
#define WPA_OUI_TYPE "\x00\x50\xf2\x01"
|
#define WPA_OUI_TYPE "\x00\x50\xf2\x01"
|
||||||
#define BLACKLIST_OUI_TYPE "\x00\x50\x00\x00"
|
#define DENYLIST_OUI_TYPE "\x00\x50\x00\x00"
|
||||||
#define WHITELIST_OUI_TYPE "\x00\x50\x00\x01"
|
#define ALLOWLIST_OUI_TYPE "\x00\x50\x00\x01"
|
||||||
#define WPA_OUI_TYPE_SIZE 4
|
#define WPA_OUI_TYPE_SIZE 4
|
||||||
#define WMM_OUI_TYPE "\x00\x50\xf2\x02\x01"
|
#define WMM_OUI_TYPE "\x00\x50\xf2\x02\x01"
|
||||||
#define WMM_OUI_TYPE_SIZE 5
|
#define WMM_OUI_TYPE_SIZE 5
|
||||||
@@ -256,7 +256,9 @@ typedef enum {
|
|||||||
#define WIFI_FEATURE_CONFIG_NDO 0x200000 /* ND offload configure */
|
#define WIFI_FEATURE_CONFIG_NDO 0x200000 /* ND offload configure */
|
||||||
#define WIFI_FEATURE_TX_TRANSMIT_POWER 0x400000 /* Tx transmit power levels */
|
#define WIFI_FEATURE_TX_TRANSMIT_POWER 0x400000 /* Tx transmit power levels */
|
||||||
#define WIFI_FEATURE_CONTROL_ROAMING 0x800000 /* Enable/Disable roaming */
|
#define WIFI_FEATURE_CONTROL_ROAMING 0x800000 /* Enable/Disable roaming */
|
||||||
#define WIFI_FEATURE_IE_WHITELIST 0x1000000 /* Support Probe IE white listing */
|
#define WIFI_FEATURE_IE_ALLOWLIST 0x1000000 /* Support Probe IE allow
|
||||||
|
* listing
|
||||||
|
*/
|
||||||
#define WIFI_FEATURE_SCAN_RAND 0x2000000 /* Support MAC & Probe Sequence Number randomization */
|
#define WIFI_FEATURE_SCAN_RAND 0x2000000 /* Support MAC & Probe Sequence Number randomization */
|
||||||
#define WIFI_FEATURE_SET_LATENCY_MODE 0x40000000 /* Set latency mode */
|
#define WIFI_FEATURE_SET_LATENCY_MODE 0x40000000 /* Set latency mode */
|
||||||
/* Support changing MAC address without iface reset(down and up) */
|
/* Support changing MAC address without iface reset(down and up) */
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 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
|
||||||
@@ -1488,8 +1489,8 @@ static int wlan_hdd_send_ext_scan_capability(struct hdd_context *hdd_ctx)
|
|||||||
(sizeof(data->max_hotlist_ssids) + NLA_HDRLEN) +
|
(sizeof(data->max_hotlist_ssids) + NLA_HDRLEN) +
|
||||||
(sizeof(data->max_number_epno_networks) + NLA_HDRLEN) +
|
(sizeof(data->max_number_epno_networks) + NLA_HDRLEN) +
|
||||||
(sizeof(data->max_number_epno_networks_by_ssid) + NLA_HDRLEN) +
|
(sizeof(data->max_number_epno_networks_by_ssid) + NLA_HDRLEN) +
|
||||||
(sizeof(data->max_number_of_white_listed_ssid) + NLA_HDRLEN) +
|
(sizeof(data->max_number_of_allow_listed_ssid) + NLA_HDRLEN) +
|
||||||
(sizeof(data->max_number_of_black_listed_bssid) + NLA_HDRLEN);
|
(sizeof(data->max_number_of_deny_listed_bssid) + NLA_HDRLEN);
|
||||||
|
|
||||||
skb = cfg80211_vendor_cmd_alloc_reply_skb(hdd_ctx->wiphy, nl_buf_len);
|
skb = cfg80211_vendor_cmd_alloc_reply_skb(hdd_ctx->wiphy, nl_buf_len);
|
||||||
|
|
||||||
@@ -1521,10 +1522,10 @@ static int wlan_hdd_send_ext_scan_capability(struct hdd_context *hdd_ctx)
|
|||||||
data->max_number_epno_networks);
|
data->max_number_epno_networks);
|
||||||
hdd_debug("max_number_epno_networks_by_ssid %u",
|
hdd_debug("max_number_epno_networks_by_ssid %u",
|
||||||
data->max_number_epno_networks_by_ssid);
|
data->max_number_epno_networks_by_ssid);
|
||||||
hdd_debug("max_number_of_white_listed_ssid %u",
|
hdd_debug("max_number_of_allow_listed_ssid %u",
|
||||||
data->max_number_of_white_listed_ssid);
|
data->max_number_of_allow_listed_ssid);
|
||||||
hdd_debug("max_number_of_black_listed_bssid (%u)",
|
hdd_debug("max_number_of_deny_listed_bssid (%u)",
|
||||||
data->max_number_of_black_listed_bssid);
|
data->max_number_of_deny_listed_bssid);
|
||||||
|
|
||||||
if (nla_put_u32(skb, PARAM_REQUEST_ID, data->requestId) ||
|
if (nla_put_u32(skb, PARAM_REQUEST_ID, data->requestId) ||
|
||||||
nla_put_u32(skb, PARAM_STATUS, data->status) ||
|
nla_put_u32(skb, PARAM_STATUS, data->status) ||
|
||||||
@@ -1547,10 +1548,10 @@ static int wlan_hdd_send_ext_scan_capability(struct hdd_context *hdd_ctx)
|
|||||||
data->max_number_epno_networks) ||
|
data->max_number_epno_networks) ||
|
||||||
nla_put_u32(skb, MAX_NUM_EPNO_NETS_BY_SSID,
|
nla_put_u32(skb, MAX_NUM_EPNO_NETS_BY_SSID,
|
||||||
data->max_number_epno_networks_by_ssid) ||
|
data->max_number_epno_networks_by_ssid) ||
|
||||||
nla_put_u32(skb, MAX_NUM_WHITELISTED_SSID,
|
nla_put_u32(skb, MAX_NUM_ALLOWLISTED_SSID,
|
||||||
data->max_number_of_white_listed_ssid) ||
|
data->max_number_of_allow_listed_ssid) ||
|
||||||
nla_put_u32(skb, MAX_NUM_BLACKLISTED_BSSID,
|
nla_put_u32(skb, MAX_NUM_DENYLISTED_BSSID,
|
||||||
data->max_number_of_black_listed_bssid)) {
|
data->max_number_of_deny_listed_bssid)) {
|
||||||
hdd_err("nla put fail");
|
hdd_err("nla put fail");
|
||||||
goto nla_put_failure;
|
goto nla_put_failure;
|
||||||
}
|
}
|
||||||
|
@@ -4511,9 +4511,9 @@ static void wlan_hdd_add_hostapd_conf_vsie(struct hdd_adapter *adapter,
|
|||||||
* include or it will be included by existing code.
|
* include or it will be included by existing code.
|
||||||
*/
|
*/
|
||||||
if (elem_len >= WPS_OUI_TYPE_SIZE &&
|
if (elem_len >= WPS_OUI_TYPE_SIZE &&
|
||||||
(!qdf_mem_cmp(&ptr[2], WHITELIST_OUI_TYPE,
|
(!qdf_mem_cmp(&ptr[2], ALLOWLIST_OUI_TYPE,
|
||||||
WPA_OUI_TYPE_SIZE) ||
|
WPA_OUI_TYPE_SIZE) ||
|
||||||
!qdf_mem_cmp(&ptr[2], BLACKLIST_OUI_TYPE,
|
!qdf_mem_cmp(&ptr[2], DENYLIST_OUI_TYPE,
|
||||||
WPA_OUI_TYPE_SIZE) ||
|
WPA_OUI_TYPE_SIZE) ||
|
||||||
!qdf_mem_cmp(&ptr[2], "\x00\x50\xf2\x02",
|
!qdf_mem_cmp(&ptr[2], "\x00\x50\xf2\x02",
|
||||||
WPA_OUI_TYPE_SIZE) ||
|
WPA_OUI_TYPE_SIZE) ||
|
||||||
|
@@ -320,7 +320,7 @@ static QDF_STATUS hdd_print_acl(struct hdd_adapter *adapter)
|
|||||||
if (QDF_STATUS_SUCCESS == wlansap_get_acl_accept_list(sap_ctx,
|
if (QDF_STATUS_SUCCESS == wlansap_get_acl_accept_list(sap_ctx,
|
||||||
&maclist[0],
|
&maclist[0],
|
||||||
&listnum)) {
|
&listnum)) {
|
||||||
pr_info("******* WHITE LIST ***********\n");
|
pr_info("******* ALLOW LIST ***********\n");
|
||||||
if (listnum <= MAX_ACL_MAC_ADDRESS)
|
if (listnum <= MAX_ACL_MAC_ADDRESS)
|
||||||
print_mac_list(&maclist[0], listnum);
|
print_mac_list(&maclist[0], listnum);
|
||||||
} else {
|
} else {
|
||||||
@@ -330,7 +330,7 @@ static QDF_STATUS hdd_print_acl(struct hdd_adapter *adapter)
|
|||||||
if (QDF_STATUS_SUCCESS == wlansap_get_acl_deny_list(sap_ctx,
|
if (QDF_STATUS_SUCCESS == wlansap_get_acl_deny_list(sap_ctx,
|
||||||
&maclist[0],
|
&maclist[0],
|
||||||
&listnum)) {
|
&listnum)) {
|
||||||
pr_info("******* BLACK LIST ***********\n");
|
pr_info("******* DENY LIST ***********\n");
|
||||||
if (listnum <= MAX_ACL_MAC_ADDRESS)
|
if (listnum <= MAX_ACL_MAC_ADDRESS)
|
||||||
print_mac_list(&maclist[0], listnum);
|
print_mac_list(&maclist[0], listnum);
|
||||||
} else {
|
} else {
|
||||||
@@ -1388,8 +1388,8 @@ static iw_softap_getparam(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Usage:
|
/* Usage:
|
||||||
* BLACK_LIST = 0
|
* DENY_LIST = 0
|
||||||
* WHITE_LIST = 1
|
* ALLOW_LIST = 1
|
||||||
* ADD MAC = 0
|
* ADD MAC = 0
|
||||||
* REMOVE MAC = 1
|
* REMOVE MAC = 1
|
||||||
*
|
*
|
||||||
@@ -1402,9 +1402,9 @@ static iw_softap_getparam(struct net_device *dev,
|
|||||||
* <6 octet mac addr> <list type> <cmd type>
|
* <6 octet mac addr> <list type> <cmd type>
|
||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* eg 1. to add a mac addr 00:0a:f5:89:89:90 to the black list
|
* eg 1. to add a mac addr 00:0a:f5:89:89:90 to the deny list
|
||||||
* iwpriv softap.0 modify_acl 0x00 0x0a 0xf5 0x89 0x89 0x90 0 0
|
* iwpriv softap.0 modify_acl 0x00 0x0a 0xf5 0x89 0x89 0x90 0 0
|
||||||
* eg 2. to delete a mac addr 00:0a:f5:89:89:90 from white list
|
* eg 2. to delete a mac addr 00:0a:f5:89:89:90 from allow list
|
||||||
* iwpriv softap.0 modify_acl 0x00 0x0a 0xf5 0x89 0x89 0x90 1 1
|
* iwpriv softap.0 modify_acl 0x00 0x0a 0xf5 0x89 0x89 0x90 1 1
|
||||||
*/
|
*/
|
||||||
static
|
static
|
||||||
|
@@ -19080,43 +19080,43 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
|
|||||||
return qdf_status_to_os_return(status);
|
return qdf_status_to_os_return(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hdd_update_ie_whitelist_attr(struct probe_req_whitelist_attr *ie_whitelist,
|
void hdd_update_ie_allowlist_attr(struct probe_req_allowlist_attr *ie_allowlist,
|
||||||
struct hdd_context *hdd_ctx)
|
struct hdd_context *hdd_ctx)
|
||||||
{
|
{
|
||||||
struct wlan_fwol_ie_whitelist whitelist = {0};
|
struct wlan_fwol_ie_allowlist allowlist = {0};
|
||||||
struct wlan_objmgr_psoc *psoc = hdd_ctx->psoc;
|
struct wlan_objmgr_psoc *psoc = hdd_ctx->psoc;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
bool is_ie_whitelist_enable = false;
|
bool is_ie_allowlist_enable = false;
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
|
|
||||||
status = ucfg_fwol_get_ie_whitelist(psoc, &is_ie_whitelist_enable);
|
status = ucfg_fwol_get_ie_allowlist(psoc, &is_ie_allowlist_enable);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
hdd_err("Unable to get IE whitelist param");
|
hdd_err("Unable to get IE allowlist param");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ie_whitelist->white_list = is_ie_whitelist_enable;
|
ie_allowlist->allow_list = is_ie_allowlist_enable;
|
||||||
if (!ie_whitelist->white_list)
|
if (!ie_allowlist->allow_list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
status = ucfg_fwol_get_all_whitelist_params(psoc, &whitelist);
|
status = ucfg_fwol_get_all_allowlist_params(psoc, &allowlist);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
hdd_err("Unable to get all whitelist params");
|
hdd_err("Unable to get all allowlist params");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ie_whitelist->ie_bitmap[0] = whitelist.ie_bitmap_0;
|
ie_allowlist->ie_bitmap[0] = allowlist.ie_bitmap_0;
|
||||||
ie_whitelist->ie_bitmap[1] = whitelist.ie_bitmap_1;
|
ie_allowlist->ie_bitmap[1] = allowlist.ie_bitmap_1;
|
||||||
ie_whitelist->ie_bitmap[2] = whitelist.ie_bitmap_2;
|
ie_allowlist->ie_bitmap[2] = allowlist.ie_bitmap_2;
|
||||||
ie_whitelist->ie_bitmap[3] = whitelist.ie_bitmap_3;
|
ie_allowlist->ie_bitmap[3] = allowlist.ie_bitmap_3;
|
||||||
ie_whitelist->ie_bitmap[4] = whitelist.ie_bitmap_4;
|
ie_allowlist->ie_bitmap[4] = allowlist.ie_bitmap_4;
|
||||||
ie_whitelist->ie_bitmap[5] = whitelist.ie_bitmap_5;
|
ie_allowlist->ie_bitmap[5] = allowlist.ie_bitmap_5;
|
||||||
ie_whitelist->ie_bitmap[6] = whitelist.ie_bitmap_6;
|
ie_allowlist->ie_bitmap[6] = allowlist.ie_bitmap_6;
|
||||||
ie_whitelist->ie_bitmap[7] = whitelist.ie_bitmap_7;
|
ie_allowlist->ie_bitmap[7] = allowlist.ie_bitmap_7;
|
||||||
|
|
||||||
ie_whitelist->num_vendor_oui = whitelist.no_of_probe_req_ouis;
|
ie_allowlist->num_vendor_oui = allowlist.no_of_probe_req_ouis;
|
||||||
for (i = 0; i < ie_whitelist->num_vendor_oui; i++)
|
for (i = 0; i < ie_allowlist->num_vendor_oui; i++)
|
||||||
ie_whitelist->voui[i] = whitelist.probe_req_voui[i];
|
ie_allowlist->voui[i] = allowlist.probe_req_voui[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS hdd_update_score_config(struct hdd_context *hdd_ctx)
|
QDF_STATUS hdd_update_score_config(struct hdd_context *hdd_ctx)
|
||||||
@@ -19174,7 +19174,7 @@ int hdd_update_scan_config(struct hdd_context *hdd_ctx)
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
scan_cfg.sta_miracast_mcc_rest_time = mcast_mcc_rest_time;
|
scan_cfg.sta_miracast_mcc_rest_time = mcast_mcc_rest_time;
|
||||||
hdd_update_ie_whitelist_attr(&scan_cfg.ie_whitelist, hdd_ctx);
|
hdd_update_ie_allowlist_attr(&scan_cfg.ie_allowlist, hdd_ctx);
|
||||||
|
|
||||||
status = ucfg_scan_update_user_config(psoc, &scan_cfg);
|
status = ucfg_scan_update_user_config(psoc, &scan_cfg);
|
||||||
if (status != QDF_STATUS_SUCCESS) {
|
if (status != QDF_STATUS_SUCCESS) {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2015-2020 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 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
|
||||||
@@ -392,7 +393,7 @@ int hdd_napi_apply_throughput_policy(struct hdd_context *hddctx,
|
|||||||
if (req_state != napid->napi_mode) {
|
if (req_state != napid->napi_mode) {
|
||||||
/* [re]set the floor frequency of high cluster */
|
/* [re]set the floor frequency of high cluster */
|
||||||
rc = hdd_napi_perfd_cpufreq(req_state);
|
rc = hdd_napi_perfd_cpufreq(req_state);
|
||||||
/* blacklist/boost_mode on/off */
|
/* denylist/boost_mode on/off */
|
||||||
rc = hdd_napi_event(NAPI_EVT_TPUT_STATE, (void *)req_state);
|
rc = hdd_napi_event(NAPI_EVT_TPUT_STATE, (void *)req_state);
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
@@ -485,7 +486,7 @@ int hdd_display_napi_stats(void)
|
|||||||
}
|
}
|
||||||
hdd_nofl_info("[NAPI %u][BL %d]: scheds polls comps done t-lim p-lim corr max_time napi-buckets(%d)",
|
hdd_nofl_info("[NAPI %u][BL %d]: scheds polls comps done t-lim p-lim corr max_time napi-buckets(%d)",
|
||||||
napid->napi_mode,
|
napid->napi_mode,
|
||||||
hif_napi_cpu_blacklist(napid, BLACKLIST_QUERY),
|
hif_napi_cpu_denylist(napid, DENYLIST_QUERY),
|
||||||
QCA_NAPI_NUM_BUCKETS);
|
QCA_NAPI_NUM_BUCKETS);
|
||||||
|
|
||||||
for (i = 0; i < CE_COUNT_MAX; i++)
|
for (i = 0; i < CE_COUNT_MAX; i++)
|
||||||
|
@@ -1256,9 +1256,9 @@ static int hdd_son_add_acl_mac(struct wlan_objmgr_vdev *vdev,
|
|||||||
wlansap_get_acl_mode(WLAN_HDD_GET_SAP_CTX_PTR(adapter), &acl_policy);
|
wlansap_get_acl_mode(WLAN_HDD_GET_SAP_CTX_PTR(adapter), &acl_policy);
|
||||||
|
|
||||||
if (acl_policy == eSAP_ACCEPT_UNLESS_DENIED) {
|
if (acl_policy == eSAP_ACCEPT_UNLESS_DENIED) {
|
||||||
list_type = eSAP_BLACK_LIST;
|
list_type = SAP_DENY_LIST;
|
||||||
} else if (acl_policy == eSAP_DENY_UNLESS_ACCEPTED) {
|
} else if (acl_policy == eSAP_DENY_UNLESS_ACCEPTED) {
|
||||||
list_type = eSAP_WHITE_LIST;
|
list_type = SAP_ALLOW_LIST;
|
||||||
} else {
|
} else {
|
||||||
hdd_err("Invalid ACL policy %d.", acl_policy);
|
hdd_err("Invalid ACL policy %d.", acl_policy);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -1313,9 +1313,9 @@ static int hdd_son_del_acl_mac(struct wlan_objmgr_vdev *vdev,
|
|||||||
wlansap_get_acl_mode(sap_ctx, &acl_policy);
|
wlansap_get_acl_mode(sap_ctx, &acl_policy);
|
||||||
|
|
||||||
if (acl_policy == eSAP_ACCEPT_UNLESS_DENIED) {
|
if (acl_policy == eSAP_ACCEPT_UNLESS_DENIED) {
|
||||||
list_type = eSAP_BLACK_LIST;
|
list_type = SAP_DENY_LIST;
|
||||||
} else if (acl_policy == eSAP_DENY_UNLESS_ACCEPTED) {
|
} else if (acl_policy == eSAP_DENY_UNLESS_ACCEPTED) {
|
||||||
list_type = eSAP_WHITE_LIST;
|
list_type = SAP_ALLOW_LIST;
|
||||||
} else {
|
} else {
|
||||||
hdd_err("Invalid ACL policy %d.", acl_policy);
|
hdd_err("Invalid ACL policy %d.", acl_policy);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -1411,20 +1411,20 @@ static void hdd_son_modify_acl(struct wlan_objmgr_vdev *vdev,
|
|||||||
if (allow_auth) {
|
if (allow_auth) {
|
||||||
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
||||||
peer_mac,
|
peer_mac,
|
||||||
eSAP_BLACK_LIST,
|
SAP_DENY_LIST,
|
||||||
DELETE_STA_FROM_ACL);
|
DELETE_STA_FROM_ACL);
|
||||||
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
||||||
peer_mac,
|
peer_mac,
|
||||||
eSAP_WHITE_LIST,
|
SAP_ALLOW_LIST,
|
||||||
ADD_STA_TO_ACL);
|
ADD_STA_TO_ACL);
|
||||||
} else {
|
} else {
|
||||||
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
||||||
peer_mac,
|
peer_mac,
|
||||||
eSAP_WHITE_LIST,
|
SAP_ALLOW_LIST,
|
||||||
DELETE_STA_FROM_ACL);
|
DELETE_STA_FROM_ACL);
|
||||||
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
status = wlansap_modify_acl(WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
||||||
peer_mac,
|
peer_mac,
|
||||||
eSAP_BLACK_LIST,
|
SAP_DENY_LIST,
|
||||||
ADD_STA_TO_ACL);
|
ADD_STA_TO_ACL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2568,8 +2568,8 @@ enum extscan_configuration_flags {
|
|||||||
* if ssid is specified, that is, epno entries for
|
* if ssid is specified, that is, epno entries for
|
||||||
* which an exact match is required,
|
* which an exact match is required,
|
||||||
* or entries corresponding to hidden ssids
|
* or entries corresponding to hidden ssids
|
||||||
* @max_number_of_white_listed_ssid: max number of white listed SSIDs
|
* @max_number_of_allow_listed_ssid: max number of allow listed SSIDs
|
||||||
* @max_number_of_black_listed_bssid: max number of black listed BSSIDs
|
* @max_number_of_deny_listed_bssid: max number of deny listed BSSIDs
|
||||||
*/
|
*/
|
||||||
struct ext_scan_capabilities_response {
|
struct ext_scan_capabilities_response {
|
||||||
uint32_t requestId;
|
uint32_t requestId;
|
||||||
@@ -2588,8 +2588,8 @@ struct ext_scan_capabilities_response {
|
|||||||
uint32_t max_hotlist_ssids;
|
uint32_t max_hotlist_ssids;
|
||||||
uint32_t max_number_epno_networks;
|
uint32_t max_number_epno_networks;
|
||||||
uint32_t max_number_epno_networks_by_ssid;
|
uint32_t max_number_epno_networks_by_ssid;
|
||||||
uint32_t max_number_of_white_listed_ssid;
|
uint32_t max_number_of_allow_listed_ssid;
|
||||||
uint32_t max_number_of_black_listed_bssid;
|
uint32_t max_number_of_deny_listed_bssid;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -5088,7 +5088,7 @@ struct sir_peer_set_rx_blocksize {
|
|||||||
* @reject_reason: reason to add the BSSID to DLM
|
* @reject_reason: reason to add the BSSID to DLM
|
||||||
* @source: Source of adding the BSSID to DLM
|
* @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 Denylist
|
||||||
*/
|
*/
|
||||||
struct sir_rssi_disallow_lst {
|
struct sir_rssi_disallow_lst {
|
||||||
qdf_list_node_t node;
|
qdf_list_node_t node;
|
||||||
|
@@ -8769,7 +8769,7 @@ lim_assoc_rej_get_remaining_delta(struct sir_rssi_disallow_lst *node)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_rem_blacklist_entry_with_lowest_delta(qdf_list_t *list)
|
lim_rem_denylist_entry_with_lowest_delta(qdf_list_t *list)
|
||||||
{
|
{
|
||||||
struct sir_rssi_disallow_lst *oldest_node = NULL;
|
struct sir_rssi_disallow_lst *oldest_node = NULL;
|
||||||
struct sir_rssi_disallow_lst *cur_node;
|
struct sir_rssi_disallow_lst *cur_node;
|
||||||
@@ -8817,7 +8817,7 @@ lim_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_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
wlan_dlm_add_bssid_to_reject_list(pdev, &ap_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -559,14 +559,14 @@ int
|
|||||||
lim_assoc_rej_get_remaining_delta(struct sir_rssi_disallow_lst *node);
|
lim_assoc_rej_get_remaining_delta(struct sir_rssi_disallow_lst *node);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_rem_blacklist_entry_with_lowest_delta() - Remove the entry with lowest
|
* lim_rem_denylist_entry_with_lowest_delta() - Remove the entry with lowest
|
||||||
* time delta
|
* time delta
|
||||||
* @list: rssi based rejected BSSID list
|
* @list: rssi based rejected BSSID list
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_rem_blacklist_entry_with_lowest_delta(qdf_list_t *list);
|
lim_rem_denylist_entry_with_lowest_delta(qdf_list_t *list);
|
||||||
|
|
||||||
static inline enum reg_wifi_band lim_get_rf_band(uint32_t chan_freq)
|
static inline enum reg_wifi_band lim_get_rf_band(uint32_t chan_freq)
|
||||||
{
|
{
|
||||||
@@ -1096,7 +1096,7 @@ bool lim_get_vdev_rmf_capable(struct mac_context *mac,
|
|||||||
struct pe_session *session);
|
struct pe_session *session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_add_bssid_to_reject_list:- Add rssi reject Ap info to blacklist mgr.
|
* lim_add_bssid_to_reject_list:- Add rssi reject Ap info to denylist mgr.
|
||||||
* @pdev: pdev
|
* @pdev: pdev
|
||||||
* @entry: info of the BSSID to be put in rssi reject list.
|
* @entry: info of the BSSID to be put in rssi reject list.
|
||||||
*
|
*
|
||||||
|
@@ -112,8 +112,8 @@ typedef enum {
|
|||||||
} eSapMacAddrACL;
|
} eSapMacAddrACL;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
eSAP_BLACK_LIST = 0, /* List of mac addresses NOT allowed to assoc */
|
SAP_DENY_LIST = 0, /* List of mac addresses NOT allowed to assoc */
|
||||||
eSAP_WHITE_LIST = 1, /* List of mac addresses allowed to assoc */
|
SAP_ALLOW_LIST = 1, /* List of mac addresses allowed to assoc */
|
||||||
} eSapACLType;
|
} eSapACLType;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -149,7 +149,7 @@ typedef enum {
|
|||||||
eSAP_DISCONNECT_ALL_P2P_CLIENT,
|
eSAP_DISCONNECT_ALL_P2P_CLIENT,
|
||||||
eSAP_MAC_TRIG_STOP_BSS_EVENT,
|
eSAP_MAC_TRIG_STOP_BSS_EVENT,
|
||||||
/*
|
/*
|
||||||
* Event send when a STA in neither white list or black list tries to
|
* Event send when a STA in neither allow list or deny list tries to
|
||||||
* associate in softap mode
|
* associate in softap mode
|
||||||
*/
|
*/
|
||||||
eSAP_UNKNOWN_STA_JOIN,
|
eSAP_UNKNOWN_STA_JOIN,
|
||||||
@@ -1078,11 +1078,11 @@ QDF_STATUS wlansap_get_acl_mode(struct sap_context *sap_ctx,
|
|||||||
* wlansap_modify_acl() - Update ACL entries
|
* wlansap_modify_acl() - Update ACL entries
|
||||||
* @sap_ctx: Pointer to the SAP context
|
* @sap_ctx: Pointer to the SAP context
|
||||||
* @peer_sta_mac: peer sta mac to be updated.
|
* @peer_sta_mac: peer sta mac to be updated.
|
||||||
* @list_type: white/Black list type.
|
* @list_type: allow/Deny list type.
|
||||||
* @cmd: command to be executed on ACL.
|
* @cmd: command to be executed on ACL.
|
||||||
*
|
*
|
||||||
* This function is called when a peer needs to be added or deleted from the
|
* This function is called when a peer needs to be added or deleted from the
|
||||||
* white/black ACL
|
* allow/deny ACL
|
||||||
*
|
*
|
||||||
* Return: Status
|
* Return: Status
|
||||||
*/
|
*/
|
||||||
|
@@ -452,7 +452,7 @@ static bool sap_chan_sel_init(mac_handle_t mac_handle,
|
|||||||
/* Initialise max ACS weight for all channels */
|
/* Initialise max ACS weight for all channels */
|
||||||
pSpectCh->weight = SAP_ACS_WEIGHT_MAX;
|
pSpectCh->weight = SAP_ACS_WEIGHT_MAX;
|
||||||
|
|
||||||
/* check if the channel is in NOL blacklist */
|
/* check if the channel is in NOL denylist */
|
||||||
if (sap_dfs_is_channel_in_nol_list(
|
if (sap_dfs_is_channel_in_nol_list(
|
||||||
sap_ctx, *pChans,
|
sap_ctx, *pChans,
|
||||||
PHY_SINGLE_CHANNEL_CENTERED)) {
|
PHY_SINGLE_CHANNEL_CENTERED)) {
|
||||||
|
@@ -4098,7 +4098,7 @@ static QDF_STATUS sap_get_freq_list(struct sap_context *sap_ctx,
|
|||||||
)))
|
)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* check if the channel is in NOL blacklist */
|
/* check if the channel is in NOL denylist */
|
||||||
if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(WLAN_REG_CH_TO_FREQ(
|
if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(WLAN_REG_CH_TO_FREQ(
|
||||||
loop_count))) {
|
loop_count))) {
|
||||||
if (sap_dfs_is_channel_in_nol_list(
|
if (sap_dfs_is_channel_in_nol_list(
|
||||||
|
@@ -989,7 +989,7 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
uint8_t *peer_sta_mac,
|
uint8_t *peer_sta_mac,
|
||||||
eSapACLType list_type, eSapACLCmdType cmd)
|
eSapACLType list_type, eSapACLCmdType cmd)
|
||||||
{
|
{
|
||||||
bool sta_white_list = false, sta_black_list = false;
|
bool sta_allow_list = false, sta_deny_list = false;
|
||||||
uint16_t staWLIndex, staBLIndex;
|
uint16_t staWLIndex, staBLIndex;
|
||||||
|
|
||||||
if (!sap_ctx) {
|
if (!sap_ctx) {
|
||||||
@@ -999,32 +999,32 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
if (qdf_mem_cmp(sap_ctx->bssid.bytes, peer_sta_mac,
|
if (qdf_mem_cmp(sap_ctx->bssid.bytes, peer_sta_mac,
|
||||||
QDF_MAC_ADDR_SIZE) == 0) {
|
QDF_MAC_ADDR_SIZE) == 0) {
|
||||||
sap_err("requested peer mac is "QDF_MAC_ADDR_FMT
|
sap_err("requested peer mac is "QDF_MAC_ADDR_FMT
|
||||||
"our own SAP BSSID. Do not blacklist or whitelist this BSSID",
|
"our own SAP BSSID. Do not denylist or allowlist this BSSID",
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAULT;
|
return QDF_STATUS_E_FAULT;
|
||||||
}
|
}
|
||||||
sap_debug("Modify ACL entered\n" "Before modification of ACL\n"
|
sap_debug("Modify ACL entered\n" "Before modification of ACL\n"
|
||||||
"size of accept and deny lists %d %d", sap_ctx->nAcceptMac,
|
"size of accept and deny lists %d %d", sap_ctx->nAcceptMac,
|
||||||
sap_ctx->nDenyMac);
|
sap_ctx->nDenyMac);
|
||||||
sap_debug("*** WHITE LIST ***");
|
sap_debug("*** ALLOW LIST ***");
|
||||||
sap_print_acl(sap_ctx->acceptMacList, sap_ctx->nAcceptMac);
|
sap_print_acl(sap_ctx->acceptMacList, sap_ctx->nAcceptMac);
|
||||||
sap_debug("*** BLACK LIST ***");
|
sap_debug("*** DENY LIST ***");
|
||||||
sap_print_acl(sap_ctx->denyMacList, sap_ctx->nDenyMac);
|
sap_print_acl(sap_ctx->denyMacList, sap_ctx->nDenyMac);
|
||||||
|
|
||||||
/* the expectation is a mac addr will not be in both the lists
|
/* the expectation is a mac addr will not be in both the lists
|
||||||
* at the same time. It is the responsiblity of userspace to
|
* at the same time. It is the responsiblity of userspace to
|
||||||
* ensure this
|
* ensure this
|
||||||
*/
|
*/
|
||||||
sta_white_list =
|
sta_allow_list =
|
||||||
sap_search_mac_list(sap_ctx->acceptMacList, sap_ctx->nAcceptMac,
|
sap_search_mac_list(sap_ctx->acceptMacList, sap_ctx->nAcceptMac,
|
||||||
peer_sta_mac, &staWLIndex);
|
peer_sta_mac, &staWLIndex);
|
||||||
sta_black_list =
|
sta_deny_list =
|
||||||
sap_search_mac_list(sap_ctx->denyMacList, sap_ctx->nDenyMac,
|
sap_search_mac_list(sap_ctx->denyMacList, sap_ctx->nDenyMac,
|
||||||
peer_sta_mac, &staBLIndex);
|
peer_sta_mac, &staBLIndex);
|
||||||
|
|
||||||
if (sta_white_list && sta_black_list) {
|
if (sta_allow_list && sta_deny_list) {
|
||||||
sap_err("Peer mac " QDF_MAC_ADDR_FMT
|
sap_err("Peer mac " QDF_MAC_ADDR_FMT
|
||||||
" found in white and black lists."
|
" found in allow and deny lists."
|
||||||
"Initial lists passed incorrect. Cannot execute this command.",
|
"Initial lists passed incorrect. Cannot execute this command.",
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1033,31 +1033,37 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
sap_debug("cmd %d", cmd);
|
sap_debug("cmd %d", cmd);
|
||||||
|
|
||||||
switch (list_type) {
|
switch (list_type) {
|
||||||
case eSAP_WHITE_LIST:
|
case SAP_ALLOW_LIST:
|
||||||
if (cmd == ADD_STA_TO_ACL) {
|
if (cmd == ADD_STA_TO_ACL) {
|
||||||
/* error check */
|
/* error check */
|
||||||
/* if list is already at max, return failure */
|
/* if list is already at max, return failure */
|
||||||
if (sap_ctx->nAcceptMac == MAX_ACL_MAC_ADDRESS) {
|
if (sap_ctx->nAcceptMac == MAX_ACL_MAC_ADDRESS) {
|
||||||
sap_err("White list is already maxed out. Cannot accept "
|
sap_err("Allow list is already maxed out. Cannot accept "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
if (sta_white_list) {
|
if (sta_allow_list) {
|
||||||
/* Do nothing if already present in white list. Just print a warning */
|
/*
|
||||||
sap_warn("MAC address already present in white list "
|
* Do nothing if already present in allow
|
||||||
|
* list. Just print a warning
|
||||||
|
*/
|
||||||
|
sap_warn("MAC address already present in allow list "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
if (sta_black_list) {
|
if (sta_deny_list) {
|
||||||
/* remove it from black list before adding to the white list */
|
/*
|
||||||
sap_warn("STA present in black list so first remove from it");
|
* remove it from deny list before adding
|
||||||
|
* to the allow list
|
||||||
|
*/
|
||||||
|
sap_warn("STA present in deny list so first remove from it");
|
||||||
sap_remove_mac_from_acl(sap_ctx->denyMacList,
|
sap_remove_mac_from_acl(sap_ctx->denyMacList,
|
||||||
&sap_ctx->nDenyMac,
|
&sap_ctx->nDenyMac,
|
||||||
staBLIndex);
|
staBLIndex);
|
||||||
}
|
}
|
||||||
sap_debug("... Now add to the white list");
|
sap_debug("... Now add to the allow list");
|
||||||
sap_add_mac_to_acl(sap_ctx->acceptMacList,
|
sap_add_mac_to_acl(sap_ctx->acceptMacList,
|
||||||
&sap_ctx->nAcceptMac,
|
&sap_ctx->nAcceptMac,
|
||||||
peer_sta_mac);
|
peer_sta_mac);
|
||||||
@@ -1065,15 +1071,17 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
sap_ctx->nAcceptMac,
|
sap_ctx->nAcceptMac,
|
||||||
sap_ctx->nDenyMac);
|
sap_ctx->nDenyMac);
|
||||||
} else if (cmd == DELETE_STA_FROM_ACL) {
|
} else if (cmd == DELETE_STA_FROM_ACL) {
|
||||||
if (sta_white_list) {
|
if (sta_allow_list) {
|
||||||
|
|
||||||
struct csr_del_sta_params delStaParams;
|
struct csr_del_sta_params delStaParams;
|
||||||
|
|
||||||
sap_info("Delete from white list");
|
sap_info("Delete from allow list");
|
||||||
sap_remove_mac_from_acl(sap_ctx->acceptMacList,
|
sap_remove_mac_from_acl(sap_ctx->acceptMacList,
|
||||||
&sap_ctx->nAcceptMac,
|
&sap_ctx->nAcceptMac,
|
||||||
staWLIndex);
|
staWLIndex);
|
||||||
/* If a client is deleted from white list and it is connected, send deauth */
|
/* If a client is deleted from allow list and */
|
||||||
|
/* it is connected, send deauth
|
||||||
|
*/
|
||||||
wlansap_populate_del_sta_params(peer_sta_mac,
|
wlansap_populate_del_sta_params(peer_sta_mac,
|
||||||
eCsrForcedDeauthSta,
|
eCsrForcedDeauthSta,
|
||||||
SIR_MAC_MGMT_DEAUTH,
|
SIR_MAC_MGMT_DEAUTH,
|
||||||
@@ -1083,7 +1091,7 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
sap_ctx->nAcceptMac,
|
sap_ctx->nAcceptMac,
|
||||||
sap_ctx->nDenyMac);
|
sap_ctx->nDenyMac);
|
||||||
} else {
|
} else {
|
||||||
sap_warn("MAC address to be deleted is not present in the white list "
|
sap_warn("MAC address to be deleted is not present in the allow list "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1094,47 +1102,55 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eSAP_BLACK_LIST:
|
case SAP_DENY_LIST:
|
||||||
|
|
||||||
if (cmd == ADD_STA_TO_ACL) {
|
if (cmd == ADD_STA_TO_ACL) {
|
||||||
struct csr_del_sta_params delStaParams;
|
struct csr_del_sta_params delStaParams;
|
||||||
/* error check */
|
/* error check */
|
||||||
/* if list is already at max, return failure */
|
/* if list is already at max, return failure */
|
||||||
if (sap_ctx->nDenyMac == MAX_ACL_MAC_ADDRESS) {
|
if (sap_ctx->nDenyMac == MAX_ACL_MAC_ADDRESS) {
|
||||||
sap_err("Black list is already maxed out. Cannot accept "
|
sap_err("Deny list is already maxed out. Cannot accept "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
if (sta_black_list) {
|
if (sta_deny_list) {
|
||||||
/* Do nothing if already present in white list */
|
/*
|
||||||
sap_warn("MAC address already present in black list "
|
* Do nothing if already present in
|
||||||
|
* allow list
|
||||||
|
*/
|
||||||
|
sap_warn("MAC address already present in deny list "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
if (sta_white_list) {
|
if (sta_allow_list) {
|
||||||
/* remove it from white list before adding to the black list */
|
/*
|
||||||
sap_warn("Present in white list so first remove from it");
|
* remove it from allow list before adding to
|
||||||
|
* the deny list
|
||||||
|
*/
|
||||||
|
sap_warn("Present in allow list so first remove from it");
|
||||||
sap_remove_mac_from_acl(sap_ctx->acceptMacList,
|
sap_remove_mac_from_acl(sap_ctx->acceptMacList,
|
||||||
&sap_ctx->nAcceptMac,
|
&sap_ctx->nAcceptMac,
|
||||||
staWLIndex);
|
staWLIndex);
|
||||||
}
|
}
|
||||||
/* If we are adding a client to the black list; if its connected, send deauth */
|
/* If we are adding a client to the deny list; */
|
||||||
|
/* if its connected, send deauth
|
||||||
|
*/
|
||||||
wlansap_populate_del_sta_params(peer_sta_mac,
|
wlansap_populate_del_sta_params(peer_sta_mac,
|
||||||
eCsrForcedDeauthSta,
|
eCsrForcedDeauthSta,
|
||||||
SIR_MAC_MGMT_DEAUTH,
|
SIR_MAC_MGMT_DEAUTH,
|
||||||
&delStaParams);
|
&delStaParams);
|
||||||
wlansap_deauth_sta(sap_ctx, &delStaParams);
|
wlansap_deauth_sta(sap_ctx, &delStaParams);
|
||||||
sap_info("... Now add to black list");
|
sap_info("... Now add to deny list");
|
||||||
sap_add_mac_to_acl(sap_ctx->denyMacList,
|
sap_add_mac_to_acl(sap_ctx->denyMacList,
|
||||||
&sap_ctx->nDenyMac, peer_sta_mac);
|
&sap_ctx->nDenyMac, peer_sta_mac);
|
||||||
sap_debug("size of accept and deny lists %d %d",
|
sap_debug("size of accept and deny lists %d %d",
|
||||||
sap_ctx->nAcceptMac,
|
sap_ctx->nAcceptMac,
|
||||||
sap_ctx->nDenyMac);
|
sap_ctx->nDenyMac);
|
||||||
} else if (cmd == DELETE_STA_FROM_ACL) {
|
} else if (cmd == DELETE_STA_FROM_ACL) {
|
||||||
if (sta_black_list) {
|
if (sta_deny_list) {
|
||||||
sap_info("Delete from black list");
|
sap_info("Delete from deny list");
|
||||||
sap_remove_mac_from_acl(sap_ctx->denyMacList,
|
sap_remove_mac_from_acl(sap_ctx->denyMacList,
|
||||||
&sap_ctx->nDenyMac,
|
&sap_ctx->nDenyMac,
|
||||||
staBLIndex);
|
staBLIndex);
|
||||||
@@ -1142,7 +1158,7 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
sap_ctx->nAcceptMac,
|
sap_ctx->nAcceptMac,
|
||||||
sap_ctx->nDenyMac);
|
sap_ctx->nDenyMac);
|
||||||
} else {
|
} else {
|
||||||
sap_warn("MAC address to be deleted is not present in the black list "
|
sap_warn("MAC address to be deleted is not present in the deny list "
|
||||||
QDF_MAC_ADDR_FMT,
|
QDF_MAC_ADDR_FMT,
|
||||||
QDF_MAC_ADDR_REF(peer_sta_mac));
|
QDF_MAC_ADDR_REF(peer_sta_mac));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1160,9 +1176,9 @@ QDF_STATUS wlansap_modify_acl(struct sap_context *sap_ctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sap_debug("After modification of ACL");
|
sap_debug("After modification of ACL");
|
||||||
sap_debug("*** WHITE LIST ***");
|
sap_debug("*** ALLOW LIST ***");
|
||||||
sap_print_acl(sap_ctx->acceptMacList, sap_ctx->nAcceptMac);
|
sap_print_acl(sap_ctx->acceptMacList, sap_ctx->nAcceptMac);
|
||||||
sap_debug("*** BLACK LIST ***");
|
sap_debug("*** DENY LIST ***");
|
||||||
sap_print_acl(sap_ctx->denyMacList, sap_ctx->nDenyMac);
|
sap_print_acl(sap_ctx->denyMacList, sap_ctx->nDenyMac);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@@ -359,8 +359,8 @@ int wma_passpoint_match_event_handler(void *handle,
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int wma_handle_btm_blacklist_event(void *handle, uint8_t *cmd_param_info,
|
int wma_handle_btm_denylist_event(void *handle, uint8_t *cmd_param_info,
|
||||||
uint32_t len);
|
uint32_t len);
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_EXTSCAN
|
#ifdef FEATURE_WLAN_EXTSCAN
|
||||||
int wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len);
|
int wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len);
|
||||||
|
@@ -1480,10 +1480,10 @@ int wma_extscan_capabilities_event_handler(void *handle,
|
|||||||
event->num_epno_networks;
|
event->num_epno_networks;
|
||||||
dest_capab->max_number_epno_networks_by_ssid =
|
dest_capab->max_number_epno_networks_by_ssid =
|
||||||
event->num_epno_networks;
|
event->num_epno_networks;
|
||||||
dest_capab->max_number_of_white_listed_ssid =
|
dest_capab->max_number_of_allow_listed_ssid =
|
||||||
event->num_roam_ssid_whitelist;
|
event->num_roam_ssid_allowlist;
|
||||||
dest_capab->max_number_of_black_listed_bssid =
|
dest_capab->max_number_of_deny_listed_bssid =
|
||||||
event->num_roam_bssid_blacklist;
|
event->num_roam_bssid_denylist;
|
||||||
dest_capab->status = 0;
|
dest_capab->status = 0;
|
||||||
|
|
||||||
wma_debug("request_id: %u status: %d",
|
wma_debug("request_id: %u status: %d",
|
||||||
@@ -1503,9 +1503,9 @@ int wma_extscan_capabilities_event_handler(void *handle,
|
|||||||
dest_capab->max_hotlist_ssids,
|
dest_capab->max_hotlist_ssids,
|
||||||
dest_capab->max_number_epno_networks,
|
dest_capab->max_number_epno_networks,
|
||||||
dest_capab->max_number_epno_networks_by_ssid);
|
dest_capab->max_number_epno_networks_by_ssid);
|
||||||
wma_debug("max_number_of_white_listed_ssid: %d, max_number_of_black_listed_bssid: %d",
|
wma_debug("max_number_of_allow_listed_ssid: %d, max_number_of_deny_listed_bssid: %d",
|
||||||
dest_capab->max_number_of_white_listed_ssid,
|
dest_capab->max_number_of_allow_listed_ssid,
|
||||||
dest_capab->max_number_of_black_listed_bssid);
|
dest_capab->max_number_of_deny_listed_bssid);
|
||||||
|
|
||||||
mac->sme.ext_scan_ind_cb(mac->hdd_handle,
|
mac->sme.ext_scan_ind_cb(mac->hdd_handle,
|
||||||
eSIR_EXTSCAN_GET_CAPABILITIES_IND, dest_capab);
|
eSIR_EXTSCAN_GET_CAPABILITIES_IND, dest_capab);
|
||||||
|
Reference in New Issue
Block a user