11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/*
21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Interworking (IEEE 802.11u)
361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * Copyright (c) 2011-2012, Qualcomm Atheros
41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
71f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */
81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifndef INTERWORKING_H
101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define INTERWORKING_H
111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtenum gas_query_result;
131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
1515907098d1f67c24bb000e593e279af173cf57d7Dmitry Shmidt		  u16 info_ids[], size_t num_ids, u32 subtypes);
161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt		  enum gas_query_result result,
181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt		  const struct wpabuf *adv_proto,
191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt		  const struct wpabuf *resp, u16 status_code);
2061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtint gas_send_request(struct wpa_supplicant *wpa_s, const u8 *dst,
2161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt		     const struct wpabuf *adv_proto,
2261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt		     const struct wpabuf *query);
231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint interworking_fetch_anqp(struct wpa_supplicant *wpa_s);
241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid interworking_stop_fetch_anqp(struct wpa_supplicant *wpa_s);
25fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidtint interworking_select(struct wpa_supplicant *wpa_s, int auto_select,
26fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt			int *freqs);
277f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidtint interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
287f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			 int only_add);
2961d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtvoid interworking_start_fetch_anqp(struct wpa_supplicant *wpa_s);
30d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidtint interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
31d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt			      struct wpa_cred *cred,
32d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt			      struct wpabuf *domain_names);
33f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidtint domain_name_list_contains(struct wpabuf *domain_names,
34f21452aea786ac056eb01f1cbba4f553bd502747Dmitry Shmidt			      const char *domain, int exact_match);
351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* INTERWORKING_H */
37