]>
Commit | Line | Data |
---|---|---|
dca30c3f JK |
1 | /* |
2 | * Generic advertisement service (GAS) server | |
ae6d15c7 | 3 | * Copyright (c) 2011-2013, Qualcomm Atheros, Inc. |
dca30c3f JK |
4 | * |
5 | * This software may be distributed under the terms of the BSD license. | |
6 | * See README for more details. | |
7 | */ | |
8 | ||
9 | #ifndef GAS_SERV_H | |
10 | #define GAS_SERV_H | |
11 | ||
695dbbea | 12 | /* First 16 ANQP InfoIDs can be included in the optimized bitmap */ |
dca30c3f JK |
13 | #define ANQP_REQ_CAPABILITY_LIST \ |
14 | (1 << (ANQP_CAPABILITY_LIST - ANQP_QUERY_LIST)) | |
648cc711 JM |
15 | #define ANQP_REQ_VENUE_NAME \ |
16 | (1 << (ANQP_VENUE_NAME - ANQP_QUERY_LIST)) | |
695dbbea JM |
17 | #define ANQP_REQ_EMERGENCY_CALL_NUMBER \ |
18 | (1 << (ANQP_EMERGENCY_CALL_NUMBER - ANQP_QUERY_LIST)) | |
550a3958 JK |
19 | #define ANQP_REQ_NETWORK_AUTH_TYPE \ |
20 | (1 << (ANQP_NETWORK_AUTH_TYPE - ANQP_QUERY_LIST)) | |
3eaee4bf JM |
21 | #define ANQP_REQ_ROAMING_CONSORTIUM \ |
22 | (1 << (ANQP_ROAMING_CONSORTIUM - ANQP_QUERY_LIST)) | |
78bda93e JK |
23 | #define ANQP_REQ_IP_ADDR_TYPE_AVAILABILITY \ |
24 | (1 << (ANQP_IP_ADDR_TYPE_AVAILABILITY - ANQP_QUERY_LIST)) | |
8047b186 JK |
25 | #define ANQP_REQ_NAI_REALM \ |
26 | (1 << (ANQP_NAI_REALM - ANQP_QUERY_LIST)) | |
7515adb2 JK |
27 | #define ANQP_REQ_3GPP_CELLULAR_NETWORK \ |
28 | (1 << (ANQP_3GPP_CELLULAR_NETWORK - ANQP_QUERY_LIST)) | |
695dbbea JM |
29 | #define ANQP_REQ_AP_GEOSPATIAL_LOCATION \ |
30 | (1 << (ANQP_AP_GEOSPATIAL_LOCATION - ANQP_QUERY_LIST)) | |
31 | #define ANQP_REQ_AP_CIVIC_LOCATION \ | |
32 | (1 << (ANQP_AP_CIVIC_LOCATION - ANQP_QUERY_LIST)) | |
33 | #define ANQP_REQ_AP_LOCATION_PUBLIC_URI \ | |
34 | (1 << (ANQP_AP_LOCATION_PUBLIC_URI - ANQP_QUERY_LIST)) | |
26fac8b6 JK |
35 | #define ANQP_REQ_DOMAIN_NAME \ |
36 | (1 << (ANQP_DOMAIN_NAME - ANQP_QUERY_LIST)) | |
695dbbea JM |
37 | #define ANQP_REQ_EMERGENCY_ALERT_URI \ |
38 | (1 << (ANQP_EMERGENCY_ALERT_URI - ANQP_QUERY_LIST)) | |
39 | #define ANQP_REQ_TDLS_CAPABILITY \ | |
40 | (1 << (ANQP_TDLS_CAPABILITY - ANQP_QUERY_LIST)) | |
41 | #define ANQP_REQ_EMERGENCY_NAI \ | |
42 | (1 << (ANQP_EMERGENCY_NAI - ANQP_QUERY_LIST)) | |
43 | /* | |
941caed9 | 44 | * First 15 Hotspot 2.0 vendor specific ANQP-elements can be included in the |
695dbbea JM |
45 | * optimized bitmap. |
46 | */ | |
45ac307a JK |
47 | #define ANQP_REQ_HS_CAPABILITY_LIST \ |
48 | (0x10000 << HS20_STYPE_CAPABILITY_LIST) | |
a9277e85 JK |
49 | #define ANQP_REQ_OPERATOR_FRIENDLY_NAME \ |
50 | (0x10000 << HS20_STYPE_OPERATOR_FRIENDLY_NAME) | |
4065a309 JK |
51 | #define ANQP_REQ_WAN_METRICS \ |
52 | (0x10000 << HS20_STYPE_WAN_METRICS) | |
5ccc54aa JK |
53 | #define ANQP_REQ_CONNECTION_CAPABILITY \ |
54 | (0x10000 << HS20_STYPE_CONNECTION_CAPABILITY) | |
43f51e2a JK |
55 | #define ANQP_REQ_NAI_HOME_REALM \ |
56 | (0x10000 << HS20_STYPE_NAI_HOME_REALM_QUERY) | |
df5934f1 JK |
57 | #define ANQP_REQ_OPERATING_CLASS \ |
58 | (0x10000 << HS20_STYPE_OPERATING_CLASS) | |
ae6d15c7 JM |
59 | #define ANQP_REQ_OSU_PROVIDERS_LIST \ |
60 | (0x10000 << HS20_STYPE_OSU_PROVIDERS_LIST) | |
f7bd7a01 JM |
61 | #define ANQP_REQ_ICON_REQUEST \ |
62 | (0x10000 << HS20_STYPE_ICON_REQUEST) | |
941caed9 JM |
63 | /* The first MBO ANQP-element can be included in the optimized bitmap. */ |
64 | #define ANQP_REQ_MBO_CELL_DATA_CONN_PREF \ | |
65 | (BIT(29) << MBO_ANQP_SUBTYPE_CELL_CONN_PREF) | |
dca30c3f | 66 | |
dca30c3f JK |
67 | struct gas_dialog_info { |
68 | u8 valid; | |
dca30c3f JK |
69 | struct wpabuf *sd_resp; /* Fragmented response */ |
70 | u8 dialog_token; | |
71 | size_t sd_resp_pos; /* Offset in sd_resp */ | |
72 | u8 sd_frag_id; | |
5ce00d09 | 73 | int prot; /* whether Protected Dual of Public Action frame is used */ |
dca30c3f JK |
74 | }; |
75 | ||
76 | struct hostapd_data; | |
77 | ||
dca30c3f JK |
78 | struct gas_dialog_info * |
79 | gas_serv_dialog_find(struct hostapd_data *hapd, const u8 *addr, | |
80 | u8 dialog_token); | |
81 | void gas_serv_dialog_clear(struct gas_dialog_info *dialog); | |
82 | ||
83 | int gas_serv_init(struct hostapd_data *hapd); | |
84 | void gas_serv_deinit(struct hostapd_data *hapd); | |
85 | ||
86 | #endif /* GAS_SERV_H */ |