11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/* 21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Generic advertisement service (GAS) query 31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2009, Atheros Communications 41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2011, Qualcomm Atheros 51f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 7c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */ 91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifndef GAS_QUERY_H 111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define GAS_QUERY_H 121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct gas_query; 141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifdef CONFIG_GAS 161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct gas_query * gas_query_init(struct wpa_supplicant *wpa_s); 181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_query_deinit(struct gas_query *gas); 191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint gas_query_rx(struct gas_query *gas, const u8 *da, const u8 *sa, 201846323989242844f0e857458a8939fa5836429cDmitry Shmidt const u8 *bssid, u8 categ, const u8 *data, size_t len, 211846323989242844f0e857458a8939fa5836429cDmitry Shmidt int freq); 221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 23a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt/** 24a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt * enum gas_query_result - GAS query result 25a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt */ 261f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtenum gas_query_result { 271f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_SUCCESS, 281f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_FAILURE, 291f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_TIMEOUT, 301f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_PEER_ERROR, 311f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_INTERNAL_ERROR, 321f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_CANCELLED, 331f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt GAS_QUERY_DELETED_AT_DEINIT 341f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt}; 351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint gas_query_req(struct gas_query *gas, const u8 *dst, int freq, 371f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt struct wpabuf *req, 381f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt void (*cb)(void *ctx, const u8 *dst, u8 dialog_token, 391f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt enum gas_query_result result, 401f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt const struct wpabuf *adv_proto, 411f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt const struct wpabuf *resp, u16 status_code), 421f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt void *ctx); 431f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_query_cancel(struct gas_query *gas, const u8 *dst, u8 dialog_token); 441f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 451f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#else /* CONFIG_GAS */ 461f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 471f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstatic inline struct gas_query * gas_query_init(struct wpa_supplicant *wpa_s) 481f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 491f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt return (void *) 1; 501f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 511f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 521f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstatic inline void gas_query_deinit(struct gas_query *gas) 531f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 541f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 551f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 561f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* CONFIG_GAS */ 571f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 581f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 591f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* GAS_QUERY_H */ 60