b1f122964e
The new gas_request and gas_response_get commands can be used to request arbitary GAS queries to be performed. These can be used with ANQP or with other (including vendor specific) advertisement protocols. gas_request <BSSID> <AdvProtoID> [Query] gas_response_get <addr> <dialog token> [offset,length] For example, ANQP query for Capability list in interactive wpa_cli session: > gas_request 02:00:00:00:01:00 00 000102000101 <3>GAS-RESPONSE-INFO addr=02:00:00:00:01:00 dialog_token=0 status_code=0 resp_len=32 > gas_response_get 02:00:00:00:01:00 00 01011c00010102010501070108010c01dddd0c00506f9a110200020304050607 > gas_response_get 02:00:00:00:01:00 00 0,10 01011c00010102010501 > gas_response_get 02:00:00:00:01:00 00 10,10 070108010c01dddd0c00 > gas_response_get 02:00:00:00:01:00 00 20,10 506f9a11020002030405 > gas_response_get 02:00:00:00:01:00 00 30,2 0607 It should be noted that the maximum length of the response buffer is currently 4096 bytes which allows about 2000 bytes of the response data to be fetched with a single gas_response_get command. If the response is longer, it can be fetched in pieces as shown in the example above. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
37 lines
1.4 KiB
C
37 lines
1.4 KiB
C
/*
|
|
* Generic advertisement service (GAS) (IEEE 802.11u)
|
|
* Copyright (c) 2009, Atheros Communications
|
|
* Copyright (c) 2011-2012, Qualcomm Atheros
|
|
*
|
|
* This software may be distributed under the terms of the BSD license.
|
|
* See README for more details.
|
|
*/
|
|
|
|
#ifndef GAS_H
|
|
#define GAS_H
|
|
|
|
struct wpabuf * gas_build_initial_req(u8 dialog_token, size_t size);
|
|
struct wpabuf * gas_build_comeback_req(u8 dialog_token);
|
|
struct wpabuf * gas_build_initial_resp(u8 dialog_token, u16 status_code,
|
|
u16 comeback_delay, size_t size);
|
|
struct wpabuf * gas_anqp_build_initial_req(u8 dialog_token, size_t size);
|
|
struct wpabuf * gas_anqp_build_initial_resp(u8 dialog_token, u16 status_code,
|
|
u16 comeback_delay, size_t size);
|
|
struct wpabuf * gas_anqp_build_initial_resp_buf(u8 dialog_token,
|
|
u16 status_code,
|
|
u16 comeback_delay,
|
|
struct wpabuf *payload);
|
|
struct wpabuf * gas_anqp_build_comeback_resp(u8 dialog_token, u16 status_code,
|
|
u8 frag_id, u8 more,
|
|
u16 comeback_delay, size_t size);
|
|
struct wpabuf * gas_anqp_build_comeback_resp_buf(u8 dialog_token,
|
|
u16 status_code,
|
|
u8 frag_id, u8 more,
|
|
u16 comeback_delay,
|
|
struct wpabuf *payload);
|
|
void gas_anqp_set_len(struct wpabuf *buf);
|
|
|
|
u8 * gas_anqp_add_element(struct wpabuf *buf, u16 info_id);
|
|
void gas_anqp_set_element_len(struct wpabuf *buf, u8 *len_pos);
|
|
|
|
#endif /* GAS_H */
|