qcacld-3.0: Add config to ease scan/connection restriction in 6Ghz

Add new config to ease scan and connection restriction
in 6GHz band when bss is advertising different country.

Change-Id: I13bd0dbd52fad297b995add8fc8a71d7a058c25b
CRs-Fixed: 3135152
This commit is contained in:
nakul kachhwaha
2022-02-17 12:52:11 +05:30
committato da Madan Koyyalamudi
parent 24c0f1aa1b
commit 12c10fe176
7 ha cambiato i file con 121 aggiunte e 2 eliminazioni

Vedi File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -178,6 +178,30 @@ enum wlan_wds_mode {
1, \
"rf test mode Enable Flag")
#ifdef CONFIG_BAND_6GHZ
/**
* relaxed_6ghz_conn_policy - Enable 6ghz relaxed connection policy
* @Min: 0
* @Max: 1
* @Default: 0
*
* This cfg is used to set 6Ghz relaxed connection policies where STA
* will be allowed to operate in VLP mode and scan/connect to 6 GHz BSS
* with unmatching country code.
*
* Related: None
*
* Supported Feature: STA
*/
#define CFG_RELAXED_6GHZ_CONN_POLICY CFG_BOOL( \
"relaxed_6ghz_conn_policy", \
0, \
"6ghz relaxed connection policy")
#define CFG_RELAX_6GHZ_CONN_POLICY CFG(CFG_RELAXED_6GHZ_CONN_POLICY)
#else
#define CFG_RELAX_6GHZ_CONN_POLICY
#endif
/*
* <ini>
* BandCapability - Preferred band (0: 2.4G, 5G, and 6G,
@@ -971,5 +995,6 @@ enum wlan_wds_mode {
CFG(CFG_RF_TEST_MODE_SUPP_ENABLED) \
CFG_WDS_MODE_ALL \
CFG(CFG_TX_RETRY_MULTIPLIER) \
CFG(CFG_MGMT_FRAME_HW_TX_RETRY_COUNT)
CFG(CFG_MGMT_FRAME_HW_TX_RETRY_COUNT) \
CFG_RELAX_6GHZ_CONN_POLICY
#endif /* __CFG_MLME_GENERIC_H */

Vedi File

@@ -2238,6 +2238,28 @@ wlan_mlme_is_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
QDF_STATUS
wlan_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value);
#ifdef CONFIG_BAND_6GHZ
/**
* wlan_mlme_is_relaxed_6ghz_conn_policy_enabled() - Get the 6ghz relaxed
* connection policy flag
* @psoc: psoc context
* @value: Enable/Disable value ptr.
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value);
#else
static inline QDF_STATUS
wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)
{
*value = false;
return QDF_STATUS_SUCCESS;
}
#endif
/**
* wlan_mlme_get_sta_miracast_mcc_rest_time() - Get STA/MIRACAST MCC rest time
*

Vedi File

@@ -1340,6 +1340,7 @@ enum mlme_cfg_frame_type {
* @dual_sta_policy_cfg: Dual STA policies configuration
* @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
*/
struct wlan_mlme_generic {
uint32_t band_capability;
@@ -1387,6 +1388,9 @@ struct wlan_mlme_generic {
struct dual_sta_policy dual_sta_policy;
uint32_t tx_retry_multiplier;
uint8_t mgmt_hw_tx_retry_count[CFG_FRAME_TYPE_MAX];
#ifdef CONFIG_BAND_6GHZ
bool relaxed_6ghz_conn_policy;
#endif
};
/*

Vedi File

@@ -2760,6 +2760,23 @@ ucfg_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value)
return wlan_mlme_set_rf_test_mode_enabled(psoc, value);
}
/**
* ucfg_mlme_is_relaxed_6ghz_conn_policy_enabled() - Get 6ghz relaxed
* connection policy flag
* @psoc: pointer to psoc object
* @value: Value that needs to be set from the caller
*
* Inline UCFG API to be used by HDD/OSIF callers
*
* Return: QDF Status
*/
static inline QDF_STATUS
ucfg_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)
{
return wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(psoc, value);
}
/**
* ucfg_mlme_get_opr_rate() - Get operational rate set
* @psoc: pointer to vdev object

Vedi File

@@ -3032,6 +3032,23 @@ wlan_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value)
return QDF_STATUS_SUCCESS;
}
#ifdef CONFIG_BAND_6GHZ
QDF_STATUS
wlan_mlme_is_relaxed_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
bool *value)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj;
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return QDF_STATUS_E_FAILURE;
*value = mlme_obj->cfg.gen.relaxed_6ghz_conn_policy;
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS
wlan_mlme_cfg_set_vht_chan_width(struct wlan_objmgr_psoc *psoc, uint8_t value)
{