aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2014-11-20 16:09:30 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-11-20 16:09:30 -0500
commit9a638ddfb09e5aa17158842c95526e1aa79f92e6 (patch)
tree7edf2e128b23f711cf28273dca3ff69f3706925a /net/mac80211/ieee80211_i.h
parentb4c1b70823721e9edb19a839188e4dae50ce878d (diff)
parent75769c80e381653994293b5aa5a8cfec50088f9f (diff)
Merge tag 'mac80211-next-for-john-2014-11-20' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg <johannes@sipsolutions.net> says: "It has been a while since my last pull request, so we accumulated another relatively large set of changes: * TDLS off-channel support set from Arik/Liad, with some support patches I did * custom regulatory fixes from Arik * minstrel VHT fix (and a small optimisation) from Felix * add back radiotap vendor namespace support (myself) * random MAC address scanning for cfg80211/mac80211/hwsim (myself) * CSA improvements (Luca) * WoWLAN Net Detect (wake on network found) support (Luca) * and lots of other smaller changes from many people" Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h42
1 files changed, 36 insertions, 6 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 842e0661fb57..cc6e964d9837 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -525,8 +525,13 @@ struct ieee80211_if_managed {
525 struct ieee80211_vht_cap vht_capa; /* configured VHT overrides */ 525 struct ieee80211_vht_cap vht_capa; /* configured VHT overrides */
526 struct ieee80211_vht_cap vht_capa_mask; /* Valid parts of vht_capa */ 526 struct ieee80211_vht_cap vht_capa_mask; /* Valid parts of vht_capa */
527 527
528 /* TDLS support */
528 u8 tdls_peer[ETH_ALEN] __aligned(2); 529 u8 tdls_peer[ETH_ALEN] __aligned(2);
529 struct delayed_work tdls_peer_del_work; 530 struct delayed_work tdls_peer_del_work;
531 struct sk_buff *orig_teardown_skb; /* The original teardown skb */
532 struct sk_buff *teardown_skb; /* A copy to send through the AP */
533 spinlock_t teardown_lock; /* To lock changing teardown_skb */
534 bool tdls_chan_switch_prohibited;
530 535
531 /* WMM-AC TSPEC support */ 536 /* WMM-AC TSPEC support */
532 struct ieee80211_sta_tx_tspec tx_tspec[IEEE80211_NUM_ACS]; 537 struct ieee80211_sta_tx_tspec tx_tspec[IEEE80211_NUM_ACS];
@@ -988,6 +993,7 @@ enum sdata_queue_type {
988 IEEE80211_SDATA_QUEUE_AGG_STOP = 2, 993 IEEE80211_SDATA_QUEUE_AGG_STOP = 2,
989 IEEE80211_SDATA_QUEUE_RX_AGG_START = 3, 994 IEEE80211_SDATA_QUEUE_RX_AGG_START = 3,
990 IEEE80211_SDATA_QUEUE_RX_AGG_STOP = 4, 995 IEEE80211_SDATA_QUEUE_RX_AGG_STOP = 4,
996 IEEE80211_SDATA_QUEUE_TDLS_CHSW = 5,
991}; 997};
992 998
993enum { 999enum {
@@ -1005,6 +1011,7 @@ enum queue_stop_reason {
1005 IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL, 1011 IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL,
1006 IEEE80211_QUEUE_STOP_REASON_FLUSH, 1012 IEEE80211_QUEUE_STOP_REASON_FLUSH,
1007 IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN, 1013 IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN,
1014 IEEE80211_QUEUE_STOP_REASON_RESERVE_TID,
1008 1015
1009 IEEE80211_QUEUE_STOP_REASONS, 1016 IEEE80211_QUEUE_STOP_REASONS,
1010}; 1017};
@@ -1231,7 +1238,7 @@ struct ieee80211_local {
1231 unsigned long scanning; 1238 unsigned long scanning;
1232 struct cfg80211_ssid scan_ssid; 1239 struct cfg80211_ssid scan_ssid;
1233 struct cfg80211_scan_request *int_scan_req; 1240 struct cfg80211_scan_request *int_scan_req;
1234 struct cfg80211_scan_request *scan_req; 1241 struct cfg80211_scan_request __rcu *scan_req;
1235 struct ieee80211_scan_request *hw_scan_req; 1242 struct ieee80211_scan_request *hw_scan_req;
1236 struct cfg80211_chan_def scan_chandef; 1243 struct cfg80211_chan_def scan_chandef;
1237 enum ieee80211_band hw_scan_band; 1244 enum ieee80211_band hw_scan_band;
@@ -1241,7 +1248,8 @@ struct ieee80211_local {
1241 1248
1242 struct work_struct sched_scan_stopped_work; 1249 struct work_struct sched_scan_stopped_work;
1243 struct ieee80211_sub_if_data __rcu *sched_scan_sdata; 1250 struct ieee80211_sub_if_data __rcu *sched_scan_sdata;
1244 struct cfg80211_sched_scan_request *sched_scan_req; 1251 struct cfg80211_sched_scan_request __rcu *sched_scan_req;
1252 u8 scan_addr[ETH_ALEN];
1245 1253
1246 unsigned long leave_oper_channel_time; 1254 unsigned long leave_oper_channel_time;
1247 enum mac80211_scan_state next_scan_state; 1255 enum mac80211_scan_state next_scan_state;
@@ -1395,6 +1403,9 @@ struct ieee802_11_elems {
1395 size_t total_len; 1403 size_t total_len;
1396 1404
1397 /* pointers to IEs */ 1405 /* pointers to IEs */
1406 const struct ieee80211_tdls_lnkie *lnk_id;
1407 const struct ieee80211_ch_switch_timing *ch_sw_timing;
1408 const u8 *ext_capab;
1398 const u8 *ssid; 1409 const u8 *ssid;
1399 const u8 *supp_rates; 1410 const u8 *supp_rates;
1400 const u8 *ds_params; 1411 const u8 *ds_params;
@@ -1429,6 +1440,7 @@ struct ieee802_11_elems {
1429 const struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; 1440 const struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie;
1430 1441
1431 /* length of them, respectively */ 1442 /* length of them, respectively */
1443 u8 ext_capab_len;
1432 u8 ssid_len; 1444 u8 ssid_len;
1433 u8 supp_rates_len; 1445 u8 supp_rates_len;
1434 u8 tim_len; 1446 u8 tim_len;
@@ -1625,8 +1637,14 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
1625 struct net_device *dev); 1637 struct net_device *dev);
1626netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, 1638netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
1627 struct net_device *dev); 1639 struct net_device *dev);
1640void __ieee80211_subif_start_xmit(struct sk_buff *skb,
1641 struct net_device *dev,
1642 u32 info_flags);
1628void ieee80211_purge_tx_queue(struct ieee80211_hw *hw, 1643void ieee80211_purge_tx_queue(struct ieee80211_hw *hw,
1629 struct sk_buff_head *skbs); 1644 struct sk_buff_head *skbs);
1645struct sk_buff *
1646ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata,
1647 struct sk_buff *skb, u32 info_flags);
1630 1648
1631/* HT */ 1649/* HT */
1632void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata, 1650void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata,
@@ -1753,8 +1771,7 @@ void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int ke
1753 gfp_t gfp); 1771 gfp_t gfp);
1754void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, 1772void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
1755 bool bss_notify); 1773 bool bss_notify);
1756void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb, 1774void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb);
1757 enum ieee80211_band band);
1758 1775
1759void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, 1776void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata,
1760 struct sk_buff *skb, int tid, 1777 struct sk_buff *skb, int tid,
@@ -1865,6 +1882,9 @@ void ieee80211_add_pending_skbs(struct ieee80211_local *local,
1865 struct sk_buff_head *skbs); 1882 struct sk_buff_head *skbs);
1866void ieee80211_flush_queues(struct ieee80211_local *local, 1883void ieee80211_flush_queues(struct ieee80211_local *local,
1867 struct ieee80211_sub_if_data *sdata); 1884 struct ieee80211_sub_if_data *sdata);
1885void __ieee80211_flush_queues(struct ieee80211_local *local,
1886 struct ieee80211_sub_if_data *sdata,
1887 unsigned int queues);
1868 1888
1869void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, 1889void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
1870 u16 transaction, u16 auth_alg, u16 status, 1890 u16 transaction, u16 auth_alg, u16 status,
@@ -1881,12 +1901,14 @@ int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer,
1881 u8 bands_used, u32 *rate_masks, 1901 u8 bands_used, u32 *rate_masks,
1882 struct cfg80211_chan_def *chandef); 1902 struct cfg80211_chan_def *chandef);
1883struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, 1903struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata,
1884 u8 *dst, u32 ratemask, 1904 const u8 *src, const u8 *dst,
1905 u32 ratemask,
1885 struct ieee80211_channel *chan, 1906 struct ieee80211_channel *chan,
1886 const u8 *ssid, size_t ssid_len, 1907 const u8 *ssid, size_t ssid_len,
1887 const u8 *ie, size_t ie_len, 1908 const u8 *ie, size_t ie_len,
1888 bool directed); 1909 bool directed);
1889void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, 1910void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata,
1911 const u8 *src, const u8 *dst,
1890 const u8 *ssid, size_t ssid_len, 1912 const u8 *ssid, size_t ssid_len,
1891 const u8 *ie, size_t ie_len, 1913 const u8 *ie, size_t ie_len,
1892 u32 ratemask, bool directed, u32 tx_flags, 1914 u32 ratemask, bool directed, u32 tx_flags,
@@ -1992,6 +2014,14 @@ int ieee80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev,
1992int ieee80211_tdls_oper(struct wiphy *wiphy, struct net_device *dev, 2014int ieee80211_tdls_oper(struct wiphy *wiphy, struct net_device *dev,
1993 const u8 *peer, enum nl80211_tdls_operation oper); 2015 const u8 *peer, enum nl80211_tdls_operation oper);
1994void ieee80211_tdls_peer_del_work(struct work_struct *wk); 2016void ieee80211_tdls_peer_del_work(struct work_struct *wk);
2017int ieee80211_tdls_channel_switch(struct wiphy *wiphy, struct net_device *dev,
2018 const u8 *addr, u8 oper_class,
2019 struct cfg80211_chan_def *chandef);
2020void ieee80211_tdls_cancel_channel_switch(struct wiphy *wiphy,
2021 struct net_device *dev,
2022 const u8 *addr);
2023void ieee80211_process_tdls_channel_switch(struct ieee80211_sub_if_data *sdata,
2024 struct sk_buff *skb);
1995 2025
1996extern const struct ethtool_ops ieee80211_ethtool_ops; 2026extern const struct ethtool_ops ieee80211_ethtool_ops;
1997 2027