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