qcacmn: Replace blacklist/whitelist with denylist/allowlist

Replace blacklist/whitelist with denylist/allowlist
in qca-wifi-host-cmn.

Change-Id: I1a27d025ccb9d5fcc3c573d47a84f9667a229c9b
CRs-Fixed: 3098934
Tento commit je obsažen v:
chunquan
2022-01-17 16:51:01 +08:00
odevzdal Madan Koyyalamudi
rodič 24174b7be8
revize 19cc13911c
19 změnil soubory, kde provedl 243 přidání a 230 odebrání

Zobrazit soubor

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015-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
* any purpose with or without fee is hereby granted, provided that the
@@ -80,10 +81,10 @@ static void hnc_dump_cpus(struct qca_napi_data *napid) { /* no-op */ };
* + In some cases (roaming peer management is the only case so far), a
* a client can trigger a "SERIALIZE" event. Basically, this means that the
* users is asking NAPI to go into a truly single execution context state.
* So, NAPI indicates to msm-irqbalancer that it wants to be blacklisted,
* So, NAPI indicates to msm-irqbalancer that it wants to be denylisted,
* (if called for the first time) and then moves all IRQs (for NAPI
* instances) to be collapsed to a single core. If called multiple times,
* it will just re-collapse the CPUs. This is because blacklist-on() API
* it will just re-collapse the CPUs. This is because denylist-on() API
* is reference-counted, and because the API has already been called.
*
* Such a user, should call "DESERIALIZE" (NORMAL) event, to set NAPI to go
@@ -106,10 +107,10 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
struct qca_napi_data *napid = &(hif->napi_data);
enum qca_napi_tput_state tput_mode = QCA_NAPI_TPUT_UNINITIALIZED;
enum {
BLACKLIST_NOT_PENDING,
BLACKLIST_ON_PENDING,
BLACKLIST_OFF_PENDING
} blacklist_pending = BLACKLIST_NOT_PENDING;
DENYLIST_NOT_PENDING,
DENYLIST_ON_PENDING,
DENYLIST_OFF_PENDING
} denylist_pending = DENYLIST_NOT_PENDING;
NAPI_DEBUG("%s: -->(event=%d, aux=%pK)", __func__, event, data);
@@ -150,7 +151,7 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
/* from TPUT_HI -> TPUT_LO */
NAPI_DEBUG("%s: Moving to napi_tput_LO state",
__func__);
blacklist_pending = BLACKLIST_OFF_PENDING;
denylist_pending = DENYLIST_OFF_PENDING;
/*
* Ideally we should "collapse" interrupts here, since
* we are "dispersing" interrupts in the "else" case.
@@ -158,7 +159,7 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
* still be on the perf cluster the next time we enter
* high tput mode. However, the irq_balancer is free
* to move our interrupts to power cluster once
* blacklisting has been turned off in the "else" case.
* denylisting has been turned off in the "else" case.
*/
} else {
/* from TPUT_LO -> TPUT->HI */
@@ -168,7 +169,7 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
HNC_ANY_CPU,
HNC_ACT_DISPERSE);
blacklist_pending = BLACKLIST_ON_PENDING;
denylist_pending = DENYLIST_ON_PENDING;
}
napid->napi_mode = tput_mode;
break;
@@ -184,13 +185,13 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
HNC_ANY_CPU,
HNC_ACT_COLLAPSE);
if ((users == 0) && (rc == 0))
blacklist_pending = BLACKLIST_ON_PENDING;
denylist_pending = DENYLIST_ON_PENDING;
break;
}
case NAPI_EVT_USR_NORMAL: {
NAPI_DEBUG("%s: User forced DE-SERIALIZATION", __func__);
if (!napid->user_cpu_affin_mask)
blacklist_pending = BLACKLIST_OFF_PENDING;
denylist_pending = DENYLIST_OFF_PENDING;
/*
* Deserialization timeout is handled at hdd layer;
* just mark current mode to uninitialized to ensure
@@ -207,18 +208,18 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
}; /* switch */
switch (blacklist_pending) {
case BLACKLIST_ON_PENDING:
switch (denylist_pending) {
case DENYLIST_ON_PENDING:
/* assume the control of WLAN IRQs */
hif_napi_cpu_blacklist(napid, BLACKLIST_ON);
hif_napi_cpu_denylist(napid, DENYLIST_ON);
break;
case BLACKLIST_OFF_PENDING:
case DENYLIST_OFF_PENDING:
/* yield the control of WLAN IRQs */
hif_napi_cpu_blacklist(napid, BLACKLIST_OFF);
hif_napi_cpu_denylist(napid, DENYLIST_OFF);
break;
default: /* nothing to do */
break;
} /* switch blacklist_pending */
} /* switch denylist_pending */
qdf_spin_unlock_bh(&(napid->lock));
@@ -425,11 +426,11 @@ hncm_return:
/**
* hif_exec_bl_irq() - calls irq_modify_status to enable/disable blacklisting
* hif_exec_bl_irq() - calls irq_modify_status to enable/disable denylisting
* @napid: pointer to qca_napi_data structure
* @bl_flag: blacklist flag to enable/disable blacklisting
* @bl_flag: denylist flag to enable/disable denylisting
*
* The function enables/disables blacklisting for all the copy engine
* The function enables/disables denylisting for all the copy engine
* interrupts on which NAPI is enabled.
*
* Return: None
@@ -464,23 +465,23 @@ static inline void hif_exec_bl_irq(struct qca_napi_data *napid, bool bl_flag)
}
/**
* hif_napi_cpu_blacklist() - en(dis)ables blacklisting for NAPI RX interrupts.
* hif_napi_cpu_denylist() - en(dis)ables denylisting for NAPI RX interrupts.
* @napid: pointer to qca_napi_data structure
* @op: blacklist operation to perform
* @op: denylist operation to perform
*
* The function enables/disables/queries blacklisting for all CE RX
* interrupts with NAPI enabled. Besides blacklisting, it also enables/disables
* The function enables/disables/queries denylisting for all CE RX
* interrupts with NAPI enabled. Besides denylisting, it also enables/disables
* core_ctl_set_boost.
* Once blacklisting is enabled, the interrupts will not be managed by the IRQ
* Once denylisting is enabled, the interrupts will not be managed by the IRQ
* balancer.
*
* Return: -EINVAL, in case IRQ_BLACKLISTING and CORE_CTL_BOOST is not enabled
* for BLACKLIST_QUERY op - blacklist refcount
* for BLACKLIST_ON op - return value from core_ctl_set_boost API
* for BLACKLIST_OFF op - return value from core_ctl_set_boost API
* Return: -EINVAL, in case IRQ_DENYLISTING and CORE_CTL_BOOST is not enabled
* for DENYLIST_QUERY op - denylist refcount
* for DENYLIST_ON op - return value from core_ctl_set_boost API
* for DENYLIST_OFF op - return value from core_ctl_set_boost API
*/
int hif_exec_cpu_blacklist(struct qca_napi_data *napid,
enum qca_blacklist_op op)
int hif_exec_cpu_denylist(struct qca_napi_data *napid,
enum qca_denylist_op op)
{
int rc = 0;
static int ref_count; /* = 0 by the compiler */
@@ -496,10 +497,10 @@ int hif_exec_cpu_blacklist(struct qca_napi_data *napid,
}
switch (op) {
case BLACKLIST_QUERY:
case DENYLIST_QUERY:
rc = ref_count;
break;
case BLACKLIST_ON:
case DENYLIST_ON:
ref_count++;
rc = 0;
if (ref_count == 1) {
@@ -509,7 +510,7 @@ int hif_exec_cpu_blacklist(struct qca_napi_data *napid,
hif_exec_bl_irq(napid, true);
}
break;
case BLACKLIST_OFF:
case DENYLIST_OFF:
if (ref_count)
ref_count--;
rc = 0;
@@ -521,7 +522,7 @@ int hif_exec_cpu_blacklist(struct qca_napi_data *napid,
}
break;
default:
NAPI_DEBUG("Invalid blacklist op: %d", op);
NAPI_DEBUG("Invalid denylist op: %d", op);
rc = -EINVAL;
} /* switch */
out:

Zobrazit soubor

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015-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
* any purpose with or without fee is hereby granted, provided that the
@@ -29,12 +30,12 @@
#include <hif.h> /* struct hif_opaque_softc; */
#include <hif_napi.h>
struct hif_opaque_softc;
enum qca_blacklist_op;
enum qca_denylist_op;
int hif_exec_cpu_migrate(struct qca_napi_data *napid, int cpu, int action);
int hif_exec_cpu_blacklist(struct qca_napi_data *napid,
enum qca_blacklist_op op);
int hif_exec_cpu_denylist(struct qca_napi_data *napid,
enum qca_denylist_op op);
#ifdef HIF_IRQ_AFFINITY
int hif_exec_event(struct hif_opaque_softc *hif,

Zobrazit soubor

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015-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
* any purpose with or without fee is hereby granted, provided that the
@@ -480,10 +481,10 @@ struct qca_napi_info *hif_get_napi(int napi_id, struct qca_napi_data *napid)
* + In some cases (roaming peer management is the only case so far), a
* a client can trigger a "SERIALIZE" event. Basically, this means that the
* users is asking NAPI to go into a truly single execution context state.
* So, NAPI indicates to msm-irqbalancer that it wants to be blacklisted,
* So, NAPI indicates to msm-irqbalancer that it wants to be denylisted,
* (if called for the first time) and then moves all IRQs (for NAPI
* instances) to be collapsed to a single core. If called multiple times,
* it will just re-collapse the CPUs. This is because blacklist-on() API
* it will just re-collapse the CPUs. This is because denylist-on() API
* is reference-counted, and because the API has already been called.
*
* Such a user, should call "DESERIALIZE" (NORMAL) event, to set NAPI to go
@@ -509,10 +510,10 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
struct qca_napi_data *napid = &(hif->napi_data);
enum qca_napi_tput_state tput_mode = QCA_NAPI_TPUT_UNINITIALIZED;
enum {
BLACKLIST_NOT_PENDING,
BLACKLIST_ON_PENDING,
BLACKLIST_OFF_PENDING
} blacklist_pending = BLACKLIST_NOT_PENDING;
DENYLIST_NOT_PENDING,
DENYLIST_ON_PENDING,
DENYLIST_OFF_PENDING
} denylist_pending = DENYLIST_NOT_PENDING;
NAPI_DEBUG("%s: -->(event=%d, aux=%pK)", __func__, event, data);
@@ -580,7 +581,7 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
/* from TPUT_HI -> TPUT_LO */
NAPI_DEBUG("%s: Moving to napi_tput_LO state",
__func__);
blacklist_pending = BLACKLIST_OFF_PENDING;
denylist_pending = DENYLIST_OFF_PENDING;
/*
* Ideally we should "collapse" interrupts here, since
* we are "dispersing" interrupts in the "else" case.
@@ -588,7 +589,7 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
* still be on the perf cluster the next time we enter
* high tput mode. However, the irq_balancer is free
* to move our interrupts to power cluster once
* blacklisting has been turned off in the "else" case.
* denylisting has been turned off in the "else" case.
*/
} else {
/* from TPUT_LO -> TPUT->HI */
@@ -598,7 +599,7 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
HNC_ANY_CPU,
HNC_ACT_DISPERSE);
blacklist_pending = BLACKLIST_ON_PENDING;
denylist_pending = DENYLIST_ON_PENDING;
}
napid->napi_mode = tput_mode;
break;
@@ -614,13 +615,13 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
HNC_ANY_CPU,
HNC_ACT_COLLAPSE);
if ((users == 0) && (rc == 0))
blacklist_pending = BLACKLIST_ON_PENDING;
denylist_pending = DENYLIST_ON_PENDING;
break;
}
case NAPI_EVT_USR_NORMAL: {
NAPI_DEBUG("%s: User forced DE-SERIALIZATION", __func__);
if (!napid->user_cpu_affin_mask)
blacklist_pending = BLACKLIST_OFF_PENDING;
denylist_pending = DENYLIST_OFF_PENDING;
/*
* Deserialization timeout is handled at hdd layer;
* just mark current mode to uninitialized to ensure
@@ -637,18 +638,18 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event,
}; /* switch */
switch (blacklist_pending) {
case BLACKLIST_ON_PENDING:
switch (denylist_pending) {
case DENYLIST_ON_PENDING:
/* assume the control of WLAN IRQs */
hif_napi_cpu_blacklist(napid, BLACKLIST_ON);
hif_napi_cpu_denylist(napid, DENYLIST_ON);
break;
case BLACKLIST_OFF_PENDING:
case DENYLIST_OFF_PENDING:
/* yield the control of WLAN IRQs */
hif_napi_cpu_blacklist(napid, BLACKLIST_OFF);
hif_napi_cpu_denylist(napid, DENYLIST_OFF);
break;
default: /* nothing to do */
break;
} /* switch blacklist_pending */
} /* switch denylist_pending */
/* we want to perform the comparison in lock:
* there is a possiblity of hif_napi_event get called
@@ -810,9 +811,9 @@ bool hif_napi_correct_cpu(struct qca_napi_info *napi_info)
if (napid->flags & QCA_NAPI_FEATURE_CPU_CORRECTION) {
cpu = qdf_get_cpu();
if (unlikely((hif_napi_cpu_blacklist(napid,
BLACKLIST_QUERY) > 0) &&
(cpu != napi_info->cpu))) {
if (unlikely((hif_napi_cpu_denylist(napid,
DENYLIST_QUERY) > 0) &&
cpu != napi_info->cpu)) {
right_cpu = false;
NAPI_DEBUG("interrupt on wrong CPU, correcting");
@@ -1633,11 +1634,11 @@ hncm_return:
/**
* hif_napi_bl_irq() - calls irq_modify_status to enable/disable blacklisting
* hif_napi_bl_irq() - calls irq_modify_status to enable/disable denylisting
* @napid: pointer to qca_napi_data structure
* @bl_flag: blacklist flag to enable/disable blacklisting
* @bl_flag: denylist flag to enable/disable denylisting
*
* The function enables/disables blacklisting for all the copy engine
* The function enables/disables denylisting for all the copy engine
* interrupts on which NAPI is enabled.
*
* Return: None
@@ -1668,23 +1669,23 @@ static inline void hif_napi_bl_irq(struct qca_napi_data *napid, bool bl_flag)
}
/**
* hif_napi_cpu_blacklist() - en(dis)ables blacklisting for NAPI RX interrupts.
* hif_napi_cpu_denylist() - en(dis)ables denylisting for NAPI RX interrupts.
* @napid: pointer to qca_napi_data structure
* @op: blacklist operation to perform
* @op: denylist operation to perform
*
* The function enables/disables/queries blacklisting for all CE RX
* interrupts with NAPI enabled. Besides blacklisting, it also enables/disables
* The function enables/disables/queries denylisting for all CE RX
* interrupts with NAPI enabled. Besides denylisting, it also enables/disables
* core_ctl_set_boost.
* Once blacklisting is enabled, the interrupts will not be managed by the IRQ
* Once denylisting is enabled, the interrupts will not be managed by the IRQ
* balancer.
*
* Return: -EINVAL, in case IRQ_BLACKLISTING and CORE_CTL_BOOST is not enabled
* for BLACKLIST_QUERY op - blacklist refcount
* for BLACKLIST_ON op - return value from core_ctl_set_boost API
* for BLACKLIST_OFF op - return value from core_ctl_set_boost API
* Return: -EINVAL, in case IRQ_DENYLISTING and CORE_CTL_BOOST is not enabled
* for DENYLIST_QUERY op - denylist refcount
* for DENYLIST_ON op - return value from core_ctl_set_boost API
* for DENYLIST_OFF op - return value from core_ctl_set_boost API
*/
int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
enum qca_blacklist_op op)
int hif_napi_cpu_denylist(struct qca_napi_data *napid,
enum qca_denylist_op op)
{
int rc = 0;
static int ref_count; /* = 0 by the compiler */
@@ -1700,10 +1701,10 @@ int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
}
switch (op) {
case BLACKLIST_QUERY:
case DENYLIST_QUERY:
rc = ref_count;
break;
case BLACKLIST_ON:
case DENYLIST_ON:
ref_count++;
rc = 0;
if (ref_count == 1) {
@@ -1713,7 +1714,7 @@ int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
hif_napi_bl_irq(napid, true);
}
break;
case BLACKLIST_OFF:
case DENYLIST_OFF:
if (ref_count) {
ref_count--;
rc = 0;
@@ -1726,7 +1727,7 @@ int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
}
break;
default:
NAPI_DEBUG("Invalid blacklist op: %d", op);
NAPI_DEBUG("Invalid denylist op: %d", op);
rc = -EINVAL;
} /* switch */
out:
@@ -1742,7 +1743,7 @@ out:
* hif_napi_serialize(hif, 1) can be called multiple times. It will perform the
* following steps (see hif_napi_event for code):
* - put irqs of all NAPI instances on the same CPU
* - only for the first serialize call: blacklist
* - only for the first serialize call: denylist
*
* hif_napi_serialize(hif, 0):
* - start a timer (multiple of BusBandwidthTimer -- default: 100 msec)

Zobrazit soubor

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015-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
* any purpose with or without fee is hereby granted, provided that the
@@ -74,7 +75,7 @@ enum qca_napi_event {
* These flags need to be enabled in the qca_napi_data->flags variable for the
* feature to kick in.
.* QCA_NAPI_FEATURE_CPU_CORRECTION - controls CPU correction logic
.* QCA_NAPI_FEATURE_IRQ_BLACKLISTING - controls call to irq_blacklist_on API
.* QCA_NAPI_FEATURE_IRQ_BLACKLISTING - controls call to irq_denylist_on API
.* QCA_NAPI_FEATURE_CORE_CTL_BOOST - controls call to core_ctl_set_boost API
*/
#define QCA_NAPI_FEATURE_CPU_CORRECTION BIT(1)
@@ -120,10 +121,10 @@ void hif_napi_rx_offld_flush_cb_deregister(struct hif_opaque_softc *hif_hdl);
*/
void *hif_napi_get_lro_info(struct hif_opaque_softc *hif_hdl, int napi_id);
enum qca_blacklist_op {
BLACKLIST_QUERY,
BLACKLIST_OFF,
BLACKLIST_ON
enum qca_denylist_op {
DENYLIST_QUERY,
DENYLIST_OFF,
DENYLIST_ON
};
#ifdef FEATURE_NAPI
@@ -289,8 +290,8 @@ int hif_napi_cpu_deinit(struct hif_opaque_softc *hif);
int hif_napi_cpu_migrate(struct qca_napi_data *napid, int cpu, int action);
int hif_napi_serialize(struct hif_opaque_softc *hif, int is_on);
int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
enum qca_blacklist_op op);
int hif_napi_cpu_denylist(struct qca_napi_data *napid,
enum qca_denylist_op op);
/* not directly related to irq affinity, but oh well */
void hif_napi_stats(struct qca_napi_data *napid);
@@ -317,8 +318,8 @@ static inline void hif_napi_update_yield_stats(struct CE_state *ce_state,
bool time_limit_reached,
bool rxpkt_thresh_reached) { }
static inline int hif_napi_cpu_blacklist(struct qca_napi_data *napid,
enum qca_blacklist_op op)
static inline int hif_napi_cpu_denylist(struct qca_napi_data *napid,
enum qca_denylist_op op)
{ return 0; }
#endif /* HIF_IRQ_AFFINITY */

Zobrazit soubor

@@ -614,8 +614,8 @@ int wlan_cfg80211_sched_scan_start(struct wlan_objmgr_vdev *vdev,
if (req->scan_random.randomize)
wlan_pno_scan_rand_attr(vdev, request, req);
if (ucfg_ie_whitelist_enabled(psoc, vdev))
ucfg_copy_ie_whitelist_attrs(psoc, &req->ie_whitelist);
if (ucfg_ie_allowlist_enabled(psoc, vdev))
ucfg_copy_ie_allowlist_attrs(psoc, &req->ie_allowlist);
osif_debug("Network count %d n_ssids %d fast_scan_period: %d msec slow_scan_period: %d msec, fast_scan_max_cycles: %d, relative_rssi %d band_pref %d, rssi_pref %d",
req->networks_cnt, request->n_ssids, req->fast_scan_period,
@@ -1690,10 +1690,10 @@ int wlan_cfg80211_scan(struct wlan_objmgr_vdev *vdev,
if (!is_p2p_scan) {
if (req->scan_req.scan_random.randomize)
wlan_scan_rand_attrs(vdev, request, req);
if (ucfg_ie_whitelist_enabled(psoc, vdev) &&
ucfg_copy_ie_whitelist_attrs(psoc,
&req->scan_req.ie_whitelist))
req->scan_req.scan_f_en_ie_whitelist_in_probe = true;
if (ucfg_ie_allowlist_enabled(psoc, vdev) &&
ucfg_copy_ie_allowlist_attrs(psoc,
&req->scan_req.ie_allowlist))
req->scan_req.scan_f_en_ie_allowlist_in_probe = true;
}
if (request->flags & NL80211_SCAN_FLAG_FLUSH)

Zobrazit soubor

@@ -1816,11 +1816,11 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
int pcl_chan_weight;
QDF_STATUS status;
struct psoc_phy_config *config;
enum cm_denylist_action blacklist_action;
enum cm_denylist_action denylist_action;
struct wlan_objmgr_psoc *psoc;
bool assoc_allowed;
struct scan_cache_node *force_connect_candidate = NULL;
bool are_all_candidate_blacklisted = true;
bool are_all_candidate_denylisted = true;
psoc = wlan_pdev_get_psoc(pdev);
@@ -1863,16 +1863,16 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
scan_entry->entry);
if (assoc_allowed)
blacklist_action = wlan_denylist_action_on_bssid(pdev,
denylist_action = wlan_denylist_action_on_bssid(pdev,
scan_entry->entry);
else
blacklist_action = CM_DLM_FORCE_REMOVE;
denylist_action = CM_DLM_FORCE_REMOVE;
if (blacklist_action == CM_DLM_NO_ACTION ||
blacklist_action == CM_DLM_AVOID)
are_all_candidate_blacklisted = false;
if (denylist_action == CM_DLM_NO_ACTION ||
denylist_action == CM_DLM_AVOID)
are_all_candidate_denylisted = false;
if (blacklist_action == CM_DLM_NO_ACTION &&
if (denylist_action == CM_DLM_NO_ACTION &&
pcl_lst && pcl_lst->num_of_pcl_channels &&
scan_entry->entry->rssi_raw > CM_PCL_RSSI_THRESHOLD &&
score_config->weight_config.pcl_weightage) {
@@ -1885,11 +1885,12 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
}
}
if (blacklist_action == CM_DLM_NO_ACTION ||
(are_all_candidate_blacklisted && blacklist_action == CM_DLM_REMOVE)) {
if (denylist_action == CM_DLM_NO_ACTION ||
(are_all_candidate_denylisted && denylist_action ==
CM_DLM_REMOVE)) {
cm_calculate_bss_score(psoc, scan_entry->entry,
pcl_chan_weight, bssid_hint);
} else if (blacklist_action == CM_DLM_AVOID) {
} else if (denylist_action == CM_DLM_AVOID) {
/* add min score so that it is added back in the end */
scan_entry->entry->bss_score =
CM_AVOID_CANDIDATE_MIN_SCORE;
@@ -1902,15 +1903,15 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
/*
* The below logic is added to select the best candidate
* amongst the blacklisted candidates. This is done to
* handle a case where all the BSSIDs become blacklisted
* amongst the denylisted candidates. This is done to
* handle a case where all the BSSIDs become denylisted
* and hence there are continuous connection failures.
* With the below logic if the action on BSSID is to remove
* then we keep a backup node and restore the candidate
* list.
*/
if (blacklist_action == CM_DLM_REMOVE &&
are_all_candidate_blacklisted) {
if (denylist_action == CM_DLM_REMOVE &&
are_all_candidate_denylisted) {
if (!force_connect_candidate) {
force_connect_candidate =
qdf_mem_malloc(
@@ -1942,17 +1943,17 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
}
/*
* If CM_DLM_REMOVE ie blacklisted or assoc not allowed then
* If CM_DLM_REMOVE ie denylisted or assoc not allowed then
* free the entry else add back to the list sorted
*/
if (blacklist_action == CM_DLM_REMOVE ||
blacklist_action == CM_DLM_FORCE_REMOVE) {
if (denylist_action == CM_DLM_REMOVE ||
denylist_action == CM_DLM_FORCE_REMOVE) {
if (assoc_allowed)
mlme_nofl_debug("Candidate("QDF_MAC_ADDR_FMT" freq %d): rssi %d, blm action %d is in Blacklist, remove entry",
mlme_nofl_debug("Candidate( " QDF_MAC_ADDR_FMT " freq %d): rssi %d, dlm action %d is in Denylist, remove entry",
QDF_MAC_ADDR_REF(scan_entry->entry->bssid.bytes),
scan_entry->entry->channel.chan_freq,
scan_entry->entry->rssi_raw,
blacklist_action);
denylist_action);
util_scan_free_cache_entry(scan_entry->entry);
qdf_mem_free(scan_entry);
} else {
@@ -1963,8 +1964,8 @@ void wlan_cm_calculate_bss_score(struct wlan_objmgr_pdev *pdev,
next_node = NULL;
}
if (are_all_candidate_blacklisted && force_connect_candidate) {
mlme_nofl_debug("All candidates in blacklist, Candidate("QDF_MAC_ADDR_FMT" freq %d): rssi %d, selected for connection",
if (are_all_candidate_denylisted && force_connect_candidate) {
mlme_nofl_debug("All candidates in denylist, Candidate( " QDF_MAC_ADDR_FMT " freq %d): rssi %d, selected for connection",
QDF_MAC_ADDR_REF(force_connect_candidate->entry->bssid.bytes),
force_connect_candidate->entry->channel.chan_freq,
force_connect_candidate->entry->rssi_raw);

Zobrazit soubor

@@ -786,7 +786,7 @@ static bool cm_is_any_other_vdev_disconnecting(struct cnx_mgr *cm_ctx,
}
QDF_STATUS
cm_inform_blm_connect_complete(struct wlan_objmgr_vdev *vdev,
cm_inform_dlm_connect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_resp *resp)
{
struct wlan_objmgr_pdev *pdev;
@@ -1998,7 +1998,7 @@ QDF_STATUS cm_notify_connect_complete(struct cnx_mgr *cm_ctx,
mlme_cm_osif_connect_complete(cm_ctx->vdev, resp);
cm_if_mgr_inform_connect_complete(cm_ctx->vdev,
resp->connect_status);
cm_inform_blm_connect_complete(cm_ctx->vdev, resp);
cm_inform_dlm_connect_complete(cm_ctx->vdev, resp);
if (QDF_IS_STATUS_ERROR(resp->connect_status))
cm_clear_vdev_mlo_cap(cm_ctx->vdev);

Zobrazit soubor

@@ -475,7 +475,7 @@ cm_disconnect_continue_after_rso_stop(struct wlan_objmgr_vdev *vdev,
#ifdef CONN_MGR_ADV_FEATURE
static void
cm_inform_blm_disconnect_complete(struct wlan_objmgr_vdev *vdev,
cm_inform_dlm_disconnect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_discon_rsp *resp)
{
struct wlan_objmgr_pdev *pdev;
@@ -494,7 +494,7 @@ cm_inform_blm_disconnect_complete(struct wlan_objmgr_vdev *vdev,
#else
static inline void
cm_inform_blm_disconnect_complete(struct wlan_objmgr_vdev *vdev,
cm_inform_dlm_disconnect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_discon_rsp *resp)
{}
#endif
@@ -527,7 +527,7 @@ QDF_STATUS cm_notify_disconnect_complete(struct cnx_mgr *cm_ctx,
mlo_sta_link_disconn_notify(cm_ctx->vdev, resp);
mlme_cm_osif_disconnect_complete(cm_ctx->vdev, resp);
cm_if_mgr_inform_disconnect_complete(cm_ctx->vdev);
cm_inform_blm_disconnect_complete(cm_ctx->vdev, resp);
cm_inform_dlm_disconnect_complete(cm_ctx->vdev, resp);
/* Clear MLO cap only when it is the last disconnect req
* as osif would not have informed userspace for other disconnect

Zobrazit soubor

@@ -565,14 +565,14 @@ void cm_store_wep_key(struct cnx_mgr *cm_ctx,
wlan_cm_id cm_id);
/**
* cm_inform_blm_connect_complete() - inform bsl about connect complete
* cm_inform_dlm_connect_complete() - inform bsl about connect complete
* @vdev: vdev
* @resp: connect resp
*
* Return: QDF_STATUS
*/
QDF_STATUS
cm_inform_blm_connect_complete(struct wlan_objmgr_vdev *vdev,
cm_inform_dlm_connect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_resp *resp);
static inline QDF_STATUS
@@ -595,7 +595,7 @@ static inline void cm_store_wep_key(struct cnx_mgr *cm_ctx,
{}
static inline QDF_STATUS
cm_inform_blm_connect_complete(struct wlan_objmgr_vdev *vdev,
cm_inform_dlm_connect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_resp *resp)
{
return QDF_STATUS_SUCCESS;

Zobrazit soubor

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017-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
* any purpose with or without fee is hereby granted, provided that the
@@ -367,7 +368,7 @@ struct extscan_def_config {
* @scan_f_add_ds_ie_in_probe: add DS ie in probe req frame
* @scan_f_add_spoofed_mac_in_probe: use random mac address for TA in probe
* @scan_f_add_rand_seq_in_probe: use random sequence number in probe
* @scan_f_en_ie_whitelist_in_probe: enable ie whitelist in probe
* @scan_f_en_ie_allowlist_in_probe: enable ie allowlist in probe
* @scan_f_forced: force scan even in presence of data traffic
* @scan_f_2ghz: scan 2.4 GHz channels
* @scan_f_5ghz: scan 5 GHz channels
@@ -461,7 +462,7 @@ struct scan_default_params {
scan_f_add_ds_ie_in_probe:1,
scan_f_add_spoofed_mac_in_probe:1,
scan_f_add_rand_seq_in_probe:1,
scan_f_en_ie_whitelist_in_probe:1,
scan_f_en_ie_allowlist_in_probe:1,
scan_f_forced:1,
scan_f_2ghz:1,
scan_f_5ghz:1,
@@ -516,7 +517,7 @@ struct scan_cb {
* @pdev_info: pointer to pdev info
* @pno_cfg: default pno configuration
* @extscan_cfg: default extscan configuration
* @ie_whitelist: default ie whitelist attrs
* @ie_allowlist: default ie allowlist attrs
* @bt_a2dp_enabled: if bt a2dp is enabled
* @miracast_enabled: miracast enabled
* @disable_timeout: command timeout disabled
@@ -549,7 +550,7 @@ struct wlan_scan_obj {
#ifdef FEATURE_WLAN_EXTSCAN
struct extscan_def_config extscan_cfg;
#endif
struct probe_req_whitelist_attr ie_whitelist;
struct probe_req_allowlist_attr ie_allowlist;
bool bt_a2dp_enabled;
bool miracast_enabled;
bool disable_timeout;

Zobrazit soubor

@@ -889,14 +889,14 @@ struct scan_random_attr {
};
/**
* struct probe_req_whitelist_attr - holds probe req ie whitelist attrs
* @white_list: enable/disable whitelist
* struct probe_req_allowlist_attr - holds probe req ie allowlist attrs
* @allow_list: enable/disable allowlist
* @ie_bitmap: bitmap of IEs to be enabled
* @num_vendor_oui: number of vendor OUIs
* @voui: vendor oui buffer
*/
struct probe_req_whitelist_attr {
bool white_list;
struct probe_req_allowlist_attr {
bool allow_list;
uint32_t ie_bitmap[PROBE_REQ_BITMAP_LEN];
uint32_t num_vendor_oui;
uint32_t voui[MAX_PROBE_REQ_OUIS];
@@ -1032,7 +1032,7 @@ enum scan_request_type {
* @scan_f_add_ds_ie_in_probe: add DS ie in probe req frame
* @scan_f_add_spoofed_mac_in_probe: use random mac address for TA in probe
* @scan_f_add_rand_seq_in_probe: use random sequence number in probe
* @scan_f_en_ie_whitelist_in_probe: enable ie whitelist in probe
* @scan_f_en_ie_allowlist_in_probe: enable ie allowlist in probe
* @scan_f_forced: force scan even in presence of data traffic
* @scan_f_2ghz: scan 2.4 GHz channels
* @scan_f_5ghz: scan 5 GHz channels
@@ -1047,7 +1047,7 @@ enum scan_request_type {
* @ssid: ssid list
* @bssid_list: Lisst of bssid to scan
* @scan_random: scan randomization params
* @ie_whitelist: probe req IE whitelist attrs
* @ie_allowlist: probe req IE allowlist attrs
* @extraie: list of optional/vendor specific ie's to be added in probe requests
* @htcap: htcap ie
* @vhtcap: vhtcap ie
@@ -1119,7 +1119,7 @@ struct scan_req_params {
scan_f_add_ds_ie_in_probe:1,
scan_f_add_spoofed_mac_in_probe:1,
scan_f_add_rand_seq_in_probe:1,
scan_f_en_ie_whitelist_in_probe:1,
scan_f_en_ie_allowlist_in_probe:1,
scan_f_forced:1,
scan_f_2ghz:1,
scan_f_5ghz:1,
@@ -1146,7 +1146,7 @@ struct scan_req_params {
struct wlan_ssid ssid[WLAN_SCAN_MAX_NUM_SSID];
struct qdf_mac_addr bssid_list[WLAN_SCAN_MAX_NUM_BSSID];
struct scan_random_attr scan_random;
struct probe_req_whitelist_attr ie_whitelist;
struct probe_req_allowlist_attr ie_allowlist;
struct element_info extraie;
struct element_info htcap;
struct element_info vhtcap;
@@ -1456,7 +1456,7 @@ struct nlo_mawc_params {
* to be triggered.
* @networks_list: Preferred network list
* @scan_random: scan randomization params
* @ie_whitelist: probe req IE whitelist attrs
* @ie_allowlist: probe req IE allowlist attrs
* @relative_rssi_set: Flag to check whether realtive_rssi is set or not
* @relative_rssi: Relative rssi threshold, used for connected pno
* @band_rssi_pref: Band and RSSI preference that can be given to one BSS
@@ -1488,7 +1488,7 @@ struct pno_scan_req_params {
uint32_t channel_prediction_full_scan;
struct pno_nw_type networks_list[SCAN_PNO_MAX_SUPP_NETWORKS];
struct scan_random_attr scan_random;
struct probe_req_whitelist_attr ie_whitelist;
struct probe_req_allowlist_attr ie_allowlist;
bool relative_rssi_set;
int8_t relative_rssi;
struct cpno_band_rssi_pref band_rssi_pref;
@@ -1498,11 +1498,11 @@ struct pno_scan_req_params {
/**
* struct scan_user_cfg - user configuration required for for scan
* @ie_whitelist: probe req IE whitelist attrs
* @ie_allowlist: probe req IE allowlist attrs
* @sta_miracast_mcc_rest_time: sta miracast mcc rest time
*/
struct scan_user_cfg {
struct probe_req_whitelist_attr ie_whitelist;
struct probe_req_allowlist_attr ie_allowlist;
uint32_t sta_miracast_mcc_rest_time;
};

Zobrazit soubor

@@ -643,30 +643,31 @@ QDF_STATUS ucfg_scan_psoc_close(struct wlan_objmgr_psoc *psoc);
uint32_t ucfg_scan_get_max_active_scans(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_ie_whitelist_enabled() - Checks for IE whitelisting enable
* ucfg_ie_allowlist_enabled() - Checks for IE allowlisting enable
* @psoc: pointer to psoc object
* @vdev: pointer to vdev
*
* This function is used to check whether IE whitelisting is enabled or not
* This function is used to check whether IE allowlisting is enabled or not
*
* Return: If enabled returns true else returns false
*/
bool ucfg_ie_whitelist_enabled(struct wlan_objmgr_psoc *psoc,
bool ucfg_ie_allowlist_enabled(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_vdev *vdev);
/**
* ucfg_copy_ie_whitelist_attrs() - Populate probe req IE whitelist attrs
* ucfg_copy_ie_allowlist_attrs() - Populate probe req IE allowlist attrs
* @psoc: pointer to psoc object
* @ie_whitelist: output parameter to hold ie whitelist attrs
* @ie_allowlist: output parameter to hold ie allowlist attrs
*
* If IE whitelisting is enabled then invoke this function to copy
* IE whitelisting attrs from wlan scan object
* If IE allowlisting is enabled then invoke this function to copy
* IE allowlisting attrs from wlan scan object
*
* Return: true - successful copy
* false - copy failed
*/
bool ucfg_copy_ie_whitelist_attrs(struct wlan_objmgr_psoc *psoc,
struct probe_req_whitelist_attr *ie_whitelist);
bool
ucfg_copy_ie_allowlist_attrs(struct wlan_objmgr_psoc *psoc,
struct probe_req_allowlist_attr *ie_allowlist);
/**
* ucfg_scan_set_bt_activity() - API to set bt activity

Zobrazit soubor

@@ -1201,7 +1201,7 @@ QDF_STATUS ucfg_scan_update_user_config(struct wlan_objmgr_psoc *psoc,
}
scan_def = &scan_obj->scan_def;
scan_obj->ie_whitelist = scan_cfg->ie_whitelist;
scan_obj->ie_allowlist = scan_cfg->ie_allowlist;
scan_def->sta_miracast_mcc_rest_time =
scan_cfg->sta_miracast_mcc_rest_time;
@@ -1450,8 +1450,8 @@ ucfg_scan_get_max_active_scans(struct wlan_objmgr_psoc *psoc)
return scan_params->max_active_scans_allowed;
}
bool ucfg_copy_ie_whitelist_attrs(struct wlan_objmgr_psoc *psoc,
struct probe_req_whitelist_attr *ie_whitelist)
bool ucfg_copy_ie_allowlist_attrs(struct wlan_objmgr_psoc *psoc,
struct probe_req_allowlist_attr *ie_allowlist)
{
struct wlan_scan_obj *scan_obj = NULL;
@@ -1459,13 +1459,13 @@ bool ucfg_copy_ie_whitelist_attrs(struct wlan_objmgr_psoc *psoc,
if (!scan_obj)
return false;
qdf_mem_copy(ie_whitelist, &scan_obj->ie_whitelist,
sizeof(*ie_whitelist));
qdf_mem_copy(ie_allowlist, &scan_obj->ie_allowlist,
sizeof(*ie_allowlist));
return true;
}
bool ucfg_ie_whitelist_enabled(struct wlan_objmgr_psoc *psoc,
bool ucfg_ie_allowlist_enabled(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_vdev *vdev)
{
struct wlan_scan_obj *scan_obj = NULL;
@@ -1478,7 +1478,7 @@ bool ucfg_ie_whitelist_enabled(struct wlan_objmgr_psoc *psoc,
wlan_vdev_is_up(vdev) == QDF_STATUS_SUCCESS)
return false;
if (!scan_obj->ie_whitelist.white_list)
if (!scan_obj->ie_allowlist.allow_list)
return false;
return true;

Zobrazit soubor

@@ -1719,13 +1719,13 @@ struct set_key_params {
* @oui: oui parameters
* @vdev_id: interface id
* @enb_probe_req_sno_randomization: control probe req sequence no randomization
* @ie_whitelist: probe req IE whitelist attrs
* @ie_allowlist: probe req IE allowlist attrs
*/
struct scan_mac_oui {
uint8_t oui[WMI_WIFI_SCANNING_MAC_OUI_LENGTH];
uint32_t vdev_id;
bool enb_probe_req_sno_randomization;
struct probe_req_whitelist_attr ie_whitelist;
struct probe_req_allowlist_attr ie_allowlist;
};
#define WMI_PASSPOINT_REALM_LEN 256
@@ -4021,7 +4021,7 @@ typedef struct {
* @last_tx_power: Tx power latest
* @atf_tokens_allocated: atf tokens allocated
* @atf_tokens_utilized: atf tokens utilized
* @num_mu_tx_blacklisted: Blacklisted MU Tx count
* @num_mu_tx_denylisted: Denylisted MU Tx count
* @sgi_count: sgi count of the peer
* @rx_mc_bc_cnt: Total number of received multicast & broadcast data frames
* corresponding to this peer, 1 in the MSB of rx_mc_bc_cnt represents a
@@ -4038,7 +4038,7 @@ typedef struct {
uint32_t last_tx_power;
uint32_t atf_tokens_allocated;
uint32_t atf_tokens_utilized;
uint32_t num_mu_tx_blacklisted;
uint32_t num_mu_tx_denylisted;
uint32_t sgi_count;
uint32_t rx_mc_bc_cnt;
uint32_t rx_retry_cnt;
@@ -4835,7 +4835,7 @@ typedef enum {
wmi_esp_estimate_event_id,
wmi_pdev_ctl_failsafe_check_event_id,
wmi_vdev_bcn_reception_stats_event_id,
wmi_roam_blacklist_event_id,
wmi_roam_denylist_event_id,
wmi_wlm_stats_event_id,
wmi_peer_cfr_capture_event_id,
wmi_pdev_cold_boot_cal_event_id,
@@ -6126,7 +6126,7 @@ typedef enum {
* @WMI_HOST_PEER_EXT_STATS_ENABLE: Enable extended peer stats
* @WMI_HOST_PEER_USE_FIXED_PWR: Use FIXED Pwr,
* @WMI_HOST_PEER_PARAM_FIXED_RATE: Set peer fixed rate
* @WMI_HOST_PEER_SET_MU_WHITELIST: Whitelist peer TIDs
* @WMI_HOST_PEER_SET_MU_ALLOWLIST: Allowlist peer TIDs
* @WMI_HOST_PEER_MEMBERSHIP: set group membership status
* @WMI_HOST_PEER_USERPOS: User POS
* @WMI_HOST_PEER_CRIT_PROTO_HINT_ENABLED: Critical Protocol Hint enabled
@@ -6156,7 +6156,7 @@ enum {
WMI_HOST_PEER_EXT_STATS_ENABLE,
WMI_HOST_PEER_USE_FIXED_PWR,
WMI_HOST_PEER_PARAM_FIXED_RATE,
WMI_HOST_PEER_SET_MU_WHITELIST,
WMI_HOST_PEER_SET_MU_ALLOWLIST,
WMI_HOST_PEER_MEMBERSHIP,
WMI_HOST_PEER_USERPOS,
WMI_HOST_PEER_CRIT_PROTO_HINT_ENABLED,
@@ -7912,10 +7912,10 @@ struct wmi_roam_wtc_btm_trigger_data {
* @rssi_score: AP RSSI score
* @total_score: Total score of the candidate AP.
* @etp: Estimated throughput value of the AP in Mbps
* @bl_reason: Blacklist reason
* @bl_reason: Denylist reason
* @bl_source: Source of adding AP to BL
* @bl_timestamp:This timestamp indicates the time when AP added
* to blacklist.
* to denylist.
* @bl_original_timeout: Original timeout value in milli seconds
* when AP added to BL
*/

Zobrazit soubor

@@ -431,7 +431,7 @@ QDF_STATUS
QDF_STATUS
(*extract_btm_bl_event)(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
struct roam_blacklist_event **dst_list);
struct roam_denylist_event **dst_list);
QDF_STATUS
(*extract_vdev_disconnect_event)(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
@@ -3367,10 +3367,10 @@ void wmi_policy_mgr_attach_tlv(struct wmi_unified *wmi_handle)
#endif
#if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(FEATURE_DENYLIST_MGR)
void wmi_blacklist_mgr_attach_tlv(struct wmi_unified *wmi_handle);
void wmi_denylist_mgr_attach_tlv(struct wmi_unified *wmi_handle);
#else
static inline
void wmi_blacklist_mgr_attach_tlv(struct wmi_unified *wmi_handle)
void wmi_denylist_mgr_attach_tlv(struct wmi_unified *wmi_handle)
{
}
#endif

Zobrazit soubor

@@ -76,7 +76,7 @@ wmi_unified_vdev_set_gtx_cfg_cmd(wmi_unified_t wmi_handle, uint32_t if_id,
#if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(FEATURE_DENYLIST_MGR)
/**
* wmi_unified_send_reject_ap_list() - send the reject ap list maintained by
* BLM to FW for roaming cases.
* DLM to FW for roaming cases.
* @wmi_handle: wmi handle
* @reject_params: This contains the reject ap list, and the num of BSSIDs.
*

Zobrazit soubor

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2013-2019 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 purpose with or without fee is hereby granted, provided that the
@@ -1168,7 +1168,7 @@ wmi_versions_are_compatible(wmi_abi_version *vers1, wmi_abi_version *vers2)
* Return: 0 if success. Return < 0 if failure.
*/
static int
wmi_versions_can_downgrade(int num_whitelist,
wmi_versions_can_downgrade(int num_allowlist,
wmi_whitelist_version_info *version_whitelist_table,
wmi_abi_version *my_vers,
wmi_abi_version *opp_vers,
@@ -1197,7 +1197,9 @@ wmi_versions_can_downgrade(int num_whitelist,
/* Opposite party is newer. Incompatible and cannot downgrade. */
can_try_to_downgrade = false;
} else if (my_minor_vers > opp_minor_vers) {
/* Opposite party is older. Check whitelist if we can downgrade */
/* Opposite party is older. Check allowlist if
* we can downgrade
*/
can_try_to_downgrade = true;
} else {
/* Same version */
@@ -1219,26 +1221,26 @@ wmi_versions_can_downgrade(int num_whitelist,
uint8_t downgraded = false;
int i;
for (i = 0; i < num_whitelist; i++) {
if (version_whitelist_table[i].major != my_major_vers) {
for (i = 0; i < num_allowlist; i++) {
if (version_whitelist_table[i].major != my_major_vers)
continue; /* skip */
}
if ((version_whitelist_table[i].namespace_0 !=
my_vers->abi_version_ns_0)
|| (version_whitelist_table[i].namespace_1 !=
my_vers->abi_version_ns_1)
|| (version_whitelist_table[i].namespace_2 !=
my_vers->abi_version_ns_2)
|| (version_whitelist_table[i].namespace_3 !=
my_vers->abi_version_ns_3)) {
if (version_whitelist_table[i].namespace_0 !=
my_vers->abi_version_ns_0 ||
version_whitelist_table[i].namespace_1 !=
my_vers->abi_version_ns_1 ||
version_whitelist_table[i].namespace_2 !=
my_vers->abi_version_ns_2 ||
version_whitelist_table[i].namespace_3 !=
my_vers->abi_version_ns_3) {
continue; /* skip */
}
if (version_whitelist_table[i].minor ==
downgraded_minor_vers) {
/* Found the next version that I can downgrade */
wmi_tlv_print_error
("%s: Note: found a whitelist entry to downgrade. wh. list ver: %d,%d,0x%x 0x%x 0x%x 0x%x\n",
__func__, version_whitelist_table[i].major,
("%s: Note: found a allowlist entry to downgrade. wh. list ver: %d,%d,0x%x 0x%x 0x%x 0x%x\n",
__func__,
version_whitelist_table[i].major,
version_whitelist_table[i].minor,
version_whitelist_table[i].namespace_0,
version_whitelist_table[i].namespace_1,
@@ -1250,7 +1252,9 @@ wmi_versions_can_downgrade(int num_whitelist,
}
}
if (!downgraded) {
break; /* Done since we did not find any whitelist to downgrade version */
break; /* Done since we did not find any allowlist
* to downgrade version
*/
}
}
wmi_tlv_OS_MEMCPY(out_vers, my_vers, sizeof(wmi_abi_version));
@@ -1275,7 +1279,7 @@ wmi_versions_can_downgrade(int num_whitelist,
*
* This routine will compare and set the WMI ABI version.
* First, compare my version with the opposite side's version.
* If incompatible, then check the whitelist to see if our side can downgrade.
* If incompatible, then check the allowlist to see if our side can downgrade.
* Finally, fill in the final ABI version into the output, out_vers.
* Return 0 if the output version is compatible
* Else return 1 if the output version is incompatible
@@ -1283,7 +1287,7 @@ wmi_versions_can_downgrade(int num_whitelist,
* Return: 0 if the output version is compatible else < 0.
*/
int
wmi_cmp_and_set_abi_version(int num_whitelist,
wmi_cmp_and_set_abi_version(int num_allowlist,
wmi_whitelist_version_info *
version_whitelist_table,
struct _wmi_abi_version *my_vers,
@@ -1309,9 +1313,11 @@ wmi_cmp_and_set_abi_version(int num_whitelist,
wmi_tlv_OS_MEMCPY(out_vers, my_vers, sizeof(wmi_abi_version));
if (!wmi_versions_are_compatible(my_vers, opp_vers)) {
/* Our host version and the given firmware version are incompatible. */
if (wmi_versions_can_downgrade
(num_whitelist, version_whitelist_table, my_vers, opp_vers,
out_vers)) {
if (wmi_versions_can_downgrade(num_allowlist,
version_whitelist_table,
my_vers,
opp_vers,
out_vers)) {
/* We can downgrade our host versions to match firmware. */
wmi_tlv_print_error
("%s: Host downgraded WMI Versions to match fw. Ret version: Mj=%d, Mn=%d, bd=%d, ns0=0x%x ns1:0x%x ns2:0x%x ns3:0x%x\n",

Zobrazit soubor

@@ -1223,7 +1223,7 @@ error:
return status;
}
void wmi_blacklist_mgr_attach_tlv(struct wmi_unified *wmi_handle)
void wmi_denylist_mgr_attach_tlv(struct wmi_unified *wmi_handle)
{
struct wmi_ops *ops = wmi_handle->ops;
@@ -2444,6 +2444,6 @@ void wmi_sta_attach_tlv(wmi_unified_t wmi_handle)
wmi_tdls_attach_tlv(wmi_handle);
wmi_policy_mgr_attach_tlv(wmi_handle);
wmi_blacklist_mgr_attach_tlv(wmi_handle);
wmi_denylist_mgr_attach_tlv(wmi_handle);
}

Zobrazit soubor

@@ -107,7 +107,7 @@ static const uint32_t peer_param_tlv[] = {
[WMI_HOST_PEER_PHYMODE] = WMI_PEER_PHYMODE,
[WMI_HOST_PEER_USE_FIXED_PWR] = WMI_PEER_USE_FIXED_PWR,
[WMI_HOST_PEER_PARAM_FIXED_RATE] = WMI_PEER_PARAM_FIXED_RATE,
[WMI_HOST_PEER_SET_MU_WHITELIST] = WMI_PEER_SET_MU_WHITELIST,
[WMI_HOST_PEER_SET_MU_ALLOWLIST] = WMI_PEER_SET_MU_WHITELIST,
[WMI_HOST_PEER_SET_MAC_TX_RATE] = WMI_PEER_SET_MAX_TX_RATE,
[WMI_HOST_PEER_SET_MIN_TX_RATE] = WMI_PEER_SET_MIN_TX_RATE,
[WMI_HOST_PEER_SET_DEFAULT_ROUTING] = WMI_PEER_SET_DEFAULT_ROUTING,
@@ -3091,7 +3091,7 @@ static inline void copy_scan_event_cntrl_flags(
cmd->scan_ctrl_flags |= WMI_SCAN_ADD_SPOOFED_MAC_IN_PROBE_REQ;
if (param->scan_f_add_rand_seq_in_probe)
cmd->scan_ctrl_flags |= WMI_SCAN_RANDOM_SEQ_NO_IN_PROBE_REQ;
if (param->scan_f_en_ie_whitelist_in_probe)
if (param->scan_f_en_ie_allowlist_in_probe)
cmd->scan_ctrl_flags |=
WMI_SCAN_ENABLE_IE_WHTELIST_IN_PROBE_REQ;
@@ -3153,27 +3153,27 @@ void wmi_fill_vendor_oui(uint8_t *buf_ptr, uint32_t num_vendor_oui,
}
/*
* wmi_fill_ie_whitelist_attrs() - fill IE whitelist attrs
* wmi_fill_ie_allowlist_attrs() - fill IE allowlist attrs
* @ie_bitmap: output pointer to ie bit map in cmd
* @num_vendor_oui: output pointer to num vendor OUIs
* @ie_whitelist: input parameter
* @ie_allowlist: input parameter
*
* This function populates the IE whitelist attrs of scan, pno and
* scan oui commands for ie_whitelist parameter.
* This function populates the IE allowlist attrs of scan, pno and
* scan oui commands for ie_allowlist parameter.
*
* Return: None
*/
static inline
void wmi_fill_ie_whitelist_attrs(uint32_t *ie_bitmap,
void wmi_fill_ie_allowlist_attrs(uint32_t *ie_bitmap,
uint32_t *num_vendor_oui,
struct probe_req_whitelist_attr *ie_whitelist)
struct probe_req_allowlist_attr *ie_allowlist)
{
uint32_t i = 0;
for (i = 0; i < PROBE_REQ_BITMAP_LEN; i++)
ie_bitmap[i] = ie_whitelist->ie_bitmap[i];
ie_bitmap[i] = ie_allowlist->ie_bitmap[i];
*num_vendor_oui = ie_whitelist->num_vendor_oui;
*num_vendor_oui = ie_allowlist->num_vendor_oui;
}
/**
@@ -3197,7 +3197,7 @@ static QDF_STATUS send_scan_start_cmd_tlv(wmi_unified_t wmi_handle,
size_t len = sizeof(*cmd);
uint16_t extraie_len_with_pad = 0;
uint8_t phymode_roundup = 0;
struct probe_req_whitelist_attr *ie_whitelist = &params->ie_whitelist;
struct probe_req_allowlist_attr *ie_allowlist = &params->ie_allowlist;
wmi_hint_freq_short_ssid *s_ssid = NULL;
wmi_hint_freq_bssid *hint_bssid = NULL;
@@ -3225,8 +3225,8 @@ static QDF_STATUS send_scan_start_cmd_tlv(wmi_unified_t wmi_handle,
len += extraie_len_with_pad;
len += WMI_TLV_HDR_SIZE; /* Length of TLV for array of wmi_vendor_oui */
if (ie_whitelist->num_vendor_oui)
len += ie_whitelist->num_vendor_oui * sizeof(wmi_vendor_oui);
if (ie_allowlist->num_vendor_oui)
len += ie_allowlist->num_vendor_oui * sizeof(wmi_vendor_oui);
len += WMI_TLV_HDR_SIZE; /* Length of TLV for array of scan phymode */
if (params->scan_f_wide_band)
@@ -3290,10 +3290,10 @@ static QDF_STATUS send_scan_start_cmd_tlv(wmi_unified_t wmi_handle,
&cmd->mac_addr,
&cmd->mac_mask);
if (ie_whitelist->white_list)
wmi_fill_ie_whitelist_attrs(cmd->ie_bitmap,
if (ie_allowlist->allow_list)
wmi_fill_ie_allowlist_attrs(cmd->ie_bitmap,
&cmd->num_vendor_oui,
ie_whitelist);
ie_allowlist);
buf_ptr += sizeof(*cmd);
tmp_ptr = (uint32_t *) (buf_ptr + WMI_TLV_HDR_SIZE);
@@ -3351,15 +3351,15 @@ static QDF_STATUS send_scan_start_cmd_tlv(wmi_unified_t wmi_handle,
buf_ptr += WMI_TLV_HDR_SIZE + extraie_len_with_pad;
/* probe req ie whitelisting */
/* probe req ie allowlisting */
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
ie_whitelist->num_vendor_oui * sizeof(wmi_vendor_oui));
ie_allowlist->num_vendor_oui * sizeof(wmi_vendor_oui));
buf_ptr += WMI_TLV_HDR_SIZE;
if (cmd->num_vendor_oui) {
wmi_fill_vendor_oui(buf_ptr, cmd->num_vendor_oui,
ie_whitelist->voui);
ie_allowlist->voui);
buf_ptr += cmd->num_vendor_oui * sizeof(wmi_vendor_oui);
}
@@ -4880,10 +4880,10 @@ static QDF_STATUS send_scan_probe_setoui_cmd_tlv(wmi_unified_t wmi_handle,
uint32_t len;
uint8_t *buf_ptr;
uint32_t *oui_buf;
struct probe_req_whitelist_attr *ie_whitelist = &psetoui->ie_whitelist;
struct probe_req_allowlist_attr *ie_allowlist = &psetoui->ie_allowlist;
len = sizeof(*cmd) + WMI_TLV_HDR_SIZE +
ie_whitelist->num_vendor_oui * sizeof(wmi_vendor_oui);
ie_allowlist->num_vendor_oui * sizeof(wmi_vendor_oui);
wmi_buf = wmi_buf_alloc(wmi_handle, len);
if (!wmi_buf)
@@ -4907,22 +4907,22 @@ static QDF_STATUS send_scan_probe_setoui_cmd_tlv(wmi_unified_t wmi_handle,
if (psetoui->enb_probe_req_sno_randomization)
cmd->flags |= WMI_SCAN_PROBE_OUI_RANDOM_SEQ_NO_IN_PROBE_REQ;
if (ie_whitelist->white_list) {
wmi_fill_ie_whitelist_attrs(cmd->ie_bitmap,
if (ie_allowlist->allow_list) {
wmi_fill_ie_allowlist_attrs(cmd->ie_bitmap,
&cmd->num_vendor_oui,
ie_whitelist);
ie_allowlist);
cmd->flags |=
WMI_SCAN_PROBE_OUI_ENABLE_IE_WHITELIST_IN_PROBE_REQ;
}
buf_ptr += sizeof(*cmd);
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
ie_whitelist->num_vendor_oui * sizeof(wmi_vendor_oui));
ie_allowlist->num_vendor_oui * sizeof(wmi_vendor_oui));
buf_ptr += WMI_TLV_HDR_SIZE;
if (cmd->num_vendor_oui != 0) {
wmi_fill_vendor_oui(buf_ptr, cmd->num_vendor_oui,
ie_whitelist->voui);
ie_allowlist->voui);
buf_ptr += cmd->num_vendor_oui * sizeof(wmi_vendor_oui);
}
@@ -5288,7 +5288,7 @@ static QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle,
uint8_t *buf_ptr;
uint8_t i;
int ret;
struct probe_req_whitelist_attr *ie_whitelist = &pno->ie_whitelist;
struct probe_req_allowlist_attr *ie_allowlist = &pno->ie_allowlist;
connected_nlo_rssi_params *nlo_relative_rssi;
connected_nlo_bss_band_rssi_pref *nlo_band_rssi;
@@ -5308,7 +5308,7 @@ static QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle,
QDF_MIN(pno->networks_cnt, WMI_NLO_MAX_SSIDS);
len += sizeof(nlo_channel_prediction_cfg);
len += sizeof(enlo_candidate_score_params);
len += sizeof(wmi_vendor_oui) * ie_whitelist->num_vendor_oui;
len += sizeof(wmi_vendor_oui) * ie_allowlist->num_vendor_oui;
len += sizeof(connected_nlo_rssi_params);
len += sizeof(connected_nlo_bss_band_rssi_pref);
@@ -5425,20 +5425,20 @@ static QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle,
WMITLV_GET_STRUCT_TLVLEN(enlo_candidate_score_params));
buf_ptr += sizeof(enlo_candidate_score_params);
if (ie_whitelist->white_list) {
if (ie_allowlist->allow_list) {
cmd->flags |= WMI_NLO_CONFIG_ENABLE_IE_WHITELIST_IN_PROBE_REQ;
wmi_fill_ie_whitelist_attrs(cmd->ie_bitmap,
wmi_fill_ie_allowlist_attrs(cmd->ie_bitmap,
&cmd->num_vendor_oui,
ie_whitelist);
ie_allowlist);
}
/* ie white list */
/* ie allow list */
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
ie_whitelist->num_vendor_oui * sizeof(wmi_vendor_oui));
ie_allowlist->num_vendor_oui * sizeof(wmi_vendor_oui));
buf_ptr += WMI_TLV_HDR_SIZE;
if (cmd->num_vendor_oui != 0) {
wmi_fill_vendor_oui(buf_ptr, cmd->num_vendor_oui,
ie_whitelist->voui);
ie_allowlist->voui);
buf_ptr += cmd->num_vendor_oui * sizeof(wmi_vendor_oui);
}
@@ -8105,10 +8105,10 @@ static inline uint8_t *copy_hw_mode_in_init_cmd(struct wmi_unified *wmi_handle,
static inline void copy_fw_abi_version_tlv(wmi_unified_t wmi_handle,
wmi_init_cmd_fixed_param *cmd)
{
int num_whitelist;
int num_allowlist;
wmi_abi_version my_vers;
num_whitelist = sizeof(version_whitelist) /
num_allowlist = sizeof(version_whitelist) /
sizeof(wmi_whitelist_version_info);
my_vers.abi_version_0 = WMI_ABI_VERSION_0;
my_vers.abi_version_1 = WMI_ABI_VERSION_1;
@@ -8117,8 +8117,8 @@ static inline void copy_fw_abi_version_tlv(wmi_unified_t wmi_handle,
my_vers.abi_version_ns_2 = WMI_ABI_VERSION_NS_2;
my_vers.abi_version_ns_3 = WMI_ABI_VERSION_NS_3;
wmi_cmp_and_set_abi_version(num_whitelist, version_whitelist,
&my_vers,
wmi_cmp_and_set_abi_version(num_allowlist, version_whitelist,
&my_vers,
(struct _wmi_abi_version *)&wmi_handle->fw_abi_version,
&cmd->host_abi_vers);
@@ -17900,7 +17900,7 @@ static void populate_tlv_events_id(uint32_t *event_ids)
WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID;
event_ids[wmi_vdev_bcn_reception_stats_event_id] =
WMI_VDEV_BCN_RECEPTION_STATS_EVENTID;
event_ids[wmi_roam_blacklist_event_id] = WMI_ROAM_BLACKLIST_EVENTID;
event_ids[wmi_roam_denylist_event_id] = WMI_ROAM_BLACKLIST_EVENTID;
event_ids[wmi_wlm_stats_event_id] = WMI_WLM_STATS_EVENTID;
event_ids[wmi_peer_cfr_capture_event_id] = WMI_PEER_CFR_CAPTURE_EVENTID;
event_ids[wmi_pdev_cold_boot_cal_event_id] =