nan_usd.h revision 1.1 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