1 /****************************************************************************** 2 * 3 * Copyright(c) 2003 - 2008 Intel Corporation. All rights reserved. 4 * 5 * Portions of this file are derived from the ipw3945 project, as well 6 * as portions of the ieee80211 subsystem header files. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of version 2 of the GNU General Public License as 10 * published by the Free Software Foundation. 11 * 12 * This program is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 15 * more details. 16 * 17 * You should have received a copy of the GNU General Public License along with 18 * this program; if not, write to the Free Software Foundation, Inc., 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 20 * 21 * The full GNU General Public License is included in this distribution in the 22 * file called LICENSE. 23 * 24 * Contact Information: 25 * Intel Linux Wireless <ilw@linux.intel.com> 26 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 27 * 28 *****************************************************************************/ 29 #ifndef __iwl_sta_h__ 30 #define __iwl_sta_h__ 31 32 #define HW_KEY_DYNAMIC 0 33 #define HW_KEY_DEFAULT 1 34 35 /** 36 * iwl_find_station - Find station id for a given BSSID 37 * @bssid: MAC address of station ID to find 38 */ 39 u8 iwl_find_station(struct iwl_priv *priv, const u8 *bssid); 40 41 int iwl_send_static_wepkey_cmd(struct iwl_priv *priv, u8 send_if_empty); 42 int iwl_remove_default_wep_key(struct iwl_priv *priv, 43 struct ieee80211_key_conf *key); 44 int iwl_set_default_wep_key(struct iwl_priv *priv, 45 struct ieee80211_key_conf *key); 46 int iwl_set_dynamic_key(struct iwl_priv *priv, 47 struct ieee80211_key_conf *key, u8 sta_id); 48 int iwl_remove_dynamic_key(struct iwl_priv *priv, 49 struct ieee80211_key_conf *key, u8 sta_id); 50 void iwl_update_tkip_key(struct iwl_priv *priv, 51 struct ieee80211_key_conf *keyconf, 52 const u8 *addr, u32 iv32, u16 *phase1key); 53 54 int iwl_rxon_add_station(struct iwl_priv *priv, const u8 *addr, int is_ap); 55 int iwl_remove_station(struct iwl_priv *priv, const u8 *addr, int is_ap); 56 void iwl_clear_stations_table(struct iwl_priv *priv); 57 int iwl_get_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr); 58 int iwl_get_ra_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr); 59 u8 iwl_add_station_flags(struct iwl_priv *priv, const u8 *addr, 60 int is_ap, u8 flags, 61 struct ieee80211_sta_ht_cap *ht_info); 62 void iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid); 63 int iwl_sta_rx_agg_start(struct iwl_priv *priv, 64 const u8 *addr, int tid, u16 ssn); 65 int iwl_sta_rx_agg_stop(struct iwl_priv *priv, const u8 *addr, int tid); 66 void iwl_update_ps_mode(struct iwl_priv *priv, u16 ps_bit, u8 *addr); 67 #endif /* __iwl_sta_h__ */ 68