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:
@@ -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:
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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 */
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
};
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
*
|
||||
|
@@ -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",
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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 = ¶ms->ie_whitelist;
|
||||
struct probe_req_allowlist_attr *ie_allowlist = ¶ms->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] =
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele