qcacld-3.0: Optimize the critical update feature
1\ Optimize the log output; 2\ Remove the duplicate code; 3\ Fix issue about processing partner link in probe response frame. Change-Id: I05a67cf9ee7c017c6f76924f9cf08bbe2185b81c CRs-Fixed: 3410878
This commit is contained in:

committed by
Madan Koyyalamudi

parent
fff96f4fc8
commit
ceb51f6e10
@@ -57,8 +57,10 @@ QDF_STATUS lim_cu_info_from_rnr_per_link_id(const uint8_t *rnr,
|
|||||||
tbtt_len = neighbor_ap_info->tbtt_header.tbtt_info_length;
|
tbtt_len = neighbor_ap_info->tbtt_header.tbtt_info_length;
|
||||||
tbtt_type = neighbor_ap_info->tbtt_header.tbbt_info_fieldtype;
|
tbtt_type = neighbor_ap_info->tbtt_header.tbbt_info_fieldtype;
|
||||||
len = tbtt_len * (tbtt_count + 1) + nbr_ap_info_len;
|
len = tbtt_len * (tbtt_count + 1) + nbr_ap_info_len;
|
||||||
if (data + len > rnr_end)
|
if (data + len > rnr_end) {
|
||||||
|
pe_debug("error about rnr length");
|
||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (tbtt_len >=
|
if (tbtt_len >=
|
||||||
TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM)
|
TBTT_NEIGHBOR_AP_BSSID_S_SSID_BSS_PARAM_20MHZ_PSD_MLD_PARAM)
|
||||||
@@ -105,6 +107,7 @@ QDF_STATUS lim_get_bpcc_from_mlo_ie(tSchBeaconStruct *bcn, uint8_t *bpcc)
|
|||||||
if (mlo_ie->mlo_ie_present &&
|
if (mlo_ie->mlo_ie_present &&
|
||||||
mlo_ie->mlo_ie.bss_param_change_cnt_present) {
|
mlo_ie->mlo_ie.bss_param_change_cnt_present) {
|
||||||
*bpcc = mlo_ie->mlo_ie.bss_param_change_count;
|
*bpcc = mlo_ie->mlo_ie.bss_param_change_count;
|
||||||
|
pe_debug("mlie bpcc %d", *bpcc);
|
||||||
status = QDF_STATUS_SUCCESS;
|
status = QDF_STATUS_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
*bpcc = 0;
|
*bpcc = 0;
|
||||||
@@ -131,8 +134,8 @@ bool lim_check_cu_happens(struct wlan_objmgr_vdev *vdev, uint8_t new_bpcc)
|
|||||||
if (new_bpcc == 0 && bpcc == 0)
|
if (new_bpcc == 0 && bpcc == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pe_debug("new bpcc %d, old bpcc %d, vdev id %d",
|
pe_debug_rl("vdev id %d new bpcc %d, old bpcc %d",
|
||||||
new_bpcc, bpcc, vdev_id);
|
vdev_id, new_bpcc, bpcc);
|
||||||
if (new_bpcc && new_bpcc < bpcc)
|
if (new_bpcc && new_bpcc < bpcc)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -545,7 +548,7 @@ QDF_STATUS lim_mlo_proc_assoc_req_frm(struct wlan_objmgr_vdev *vdev,
|
|||||||
tSirMacFrameCtl fc;
|
tSirMacFrameCtl fc;
|
||||||
tpSirAssocReq assoc_req;
|
tpSirAssocReq assoc_req;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
qdf_size_t link_frame_len;
|
qdf_size_t link_frame_len = 0;
|
||||||
struct qdf_mac_addr link_bssid;
|
struct qdf_mac_addr link_bssid;
|
||||||
|
|
||||||
if (!vdev) {
|
if (!vdev) {
|
||||||
@@ -1099,8 +1102,8 @@ QDF_STATUS lim_store_mlo_ie_raw_info(uint8_t *ie, uint8_t *sta_prof_ie,
|
|||||||
}
|
}
|
||||||
ml_ie_len = total_len - frag_num * MIN_IE_LEN;
|
ml_ie_len = total_len - frag_num * MIN_IE_LEN;
|
||||||
|
|
||||||
pe_debug("ml_ie_len: %d, total_len: %d, frag_num: %d", ml_ie_len,
|
pe_debug_rl("ml_ie_len: %d, total_len: %d, frag_num: %d", ml_ie_len,
|
||||||
total_len, frag_num);
|
total_len, frag_num);
|
||||||
|
|
||||||
buf = qdf_mem_malloc(total_len);
|
buf = qdf_mem_malloc(total_len);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
@@ -1154,8 +1157,8 @@ QDF_STATUS lim_store_mlo_ie_raw_info(uint8_t *ie, uint8_t *sta_prof_ie,
|
|||||||
}
|
}
|
||||||
pfrm += pfrm[TAG_LEN_POS] + MIN_IE_LEN;
|
pfrm += pfrm[TAG_LEN_POS] + MIN_IE_LEN;
|
||||||
} while (frag);
|
} while (frag);
|
||||||
pe_debug("sta index: %d, sta_data len: %d, copied: %d",
|
pe_debug_rl("sta index: %d, sta_data len: %d, copied: %d",
|
||||||
sta_index, index, copied);
|
sta_index, index, copied);
|
||||||
sta_index++;
|
sta_index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -461,8 +461,6 @@ lim_process_beacon_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
if (QDF_IS_STATUS_SUCCESS(lim_check_for_ml_probe_req(session)))
|
if (QDF_IS_STATUS_SUCCESS(lim_check_for_ml_probe_req(session)))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
lim_process_beacon_eht(mac_ctx, session, bcn_ptr);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* during scanning, when any session is active, and
|
* during scanning, when any session is active, and
|
||||||
* beacon/Pr belongs to one of the session, fill up the
|
* beacon/Pr belongs to one of the session, fill up the
|
||||||
|
@@ -165,7 +165,7 @@ void lim_process_gen_probe_rsp_frame(struct mac_context *mac_ctx,
|
|||||||
uint8_t *bcn_probe, uint32_t len)
|
uint8_t *bcn_probe, uint32_t len)
|
||||||
{
|
{
|
||||||
tSirProbeRespBeacon *probe_rsp;
|
tSirProbeRespBeacon *probe_rsp;
|
||||||
tpSirMacMgmtHdr header;
|
struct wlan_frame_hdr *header;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
if (!bcn_probe || !len) {
|
if (!bcn_probe || !len) {
|
||||||
@@ -184,9 +184,15 @@ void lim_process_gen_probe_rsp_frame(struct mac_context *mac_ctx,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
header = (tpSirMacMgmtHdr)(bcn_probe);
|
header = (struct wlan_frame_hdr *)(bcn_probe);
|
||||||
pe_debug("Generate Probe Resp(len %d): " QDF_MAC_ADDR_FMT,
|
pe_debug("Generate Probe Resp for cu (len %d): " QDF_MAC_ADDR_FMT,
|
||||||
len, QDF_MAC_ADDR_REF(header->bssId));
|
len, QDF_MAC_ADDR_REF(header->i_addr3));
|
||||||
|
|
||||||
|
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
bcn_probe, len);
|
||||||
|
|
||||||
|
bcn_probe = (uint8_t *)(bcn_probe + sizeof(*header));
|
||||||
|
len -= sizeof(*header);
|
||||||
|
|
||||||
status = sir_convert_probe_frame2_struct(mac_ctx,
|
status = sir_convert_probe_frame2_struct(mac_ctx,
|
||||||
bcn_probe, len, probe_rsp);
|
bcn_probe, len, probe_rsp);
|
||||||
@@ -258,7 +264,7 @@ lim_process_probe_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_Packet_info
|
|||||||
|
|
||||||
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_Packet_info);
|
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_Packet_info);
|
||||||
pe_debug("Probe Resp(len %d): " QDF_MAC_ADDR_FMT " RSSI %d",
|
pe_debug("Probe Resp(len %d): " QDF_MAC_ADDR_FMT " RSSI %d",
|
||||||
WMA_GET_RX_MPDU_LEN(rx_Packet_info),
|
WMA_GET_RX_PAYLOAD_LEN(rx_Packet_info),
|
||||||
QDF_MAC_ADDR_REF(header->bssId),
|
QDF_MAC_ADDR_REF(header->bssId),
|
||||||
(uint)abs(mac_ctx->lim.bss_rssi));
|
(uint)abs(mac_ctx->lim.bss_rssi));
|
||||||
/* Get pointer to Probe Response frame body */
|
/* Get pointer to Probe Response frame body */
|
||||||
@@ -284,12 +290,11 @@ lim_process_probe_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_Packet_info
|
|||||||
if (mlo_is_mld_sta(session_entry->vdev)) {
|
if (mlo_is_mld_sta(session_entry->vdev)) {
|
||||||
cu_flag = false;
|
cu_flag = false;
|
||||||
status = lim_get_bpcc_from_mlo_ie(probe_rsp, &bpcc);
|
status = lim_get_bpcc_from_mlo_ie(probe_rsp, &bpcc);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
cu_flag = lim_check_cu_happens(session_entry->vdev,
|
cu_flag = lim_check_cu_happens(session_entry->vdev,
|
||||||
bpcc);
|
bpcc);
|
||||||
lim_process_cu_for_probe_rsp(mac_ctx, session_entry,
|
lim_process_cu_for_probe_rsp(mac_ctx, session_entry,
|
||||||
body, frame_len);
|
body, frame_len);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session_entry->limMlmState ==
|
if (session_entry->limMlmState ==
|
||||||
|
Reference in New Issue
Block a user