18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * hostapd / AP table
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2003-2004, Instant802 Networks, Inc.
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2006, Devicescape Software, Inc.
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
7c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
8c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef AP_LIST_H
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define AP_LIST_H
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ap_info {
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	/* Note: next/prev pointers are updated whenever a new beacon is
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	 * received because these are used to find the least recently used
17444d567b27731d8572ef37697dd12fd1c37c2f24Dmitry Shmidt	 * entries. */
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ap_info *next; /* next entry in AP list */
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ap_info *prev; /* previous entry in AP list */
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ap_info *hnext; /* next entry in hash table list */
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 addr[6];
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 supported_rates[WLAN_SUPP_RATES_MAX];
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int erp; /* ERP Info or -1 if ERP info element not present */
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int channel;
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int ht_support;
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2904f534e89ed127da4077485376f24debc50d80d5Dmitry Shmidt	struct os_reltime last_beacon;
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ieee802_11_elems;
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct hostapd_frame_info;
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid ap_list_process_beacon(struct hostapd_iface *iface,
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			    const struct ieee80211_mgmt *mgmt,
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			    struct ieee802_11_elems *elems,
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			    struct hostapd_frame_info *fi);
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef NEED_AP_MLME
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint ap_list_init(struct hostapd_iface *iface);
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid ap_list_deinit(struct hostapd_iface *iface);
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#else /* NEED_AP_MLME */
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline int ap_list_init(struct hostapd_iface *iface)
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	return 0;
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void ap_list_deinit(struct hostapd_iface *iface)
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* NEED_AP_MLME */
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* AP_LIST_H */
54