qcacld-3.0: Add eht_op and eht_cap of 11be for sme layer

Two new IE eht_op and eht_cap will be added for 11be.
Implement eht_op and eht_cap changes for sme layer.

Change-Id: If6d11e2cad2ff87ac82b07c7ecb9dd05ac53f0ee
CRs-Fixed: 2908058
Этот коммит содержится в:
bings
2021-01-14 09:59:19 +08:00
коммит произвёл snandini
родитель e1569c87b8
Коммит 162eed4f6f
5 изменённых файлов: 161 добавлений и 0 удалений

Просмотреть файл

@@ -883,6 +883,9 @@ struct csr_roam_info {
struct assoc_ind *owe_pending_assoc_ind;
uint16_t roam_reason;
struct element_info *disconnect_ies;
#ifdef WLAN_FEATURE_11BE
tDot11fIEeht_op eht_operation;
#endif
};
typedef struct sSirSmeAssocIndToUpperLayerCnf {

Просмотреть файл

@@ -3168,6 +3168,42 @@ int sme_set_auto_rate_ldpc(mac_handle_t mac_handle, uint8_t session_id,
int sme_set_auto_rate_he_ltf(mac_handle_t mac_handle, uint8_t session_id,
uint8_t cfg_val);
#ifdef WLAN_FEATURE_11BE
/**
* sme_update_tgt_eht_cap() - sets the EHT caps to pmac
* @mac_handle: Pointer to MAC handle
* @cfg: Pointer to WMA target CFG
* @eht_cap_ini: Pointer to EHT CAP configured by INI
*
* Return: None
*/
void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
struct wma_tgt_cfg *cfg,
tDot11fIEeht_cap *eht_cap_ini);
/**
* sme_update_eht_cap_nss() - sets the nss based on user request
* @mac_handle: Opaque handle to the global MAC context
* @session_id: SME session id
* @nss: no.of spatial streams value
*
* Return: None
*/
void sme_update_eht_cap_nss(mac_handle_t mac_handle, uint8_t session_id,
uint8_t nss);
#else
static inline void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
struct wma_tgt_cfg *cfg,
tDot11fIEeht_cap *eht_cap_ini)
{}
static inline void sme_update_eht_cap_nss(mac_handle_t mac_handle,
uint8_t session_id,
uint8_t nss)
{}
#endif
#ifdef WLAN_FEATURE_11AX
/**
* sme_update_tgt_he_cap() - sets the HE caps to pmac
@@ -3673,6 +3709,36 @@ static inline void sme_set_ru_242_tone_tx_cfg(mac_handle_t mac_handle,
}
#endif
#ifdef WLAN_FEATURE_11BE
/**
* sme_set_eht_testbed_def() - set eht testbed default
* @mac_handle: Opaque handle to the global MAC context
* @vdev_id: VDEV id
*
* Return: None
*/
void sme_set_eht_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id);
/**
* sme_reset_eht_caps() - reset eht capabilities
* @mac_handle: Opaque handle to the global MAC context
* @vdev_id: VDEV id
*
* Return: None
*/
void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id);
#else
static inline void sme_set_eht_testbed_def(mac_handle_t mac_handle,
uint8_t vdev_id)
{
}
static inline void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id)
{
}
#endif
/**
* sme_get_mcs_idx() - gets mcs index
* @raw_rate: raw rate from fw

Просмотреть файл

@@ -10774,6 +10774,20 @@ int sme_update_tx_bfee_nsts(mac_handle_t mac_handle, uint8_t session_id,
return sme_update_he_tx_bfee_nsts(mac_handle, session_id, nsts_set_val);
}
#ifdef WLAN_FEATURE_11BE
void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
struct wma_tgt_cfg *cfg,
tDot11fIEeht_cap *eht_cap_ini)
{
}
void sme_update_eht_cap_nss(mac_handle_t mac_handle, uint8_t session_id,
uint8_t nss)
{
}
#endif
#ifdef WLAN_FEATURE_11AX
void sme_update_tgt_he_cap(mac_handle_t mac_handle,
struct wma_tgt_cfg *cfg,
@@ -15069,6 +15083,44 @@ void sme_reset_he_caps(mac_handle_t mac_handle, uint8_t vdev_id)
}
#endif
#ifdef WLAN_FEATURE_11BE
void sme_set_eht_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id)
{
}
void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id)
{
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
struct csr_roam_session *session;
QDF_STATUS status;
session = CSR_GET_SESSION(mac_ctx, vdev_id);
if (!session) {
sme_err("No session for id %d", vdev_id);
return;
}
sme_debug("reset EHT caps");
mac_ctx->mlme_cfg->eht_caps.dot11_eht_cap =
mac_ctx->mlme_cfg->eht_caps.eht_cap_orig;
csr_update_session_eht_cap(mac_ctx, session);
wlan_cm_reset_check_6ghz_security(mac_ctx->psoc);
status = ucfg_mlme_set_enable_bcast_probe_rsp(mac_ctx->psoc, true);
if (QDF_IS_STATUS_ERROR(status))
sme_err("Failed not set enable bcast probe resp info, %d",
status);
status = wma_cli_set_command(vdev_id,
WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE,
1, VDEV_CMD);
if (QDF_IS_STATUS_ERROR(status))
sme_err("Failed to set enable bcast probe resp in FW, %d",
status);
mac_ctx->is_usr_cfg_pmf_wep = PMF_CORRECT_KEY;
}
#endif
uint8_t sme_get_mcs_idx(uint16_t raw_rate, enum tx_rate_info rate_flags,
bool is_he_mcs_12_13_supported,
uint8_t *nss, uint8_t *dcm,

Просмотреть файл

@@ -1796,6 +1796,13 @@ uint32_t csr_convert_phy_cb_state_to_ini_value(ePhyChanBondState phyCbState)
return cbIniValue;
}
#ifdef WLAN_FEATURE_11BE
void csr_update_session_eht_cap(struct mac_context *mac_ctx,
struct csr_roam_session *session)
{
}
#endif
#ifdef WLAN_FEATURE_11AX
void csr_update_session_he_cap(struct mac_context *mac_ctx,
struct csr_roam_session *session)
@@ -5404,6 +5411,19 @@ static inline void csr_process_fils_join_rsp(struct mac_context *mac_ctx,
{}
#endif
#ifdef WLAN_FEATURE_11BE
static void csr_roam_process_eht_info(struct join_rsp *sme_join_rsp,
struct csr_roam_info *roam_info)
{
roam_info->eht_operation = sme_join_rsp->eht_operation;
}
#else
static inline void csr_roam_process_eht_info(struct join_rsp *sme_join_rsp,
struct csr_roam_info *roam_info)
{
}
#endif
#ifdef WLAN_FEATURE_11AX
static void csr_roam_process_he_info(struct join_rsp *sme_join_rsp,
struct csr_roam_info *roam_info)
@@ -5727,6 +5747,7 @@ static void csr_roam_process_join_res(struct mac_context *mac_ctx,
roam_info->ht_operation = join_rsp->ht_operation;
roam_info->vht_operation = join_rsp->vht_operation;
csr_roam_process_he_info(join_rsp, roam_info);
csr_roam_process_eht_info(join_rsp, roam_info);
} else {
if (cmd->u.roamCmd.fReassoc) {
roam_info->fReassocReq =
@@ -14075,6 +14096,7 @@ QDF_STATUS csr_setup_vdev_session(struct vdev_mlme_obj *vdev_mlme)
vht_cap_info->ampdu_len_exponent;
vdev_mlme->proto.vht_info.caps = vht_config.caps;
csr_update_session_he_cap(mac_ctx, session);
csr_update_session_eht_cap(mac_ctx, session);
csr_send_set_ie(vdev_mlme->mgmt.generic.type,
vdev_mlme->mgmt.generic.subtype,

Просмотреть файл

@@ -958,6 +958,24 @@ bool csr_is_pmkid_found_for_peer(struct mac_context *mac,
struct csr_roam_session *session,
tSirMacAddr peer_mac_addr,
uint8_t *pmkid, uint16_t pmkid_count);
#ifdef WLAN_FEATURE_11BE
/**
* csr_update_session_eht_cap() - update sme session eht capabilities
* @mac_ctx: pointer to mac
* @session: sme session pointer
*
* Return: None
*/
void csr_update_session_eht_cap(struct mac_context *mac_ctx,
struct csr_roam_session *session);
#else
static inline void csr_update_session_eht_cap(struct mac_context *mac_ctx,
struct csr_roam_session *session)
{
}
#endif
#ifdef WLAN_FEATURE_11AX
void csr_update_session_he_cap(struct mac_context *mac_ctx,
struct csr_roam_session *session);