qcacld-3.0: Add new INI to separate scan policy for rest of world users

Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.

To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.

Change-Id: Ie6bd2d1925048aef427136b34d00d361955f40b2
CRs-Fixed: 3377242
这个提交包含在:
Asutosh Mohapatra
2023-01-03 22:26:32 -08:00
提交者 Madan Koyyalamudi
父节点 e6dff08dac
当前提交 dee1c76bd6
修改 7 个文件,包含 113 行新增3 行删除

查看文件

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 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
@@ -223,6 +223,29 @@ enum t2lm_negotiation_support {
0, \
"rf test mode Enable Flag")
#ifdef CONFIG_BAND_6GHZ
/*
* standard_6ghz_connection_policy - Enable 6 GHz standard connection policy
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used to set standard 6 GHz policies where STA will be
* allowed to scan and connect to any 6 GHz AP.
*
* Related: None
*
* Supported Feature: STA
*/
#define CFG_6GHZ_STANDARD_CONNECTION_POLICY CFG_INI_BOOL( \
"standard_6ghz_connection_policy", \
1, \
"6ghz standard 6 GHZ connection policy")
#define CFG_6GHZ_STD_CONN_POLICY CFG(CFG_6GHZ_STANDARD_CONNECTION_POLICY)
#else
#define CFG_6GHZ_STD_CONN_POLICY
#endif
#ifdef CONFIG_BAND_6GHZ
/*
* relaxed_6ghz_conn_policy - Enable 6ghz relaxed connection policy
@@ -1153,6 +1176,7 @@ enum t2lm_negotiation_support {
CFG(CFG_TX_RETRY_MULTIPLIER) \
CFG(CFG_MGMT_FRAME_HW_TX_RETRY_COUNT) \
CFG_RELAX_6GHZ_CONN_POLICY \
CFG_6GHZ_STD_CONN_POLICY \
CFG_EMLSR_MODE_ENABLED \
CFG_SR_ENABLE_MODES_ALL \
CFG_T2LM_NEGOTIATION_SUPPORTED

查看文件

@@ -2449,6 +2449,18 @@ QDF_STATUS
wlan_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value);
#ifdef CONFIG_BAND_6GHZ
/**
* wlan_mlme_is_standard_6ghz_conn_policy_enabled() - Get the 6 GHz standard
* connection policy flag
* @psoc: psoc context
* @value: Enable/Disable value ptr.
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* wlan_mlme_is_relaxed_6ghz_conn_policy_enabled() - Get the 6 GHz relaxed
* connection policy flag
@@ -2473,6 +2485,14 @@ QDF_STATUS
wlan_mlme_set_relaxed_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc,
bool value);
#else
static inline QDF_STATUS
wlan_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)
{
*value = false;
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)

查看文件

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 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
@@ -1385,6 +1385,7 @@ struct wlan_user_mcc_quota {
* @tx_retry_multiplier: TX xretry extension parameter
* @mgmt_hw_tx_retry_count: MGMT HW tx retry count for frames
* @relaxed_6ghz_conn_policy: 6GHz relaxed connection policy
* @std_6ghz_conn_policy: 6GHz standard connection policy
* @t2lm_negotiation_support: T2LM negotiation supported enum value
* @enable_emlsr_mode: 11BE eMLSR mode support
* @safe_mode_enable: safe mode to bypass some strict 6 GHz checks for
@@ -1440,6 +1441,7 @@ struct wlan_mlme_generic {
uint8_t mgmt_hw_tx_retry_count[CFG_FRAME_TYPE_MAX];
#ifdef CONFIG_BAND_6GHZ
bool relaxed_6ghz_conn_policy;
bool std_6ghz_conn_policy;
#endif
#ifdef WLAN_FEATURE_11BE_MLO
bool enable_emlsr_mode;

查看文件

@@ -2916,6 +2916,23 @@ ucfg_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
return wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(psoc, value);
}
/**
* ucfg_mlme_is_standard_6ghz_conn_policy_enabled() - Get 6ghz standard
* connection policy flag
* @psoc: pointer to psoc object
* @value: pointer to hold the value of flag
*
* Inline UCFG API to be used by HDD/OSIF callers
*
* Return: QDF Status
*/
static inline QDF_STATUS
ucfg_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)
{
return wlan_mlme_is_standard_6ghz_conn_policy_enabled(psoc, value);
}
/**
* ucfg_mlme_set_relaxed_6ghz_conn_policy() - Set 6ghz relaxed
* connection policy flag