qcacld-3.0: Update preauth candidate entry to scan table

During SAE roam auth offload, update the beacon/probe response
frame coming from the FW via WMI_ROAM_FRAME_EVENTID into the
scan db.

When the bss info of the preauth candidate is unavailable in
the host/kernel scan entry, supplicant fails to determine the
proper SAE PWE config of the peer and the commit request fails.

Change-Id: Ia782ece7bebf8274f949fe9fb3b2a2882bf47597
CRs-Fixed: 3075458
此提交包含在:
Surya Prakash Sivaraj
2021-11-15 22:56:01 +05:30
提交者 Madan Koyyalamudi
父節點 bc99e6e4ef
當前提交 6ae47b3e0b
共有 8 個檔案被更改,包括 291 行新增0 行删除

查看文件

@@ -1128,6 +1128,17 @@ void cm_report_roam_rt_stats(struct wlan_objmgr_psoc *psoc,
enum roam_rt_stats_type events,
struct roam_stats_event *roam_info,
uint32_t value, uint8_t idx);
/**
* cm_roam_candidate_event_handler() - CM callback to save roam
* candidate entry in scan db
*
* @psoc - psoc objmgr ptr
* @frame - roam scan candidate info
*/
QDF_STATUS
cm_roam_candidate_event_handler(struct wlan_objmgr_psoc *psoc,
struct roam_scan_candidate_frame *candidate);
#else
static inline
void wlan_cm_roam_activate_pcl_per_vdev(struct wlan_objmgr_psoc *psoc,
@@ -1294,6 +1305,13 @@ cm_report_roam_rt_stats(struct wlan_objmgr_psoc *psoc,
struct roam_stats_event *roam_info,
uint32_t value, uint8_t idx)
{}
static inline QDF_STATUS
cm_roam_candidate_event_handler(struct wlan_objmgr_psoc *psoc,
struct roam_scan_candidate_frame *candidate)
{
return QDF_STATUS_SUCCESS;
}
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
#ifdef WLAN_FEATURE_FIPS

查看文件

@@ -2433,6 +2433,18 @@ struct roam_offload_synch_ind {
#endif
};
/*
* struct roam_scan_candidate_frame Roam candidate scan entry
* vdev_id : vdev id
* frame_len : Length of the beacon/probe rsp frame
* frame : Pointer to the frame
*/
struct roam_scan_candidate_frame {
uint8_t vdev_id;
uint32_t frame_length;
uint8_t *frame;
};
/**
* wlan_cm_roam_rx_ops - structure of rx function pointers for
* roaming related commands
@@ -2445,6 +2457,7 @@ struct roam_offload_synch_ind {
* @roam_stats_event_rx: Rx ops function pointer for roam stats event
* @roam_auth_offload_event: Rx ops function pointer for auth offload event
* @roam_pmkid_request_event_rx: Rx ops function pointer for roam pmkid event
* @roam_candidate_frame_event : Rx ops function pointer for roam frame event
*/
struct wlan_cm_roam_rx_ops {
QDF_STATUS (*roam_sync_event)(struct wlan_objmgr_psoc *psoc,
@@ -2467,5 +2480,8 @@ struct wlan_cm_roam_rx_ops {
(*roam_auth_offload_event)(struct auth_offload_event *auth_event);
QDF_STATUS
(*roam_pmkid_request_event_rx)(struct roam_pmkid_req_event *list);
QDF_STATUS
(*roam_candidate_frame_event)(struct wlan_objmgr_psoc *psoc,
struct roam_scan_candidate_frame *frame);
};
#endif