Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
This commit is contained in:
+29
-4
@@ -777,6 +777,7 @@ struct cfg80211_ssid {
|
||||
* @n_channels: total number of channels to scan
|
||||
* @ie: optional information element(s) to add into Probe Request or %NULL
|
||||
* @ie_len: length of ie in octets
|
||||
* @rates: bitmap of rates to advertise for each band
|
||||
* @wiphy: the wiphy this was for
|
||||
* @dev: the interface
|
||||
* @aborted: (internal) scan request was notified as aborted
|
||||
@@ -788,6 +789,8 @@ struct cfg80211_scan_request {
|
||||
const u8 *ie;
|
||||
size_t ie_len;
|
||||
|
||||
u32 rates[IEEE80211_NUM_BANDS];
|
||||
|
||||
/* internal */
|
||||
struct wiphy *wiphy;
|
||||
struct net_device *dev;
|
||||
@@ -1146,9 +1149,15 @@ struct cfg80211_wowlan_trig_pkt_pattern {
|
||||
* @magic_pkt: wake up on receiving magic packet
|
||||
* @patterns: wake up on receiving packet matching a pattern
|
||||
* @n_patterns: number of patterns
|
||||
* @gtk_rekey_failure: wake up on GTK rekey failure
|
||||
* @eap_identity_req: wake up on EAP identity request packet
|
||||
* @four_way_handshake: wake up on 4-way handshake
|
||||
* @rfkill_release: wake up when rfkill is released
|
||||
*/
|
||||
struct cfg80211_wowlan {
|
||||
bool any, disconnect, magic_pkt;
|
||||
bool any, disconnect, magic_pkt, gtk_rekey_failure,
|
||||
eap_identity_req, four_way_handshake,
|
||||
rfkill_release;
|
||||
struct cfg80211_wowlan_trig_pkt_pattern *patterns;
|
||||
int n_patterns;
|
||||
};
|
||||
@@ -1673,11 +1682,21 @@ struct ieee80211_txrx_stypes {
|
||||
* @WIPHY_WOWLAN_MAGIC_PKT: supports wakeup on magic packet
|
||||
* (see nl80211.h)
|
||||
* @WIPHY_WOWLAN_DISCONNECT: supports wakeup on disconnect
|
||||
* @WIPHY_WOWLAN_SUPPORTS_GTK_REKEY: supports GTK rekeying while asleep
|
||||
* @WIPHY_WOWLAN_GTK_REKEY_FAILURE: supports wakeup on GTK rekey failure
|
||||
* @WIPHY_WOWLAN_EAP_IDENTITY_REQ: supports wakeup on EAP identity request
|
||||
* @WIPHY_WOWLAN_4WAY_HANDSHAKE: supports wakeup on 4-way handshake failure
|
||||
* @WIPHY_WOWLAN_RFKILL_RELEASE: supports wakeup on RF-kill release
|
||||
*/
|
||||
enum wiphy_wowlan_support_flags {
|
||||
WIPHY_WOWLAN_ANY = BIT(0),
|
||||
WIPHY_WOWLAN_MAGIC_PKT = BIT(1),
|
||||
WIPHY_WOWLAN_DISCONNECT = BIT(2),
|
||||
WIPHY_WOWLAN_ANY = BIT(0),
|
||||
WIPHY_WOWLAN_MAGIC_PKT = BIT(1),
|
||||
WIPHY_WOWLAN_DISCONNECT = BIT(2),
|
||||
WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = BIT(3),
|
||||
WIPHY_WOWLAN_GTK_REKEY_FAILURE = BIT(4),
|
||||
WIPHY_WOWLAN_EAP_IDENTITY_REQ = BIT(5),
|
||||
WIPHY_WOWLAN_4WAY_HANDSHAKE = BIT(6),
|
||||
WIPHY_WOWLAN_RFKILL_RELEASE = BIT(7),
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1742,9 +1761,13 @@ struct wiphy_wowlan_support {
|
||||
* this variable determines its size
|
||||
* @max_scan_ssids: maximum number of SSIDs the device can scan for in
|
||||
* any given scan
|
||||
* @max_sched_scan_ssids: maximum number of SSIDs the device can scan
|
||||
* for in any given scheduled scan
|
||||
* @max_scan_ie_len: maximum length of user-controlled IEs device can
|
||||
* add to probe request frames transmitted during a scan, must not
|
||||
* include fixed IEs like supported rates
|
||||
* @max_sched_scan_ie_len: same as max_scan_ie_len, but for scheduled
|
||||
* scans
|
||||
* @coverage_class: current coverage class
|
||||
* @fw_version: firmware version for ethtool reporting
|
||||
* @hw_version: hardware version for ethtool reporting
|
||||
@@ -1796,7 +1819,9 @@ struct wiphy {
|
||||
|
||||
int bss_priv_size;
|
||||
u8 max_scan_ssids;
|
||||
u8 max_sched_scan_ssids;
|
||||
u16 max_scan_ie_len;
|
||||
u16 max_sched_scan_ie_len;
|
||||
|
||||
int n_cipher_suites;
|
||||
const u32 *cipher_suites;
|
||||
|
||||
@@ -1585,6 +1585,20 @@ enum ieee80211_ampdu_mlme_action {
|
||||
IEEE80211_AMPDU_TX_OPERATIONAL,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ieee80211_tx_sync_type - TX sync type
|
||||
* @IEEE80211_TX_SYNC_AUTH: sync TX for authentication
|
||||
* (and possibly also before direct probe)
|
||||
* @IEEE80211_TX_SYNC_ASSOC: sync TX for association
|
||||
* @IEEE80211_TX_SYNC_ACTION: sync TX for action frame
|
||||
* (not implemented yet)
|
||||
*/
|
||||
enum ieee80211_tx_sync_type {
|
||||
IEEE80211_TX_SYNC_AUTH,
|
||||
IEEE80211_TX_SYNC_ASSOC,
|
||||
IEEE80211_TX_SYNC_ACTION,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ieee80211_ops - callbacks from mac80211 to the driver
|
||||
*
|
||||
@@ -1674,6 +1688,26 @@ enum ieee80211_ampdu_mlme_action {
|
||||
* of the bss parameters has changed when a call is made. The callback
|
||||
* can sleep.
|
||||
*
|
||||
* @tx_sync: Called before a frame is sent to an AP/GO. In the GO case, the
|
||||
* driver should sync with the GO's powersaving so the device doesn't
|
||||
* transmit the frame while the GO is asleep. In the regular AP case
|
||||
* it may be used by drivers for devices implementing other restrictions
|
||||
* on talking to APs, e.g. due to regulatory enforcement or just HW
|
||||
* restrictions.
|
||||
* This function is called for every authentication, association and
|
||||
* action frame separately since applications might attempt to auth
|
||||
* with multiple APs before chosing one to associate to. If it returns
|
||||
* an error, the corresponding authentication, association or frame
|
||||
* transmission is aborted and reported as having failed. It is always
|
||||
* called after tuning to the correct channel.
|
||||
* The callback might be called multiple times before @finish_tx_sync
|
||||
* (but @finish_tx_sync will be called once for each) but in practice
|
||||
* this is unlikely to happen. It can also refuse in that case if the
|
||||
* driver cannot handle that situation.
|
||||
* This callback can sleep.
|
||||
* @finish_tx_sync: Called as a counterpart to @tx_sync, unless that returned
|
||||
* an error. This callback can sleep.
|
||||
*
|
||||
* @prepare_multicast: Prepare for multicast filter configuration.
|
||||
* This callback is optional, and its return value is passed
|
||||
* to configure_filter(). This callback must be atomic.
|
||||
@@ -1901,6 +1935,14 @@ struct ieee80211_ops {
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *info,
|
||||
u32 changed);
|
||||
|
||||
int (*tx_sync)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
const u8 *bssid, enum ieee80211_tx_sync_type type);
|
||||
void (*finish_tx_sync)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
const u8 *bssid,
|
||||
enum ieee80211_tx_sync_type type);
|
||||
|
||||
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
|
||||
struct netdev_hw_addr_list *mc_list);
|
||||
void (*configure_filter)(struct ieee80211_hw *hw,
|
||||
@@ -2612,6 +2654,20 @@ static inline void ieee80211_get_tkip_p1k(struct ieee80211_key_conf *keyconf,
|
||||
ieee80211_get_tkip_p1k_iv(keyconf, iv32, p1k);
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_get_tkip_rx_p1k - get a TKIP phase 1 key for RX
|
||||
*
|
||||
* This function returns the TKIP phase 1 key for the given IV32
|
||||
* and transmitter address.
|
||||
*
|
||||
* @keyconf: the parameter passed with the set key
|
||||
* @ta: TA that will be used with the key
|
||||
* @iv32: IV32 to get the P1K for
|
||||
* @p1k: a buffer to which the key will be written, as 5 u16 values
|
||||
*/
|
||||
void ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf *keyconf,
|
||||
const u8 *ta, u32 iv32, u16 *p1k);
|
||||
|
||||
/**
|
||||
* ieee80211_get_tkip_p2k - get a TKIP phase 2 key
|
||||
*
|
||||
@@ -2973,6 +3029,10 @@ void ieee80211_sta_block_awake(struct ieee80211_hw *hw,
|
||||
* needs reprogramming of the keys during suspend. Note that due
|
||||
* to locking reasons, it is also only safe to call this at few
|
||||
* spots since it must hold the RTNL and be able to sleep.
|
||||
*
|
||||
* The order in which the keys are iterated matches the order
|
||||
* in which they were originally installed and handed to the
|
||||
* set_key callback.
|
||||
*/
|
||||
void ieee80211_iter_keys(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
|
||||
Reference in New Issue
Block a user