diff --git a/os_if/linux/mlme/src/osif_cm_connect_rsp.c b/os_if/linux/mlme/src/osif_cm_connect_rsp.c index 5021589313..5a7d33a726 100644 --- a/os_if/linux/mlme/src/osif_cm_connect_rsp.c +++ b/os_if/linux/mlme/src/osif_cm_connect_rsp.c @@ -29,51 +29,6 @@ #include "wlan_cfg80211.h" #include "wlan_cfg80211_scan.h" - -/** - * osif_cm_get_assoc_req_ie_data() - Get the assoc req IE offset and length - * if valid assoc req is present - * @assoc_req: assoc req info - * @ie_data_len: IE date length to be calculated - * @ie_data_ptr: IE data pointer to be calculated - * - * Return: void - */ -static void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req, - size_t *ie_data_len, - const uint8_t **ie_data_ptr) -{ - /* Validate IE and length */ - if (!assoc_req->len || !assoc_req->ptr || - assoc_req->len <= WLAN_ASSOC_REQ_IES_OFFSET) - return; - - *ie_data_len = assoc_req->len - WLAN_ASSOC_REQ_IES_OFFSET; - *ie_data_ptr = assoc_req->ptr + WLAN_ASSOC_REQ_IES_OFFSET; -} - -/** - * osif_cm_get_assoc_rsp_ie_data() - Get the assoc resp IE offset and length - * if valid assoc req is present - * @assoc_req: assoc req info - * @ie_data_len: IE date length to be calculated - * @ie_data_ptr: IE data pointer to be calculated - * - * Return: void - */ -static void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp, - size_t *ie_data_len, - const uint8_t **ie_data_ptr) -{ - /* Validate IE and length */ - if (!assoc_rsp->len || !assoc_rsp->ptr || - assoc_rsp->len <= WLAN_ASSOC_RSP_IES_OFFSET) - return; - - *ie_data_len = assoc_rsp->len - WLAN_ASSOC_RSP_IES_OFFSET; - *ie_data_ptr = assoc_rsp->ptr + WLAN_ASSOC_RSP_IES_OFFSET; -} - /** * osif_validate_connect_and_reset_src_id() - Validate connect response and * resets source and id @@ -187,23 +142,18 @@ static void __osif_connect_bss(struct net_device *dev, enum ieee80211_statuscode status) { enum nl80211_timeout_reason nl_timeout_reason; - size_t req_len = 0; - const uint8_t *req_ptr = NULL; - size_t rsp_len = 0; - const uint8_t *rsp_ptr = NULL; nl_timeout_reason = osif_convert_timeout_reason(rsp->reason); osif_debug("nl_timeout_reason %d", nl_timeout_reason); - osif_cm_get_assoc_req_ie_data(&rsp->connect_ies.assoc_req, - &req_len, &req_ptr); - osif_cm_get_assoc_rsp_ie_data(&rsp->connect_ies.assoc_rsp, - &rsp_len, &rsp_ptr); - cfg80211_connect_bss(dev, rsp->bssid.bytes, bss, - req_ptr, req_len, rsp_ptr, rsp_len, status, - GFP_KERNEL, nl_timeout_reason); + rsp->connect_ies.assoc_req.ptr, + rsp->connect_ies.assoc_req.len, + rsp->connect_ies.assoc_rsp.ptr, + rsp->connect_ies.assoc_rsp.len, + status, GFP_KERNEL, + nl_timeout_reason); } #else /* CFG80211_CONNECT_TIMEOUT_REASON_CODE */ @@ -223,18 +173,11 @@ static void __osif_connect_bss(struct net_device *dev, struct wlan_cm_connect_resp *rsp, ieee80211_statuscode status) { - size_t req_len = 0; - const uint8_t *req_ptr = NULL; - size_t rsp_len = 0; - const uint8_t *rsp_ptr = NULL; - - osif_cm_get_assoc_req_ie_data(&rsp->connect_ies.assoc_req, - &req_len, &req_ptr); - osif_cm_get_assoc_rsp_ie_data(&rsp->connect_ies.assoc_rsp, - &rsp_len, &rsp_ptr); - cfg80211_connect_bss(dev, rsp->bssid.bytes, bss, - req_ptr, req_len, rsp_ptr, rsp_len, + rsp->connect_ies.assoc_req.ptr, + rsp->connect_ies.assoc_req.len, + rsp->connect_ies.assoc_rsp.ptr, + rsp->connect_ies.assoc_rsp.len, status, GFP_KERNEL); } #endif /* CFG80211_CONNECT_TIMEOUT_REASON_CODE */ @@ -395,12 +338,10 @@ static void osif_connect_done(struct net_device *dev, struct cfg80211_bss *bss, conn_rsp_params.bssid = rsp->bssid.bytes; conn_rsp_params.timeout_reason = osif_convert_timeout_reason(rsp->reason); - osif_cm_get_assoc_req_ie_data(&rsp->connect_ies.assoc_req, - &conn_rsp_params.req_ie_len, - &conn_rsp_params.req_ie); - osif_cm_get_assoc_rsp_ie_data(&rsp->connect_ies.assoc_rsp, - &conn_rsp_params.resp_ie_len, - &conn_rsp_params.resp_ie); + conn_rsp_params.req_ie = rsp->connect_ies.assoc_req.ptr; + conn_rsp_params.req_ie_len = rsp->connect_ies.assoc_req.len; + conn_rsp_params.resp_ie = rsp->connect_ies.assoc_rsp.ptr; + conn_rsp_params.resp_ie_len = rsp->connect_ies.assoc_rsp.len; conn_rsp_params.bss = bss; osif_populate_fils_params(&conn_rsp_params, rsp->connect_ies.fils_ie); @@ -486,10 +427,6 @@ static void osif_indcate_connect_results(struct wlan_objmgr_vdev *vdev, struct wlan_cm_connect_resp *rsp) { enum ieee80211_statuscode status = WLAN_STATUS_SUCCESS; - size_t req_len = 0; - const uint8_t *req_ptr = NULL; - size_t rsp_len = 0; - const uint8_t *rsp_ptr = NULL; if (QDF_IS_STATUS_ERROR(rsp->connect_status)) { if (rsp->status_code) @@ -498,13 +435,13 @@ static void osif_indcate_connect_results(struct wlan_objmgr_vdev *vdev, status = WLAN_STATUS_UNSPECIFIED_FAILURE; } - osif_cm_get_assoc_req_ie_data(&rsp->connect_ies.assoc_req, - &req_len, &req_ptr); - osif_cm_get_assoc_rsp_ie_data(&rsp->connect_ies.assoc_rsp, - &rsp_len, &rsp_ptr); cfg80211_connect_result(osif_priv->wdev->netdev, - rsp->bssid.bytes, req_ptr, req_len, - rsp_ptr, rsp_len, status, GFP_KERNEL); + rsp->bssid.bytes, + rsp->connect_ies.assoc_req.ptr, + rsp->connect_ies.assoc_req.len, + rsp->connect_ies.assoc_rsp.ptr, + rsp->connect_ies.assoc_rsp.len, + status, GFP_KERNEL); } #endif /* CFG80211_CONNECT_BSS */ diff --git a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h index d04213cca2..dd91858f89 100644 --- a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h +++ b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h @@ -25,11 +25,6 @@ #include #include -/* Assoc resp IE offset Capability(2) + AID(2) + Status Code(2) */ -#define WLAN_ASSOC_RSP_IES_OFFSET 6 -/* Assoc req IE offset - Capability(2) + LI(2) */ -#define WLAN_ASSOC_REQ_IES_OFFSET 4 - #define IEEE80211_CCMP_HEADERLEN 8 #define IEEE80211_HT_CTRL_LEN 4 #define IEEE80211_CCMP_MICLEN 8 diff --git a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c index ecf6f88cb5..419fe88683 100644 --- a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c +++ b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c @@ -1471,8 +1471,6 @@ cm_resume_connect_after_peer_create(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id) if (QDF_IS_STATUS_ERROR(status)) { mlme_err(CM_PREFIX_FMT "connect request failed", CM_PREFIX_REF(req.vdev_id, req.cm_id)); - /* try delete bss peer if req fails */ - mlme_cm_bss_peer_delete_req(cm_ctx->vdev); status = cm_send_connect_start_fail(cm_ctx, &cm_req->connect_req, CM_JOIN_FAILED); diff --git a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h index 3c0249b51d..43865d9eb3 100644 --- a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h +++ b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h @@ -367,12 +367,14 @@ struct fils_connect_rsp_params { * @bcn_probe_rsp: Raw beacon or probe rsp of connected AP * @assoc_req: assoc req IE pointer send during conenct * @assoc_rsq: assoc rsp IE received during connection + * @ric_resp_ie: ric ie from assoc resp received during connection * @fills_ie: fills connection ie received during connection */ struct wlan_connect_rsp_ies { struct element_info bcn_probe_rsp; struct element_info assoc_req; struct element_info assoc_rsp; + struct element_info ric_resp_ie; #ifdef WLAN_FEATURE_FILS_SK struct fils_connect_rsp_params *fils_ie; #endif