#include <linux/delay.h>
#include <linux/if_ether.h>
#include <linux/skbuff.h>
#include <linux/if_arp.h>
#include <linux/etherdevice.h>
#include <linux/crc32.h>
#include <linux/slab.h>
#include <net/mac80211.h>
#include <asm/unaligned.h>
#include "ieee80211_i.h"
#include "rate.h"
#include "driver-ops.h"
Go to the source code of this file.
Defines | |
#define | IEEE80211_ASSOC_MAX_TRIES 3 |
#define | IEEE80211_ASSOC_TIMEOUT (HZ / 5) |
#define | IEEE80211_AUTH_MAX_TRIES 3 |
#define | IEEE80211_AUTH_TIMEOUT (HZ / 5) |
Enumerations | |
enum | work_action { WORK_ACT_MISMATCH, WORK_ACT_NONE, WORK_ACT_TIMEOUT, WORK_ACT_DONE, WORK_ACT_NONE, WORK_ACT_TIMEOUT } |
Functions | |
static void | ASSERT_WORK_MTX (struct ieee80211_local *local) |
void | free_work (struct ieee80211_work *wk) |
static void | ieee80211_add_ht_ie (struct sk_buff *skb, const u8 *ht_info_ie, struct ieee80211_supported_band *sband, struct ieee80211_channel *channel, enum ieee80211_smps_mode smps) |
void | ieee80211_add_work (struct ieee80211_work *wk) |
static enum work_action __must_check | ieee80211_assoc_beacon_wait (struct ieee80211_work *wk) |
static enum work_action __must_check | ieee80211_associate (struct ieee80211_work *wk) |
static void | ieee80211_auth_challenge (struct ieee80211_work *wk, struct ieee80211_mgmt *mgmt, size_t len) |
static enum work_action __must_check | ieee80211_authenticate (struct ieee80211_work *wk) |
static int | ieee80211_compatible_rates (const u8 *supp_rates, int supp_rates_len, struct ieee80211_supported_band *sband, u32 *rates) |
static enum work_action __must_check | ieee80211_direct_probe (struct ieee80211_work *wk) |
static enum work_action __must_check | ieee80211_offchannel_tx (struct ieee80211_work *wk) |
static enum work_done_result | ieee80211_remain_done (struct ieee80211_work *wk, struct sk_buff *skb) |
static enum work_action __must_check | ieee80211_remain_on_channel_timeout (struct ieee80211_work *wk) |
static void | ieee80211_remove_auth_bss (struct ieee80211_local *local, struct ieee80211_work *wk) |
static enum work_action __must_check | ieee80211_rx_mgmt_assoc_resp (struct ieee80211_work *wk, struct ieee80211_mgmt *mgmt, size_t len, bool reassoc) |
static enum work_action __must_check | ieee80211_rx_mgmt_auth (struct ieee80211_work *wk, struct ieee80211_mgmt *mgmt, size_t len) |
static enum work_action __must_check | ieee80211_rx_mgmt_beacon (struct ieee80211_work *wk, struct ieee80211_mgmt *mgmt, size_t len) |
static enum work_action __must_check | ieee80211_rx_mgmt_probe_resp (struct ieee80211_work *wk, struct ieee80211_mgmt *mgmt, size_t len, struct ieee80211_rx_status *rx_status) |
static void | ieee80211_send_assoc (struct ieee80211_sub_if_data *sdata, struct ieee80211_work *wk) |
int | ieee80211_wk_cancel_remain_on_channel (struct ieee80211_sub_if_data *sdata, u64 cookie) |
int | ieee80211_wk_remain_on_channel (struct ieee80211_sub_if_data *sdata, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type, unsigned int duration, u64 *cookie) |
static bool | ieee80211_work_ct_coexists (enum nl80211_channel_type wk_ct, enum nl80211_channel_type oper_ct) |
void | ieee80211_work_init (struct ieee80211_local *local) |
void | ieee80211_work_purge (struct ieee80211_sub_if_data *sdata) |
ieee80211_rx_result | ieee80211_work_rx_mgmt (struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) |
static void | ieee80211_work_rx_queued_mgmt (struct ieee80211_local *local, struct sk_buff *skb) |
static void | ieee80211_work_timer (unsigned long data) |
static void | ieee80211_work_work (struct work_struct *work) |
static void | run_again (struct ieee80211_local *local, unsigned long timeout) |
#define IEEE80211_ASSOC_MAX_TRIES 3 |
Definition at line 33 of file kernel-3.2/work.c.
#define IEEE80211_ASSOC_TIMEOUT (HZ / 5) |
Definition at line 32 of file kernel-3.2/work.c.
#define IEEE80211_AUTH_MAX_TRIES 3 |
Definition at line 31 of file kernel-3.2/work.c.
#define IEEE80211_AUTH_TIMEOUT (HZ / 5) |
Definition at line 30 of file kernel-3.2/work.c.
enum work_action |
WORK_ACT_MISMATCH | |
WORK_ACT_NONE | |
WORK_ACT_TIMEOUT | |
WORK_ACT_DONE | |
WORK_ACT_NONE | |
WORK_ACT_TIMEOUT |
Definition at line 35 of file kernel-3.2/work.c.
static void ASSERT_WORK_MTX | ( | struct ieee80211_local * | local | ) | [inline, static] |
Definition at line 44 of file kernel-3.2/work.c.
void free_work | ( | struct ieee80211_work * | wk | ) |
Definition at line 69 of file kernel-3.2/work.c.
static void ieee80211_add_ht_ie | ( | struct sk_buff * | skb, |
const u8 * | ht_info_ie, | ||
struct ieee80211_supported_band * | sband, | ||
struct ieee80211_channel * | channel, | ||
enum ieee80211_smps_mode | smps | ||
) | [static] |
Definition at line 97 of file kernel-3.2/work.c.
void ieee80211_add_work | ( | struct ieee80211_work * | wk | ) |
Definition at line 1080 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_assoc_beacon_wait | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 591 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_associate | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 512 of file kernel-3.2/work.c.
static void ieee80211_auth_challenge | ( | struct ieee80211_work * | wk, |
struct ieee80211_mgmt * | mgmt, | ||
size_t | len | ||
) | [static] |
Definition at line 606 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_authenticate | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 471 of file kernel-3.2/work.c.
static int ieee80211_compatible_rates | ( | const u8 * | supp_rates, |
int | supp_rates_len, | ||
struct ieee80211_supported_band * | sband, | ||
u32 * | rates | ||
) | [static] |
Definition at line 74 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_direct_probe | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 424 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_offchannel_tx | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 572 of file kernel-3.2/work.c.
static enum work_done_result ieee80211_remain_done | ( | struct ieee80211_work * | wk, |
struct sk_buff * | skb | ||
) | [static] |
Definition at line 1183 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_remain_on_channel_timeout | ( | struct ieee80211_work * | wk | ) | [static] |
Definition at line 552 of file kernel-3.2/work.c.
static void ieee80211_remove_auth_bss | ( | struct ieee80211_local * | local, |
struct ieee80211_work * | wk | ||
) | [static] |
Definition at line 403 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_rx_mgmt_assoc_resp | ( | struct ieee80211_work * | wk, |
struct ieee80211_mgmt * | mgmt, | ||
size_t | len, | ||
bool | reassoc | ||
) | [static] |
Definition at line 673 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_rx_mgmt_auth | ( | struct ieee80211_work * | wk, |
struct ieee80211_mgmt * | mgmt, | ||
size_t | len | ||
) | [static] |
Definition at line 626 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_rx_mgmt_beacon | ( | struct ieee80211_work * | wk, |
struct ieee80211_mgmt * | mgmt, | ||
size_t | len | ||
) | [static] |
Definition at line 756 of file kernel-3.2/work.c.
static enum work_action __must_check ieee80211_rx_mgmt_probe_resp | ( | struct ieee80211_work * | wk, |
struct ieee80211_mgmt * | mgmt, | ||
size_t | len, | ||
struct ieee80211_rx_status * | rx_status | ||
) | [static] |
Definition at line 731 of file kernel-3.2/work.c.
static void ieee80211_send_assoc | ( | struct ieee80211_sub_if_data * | sdata, |
struct ieee80211_work * | wk | ||
) | [static] |
Definition at line 187 of file kernel-3.2/work.c.
int ieee80211_wk_cancel_remain_on_channel | ( | struct ieee80211_sub_if_data * | sdata, |
u64 | cookie | ||
) |
Definition at line 1222 of file kernel-3.2/work.c.
int ieee80211_wk_remain_on_channel | ( | struct ieee80211_sub_if_data * | sdata, |
struct ieee80211_channel * | chan, | ||
enum nl80211_channel_type | channel_type, | ||
unsigned int | duration, | ||
u64 * | cookie | ||
) |
Definition at line 1196 of file kernel-3.2/work.c.
static bool ieee80211_work_ct_coexists | ( | enum nl80211_channel_type | wk_ct, |
enum nl80211_channel_type | oper_ct | ||
) | [static] |
Definition at line 884 of file kernel-3.2/work.c.
void ieee80211_work_init | ( | struct ieee80211_local * | local | ) |
Definition at line 1106 of file kernel-3.2/work.c.
void ieee80211_work_purge | ( | struct ieee80211_sub_if_data * | sdata | ) |
Definition at line 1115 of file kernel-3.2/work.c.
ieee80211_rx_result ieee80211_work_rx_mgmt | ( | struct ieee80211_sub_if_data * | sdata, |
struct sk_buff * | skb | ||
) |
Definition at line 1146 of file kernel-3.2/work.c.
static void ieee80211_work_rx_queued_mgmt | ( | struct ieee80211_local * | local, |
struct sk_buff * | skb | ||
) | [static] |
Definition at line 774 of file kernel-3.2/work.c.
static void ieee80211_work_timer | ( | unsigned long | data | ) | [static] |
Definition at line 902 of file kernel-3.2/work.c.
static void ieee80211_work_work | ( | struct work_struct * | work | ) | [static] |
Definition at line 912 of file kernel-3.2/work.c.
static void run_again | ( | struct ieee80211_local * | local, |
unsigned long | timeout | ||
) | [static] |
Definition at line 59 of file kernel-3.2/work.c.