qcacmn: Add support to parse reconfig ML IE
Add support to parse Reconifg ML IE and fill ml info in the scan cache entry. Change-Id: Ieb7ba1731d82474fbead1d6edbe1584fbdb42e0d CRs-Fixed: 3347362
This commit is contained in:

committed by
Madan Koyyalamudi

parent
299c4870e5
commit
de6b627426
@@ -205,8 +205,9 @@ struct channel_info {
|
||||
* @rsnxe: Pointer to rsnxe IE
|
||||
* @ehtcap: pointer to ehtcap ie
|
||||
* @ehtop: pointer to eht op ie
|
||||
* @t2lm: array of pointers to t2lm op ie
|
||||
* @multi_link_bv: pointer to multi link basic variant IE
|
||||
* @multi_link_rv: pointer to multi link reconfig IE
|
||||
* @t2lm: array of pointers to t2lm op ie
|
||||
* @bwnss_map: pointer to NSS map IE
|
||||
* @secchanoff: pointer to secondary chan IE
|
||||
* @mdie: pointer to md IE
|
||||
@@ -274,6 +275,7 @@ struct ie_list {
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
uint8_t *multi_link_bv;
|
||||
uint8_t *multi_link_rv;
|
||||
uint8_t *t2lm[WLAN_MAX_T2LM_IE];
|
||||
#endif
|
||||
uint8_t *qcn;
|
||||
|
@@ -742,6 +742,8 @@ util_scan_copy_beacon_data(struct scan_cache_entry *new_entry,
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
ie_lst->multi_link_bv =
|
||||
conv_ptr(ie_lst->multi_link_bv, old_ptr, new_ptr);
|
||||
ie_lst->multi_link_rv =
|
||||
conv_ptr(ie_lst->multi_link_rv, old_ptr, new_ptr);
|
||||
for (i = 0; i < WLAN_MAX_T2LM_IE; i++)
|
||||
ie_lst->t2lm[i] = conv_ptr(ie_lst->t2lm[i], old_ptr, new_ptr);
|
||||
#endif
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
#include <wlan_utility.h>
|
||||
#include "wlan_mlo_mgr_public_structs.h"
|
||||
#include <utils_mlo.h>
|
||||
#endif
|
||||
#include "wlan_psoc_mlme_api.h"
|
||||
#include "reg_services_public_struct.h"
|
||||
@@ -1173,8 +1174,35 @@ util_scan_parse_t2lm_ie(struct scan_cache_entry *scan_params,
|
||||
static void util_scan_parse_ml_ie(struct scan_cache_entry *scan_params,
|
||||
struct extn_ie_header *extn_ie)
|
||||
{
|
||||
if (extn_ie->ie_extn_id == WLAN_EXTN_ELEMID_MULTI_LINK)
|
||||
uint8_t *ml_ie;
|
||||
uint32_t ml_ie_len;
|
||||
enum wlan_ml_variant ml_variant;
|
||||
QDF_STATUS ret;
|
||||
|
||||
if (extn_ie->ie_extn_id != WLAN_EXTN_ELEMID_MULTI_LINK)
|
||||
return;
|
||||
|
||||
ml_ie = (uint8_t *)extn_ie;
|
||||
ml_ie_len = ml_ie[TAG_LEN_POS];
|
||||
|
||||
/* Adding the size of IE header to ML IE length */
|
||||
ml_ie_len += sizeof(struct ie_header);
|
||||
ret = util_get_mlie_variant(ml_ie, ml_ie_len, (int *)&ml_variant);
|
||||
if (ret) {
|
||||
scm_err("Unable to get ml variant");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ml_variant) {
|
||||
case WLAN_ML_VARIANT_BASIC:
|
||||
scan_params->ie_list.multi_link_bv = (uint8_t *)extn_ie;
|
||||
break;
|
||||
case WLAN_ML_VARIANT_RECONFIG:
|
||||
scan_params->ie_list.multi_link_rv = (uint8_t *)extn_ie;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void util_scan_parse_ml_ie(struct scan_cache_entry *scan_params,
|
||||
|
Reference in New Issue
Block a user