gas.h revision 1f69aa52ea2e0a73ac502565df8c666ee49cab6a
11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/*
21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Generic advertisement service (GAS) (IEEE 802.11u)
31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2009, Atheros Communications
41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2011, Qualcomm Atheros
51f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt *
61f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * This program is free software; you can redistribute it and/or modify
71f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * it under the terms of the GNU General Public License version 2 as
81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * published by the Free Software Foundation.
91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt *
101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD
111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * license.
121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt *
131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * See README and COPYING for more details.
141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */
151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#ifndef GAS_H
171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define GAS_H
181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_build_comeback_req(u8 dialog_token);
201f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_build_initial_resp(u8 dialog_token, u16 status_code,
211f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt				       u16 comeback_delay, size_t size);
221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_req(u8 dialog_token, size_t size);
231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_resp(u8 dialog_token, u16 status_code,
241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					    u16 comeback_delay, size_t size);
251f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_resp_buf(u8 dialog_token,
261f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						u16 status_code,
271f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						u16 comeback_delay,
281f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						struct wpabuf *payload);
291f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_comeback_resp(u8 dialog_token, u16 status_code,
301f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					     u8 frag_id, u8 more,
311f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					     u16 comeback_delay, size_t size);
321f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_comeback_resp_buf(u8 dialog_token,
331f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u16 status_code,
341f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u8 frag_id, u8 more,
351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u16 comeback_delay,
361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 struct wpabuf *payload);
371f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_anqp_set_len(struct wpabuf *buf);
381f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
391f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtu8 * gas_anqp_add_element(struct wpabuf *buf, u16 info_id);
401f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_anqp_set_element_len(struct wpabuf *buf, u8 *len_pos);
411f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
421f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* GAS_H */
43