1 /* 2 * NAN unsynchronized service discovery (USD) 3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. 4 * 5 * This software may be distributed under the terms of the BSD license. 6 * See README for more details. 7 */ 8 9 #ifndef NAN_USD_H 10 #define NAN_USD_H 11 12 struct nan_subscribe_params; 13 struct nan_publish_params; 14 enum nan_service_protocol_type; 15 16 int wpas_nan_usd_init(struct wpa_supplicant *wpa_s); 17 void wpas_nan_usd_deinit(struct wpa_supplicant *wpa_s); 18 void wpas_nan_usd_rx_sdf(struct wpa_supplicant *wpa_s, const u8 *src, 19 const u8 *a3, 20 unsigned int freq, const u8 *buf, size_t len); 21 void wpas_nan_usd_flush(struct wpa_supplicant *wpa_s); 22 int wpas_nan_usd_publish(struct wpa_supplicant *wpa_s, const char *service_name, 23 enum nan_service_protocol_type srv_proto_type, 24 const struct wpabuf *ssi, 25 struct nan_publish_params *params, bool p2p); 26 void wpas_nan_usd_cancel_publish(struct wpa_supplicant *wpa_s, int publish_id); 27 int wpas_nan_usd_update_publish(struct wpa_supplicant *wpa_s, int publish_id, 28 const struct wpabuf *ssi); 29 int wpas_nan_usd_unpause_publish(struct wpa_supplicant *wpa_s, int publish_id, 30 u8 peer_instance_id, const u8 *peer_addr); 31 int wpas_nan_usd_subscribe(struct wpa_supplicant *wpa_s, 32 const char *service_name, 33 enum nan_service_protocol_type srv_proto_type, 34 const struct wpabuf *ssi, 35 struct nan_subscribe_params *params, bool p2p); 36 void wpas_nan_usd_cancel_subscribe(struct wpa_supplicant *wpa_s, 37 int subscribe_id); 38 int wpas_nan_usd_transmit(struct wpa_supplicant *wpa_s, int handle, 39 const struct wpabuf *ssi, const struct wpabuf *elems, 40 const u8 *peer_addr, u8 req_instance_id); 41 void wpas_nan_usd_remain_on_channel_cb(struct wpa_supplicant *wpa_s, 42 unsigned int freq, 43 unsigned int duration); 44 void wpas_nan_usd_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, 45 unsigned int freq); 46 void wpas_nan_usd_tx_wait_expire(struct wpa_supplicant *wpa_s); 47 int * wpas_nan_usd_all_freqs(struct wpa_supplicant *wpa_s); 48 49 #endif /* NAN_USD_H */ 50