qcacld-3.0: Add fixes for peer-level T2LM negotiation
Add the following fixes in case of peer-level tid-to-link mapping negotiation. 1) Copy peer-level mapping to wlan_prev_t2lm_negotiated_info from wlan_t2lm_onging_negotiation_info after negotiation is completed as the former structure is used for mapping reference. 2) Currently, the Host sends peer-level negotiated mapping to FW, followed by an action frame response to the AP. Reverse this order to align with the design flow. Change-Id: I0e0db95c539cfd9aee27b481683e3e807a1f712e CRs-Fixed: 3423125
This commit is contained in:

committed by
Madan Koyyalamudi

parent
2d1de39605
commit
bc5b48f9de
@@ -148,14 +148,12 @@ QDF_STATUS t2lm_handle_rx_req(struct wlan_objmgr_vdev *vdev,
|
|||||||
|
|
||||||
if (QDF_IS_STATUS_SUCCESS(status) &&
|
if (QDF_IS_STATUS_SUCCESS(status) &&
|
||||||
t2lm_req.t2lm_info[dir].direction != WLAN_T2LM_INVALID_DIRECTION) {
|
t2lm_req.t2lm_info[dir].direction != WLAN_T2LM_INVALID_DIRECTION) {
|
||||||
/* Apply T2LM config to peer T2LM ctx and send it to FW */
|
/* Apply T2LM config to peer T2LM ctx */
|
||||||
t2lm_info = &ml_peer->t2lm_policy.ongoing_tid_to_link_mapping.t2lm_info[dir];
|
t2lm_info = &ml_peer->t2lm_policy.t2lm_negotiated_info.t2lm_info[dir];
|
||||||
qdf_mem_copy(t2lm_info, &t2lm_req.t2lm_info[dir],
|
qdf_mem_copy(t2lm_info, &t2lm_req.t2lm_info[dir],
|
||||||
sizeof(struct wlan_t2lm_info));
|
sizeof(struct wlan_t2lm_info));
|
||||||
status = wlan_send_tid_to_link_mapping(vdev, t2lm_info);
|
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status))
|
|
||||||
mlme_err("Could not send updated T2LM config to FW");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*token = t2lm_req.dialog_token;
|
*token = t2lm_req.dialog_token;
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
|
@@ -2177,6 +2177,10 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
|
|||||||
mac_ctx, mac_hdr->sa, session, token,
|
mac_ctx, mac_hdr->sa, session, token,
|
||||||
status_code) != QDF_STATUS_SUCCESS)
|
status_code) != QDF_STATUS_SUCCESS)
|
||||||
pe_err("T2LM action response frame not sent");
|
pe_err("T2LM action response frame not sent");
|
||||||
|
else
|
||||||
|
wlan_send_peer_level_tid_to_link_mapping(
|
||||||
|
session->vdev,
|
||||||
|
peer);
|
||||||
break;
|
break;
|
||||||
case EHT_T2LM_RESPONSE:
|
case EHT_T2LM_RESPONSE:
|
||||||
wlan_t2lm_deliver_event(
|
wlan_t2lm_deliver_event(
|
||||||
|
Reference in New Issue
Block a user