11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/*
21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Generic advertisement service (GAS) (IEEE 802.11u)
31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2009, Atheros Communications
461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * Copyright (c) 2011-2012, 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_H
111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define GAS_H
121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
1361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtstruct wpabuf * gas_build_initial_req(u8 dialog_token, size_t size);
141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_build_comeback_req(u8 dialog_token);
151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_build_initial_resp(u8 dialog_token, u16 status_code,
161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt				       u16 comeback_delay, size_t size);
171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_req(u8 dialog_token, size_t size);
181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_resp(u8 dialog_token, u16 status_code,
191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					    u16 comeback_delay, size_t size);
201f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_initial_resp_buf(u8 dialog_token,
211f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						u16 status_code,
221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						u16 comeback_delay,
231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						struct wpabuf *payload);
241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_comeback_resp(u8 dialog_token, u16 status_code,
251f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					     u8 frag_id, u8 more,
261f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt					     u16 comeback_delay, size_t size);
271f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtstruct wpabuf * gas_anqp_build_comeback_resp_buf(u8 dialog_token,
281f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u16 status_code,
291f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u8 frag_id, u8 more,
301f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 u16 comeback_delay,
311f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt						 struct wpabuf *payload);
321f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_anqp_set_len(struct wpabuf *buf);
331f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
341f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtu8 * gas_anqp_add_element(struct wpabuf *buf, u16 info_id);
351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid gas_anqp_set_element_len(struct wpabuf *buf, u8 *len_pos);
361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt
371f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#endif /* GAS_H */
38