13ff40c12SJohn Marino /* 23ff40c12SJohn Marino * hostapd / AP table 33ff40c12SJohn Marino * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi> 43ff40c12SJohn Marino * Copyright (c) 2003-2004, Instant802 Networks, Inc. 53ff40c12SJohn Marino * Copyright (c) 2006, Devicescape Software, Inc. 63ff40c12SJohn Marino * 73ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 83ff40c12SJohn Marino * See README for more details. 93ff40c12SJohn Marino */ 103ff40c12SJohn Marino 113ff40c12SJohn Marino #ifndef AP_LIST_H 123ff40c12SJohn Marino #define AP_LIST_H 133ff40c12SJohn Marino 143ff40c12SJohn Marino struct ap_info { 153ff40c12SJohn Marino /* Note: next/prev pointers are updated whenever a new beacon is 163ff40c12SJohn Marino * received because these are used to find the least recently used 173ff40c12SJohn Marino * entries. */ 183ff40c12SJohn Marino struct ap_info *next; /* next entry in AP list */ 193ff40c12SJohn Marino struct ap_info *prev; /* previous entry in AP list */ 203ff40c12SJohn Marino struct ap_info *hnext; /* next entry in hash table list */ 213ff40c12SJohn Marino u8 addr[6]; 223ff40c12SJohn Marino u8 supported_rates[WLAN_SUPP_RATES_MAX]; 233ff40c12SJohn Marino int erp; /* ERP Info or -1 if ERP info element not present */ 243ff40c12SJohn Marino 253ff40c12SJohn Marino int channel; 263ff40c12SJohn Marino 273ff40c12SJohn Marino int ht_support; 283ff40c12SJohn Marino 293ff40c12SJohn Marino struct os_reltime last_beacon; 303ff40c12SJohn Marino }; 313ff40c12SJohn Marino 323ff40c12SJohn Marino struct ieee802_11_elems; 333ff40c12SJohn Marino struct hostapd_frame_info; 343ff40c12SJohn Marino 353ff40c12SJohn Marino void ap_list_process_beacon(struct hostapd_iface *iface, 363ff40c12SJohn Marino const struct ieee80211_mgmt *mgmt, 373ff40c12SJohn Marino struct ieee802_11_elems *elems, 383ff40c12SJohn Marino struct hostapd_frame_info *fi); 393ff40c12SJohn Marino #ifdef NEED_AP_MLME 403ff40c12SJohn Marino int ap_list_init(struct hostapd_iface *iface); 413ff40c12SJohn Marino void ap_list_deinit(struct hostapd_iface *iface); 42*a1157835SDaniel Fojt void ap_list_timer(struct hostapd_iface *iface); 433ff40c12SJohn Marino #else /* NEED_AP_MLME */ ap_list_init(struct hostapd_iface * iface)443ff40c12SJohn Marinostatic inline int ap_list_init(struct hostapd_iface *iface) 453ff40c12SJohn Marino { 463ff40c12SJohn Marino return 0; 473ff40c12SJohn Marino } 483ff40c12SJohn Marino ap_list_deinit(struct hostapd_iface * iface)493ff40c12SJohn Marinostatic inline void ap_list_deinit(struct hostapd_iface *iface) 503ff40c12SJohn Marino { 513ff40c12SJohn Marino } 52*a1157835SDaniel Fojt ap_list_timer(struct hostapd_iface * iface)53*a1157835SDaniel Fojtstatic inline void ap_list_timer(struct hostapd_iface *iface) 54*a1157835SDaniel Fojt { 55*a1157835SDaniel Fojt } 563ff40c12SJohn Marino #endif /* NEED_AP_MLME */ 573ff40c12SJohn Marino 583ff40c12SJohn Marino #endif /* AP_LIST_H */ 59