1214501Srpaulo/*
2214501Srpaulo * hostapd / AP table
3214501Srpaulo * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi>
4214501Srpaulo * Copyright (c) 2003-2004, Instant802 Networks, Inc.
5214501Srpaulo * Copyright (c) 2006, Devicescape Software, Inc.
6214501Srpaulo *
7252726Srpaulo * This software may be distributed under the terms of the BSD license.
8252726Srpaulo * See README for more details.
9214501Srpaulo */
10214501Srpaulo
11214501Srpaulo#ifndef AP_LIST_H
12214501Srpaulo#define AP_LIST_H
13214501Srpaulo
14214501Srpaulostruct ap_info {
15214501Srpaulo	/* Note: next/prev pointers are updated whenever a new beacon is
16214501Srpaulo	 * received because these are used to find the least recently used
17281806Srpaulo	 * entries. */
18214501Srpaulo	struct ap_info *next; /* next entry in AP list */
19214501Srpaulo	struct ap_info *prev; /* previous entry in AP list */
20214501Srpaulo	struct ap_info *hnext; /* next entry in hash table list */
21214501Srpaulo	u8 addr[6];
22214501Srpaulo	u8 supported_rates[WLAN_SUPP_RATES_MAX];
23214501Srpaulo	int erp; /* ERP Info or -1 if ERP info element not present */
24214501Srpaulo
25214501Srpaulo	int channel;
26214501Srpaulo
27214501Srpaulo	int ht_support;
28214501Srpaulo
29281806Srpaulo	struct os_reltime last_beacon;
30214501Srpaulo};
31214501Srpaulo
32214501Srpaulostruct ieee802_11_elems;
33214501Srpaulostruct hostapd_frame_info;
34214501Srpaulo
35214501Srpaulovoid ap_list_process_beacon(struct hostapd_iface *iface,
36214501Srpaulo			    const struct ieee80211_mgmt *mgmt,
37214501Srpaulo			    struct ieee802_11_elems *elems,
38214501Srpaulo			    struct hostapd_frame_info *fi);
39214501Srpaulo#ifdef NEED_AP_MLME
40214501Srpauloint ap_list_init(struct hostapd_iface *iface);
41214501Srpaulovoid ap_list_deinit(struct hostapd_iface *iface);
42289549Srpaulovoid ap_list_timer(struct hostapd_iface *iface);
43214501Srpaulo#else /* NEED_AP_MLME */
44214501Srpaulostatic inline int ap_list_init(struct hostapd_iface *iface)
45214501Srpaulo{
46214501Srpaulo	return 0;
47214501Srpaulo}
48214501Srpaulo
49214501Srpaulostatic inline void ap_list_deinit(struct hostapd_iface *iface)
50214501Srpaulo{
51214501Srpaulo}
52289549Srpaulo
53289549Srpaulostatic inline void ap_list_timer(struct hostapd_iface *iface)
54289549Srpaulo{
55289549Srpaulo}
56214501Srpaulo#endif /* NEED_AP_MLME */
57214501Srpaulo
58214501Srpaulo#endif /* AP_LIST_H */
59