qcacld-3.0: Reject assoc req frame if ML IE fails
During ML connection, if driver is not able to fill the ML IE in the assoc req frame then return failure. Change-Id: Ibecd304830888ca4f8838c6759b88c3e965d9438 CRs-Fixed: 3516598
This commit is contained in:

committed by
Rahul Choudhary

parent
3bb88d61f3
commit
4a70925560
@@ -1256,9 +1256,9 @@ QDF_STATUS lim_add_frag_ie_for_sta_profile(uint8_t *data, uint16_t *len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint16_t
|
uint16_t
|
||||||
lim_send_assoc_req_mgmt_frame_mlo(struct mac_context *mac_ctx,
|
lim_fill_assoc_req_mlo_ie(struct mac_context *mac_ctx,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tDot11fAssocRequest *frm)
|
tDot11fAssocRequest *frm)
|
||||||
{
|
{
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
@@ -274,7 +274,7 @@ QDF_STATUS lim_fill_complete_mlo_ie(struct pe_session *session,
|
|||||||
uint16_t lim_caculate_mlo_ie_length(struct wlan_mlo_ie *mlo_ie);
|
uint16_t lim_caculate_mlo_ie_length(struct wlan_mlo_ie *mlo_ie);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_send_assoc_req_mgmt_frame_mlo() - Prepare ML IE for assoc req frame
|
* lim_fill_assoc_req_mlo_ie() - Prepare ML IE for assoc req frame
|
||||||
* @mac_ctx: pointer to mac_context
|
* @mac_ctx: pointer to mac_context
|
||||||
* @session: pointer to pe_session
|
* @session: pointer to pe_session
|
||||||
* @frm: pointer to tDot11fAssocRequest
|
* @frm: pointer to tDot11fAssocRequest
|
||||||
@@ -282,9 +282,9 @@ uint16_t lim_caculate_mlo_ie_length(struct wlan_mlo_ie *mlo_ie);
|
|||||||
* Return: the actual ML IE length
|
* Return: the actual ML IE length
|
||||||
*/
|
*/
|
||||||
uint16_t
|
uint16_t
|
||||||
lim_send_assoc_req_mgmt_frame_mlo(struct mac_context *mac_ctx,
|
lim_fill_assoc_req_mlo_ie(struct mac_context *mac_ctx,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tDot11fAssocRequest *frm);
|
tDot11fAssocRequest *frm);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_send_assoc_rsq_mgmt_frame_mlo() - Prepare ML IE for assoc rsq frame
|
* lim_send_assoc_rsq_mgmt_frame_mlo() - Prepare ML IE for assoc rsq frame
|
||||||
@@ -487,9 +487,9 @@ QDF_STATUS lim_fill_complete_mlo_ie(struct pe_session *session,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline uint16_t
|
static inline uint16_t
|
||||||
lim_send_assoc_req_mgmt_frame_mlo(struct mac_context *mac_ctx,
|
lim_fill_assoc_req_mlo_ie(struct mac_context *mac_ctx,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tDot11fAssocRequest *frm)
|
tDot11fAssocRequest *frm)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -2633,8 +2633,15 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
|
|||||||
lim_strip_mlo_ie(mac_ctx, add_ie, &add_ie_len);
|
lim_strip_mlo_ie(mac_ctx, add_ie, &add_ie_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
mlo_ie_len =
|
mlo_ie_len = lim_fill_assoc_req_mlo_ie(mac_ctx, pe_session, frm);
|
||||||
lim_send_assoc_req_mgmt_frame_mlo(mac_ctx, pe_session, frm);
|
|
||||||
|
/**
|
||||||
|
* In case of ML connection, if ML IE length is 0 then return failure.
|
||||||
|
*/
|
||||||
|
if (mlo_is_mld_sta(pe_session->vdev) && !mlo_ie_len) {
|
||||||
|
pe_err("Failed to add ML IE for vdev:%d", pe_session->vdev_id);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
if (pe_session->is11Rconnection) {
|
if (pe_session->is11Rconnection) {
|
||||||
struct bss_description *bssdescr;
|
struct bss_description *bssdescr;
|
||||||
|
Reference in New Issue
Block a user