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