2008-04-15 08:16:06 +04:00
/******************************************************************************
*
2010-01-16 00:43:41 +03:00
* Copyright ( c ) 2003 - 2010 Intel Corporation . All rights reserved .
2008-04-15 08:16:06 +04:00
*
* Portions of this file are derived from the ipw3945 project , as well
* as portions of the ieee80211 subsystem header files .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
* more details .
*
* You should have received a copy of the GNU General Public License along with
* this program ; if not , write to the Free Software Foundation , Inc . ,
* 51 Franklin Street , Fifth Floor , Boston , MA 02110 , USA
*
* The full GNU General Public License is included in this distribution in the
* file called LICENSE .
*
* Contact Information :
2008-12-09 22:28:58 +03:00
* Intel Linux Wireless < ilw @ linux . intel . com >
2008-04-15 08:16:06 +04:00
* Intel Corporation , 5200 N . E . Elam Young Parkway , Hillsboro , OR 97124 - 6497
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef __iwl_sta_h__
# define __iwl_sta_h__
2008-05-15 09:54:09 +04:00
# define HW_KEY_DYNAMIC 0
# define HW_KEY_DEFAULT 1
2010-02-19 09:58:32 +03:00
# define IWL_STA_DRIVER_ACTIVE BIT(0) /* driver entry is active */
# define IWL_STA_UCODE_ACTIVE BIT(1) /* ucode entry is active */
# define IWL_STA_UCODE_INPROGRESS BIT(2) / * ucode entry is in process of
being activated */
2008-06-12 05:47:18 +04:00
/**
* iwl_find_station - Find station id for a given BSSID
* @ bssid : MAC address of station ID to find
*/
u8 iwl_find_station ( struct iwl_priv * priv , const u8 * bssid ) ;
2008-04-15 08:16:06 +04:00
int iwl_send_static_wepkey_cmd ( struct iwl_priv * priv , u8 send_if_empty ) ;
int iwl_remove_default_wep_key ( struct iwl_priv * priv ,
2008-06-12 05:47:18 +04:00
struct ieee80211_key_conf * key ) ;
2008-04-15 08:16:06 +04:00
int iwl_set_default_wep_key ( struct iwl_priv * priv ,
2008-06-12 05:47:18 +04:00
struct ieee80211_key_conf * key ) ;
2008-04-15 08:16:09 +04:00
int iwl_set_dynamic_key ( struct iwl_priv * priv ,
2008-06-12 05:47:18 +04:00
struct ieee80211_key_conf * key , u8 sta_id ) ;
2008-04-18 03:03:36 +04:00
int iwl_remove_dynamic_key ( struct iwl_priv * priv ,
2008-06-12 05:47:18 +04:00
struct ieee80211_key_conf * key , u8 sta_id ) ;
2008-11-13 00:14:05 +03:00
void iwl_update_tkip_key ( struct iwl_priv * priv ,
struct ieee80211_key_conf * keyconf ,
const u8 * addr , u32 iv32 , u16 * phase1key ) ;
2009-10-31 00:36:12 +03:00
void iwl_add_bcast_station ( struct iwl_priv * priv ) ;
2010-01-23 01:22:49 +03:00
void iwl3945_add_bcast_station ( struct iwl_priv * priv ) ;
2010-02-19 09:58:32 +03:00
void iwl_restore_stations ( struct iwl_priv * priv ) ;
void iwl_clear_ucode_stations ( struct iwl_priv * priv , bool force ) ;
2009-02-28 03:21:21 +03:00
int iwl_get_free_ucode_key_index ( struct iwl_priv * priv ) ;
2008-05-15 09:54:04 +04:00
int iwl_get_sta_id ( struct iwl_priv * priv , struct ieee80211_hdr * hdr ) ;
2008-06-12 05:47:18 +04:00
int iwl_get_ra_sta_id ( struct iwl_priv * priv , struct ieee80211_hdr * hdr ) ;
2009-01-24 00:45:20 +03:00
int iwl_send_add_sta ( struct iwl_priv * priv ,
struct iwl_addsta_cmd * sta , u8 flags ) ;
2010-02-23 03:24:47 +03:00
int iwl_add_local_station ( struct iwl_priv * priv , const u8 * addr , bool init_rs ) ;
int iwl_add_station_common ( struct iwl_priv * priv , const u8 * addr ,
bool is_ap ,
struct ieee80211_sta_ht_cap * ht_info ,
u8 * sta_id_r ) ;
int iwl_mac_sta_remove ( struct ieee80211_hw * hw , struct ieee80211_vif * vif ,
struct ieee80211_sta * sta ) ;
2008-11-13 00:14:05 +03:00
void iwl_sta_tx_modify_enable_tid ( struct iwl_priv * priv , int sta_id , int tid ) ;
int iwl_sta_rx_agg_start ( struct iwl_priv * priv ,
const u8 * addr , int tid , u16 ssn ) ;
int iwl_sta_rx_agg_stop ( struct iwl_priv * priv , const u8 * addr , int tid ) ;
2009-11-13 22:56:37 +03:00
void iwl_sta_modify_ps_wake ( struct iwl_priv * priv , int sta_id ) ;
void iwl_sta_modify_sleep_tx_count ( struct iwl_priv * priv , int sta_id , int cnt ) ;
2008-04-15 08:16:06 +04:00
# endif /* __iwl_sta_h__ */