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