xref: /linux/drivers/net/wireless/intel/iwlwifi/mld/ftm-initiator.h (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1d1e879ecSMiri Korenblit /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2d1e879ecSMiri Korenblit /*
3d1e879ecSMiri Korenblit  * Copyright (C) 2025 Intel Corporation
4d1e879ecSMiri Korenblit  */
5d1e879ecSMiri Korenblit #ifndef __iwl_mld_ftm_initiator_h__
6d1e879ecSMiri Korenblit #define __iwl_mld_ftm_initiator_h__
7d1e879ecSMiri Korenblit 
8*32c33a4dSAvraham Stern /**
9*32c33a4dSAvraham Stern  * struct ftm_initiator_data - FTM initiator data
10*32c33a4dSAvraham Stern  *
11*32c33a4dSAvraham Stern  * @req: a pointer to cfg80211 FTM request
12*32c33a4dSAvraham Stern  * @req_wdev: a pointer to the wdev that requested the current FTM request
13*32c33a4dSAvraham Stern  * @responses: the number of responses received for the current FTM session.
14*32c33a4dSAvraham Stern  *	Used for tracking the burst index in a periodic request.
15*32c33a4dSAvraham Stern  */
16*32c33a4dSAvraham Stern struct ftm_initiator_data {
17*32c33a4dSAvraham Stern 		struct cfg80211_pmsr_request *req;
18*32c33a4dSAvraham Stern 		struct wireless_dev *req_wdev;
19*32c33a4dSAvraham Stern 		int responses[IWL_TOF_MAX_APS];
20*32c33a4dSAvraham Stern };
21*32c33a4dSAvraham Stern 
22d1e879ecSMiri Korenblit int iwl_mld_ftm_start(struct iwl_mld *mld, struct ieee80211_vif *vif,
23d1e879ecSMiri Korenblit 		      struct cfg80211_pmsr_request *req);
24d1e879ecSMiri Korenblit 
25d1e879ecSMiri Korenblit void iwl_mld_handle_ftm_resp_notif(struct iwl_mld *mld,
26d1e879ecSMiri Korenblit 				   struct iwl_rx_packet *pkt);
27d1e879ecSMiri Korenblit void iwl_mld_ftm_restart_cleanup(struct iwl_mld *mld);
28d1e879ecSMiri Korenblit 
29d1e879ecSMiri Korenblit #endif /* __iwl_mld_ftm_initiator_h__ */
30