blob: 59c09896a08f598e0d0bbe9302e43ca50d2d500d [file] [log] [blame]
Sunil Ravib0ac25f2024-07-12 01:42:03 +00001/*
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
12struct nan_subscribe_params;
13struct nan_publish_params;
14enum nan_service_protocol_type;
15
16int wpas_nan_usd_init(struct wpa_supplicant *wpa_s);
17void wpas_nan_usd_deinit(struct wpa_supplicant *wpa_s);
18void wpas_nan_usd_rx_sdf(struct wpa_supplicant *wpa_s, const u8 *src,
Sunil Ravi79e6c4f2025-01-04 00:47:06 +000019 const u8 *a3,
Sunil Ravib0ac25f2024-07-12 01:42:03 +000020 unsigned int freq, const u8 *buf, size_t len);
21void wpas_nan_usd_flush(struct wpa_supplicant *wpa_s);
22int 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,
Sunil Ravic0f5d412024-09-11 22:12:49 +000025 struct nan_publish_params *params, bool p2p);
Sunil Ravib0ac25f2024-07-12 01:42:03 +000026void wpas_nan_usd_cancel_publish(struct wpa_supplicant *wpa_s, int publish_id);
27int wpas_nan_usd_update_publish(struct wpa_supplicant *wpa_s, int publish_id,
28 const struct wpabuf *ssi);
29int wpas_nan_usd_subscribe(struct wpa_supplicant *wpa_s,
30 const char *service_name,
31 enum nan_service_protocol_type srv_proto_type,
32 const struct wpabuf *ssi,
Sunil Ravic0f5d412024-09-11 22:12:49 +000033 struct nan_subscribe_params *params, bool p2p);
Sunil Ravib0ac25f2024-07-12 01:42:03 +000034void wpas_nan_usd_cancel_subscribe(struct wpa_supplicant *wpa_s,
35 int subscribe_id);
36int wpas_nan_usd_transmit(struct wpa_supplicant *wpa_s, int handle,
37 const struct wpabuf *ssi, const struct wpabuf *elems,
38 const u8 *peer_addr, u8 req_instance_id);
39void wpas_nan_usd_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
40 unsigned int freq,
41 unsigned int duration);
42void wpas_nan_usd_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
43 unsigned int freq);
44void wpas_nan_usd_tx_wait_expire(struct wpa_supplicant *wpa_s);
45int * wpas_nan_usd_all_freqs(struct wpa_supplicant *wpa_s);
46
47#endif /* NAN_USD_H */