xref: /netbsd-src/external/bsd/wpa/dist/src/ap/ap_list.h (revision 36ebd06e5ab61115eab7acca17a2350fc8222071)
18dbcf02cSchristos /*
28dbcf02cSchristos  * hostapd / AP table
38dbcf02cSchristos  * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi>
48dbcf02cSchristos  * Copyright (c) 2003-2004, Instant802 Networks, Inc.
58dbcf02cSchristos  * Copyright (c) 2006, Devicescape Software, Inc.
68dbcf02cSchristos  *
7e604d861Schristos  * This software may be distributed under the terms of the BSD license.
8e604d861Schristos  * See README for more details.
98dbcf02cSchristos  */
108dbcf02cSchristos 
118dbcf02cSchristos #ifndef AP_LIST_H
128dbcf02cSchristos #define AP_LIST_H
138dbcf02cSchristos 
148dbcf02cSchristos struct ap_info {
158dbcf02cSchristos 	/* Note: next/prev pointers are updated whenever a new beacon is
168dbcf02cSchristos 	 * received because these are used to find the least recently used
173c260e60Schristos 	 * entries. */
188dbcf02cSchristos 	struct ap_info *next; /* next entry in AP list */
198dbcf02cSchristos 	struct ap_info *prev; /* previous entry in AP list */
208dbcf02cSchristos 	struct ap_info *hnext; /* next entry in hash table list */
218dbcf02cSchristos 	u8 addr[6];
228dbcf02cSchristos 	u8 supported_rates[WLAN_SUPP_RATES_MAX];
238dbcf02cSchristos 	int erp; /* ERP Info or -1 if ERP info element not present */
248dbcf02cSchristos 
258dbcf02cSchristos 	int channel;
268dbcf02cSchristos 
278dbcf02cSchristos 	int ht_support;
288dbcf02cSchristos 
293c260e60Schristos 	struct os_reltime last_beacon;
308dbcf02cSchristos };
318dbcf02cSchristos 
328dbcf02cSchristos struct ieee802_11_elems;
338dbcf02cSchristos struct hostapd_frame_info;
348dbcf02cSchristos 
358dbcf02cSchristos void ap_list_process_beacon(struct hostapd_iface *iface,
368dbcf02cSchristos 			    const struct ieee80211_mgmt *mgmt,
378dbcf02cSchristos 			    struct ieee802_11_elems *elems,
388dbcf02cSchristos 			    struct hostapd_frame_info *fi);
398dbcf02cSchristos #ifdef NEED_AP_MLME
408dbcf02cSchristos int ap_list_init(struct hostapd_iface *iface);
418dbcf02cSchristos void ap_list_deinit(struct hostapd_iface *iface);
42*36ebd06eSchristos void ap_list_timer(struct hostapd_iface *iface);
438dbcf02cSchristos #else /* NEED_AP_MLME */
ap_list_init(struct hostapd_iface * iface)448dbcf02cSchristos static inline int ap_list_init(struct hostapd_iface *iface)
458dbcf02cSchristos {
468dbcf02cSchristos 	return 0;
478dbcf02cSchristos }
488dbcf02cSchristos 
ap_list_deinit(struct hostapd_iface * iface)498dbcf02cSchristos static inline void ap_list_deinit(struct hostapd_iface *iface)
508dbcf02cSchristos {
518dbcf02cSchristos }
52*36ebd06eSchristos 
ap_list_timer(struct hostapd_iface * iface)53*36ebd06eSchristos static inline void ap_list_timer(struct hostapd_iface *iface)
54*36ebd06eSchristos {
55*36ebd06eSchristos }
568dbcf02cSchristos #endif /* NEED_AP_MLME */
578dbcf02cSchristos 
588dbcf02cSchristos #endif /* AP_LIST_H */
59