driver_i.h revision 1.1 1 1.1 christos /*
2 1.1 christos * wpa_supplicant - Internal driver interface wrappers
3 1.1 christos * Copyright (c) 2003-2009, Jouni Malinen <j (at) w1.fi>
4 1.1 christos *
5 1.1 christos * This program is free software; you can redistribute it and/or modify
6 1.1 christos * it under the terms of the GNU General Public License version 2 as
7 1.1 christos * published by the Free Software Foundation.
8 1.1 christos *
9 1.1 christos * Alternatively, this software may be distributed under the terms of BSD
10 1.1 christos * license.
11 1.1 christos *
12 1.1 christos * See README and COPYING for more details.
13 1.1 christos */
14 1.1 christos
15 1.1 christos #ifndef DRIVER_I_H
16 1.1 christos #define DRIVER_I_H
17 1.1 christos
18 1.1 christos #include "drivers/driver.h"
19 1.1 christos
20 1.1 christos /* driver_ops */
21 1.1 christos static inline void * wpa_drv_init(struct wpa_supplicant *wpa_s,
22 1.1 christos const char *ifname)
23 1.1 christos {
24 1.1 christos if (wpa_s->driver->init2)
25 1.1 christos return wpa_s->driver->init2(wpa_s, ifname,
26 1.1 christos wpa_s->global_drv_priv);
27 1.1 christos if (wpa_s->driver->init) {
28 1.1 christos return wpa_s->driver->init(wpa_s, ifname);
29 1.1 christos }
30 1.1 christos return NULL;
31 1.1 christos }
32 1.1 christos
33 1.1 christos static inline void wpa_drv_deinit(struct wpa_supplicant *wpa_s)
34 1.1 christos {
35 1.1 christos if (wpa_s->driver->deinit)
36 1.1 christos wpa_s->driver->deinit(wpa_s->drv_priv);
37 1.1 christos }
38 1.1 christos
39 1.1 christos static inline int wpa_drv_set_param(struct wpa_supplicant *wpa_s,
40 1.1 christos const char *param)
41 1.1 christos {
42 1.1 christos if (wpa_s->driver->set_param)
43 1.1 christos return wpa_s->driver->set_param(wpa_s->drv_priv, param);
44 1.1 christos return 0;
45 1.1 christos }
46 1.1 christos
47 1.1 christos static inline int wpa_drv_set_countermeasures(struct wpa_supplicant *wpa_s,
48 1.1 christos int enabled)
49 1.1 christos {
50 1.1 christos if (wpa_s->driver->set_countermeasures) {
51 1.1 christos return wpa_s->driver->set_countermeasures(wpa_s->drv_priv,
52 1.1 christos enabled);
53 1.1 christos }
54 1.1 christos return -1;
55 1.1 christos }
56 1.1 christos
57 1.1 christos static inline int wpa_drv_authenticate(struct wpa_supplicant *wpa_s,
58 1.1 christos struct wpa_driver_auth_params *params)
59 1.1 christos {
60 1.1 christos if (wpa_s->driver->authenticate)
61 1.1 christos return wpa_s->driver->authenticate(wpa_s->drv_priv, params);
62 1.1 christos return -1;
63 1.1 christos }
64 1.1 christos
65 1.1 christos static inline int wpa_drv_associate(struct wpa_supplicant *wpa_s,
66 1.1 christos struct wpa_driver_associate_params *params)
67 1.1 christos {
68 1.1 christos if (wpa_s->driver->associate) {
69 1.1 christos return wpa_s->driver->associate(wpa_s->drv_priv, params);
70 1.1 christos }
71 1.1 christos return -1;
72 1.1 christos }
73 1.1 christos
74 1.1 christos static inline int wpa_drv_scan(struct wpa_supplicant *wpa_s,
75 1.1 christos struct wpa_driver_scan_params *params)
76 1.1 christos {
77 1.1 christos if (wpa_s->driver->scan2)
78 1.1 christos return wpa_s->driver->scan2(wpa_s->drv_priv, params);
79 1.1 christos return -1;
80 1.1 christos }
81 1.1 christos
82 1.1 christos static inline struct wpa_scan_results * wpa_drv_get_scan_results2(
83 1.1 christos struct wpa_supplicant *wpa_s)
84 1.1 christos {
85 1.1 christos if (wpa_s->driver->get_scan_results2)
86 1.1 christos return wpa_s->driver->get_scan_results2(wpa_s->drv_priv);
87 1.1 christos return NULL;
88 1.1 christos }
89 1.1 christos
90 1.1 christos static inline int wpa_drv_get_bssid(struct wpa_supplicant *wpa_s, u8 *bssid)
91 1.1 christos {
92 1.1 christos if (wpa_s->driver->get_bssid) {
93 1.1 christos return wpa_s->driver->get_bssid(wpa_s->drv_priv, bssid);
94 1.1 christos }
95 1.1 christos return -1;
96 1.1 christos }
97 1.1 christos
98 1.1 christos static inline int wpa_drv_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid)
99 1.1 christos {
100 1.1 christos if (wpa_s->driver->get_ssid) {
101 1.1 christos return wpa_s->driver->get_ssid(wpa_s->drv_priv, ssid);
102 1.1 christos }
103 1.1 christos return -1;
104 1.1 christos }
105 1.1 christos
106 1.1 christos static inline int wpa_drv_set_key(struct wpa_supplicant *wpa_s,
107 1.1 christos enum wpa_alg alg, const u8 *addr,
108 1.1 christos int key_idx, int set_tx,
109 1.1 christos const u8 *seq, size_t seq_len,
110 1.1 christos const u8 *key, size_t key_len)
111 1.1 christos {
112 1.1 christos if (wpa_s->driver->set_key) {
113 1.1 christos wpa_s->keys_cleared = 0;
114 1.1 christos return wpa_s->driver->set_key(wpa_s->ifname, wpa_s->drv_priv,
115 1.1 christos alg, addr, key_idx, set_tx,
116 1.1 christos seq, seq_len, key, key_len);
117 1.1 christos }
118 1.1 christos return -1;
119 1.1 christos }
120 1.1 christos
121 1.1 christos static inline int wpa_drv_deauthenticate(struct wpa_supplicant *wpa_s,
122 1.1 christos const u8 *addr, int reason_code)
123 1.1 christos {
124 1.1 christos if (wpa_s->driver->deauthenticate) {
125 1.1 christos return wpa_s->driver->deauthenticate(wpa_s->drv_priv, addr,
126 1.1 christos reason_code);
127 1.1 christos }
128 1.1 christos return -1;
129 1.1 christos }
130 1.1 christos
131 1.1 christos static inline int wpa_drv_disassociate(struct wpa_supplicant *wpa_s,
132 1.1 christos const u8 *addr, int reason_code)
133 1.1 christos {
134 1.1 christos if (wpa_s->driver->disassociate) {
135 1.1 christos return wpa_s->driver->disassociate(wpa_s->drv_priv, addr,
136 1.1 christos reason_code);
137 1.1 christos }
138 1.1 christos return -1;
139 1.1 christos }
140 1.1 christos
141 1.1 christos static inline int wpa_drv_add_pmkid(struct wpa_supplicant *wpa_s,
142 1.1 christos const u8 *bssid, const u8 *pmkid)
143 1.1 christos {
144 1.1 christos if (wpa_s->driver->add_pmkid) {
145 1.1 christos return wpa_s->driver->add_pmkid(wpa_s->drv_priv, bssid, pmkid);
146 1.1 christos }
147 1.1 christos return -1;
148 1.1 christos }
149 1.1 christos
150 1.1 christos static inline int wpa_drv_remove_pmkid(struct wpa_supplicant *wpa_s,
151 1.1 christos const u8 *bssid, const u8 *pmkid)
152 1.1 christos {
153 1.1 christos if (wpa_s->driver->remove_pmkid) {
154 1.1 christos return wpa_s->driver->remove_pmkid(wpa_s->drv_priv, bssid,
155 1.1 christos pmkid);
156 1.1 christos }
157 1.1 christos return -1;
158 1.1 christos }
159 1.1 christos
160 1.1 christos static inline int wpa_drv_flush_pmkid(struct wpa_supplicant *wpa_s)
161 1.1 christos {
162 1.1 christos if (wpa_s->driver->flush_pmkid) {
163 1.1 christos return wpa_s->driver->flush_pmkid(wpa_s->drv_priv);
164 1.1 christos }
165 1.1 christos return -1;
166 1.1 christos }
167 1.1 christos
168 1.1 christos static inline int wpa_drv_get_capa(struct wpa_supplicant *wpa_s,
169 1.1 christos struct wpa_driver_capa *capa)
170 1.1 christos {
171 1.1 christos if (wpa_s->driver->get_capa) {
172 1.1 christos return wpa_s->driver->get_capa(wpa_s->drv_priv, capa);
173 1.1 christos }
174 1.1 christos return -1;
175 1.1 christos }
176 1.1 christos
177 1.1 christos static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s)
178 1.1 christos {
179 1.1 christos if (wpa_s->driver->poll) {
180 1.1 christos wpa_s->driver->poll(wpa_s->drv_priv);
181 1.1 christos }
182 1.1 christos }
183 1.1 christos
184 1.1 christos static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s)
185 1.1 christos {
186 1.1 christos if (wpa_s->driver->get_ifname) {
187 1.1 christos return wpa_s->driver->get_ifname(wpa_s->drv_priv);
188 1.1 christos }
189 1.1 christos return NULL;
190 1.1 christos }
191 1.1 christos
192 1.1 christos static inline const u8 * wpa_drv_get_mac_addr(struct wpa_supplicant *wpa_s)
193 1.1 christos {
194 1.1 christos if (wpa_s->driver->get_mac_addr) {
195 1.1 christos return wpa_s->driver->get_mac_addr(wpa_s->drv_priv);
196 1.1 christos }
197 1.1 christos return NULL;
198 1.1 christos }
199 1.1 christos
200 1.1 christos static inline int wpa_drv_send_eapol(struct wpa_supplicant *wpa_s,
201 1.1 christos const u8 *dst, u16 proto,
202 1.1 christos const u8 *data, size_t data_len)
203 1.1 christos {
204 1.1 christos if (wpa_s->driver->send_eapol)
205 1.1 christos return wpa_s->driver->send_eapol(wpa_s->drv_priv, dst, proto,
206 1.1 christos data, data_len);
207 1.1 christos return -1;
208 1.1 christos }
209 1.1 christos
210 1.1 christos static inline int wpa_drv_set_operstate(struct wpa_supplicant *wpa_s,
211 1.1 christos int state)
212 1.1 christos {
213 1.1 christos if (wpa_s->driver->set_operstate)
214 1.1 christos return wpa_s->driver->set_operstate(wpa_s->drv_priv, state);
215 1.1 christos return 0;
216 1.1 christos }
217 1.1 christos
218 1.1 christos static inline int wpa_drv_mlme_setprotection(struct wpa_supplicant *wpa_s,
219 1.1 christos const u8 *addr, int protect_type,
220 1.1 christos int key_type)
221 1.1 christos {
222 1.1 christos if (wpa_s->driver->mlme_setprotection)
223 1.1 christos return wpa_s->driver->mlme_setprotection(wpa_s->drv_priv, addr,
224 1.1 christos protect_type,
225 1.1 christos key_type);
226 1.1 christos return 0;
227 1.1 christos }
228 1.1 christos
229 1.1 christos static inline struct hostapd_hw_modes *
230 1.1 christos wpa_drv_get_hw_feature_data(struct wpa_supplicant *wpa_s, u16 *num_modes,
231 1.1 christos u16 *flags)
232 1.1 christos {
233 1.1 christos if (wpa_s->driver->get_hw_feature_data)
234 1.1 christos return wpa_s->driver->get_hw_feature_data(wpa_s->drv_priv,
235 1.1 christos num_modes, flags);
236 1.1 christos return NULL;
237 1.1 christos }
238 1.1 christos
239 1.1 christos static inline int wpa_drv_set_channel(struct wpa_supplicant *wpa_s,
240 1.1 christos enum hostapd_hw_mode phymode, int chan,
241 1.1 christos int freq)
242 1.1 christos {
243 1.1 christos if (wpa_s->driver->set_channel)
244 1.1 christos return wpa_s->driver->set_channel(wpa_s->drv_priv, phymode,
245 1.1 christos chan, freq);
246 1.1 christos return -1;
247 1.1 christos }
248 1.1 christos
249 1.1 christos static inline int wpa_drv_set_ssid(struct wpa_supplicant *wpa_s,
250 1.1 christos const u8 *ssid, size_t ssid_len)
251 1.1 christos {
252 1.1 christos if (wpa_s->driver->set_ssid) {
253 1.1 christos return wpa_s->driver->set_ssid(wpa_s->drv_priv, ssid,
254 1.1 christos ssid_len);
255 1.1 christos }
256 1.1 christos return -1;
257 1.1 christos }
258 1.1 christos
259 1.1 christos static inline int wpa_drv_set_bssid(struct wpa_supplicant *wpa_s,
260 1.1 christos const u8 *bssid)
261 1.1 christos {
262 1.1 christos if (wpa_s->driver->set_bssid) {
263 1.1 christos return wpa_s->driver->set_bssid(wpa_s->drv_priv, bssid);
264 1.1 christos }
265 1.1 christos return -1;
266 1.1 christos }
267 1.1 christos
268 1.1 christos static inline int wpa_drv_set_country(struct wpa_supplicant *wpa_s,
269 1.1 christos const char *alpha2)
270 1.1 christos {
271 1.1 christos if (wpa_s->driver->set_country)
272 1.1 christos return wpa_s->driver->set_country(wpa_s->drv_priv, alpha2);
273 1.1 christos return 0;
274 1.1 christos }
275 1.1 christos
276 1.1 christos static inline int wpa_drv_send_mlme(struct wpa_supplicant *wpa_s,
277 1.1 christos const u8 *data, size_t data_len)
278 1.1 christos {
279 1.1 christos if (wpa_s->driver->send_mlme)
280 1.1 christos return wpa_s->driver->send_mlme(wpa_s->drv_priv,
281 1.1 christos data, data_len);
282 1.1 christos return -1;
283 1.1 christos }
284 1.1 christos
285 1.1 christos static inline int wpa_drv_mlme_add_sta(struct wpa_supplicant *wpa_s,
286 1.1 christos const u8 *addr, const u8 *supp_rates,
287 1.1 christos size_t supp_rates_len)
288 1.1 christos {
289 1.1 christos if (wpa_s->driver->mlme_add_sta)
290 1.1 christos return wpa_s->driver->mlme_add_sta(wpa_s->drv_priv, addr,
291 1.1 christos supp_rates, supp_rates_len);
292 1.1 christos return -1;
293 1.1 christos }
294 1.1 christos
295 1.1 christos static inline int wpa_drv_mlme_remove_sta(struct wpa_supplicant *wpa_s,
296 1.1 christos const u8 *addr)
297 1.1 christos {
298 1.1 christos if (wpa_s->driver->mlme_remove_sta)
299 1.1 christos return wpa_s->driver->mlme_remove_sta(wpa_s->drv_priv, addr);
300 1.1 christos return -1;
301 1.1 christos }
302 1.1 christos
303 1.1 christos static inline int wpa_drv_update_ft_ies(struct wpa_supplicant *wpa_s,
304 1.1 christos const u8 *md,
305 1.1 christos const u8 *ies, size_t ies_len)
306 1.1 christos {
307 1.1 christos if (wpa_s->driver->update_ft_ies)
308 1.1 christos return wpa_s->driver->update_ft_ies(wpa_s->drv_priv, md,
309 1.1 christos ies, ies_len);
310 1.1 christos return -1;
311 1.1 christos }
312 1.1 christos
313 1.1 christos static inline int wpa_drv_send_ft_action(struct wpa_supplicant *wpa_s,
314 1.1 christos u8 action, const u8 *target_ap,
315 1.1 christos const u8 *ies, size_t ies_len)
316 1.1 christos {
317 1.1 christos if (wpa_s->driver->send_ft_action)
318 1.1 christos return wpa_s->driver->send_ft_action(wpa_s->drv_priv, action,
319 1.1 christos target_ap, ies, ies_len);
320 1.1 christos return -1;
321 1.1 christos }
322 1.1 christos
323 1.1 christos static inline int wpa_drv_set_beacon(struct wpa_supplicant *wpa_s,
324 1.1 christos const u8 *head, size_t head_len,
325 1.1 christos const u8 *tail, size_t tail_len,
326 1.1 christos int dtim_period, int beacon_int)
327 1.1 christos {
328 1.1 christos if (wpa_s->driver->set_beacon)
329 1.1 christos return wpa_s->driver->set_beacon(wpa_s->drv_priv, head,
330 1.1 christos head_len, tail, tail_len,
331 1.1 christos dtim_period, beacon_int);
332 1.1 christos return -1;
333 1.1 christos }
334 1.1 christos
335 1.1 christos static inline int wpa_drv_sta_add(struct wpa_supplicant *wpa_s,
336 1.1 christos struct hostapd_sta_add_params *params)
337 1.1 christos {
338 1.1 christos if (wpa_s->driver->sta_add)
339 1.1 christos return wpa_s->driver->sta_add(wpa_s->drv_priv, params);
340 1.1 christos return -1;
341 1.1 christos }
342 1.1 christos
343 1.1 christos static inline int wpa_drv_sta_remove(struct wpa_supplicant *wpa_s,
344 1.1 christos const u8 *addr)
345 1.1 christos {
346 1.1 christos if (wpa_s->driver->sta_remove)
347 1.1 christos return wpa_s->driver->sta_remove(wpa_s->drv_priv, addr);
348 1.1 christos return -1;
349 1.1 christos }
350 1.1 christos
351 1.1 christos static inline int wpa_drv_hapd_send_eapol(struct wpa_supplicant *wpa_s,
352 1.1 christos const u8 *addr, const u8 *data,
353 1.1 christos size_t data_len, int encrypt,
354 1.1 christos const u8 *own_addr)
355 1.1 christos {
356 1.1 christos if (wpa_s->driver->hapd_send_eapol)
357 1.1 christos return wpa_s->driver->hapd_send_eapol(wpa_s->drv_priv, addr,
358 1.1 christos data, data_len, encrypt,
359 1.1 christos own_addr);
360 1.1 christos return -1;
361 1.1 christos }
362 1.1 christos
363 1.1 christos static inline int wpa_drv_sta_set_flags(struct wpa_supplicant *wpa_s,
364 1.1 christos const u8 *addr, int total_flags,
365 1.1 christos int flags_or, int flags_and)
366 1.1 christos {
367 1.1 christos if (wpa_s->driver->sta_set_flags)
368 1.1 christos return wpa_s->driver->sta_set_flags(wpa_s->drv_priv, addr,
369 1.1 christos total_flags, flags_or,
370 1.1 christos flags_and);
371 1.1 christos return -1;
372 1.1 christos }
373 1.1 christos
374 1.1 christos static inline int wpa_drv_set_supp_port(struct wpa_supplicant *wpa_s,
375 1.1 christos int authorized)
376 1.1 christos {
377 1.1 christos if (wpa_s->driver->set_supp_port) {
378 1.1 christos return wpa_s->driver->set_supp_port(wpa_s->drv_priv,
379 1.1 christos authorized);
380 1.1 christos }
381 1.1 christos return 0;
382 1.1 christos }
383 1.1 christos
384 1.1 christos static inline int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
385 1.1 christos unsigned int freq,
386 1.1 christos const u8 *dst, const u8 *src,
387 1.1 christos const u8 *bssid,
388 1.1 christos const u8 *data, size_t data_len)
389 1.1 christos {
390 1.1 christos if (wpa_s->driver->send_action)
391 1.1 christos return wpa_s->driver->send_action(wpa_s->drv_priv, freq,
392 1.1 christos dst, src, bssid, data,
393 1.1 christos data_len);
394 1.1 christos return -1;
395 1.1 christos }
396 1.1 christos
397 1.1 christos static inline int wpa_drv_if_add(struct wpa_supplicant *wpa_s,
398 1.1 christos enum wpa_driver_if_type type,
399 1.1 christos const char *ifname, const u8 *addr,
400 1.1 christos void *bss_ctx, char *force_ifname,
401 1.1 christos u8 *if_addr)
402 1.1 christos {
403 1.1 christos if (wpa_s->driver->if_add)
404 1.1 christos return wpa_s->driver->if_add(wpa_s->drv_priv, type, ifname,
405 1.1 christos addr, bss_ctx, NULL, force_ifname,
406 1.1 christos if_addr);
407 1.1 christos return -1;
408 1.1 christos }
409 1.1 christos
410 1.1 christos static inline int wpa_drv_if_remove(struct wpa_supplicant *wpa_s,
411 1.1 christos enum wpa_driver_if_type type,
412 1.1 christos const char *ifname)
413 1.1 christos {
414 1.1 christos if (wpa_s->driver->if_remove)
415 1.1 christos return wpa_s->driver->if_remove(wpa_s->drv_priv, type, ifname);
416 1.1 christos return -1;
417 1.1 christos }
418 1.1 christos
419 1.1 christos static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s,
420 1.1 christos unsigned int freq,
421 1.1 christos unsigned int duration)
422 1.1 christos {
423 1.1 christos if (wpa_s->driver->remain_on_channel)
424 1.1 christos return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq,
425 1.1 christos duration);
426 1.1 christos return -1;
427 1.1 christos }
428 1.1 christos
429 1.1 christos static inline int wpa_drv_cancel_remain_on_channel(
430 1.1 christos struct wpa_supplicant *wpa_s)
431 1.1 christos {
432 1.1 christos if (wpa_s->driver->cancel_remain_on_channel)
433 1.1 christos return wpa_s->driver->cancel_remain_on_channel(
434 1.1 christos wpa_s->drv_priv);
435 1.1 christos return -1;
436 1.1 christos }
437 1.1 christos
438 1.1 christos static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s,
439 1.1 christos int report)
440 1.1 christos {
441 1.1 christos if (wpa_s->driver->probe_req_report)
442 1.1 christos return wpa_s->driver->probe_req_report(wpa_s->drv_priv,
443 1.1 christos report);
444 1.1 christos return -1;
445 1.1 christos }
446 1.1 christos
447 1.1 christos static inline int wpa_drv_disable_11b_rates(struct wpa_supplicant *wpa_s,
448 1.1 christos int disabled)
449 1.1 christos {
450 1.1 christos if (wpa_s->driver->disable_11b_rates)
451 1.1 christos return wpa_s->driver->disable_11b_rates(wpa_s->drv_priv,
452 1.1 christos disabled);
453 1.1 christos return -1;
454 1.1 christos }
455 1.1 christos
456 1.1 christos static inline int wpa_drv_deinit_ap(struct wpa_supplicant *wpa_s)
457 1.1 christos {
458 1.1 christos if (wpa_s->driver->deinit_ap)
459 1.1 christos return wpa_s->driver->deinit_ap(wpa_s->drv_priv);
460 1.1 christos return 0;
461 1.1 christos }
462 1.1 christos
463 1.1 christos static inline void wpa_drv_suspend(struct wpa_supplicant *wpa_s)
464 1.1 christos {
465 1.1 christos if (wpa_s->driver->suspend)
466 1.1 christos wpa_s->driver->suspend(wpa_s->drv_priv);
467 1.1 christos }
468 1.1 christos
469 1.1 christos static inline void wpa_drv_resume(struct wpa_supplicant *wpa_s)
470 1.1 christos {
471 1.1 christos if (wpa_s->driver->resume)
472 1.1 christos wpa_s->driver->resume(wpa_s->drv_priv);
473 1.1 christos }
474 1.1 christos
475 1.1 christos static inline int wpa_drv_signal_monitor(struct wpa_supplicant *wpa_s,
476 1.1 christos int threshold, int hysteresis)
477 1.1 christos {
478 1.1 christos if (wpa_s->driver->signal_monitor)
479 1.1 christos return wpa_s->driver->signal_monitor(wpa_s->drv_priv,
480 1.1 christos threshold, hysteresis);
481 1.1 christos return -1;
482 1.1 christos }
483 1.1 christos
484 1.1 christos static inline int wpa_drv_set_ap_wps_ie(struct wpa_supplicant *wpa_s,
485 1.1 christos const struct wpabuf *beacon,
486 1.1 christos const struct wpabuf *proberesp)
487 1.1 christos {
488 1.1 christos if (!wpa_s->driver->set_ap_wps_ie)
489 1.1 christos return -1;
490 1.1 christos return wpa_s->driver->set_ap_wps_ie(wpa_s->drv_priv, beacon,
491 1.1 christos proberesp);
492 1.1 christos }
493 1.1 christos
494 1.1 christos #endif /* DRIVER_I_H */
495