1252190Srpaulo/*
2252190Srpaulo * Interworking (IEEE 802.11u)
3252190Srpaulo * Copyright (c) 2011-2012, Qualcomm Atheros
4252190Srpaulo *
5252190Srpaulo * This software may be distributed under the terms of the BSD license.
6252190Srpaulo * See README for more details.
7252190Srpaulo */
8252190Srpaulo
9252190Srpaulo#ifndef INTERWORKING_H
10252190Srpaulo#define INTERWORKING_H
11252190Srpaulo
12252190Srpauloenum gas_query_result;
13252190Srpaulo
14252190Srpauloint anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
15337817Scy		  u16 info_ids[], size_t num_ids, u32 subtypes,
16346981Scy		  u32 mbo_subtypes);
17252190Srpaulovoid anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
18252190Srpaulo		  enum gas_query_result result,
19252190Srpaulo		  const struct wpabuf *adv_proto,
20252190Srpaulo		  const struct wpabuf *resp, u16 status_code);
21252190Srpauloint gas_send_request(struct wpa_supplicant *wpa_s, const u8 *dst,
22252190Srpaulo		     const struct wpabuf *adv_proto,
23252190Srpaulo		     const struct wpabuf *query);
24252190Srpauloint interworking_fetch_anqp(struct wpa_supplicant *wpa_s);
25252190Srpaulovoid interworking_stop_fetch_anqp(struct wpa_supplicant *wpa_s);
26281806Srpauloint interworking_select(struct wpa_supplicant *wpa_s, int auto_select,
27281806Srpaulo			int *freqs);
28281806Srpauloint interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
29281806Srpaulo			 int only_add);
30252190Srpaulovoid interworking_start_fetch_anqp(struct wpa_supplicant *wpa_s);
31252190Srpauloint interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
32252190Srpaulo			      struct wpa_cred *cred,
33252190Srpaulo			      struct wpabuf *domain_names);
34281806Srpauloint domain_name_list_contains(struct wpabuf *domain_names,
35281806Srpaulo			      const char *domain, int exact_match);
36252190Srpaulo
37252190Srpaulo#endif /* INTERWORKING_H */
38