qcacmn: Parse 11AX RNR TBTT info field even if 11BE is disabled

Currently, below 11BE RNR TBTT field doesn't get processed when
11BE is not defined,
TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM
So, station is not able to parse the RNR IEs from the 11BE APs.
Parse TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM
always but extract 11be info only when 11BE define is enabled.
Also, cleanup the duplicate code.

Change-Id: I49e38875f3f0a3ab238636f7a8e0f93c7aa4d04b
CRs-Fixed: 3624227
This commit is contained in:
Srinivas Dasari
2023-09-25 12:53:44 +05:30
committed by Rahul Choudhary
父節點 d14e4dcaa0
當前提交 aafe99c365

查看文件

@@ -998,23 +998,10 @@ static void
util_scan_update_rnr_mld(struct rnr_bss_info *rnr,
struct neighbor_ap_info_field *ap_info, uint8_t *data)
{
uint8_t tbtt_info_length;
bool mld_info_present = false;
tbtt_info_length = ap_info->tbtt_header.tbtt_info_length;
if (tbtt_info_length >=
TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM)
tbtt_info_length =
TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM;
switch (tbtt_info_length) {
switch (ap_info->tbtt_header.tbtt_info_length) {
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
qdf_mem_copy(&rnr->short_ssid, &data[7], SHORT_SSID_LEN);
rnr->bss_params = data[11];
rnr->psd_20mhz = data[12];
qdf_mem_copy(&rnr->mld_info, &data[13],
sizeof(struct rnr_mld_info));
mld_info_present = true;
@@ -1028,7 +1015,6 @@ static void
util_scan_update_rnr_mld(struct rnr_bss_info *rnr,
struct neighbor_ap_info_field *ap_info, uint8_t *data)
{
scm_debug("Wrong fieldtype");
}
#endif
@@ -1050,40 +1036,36 @@ util_scan_update_rnr(struct rnr_bss_info *rnr,
/* Dont store it skip*/
break;
case TBTT_NEIGHBOR_AP_S_SSID_BSS_PARAM:
rnr->bss_params = data[5];
fallthrough;
case TBTT_NEIGHBOR_AP_SHORTSSID:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->short_ssid, &data[1], SHORT_SSID_LEN);
break;
case TBTT_NEIGHBOR_AP_S_SSID_BSS_PARAM:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->short_ssid, &data[1], SHORT_SSID_LEN);
rnr->bss_params = data[5];
break;
case TBTT_NEIGHBOR_AP_BSSID_BSS_PARAM_20MHZ_PSD:
rnr->psd_20mhz = data[8];
fallthrough;
case TBTT_NEIGHBOR_AP_BSSID_BSS_PARAM:
rnr->bss_params = data[7];
fallthrough;
case TBTT_NEIGHBOR_AP_BSSID:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
break;
case TBTT_NEIGHBOR_AP_BSSID_BSS_PARAM:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
rnr->bss_params = data[7];
break;
case TBTT_NEIGHBOR_AP_BSSID_BSS_PARAM_20MHZ_PSD:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
rnr->bss_params = data[7];
rnr->psd_20mhz = data[8];
break;
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM:
util_scan_update_rnr_mld(rnr, ap_info, data);
fallthrough;
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD:
rnr->psd_20mhz = data[12];
fallthrough;
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM:
rnr->bss_params = data[11];
fallthrough;
case TBTT_NEIGHBOR_AP_BSSSID_S_SSID:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
@@ -1091,25 +1073,8 @@ util_scan_update_rnr(struct rnr_bss_info *rnr,
qdf_mem_copy(&rnr->short_ssid, &data[7], SHORT_SSID_LEN);
break;
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
qdf_mem_copy(&rnr->short_ssid, &data[7], SHORT_SSID_LEN);
rnr->bss_params = data[11];
break;
case TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD:
rnr->channel_number = ap_info->channel_number;
rnr->operating_class = ap_info->operting_class;
qdf_mem_copy(&rnr->bssid, &data[1], QDF_MAC_ADDR_SIZE);
qdf_mem_copy(&rnr->short_ssid, &data[7], SHORT_SSID_LEN);
rnr->bss_params = data[11];
rnr->psd_20mhz = data[12];
break;
default:
util_scan_update_rnr_mld(rnr, ap_info, data);
scm_debug("Wrong fieldtype");
}
return QDF_STATUS_SUCCESS;