17 #include <linux/kernel.h>
18 #include <linux/if_ether.h>
22 #include <asm/unaligned.h>
101 #define IEEE80211_INVAL_HW_QUEUE 0xff
116 #define IEEE80211_NUM_ACS 4
204 #define IEEE80211_BSS_ARP_ADDR_LIST_LEN 4
430 #define IEEE80211_TX_CTL_STBC_SHIFT 23
436 #define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \
437 IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \
438 IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \
439 IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \
440 IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \
441 IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_NO_PS_BUFFER | \
442 IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \
443 IEEE80211_TX_CTL_STBC | IEEE80211_TX_STATUS_EOSP)
480 #define IEEE80211_TX_INFO_DRIVER_DATA_SIZE 40
483 #define IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE 24
486 #define IEEE80211_TX_MAX_RATES 4
640 info->
status.rates[i].count = 0;
952 static inline bool ieee80211_vif_is_mesh(
struct ieee80211_vif *vif)
954 #ifdef CONFIG_MAC80211_MESH
1407 set_wiphy_dev(hw->
wiphy, dev);
1431 ieee80211_get_rts_cts_rate(
const struct ieee80211_hw *hw,
1434 if (c->
control.rts_cts_rate_idx < 0)
1440 ieee80211_get_alt_retry_rate(
const struct ieee80211_hw *hw,
1443 if (c->
control.rates[idx + 1].idx < 0)
1445 return &hw->
wiphy->bands[c->
band]->bitrates[c->
control.rates[idx + 1].idx];
2348 unsigned int changed_flags,
2349 unsigned int *total_flags,
2360 u32 iv32,
u16 *phase1key);
2413 #ifdef CONFIG_NL80211_TESTMODE
2442 u16 tids,
int num_frames,
2447 u16 tids,
int num_frames,
2516 #ifdef CONFIG_MAC80211_LEDS
2524 unsigned int blink_table_len);
2536 static inline char *ieee80211_get_tx_led_name(
struct ieee80211_hw *hw)
2538 #ifdef CONFIG_MAC80211_LEDS
2555 static inline char *ieee80211_get_rx_led_name(
struct ieee80211_hw *hw)
2557 #ifdef CONFIG_MAC80211_LEDS
2574 static inline char *ieee80211_get_assoc_led_name(
struct ieee80211_hw *hw)
2576 #ifdef CONFIG_MAC80211_LEDS
2593 static inline char *ieee80211_get_radio_led_name(
struct ieee80211_hw *hw)
2595 #ifdef CONFIG_MAC80211_LEDS
2613 static inline char *
2616 unsigned int blink_table_len)
2618 #ifdef CONFIG_MAC80211_LEDS
2724 static inline void ieee80211_rx_ni(
struct ieee80211_hw *hw,
2762 static inline int ieee80211_sta_ps_transition_ni(
struct ieee80211_sta *sta,
2778 #define IEEE80211_TX_STATUS_HEADROOM 14
2809 u8 tid,
bool buffered);
2841 static inline void ieee80211_tx_status_ni(
struct ieee80211_hw *hw,
2901 u16 *tim_offset,
u16 *tim_length);
2973 const u8 *
ssid,
size_t ssid_len,
2991 const void *
frame,
size_t frame_len,
3026 const void *
frame,
size_t frame_len,
3215 const u8 *replay_ctr,
gfp_t gfp);
3329 void (*iterator)(
void *
data,
3357 unsigned long delay);
3447 const u8 *localaddr);
3799 if (rate_supported(sta, sband->
band, i))
3816 if (rate_supported(sta, sband->
band, i))
3845 return conf_is_ht40_minus(conf) || conf_is_ht40_plus(conf);
3873 return ieee80211_iftype_p2p(vif->
type, vif->
p2p);
3878 int rssi_max_thold);