3 * Copyright 2002-2003, Jouni Malinen <j@w1.fi>
4 * Copyright 2003-2004, Instant802 Networks, Inc.
5 * Copyright 2006, Devicescape Software, Inc.
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 * Alternatively, this software may be distributed under the terms of BSD
14 * See README and COPYING for more details.
21 /* Note: next/prev pointers are updated whenever a new beacon is
22 * received because these are used to find the least recently used
23 * entries. iter_next/iter_prev are updated only when adding new BSSes
24 * and when removing old ones. These should be used when iterating
25 * through the table in a manner that allows beacons to be received
26 * during the iteration. */
27 struct ap_info
*next
; /* next entry in AP list */
28 struct ap_info
*prev
; /* previous entry in AP list */
29 struct ap_info
*hnext
; /* next entry in hash table list */
30 struct ap_info
*iter_next
; /* next entry in AP iteration list */
31 struct ap_info
*iter_prev
; /* previous entry in AP iteration list */
35 u8 supported_rates
[WLAN_SUPP_RATES_MAX
];
39 int erp
; /* ERP Info or -1 if ERP info element not present */
41 int phytype
; /* .11a / .11b / .11g / Atheros Turbo */
43 int datarate
; /* in 100 kbps */
46 unsigned int num_beacons
; /* number of beacon frames received */
49 int already_seen
; /* whether API call AP-NEW has already fetched
50 * information about this AP */
53 struct ieee802_11_elems
;
54 struct hostapd_frame_info
;
56 struct ap_info
* ap_get_ap(struct hostapd_iface
*iface
, u8
*sta
);
57 int ap_ap_for_each(struct hostapd_iface
*iface
,
58 int (*func
)(struct ap_info
*s
, void *data
), void *data
);
59 void ap_list_process_beacon(struct hostapd_iface
*iface
,
60 struct ieee80211_mgmt
*mgmt
,
61 struct ieee802_11_elems
*elems
,
62 struct hostapd_frame_info
*fi
);
63 int ap_list_init(struct hostapd_iface
*iface
);
64 void ap_list_deinit(struct hostapd_iface
*iface
);
65 int ap_list_reconfig(struct hostapd_iface
*iface
,
66 struct hostapd_config
*oldconf
);
68 #endif /* AP_LIST_H */