1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (C) 2025 Intel Corporation
4  */
5 #ifndef __iwl_mld_time_sync_h__
6 #define __iwl_mld_time_sync_h__
7 
8 struct iwl_mld_time_sync_data {
9 	struct rcu_head rcu_head;
10 	u8 peer_addr[ETH_ALEN];
11 	u32 active_protocols;
12 	struct sk_buff_head frame_list;
13 };
14 
15 int iwl_mld_time_sync_config(struct iwl_mld *mld, const u8 *addr,
16 			     u32 protocols);
17 int iwl_mld_time_sync_fw_config(struct iwl_mld *mld);
18 void iwl_mld_deinit_time_sync(struct iwl_mld *mld);
19 void iwl_mld_handle_time_msmt_notif(struct iwl_mld *mld,
20 				    struct iwl_rx_packet *pkt);
21 bool iwl_mld_time_sync_frame(struct iwl_mld *mld, struct sk_buff *skb,
22 			     u8 *addr);
23 void iwl_mld_handle_time_sync_confirm_notif(struct iwl_mld *mld,
24 					    struct iwl_rx_packet *pkt);
25 
26 #endif /* __iwl_mld_time_sync_h__ */
27