ieee80211_i.h (6ea24cf79e055f0a62a64baa8587e2254a493c7b) | ieee80211_i.h (7947d3e075cde1a18e538f2dafbc850aa356ff79) |
---|---|
1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2013-2014 Intel Mobile Communications GmbH 7 * 8 * This program is free software; you can redistribute it and/or modify --- 16 unchanged lines hidden (view full) --- 25#include <linux/spinlock.h> 26#include <linux/etherdevice.h> 27#include <linux/leds.h> 28#include <linux/idr.h> 29#include <linux/rhashtable.h> 30#include <net/ieee80211_radiotap.h> 31#include <net/cfg80211.h> 32#include <net/mac80211.h> | 1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2013-2014 Intel Mobile Communications GmbH 7 * 8 * This program is free software; you can redistribute it and/or modify --- 16 unchanged lines hidden (view full) --- 25#include <linux/spinlock.h> 26#include <linux/etherdevice.h> 27#include <linux/leds.h> 28#include <linux/idr.h> 29#include <linux/rhashtable.h> 30#include <net/ieee80211_radiotap.h> 31#include <net/cfg80211.h> 32#include <net/mac80211.h> |
33#include <net/fq.h> |
|
33#include "key.h" 34#include "sta_info.h" 35#include "debug.h" 36 37extern const struct cfg80211_ops mac80211_config_ops; 38 39struct ieee80211_local; 40 --- 650 unchanged lines hidden (view full) --- 691 IEEE80211_MESH_CSA_ROLE_INIT, 692 IEEE80211_MESH_CSA_ROLE_REPEATER, 693 } csa_role; 694 u8 chsw_ttl; 695 u16 pre_value; 696 697 /* offset from skb->data while building IE */ 698 int meshconf_offset; | 34#include "key.h" 35#include "sta_info.h" 36#include "debug.h" 37 38extern const struct cfg80211_ops mac80211_config_ops; 39 40struct ieee80211_local; 41 --- 650 unchanged lines hidden (view full) --- 692 IEEE80211_MESH_CSA_ROLE_INIT, 693 IEEE80211_MESH_CSA_ROLE_REPEATER, 694 } csa_role; 695 u8 chsw_ttl; 696 u16 pre_value; 697 698 /* offset from skb->data while building IE */ 699 int meshconf_offset; |
700 701 struct mesh_table *mesh_paths; 702 struct mesh_table *mpp_paths; /* Store paths for MPP&MAP */ 703 int mesh_paths_generation; 704 int mpp_paths_generation; |
|
699}; 700 701#ifdef CONFIG_MAC80211_MESH 702#define IEEE80211_IFSTA_MESH_CTR_INC(msh, name) \ 703 do { (msh)->mshstats.name++; } while (0) 704#else 705#define IEEE80211_IFSTA_MESH_CTR_INC(msh, name) \ 706 do { } while (0) --- 85 unchanged lines hidden (view full) --- 792struct mac80211_qos_map { 793 struct cfg80211_qos_map qos_map; 794 struct rcu_head rcu_head; 795}; 796 797enum txq_info_flags { 798 IEEE80211_TXQ_STOP, 799 IEEE80211_TXQ_AMPDU, | 705}; 706 707#ifdef CONFIG_MAC80211_MESH 708#define IEEE80211_IFSTA_MESH_CTR_INC(msh, name) \ 709 do { (msh)->mshstats.name++; } while (0) 710#else 711#define IEEE80211_IFSTA_MESH_CTR_INC(msh, name) \ 712 do { } while (0) --- 85 unchanged lines hidden (view full) --- 798struct mac80211_qos_map { 799 struct cfg80211_qos_map qos_map; 800 struct rcu_head rcu_head; 801}; 802 803enum txq_info_flags { 804 IEEE80211_TXQ_STOP, 805 IEEE80211_TXQ_AMPDU, |
806 IEEE80211_TXQ_NO_AMSDU, |
|
800}; 801 | 807}; 808 |
809/** 810 * struct txq_info - per tid queue 811 * 812 * @tin: contains packets split into multiple flows 813 * @def_flow: used as a fallback flow when a packet destined to @tin hashes to 814 * a fq_flow which is already owned by a different tin 815 * @def_cvars: codel vars for @def_flow 816 */ |
|
802struct txq_info { | 817struct txq_info { |
803 struct sk_buff_head queue; | 818 struct fq_tin tin; 819 struct fq_flow def_flow; 820 struct codel_vars def_cvars; |
804 unsigned long flags; | 821 unsigned long flags; |
805 unsigned long byte_cnt; | |
806 807 /* keep last! */ 808 struct ieee80211_txq txq; 809}; 810 811struct ieee80211_sub_if_data { 812 struct list_head list; 813 --- 31 unchanged lines hidden (view full) --- 845 struct ieee80211_key __rcu *default_multicast_key; 846 struct ieee80211_key __rcu *default_mgmt_key; 847 848 u16 sequence_number; 849 __be16 control_port_protocol; 850 bool control_port_no_encrypt; 851 int encrypt_headroom; 852 | 822 823 /* keep last! */ 824 struct ieee80211_txq txq; 825}; 826 827struct ieee80211_sub_if_data { 828 struct list_head list; 829 --- 31 unchanged lines hidden (view full) --- 861 struct ieee80211_key __rcu *default_multicast_key; 862 struct ieee80211_key __rcu *default_mgmt_key; 863 864 u16 sequence_number; 865 __be16 control_port_protocol; 866 bool control_port_no_encrypt; 867 int encrypt_headroom; 868 |
853 atomic_t txqs_len[IEEE80211_NUM_ACS]; | 869 atomic_t num_tx_queued; |
854 struct ieee80211_tx_queue_params tx_conf[IEEE80211_NUM_ACS]; 855 struct mac80211_qos_map __rcu *qos_map; 856 857 struct work_struct csa_finalize_work; 858 bool csa_block_tx; /* write-protected by sdata_lock and local->mtx */ 859 struct cfg80211_chan_def csa_chandef; 860 861 struct list_head assigned_chanctx_list; /* protected by chanctx_mtx */ --- 23 unchanged lines hidden (view full) --- 885 /* 886 * AP this belongs to: self in AP mode and 887 * corresponding AP in VLAN mode, NULL for 888 * all others (might be needed later in IBSS) 889 */ 890 struct ieee80211_if_ap *bss; 891 892 /* bitmap of allowed (non-MCS) rate indexes for rate control */ | 870 struct ieee80211_tx_queue_params tx_conf[IEEE80211_NUM_ACS]; 871 struct mac80211_qos_map __rcu *qos_map; 872 873 struct work_struct csa_finalize_work; 874 bool csa_block_tx; /* write-protected by sdata_lock and local->mtx */ 875 struct cfg80211_chan_def csa_chandef; 876 877 struct list_head assigned_chanctx_list; /* protected by chanctx_mtx */ --- 23 unchanged lines hidden (view full) --- 901 /* 902 * AP this belongs to: self in AP mode and 903 * corresponding AP in VLAN mode, NULL for 904 * all others (might be needed later in IBSS) 905 */ 906 struct ieee80211_if_ap *bss; 907 908 /* bitmap of allowed (non-MCS) rate indexes for rate control */ |
893 u32 rc_rateidx_mask[IEEE80211_NUM_BANDS]; | 909 u32 rc_rateidx_mask[NUM_NL80211_BANDS]; |
894 | 910 |
895 bool rc_has_mcs_mask[IEEE80211_NUM_BANDS]; 896 u8 rc_rateidx_mcs_mask[IEEE80211_NUM_BANDS][IEEE80211_HT_MCS_MASK_LEN]; | 911 bool rc_has_mcs_mask[NUM_NL80211_BANDS]; 912 u8 rc_rateidx_mcs_mask[NUM_NL80211_BANDS][IEEE80211_HT_MCS_MASK_LEN]; |
897 | 913 |
898 bool rc_has_vht_mcs_mask[IEEE80211_NUM_BANDS]; 899 u16 rc_rateidx_vht_mcs_mask[IEEE80211_NUM_BANDS][NL80211_VHT_NSS_MAX]; | 914 bool rc_has_vht_mcs_mask[NUM_NL80211_BANDS]; 915 u16 rc_rateidx_vht_mcs_mask[NUM_NL80211_BANDS][NL80211_VHT_NSS_MAX]; |
900 901 union { 902 struct ieee80211_if_ap ap; 903 struct ieee80211_if_wds wds; 904 struct ieee80211_if_vlan vlan; 905 struct ieee80211_if_managed mgd; 906 struct ieee80211_if_ibss ibss; 907 struct ieee80211_if_mesh mesh; --- 38 unchanged lines hidden (view full) --- 946 rcu_dereference_protected(p, lockdep_is_held(&sdata->wdev.mtx)) 947 948static inline void 949sdata_assert_lock(struct ieee80211_sub_if_data *sdata) 950{ 951 lockdep_assert_held(&sdata->wdev.mtx); 952} 953 | 916 917 union { 918 struct ieee80211_if_ap ap; 919 struct ieee80211_if_wds wds; 920 struct ieee80211_if_vlan vlan; 921 struct ieee80211_if_managed mgd; 922 struct ieee80211_if_ibss ibss; 923 struct ieee80211_if_mesh mesh; --- 38 unchanged lines hidden (view full) --- 962 rcu_dereference_protected(p, lockdep_is_held(&sdata->wdev.mtx)) 963 964static inline void 965sdata_assert_lock(struct ieee80211_sub_if_data *sdata) 966{ 967 lockdep_assert_held(&sdata->wdev.mtx); 968} 969 |
954static inline enum ieee80211_band | 970static inline enum nl80211_band |
955ieee80211_get_sdata_band(struct ieee80211_sub_if_data *sdata) 956{ | 971ieee80211_get_sdata_band(struct ieee80211_sub_if_data *sdata) 972{ |
957 enum ieee80211_band band = IEEE80211_BAND_2GHZ; | 973 enum nl80211_band band = NL80211_BAND_2GHZ; |
958 struct ieee80211_chanctx_conf *chanctx_conf; 959 960 rcu_read_lock(); 961 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); 962 if (!WARN_ON(!chanctx_conf)) 963 band = chanctx_conf->def.chan->band; 964 rcu_read_unlock(); 965 --- 122 unchanged lines hidden (view full) --- 1088}; 1089 1090struct ieee80211_local { 1091 /* embed the driver visible part. 1092 * don't cast (use the static inlines below), but we keep 1093 * it first anyway so they become a no-op */ 1094 struct ieee80211_hw hw; 1095 | 974 struct ieee80211_chanctx_conf *chanctx_conf; 975 976 rcu_read_lock(); 977 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); 978 if (!WARN_ON(!chanctx_conf)) 979 band = chanctx_conf->def.chan->band; 980 rcu_read_unlock(); 981 --- 122 unchanged lines hidden (view full) --- 1104}; 1105 1106struct ieee80211_local { 1107 /* embed the driver visible part. 1108 * don't cast (use the static inlines below), but we keep 1109 * it first anyway so they become a no-op */ 1110 struct ieee80211_hw hw; 1111 |
1112 struct fq fq; 1113 struct codel_vars *cvars; 1114 struct codel_params cparams; 1115 struct codel_stats cstats; 1116 |
|
1096 const struct ieee80211_ops *ops; 1097 1098 /* 1099 * private workqueue to mac80211. mac80211 makes this accessible 1100 * via ieee80211_queue_work() 1101 */ 1102 struct workqueue_struct *workqueue; 1103 --- 116 unchanged lines hidden (view full) --- 1220 1221 /* Scanning and BSS list */ 1222 unsigned long scanning; 1223 struct cfg80211_ssid scan_ssid; 1224 struct cfg80211_scan_request *int_scan_req; 1225 struct cfg80211_scan_request __rcu *scan_req; 1226 struct ieee80211_scan_request *hw_scan_req; 1227 struct cfg80211_chan_def scan_chandef; | 1117 const struct ieee80211_ops *ops; 1118 1119 /* 1120 * private workqueue to mac80211. mac80211 makes this accessible 1121 * via ieee80211_queue_work() 1122 */ 1123 struct workqueue_struct *workqueue; 1124 --- 116 unchanged lines hidden (view full) --- 1241 1242 /* Scanning and BSS list */ 1243 unsigned long scanning; 1244 struct cfg80211_ssid scan_ssid; 1245 struct cfg80211_scan_request *int_scan_req; 1246 struct cfg80211_scan_request __rcu *scan_req; 1247 struct ieee80211_scan_request *hw_scan_req; 1248 struct cfg80211_chan_def scan_chandef; |
1228 enum ieee80211_band hw_scan_band; | 1249 enum nl80211_band hw_scan_band; |
1229 int scan_channel_idx; 1230 int scan_ies_len; 1231 int hw_scan_ies_bufsize; | 1250 int scan_channel_idx; 1251 int scan_ies_len; 1252 int hw_scan_ies_bufsize; |
1253 struct cfg80211_scan_info scan_info; |
|
1232 1233 struct work_struct sched_scan_stopped_work; 1234 struct ieee80211_sub_if_data __rcu *sched_scan_sdata; 1235 struct cfg80211_sched_scan_request __rcu *sched_scan_req; 1236 u8 scan_addr[ETH_ALEN]; 1237 1238 unsigned long leave_oper_channel_time; 1239 enum mac80211_scan_state next_scan_state; --- 244 unchanged lines hidden (view full) --- 1484 u32 changed); 1485void ieee80211_configure_filter(struct ieee80211_local *local); 1486u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); 1487 1488u64 ieee80211_mgmt_tx_cookie(struct ieee80211_local *local); 1489int ieee80211_attach_ack_skb(struct ieee80211_local *local, struct sk_buff *skb, 1490 u64 *cookie, gfp_t gfp); 1491 | 1254 1255 struct work_struct sched_scan_stopped_work; 1256 struct ieee80211_sub_if_data __rcu *sched_scan_sdata; 1257 struct cfg80211_sched_scan_request __rcu *sched_scan_req; 1258 u8 scan_addr[ETH_ALEN]; 1259 1260 unsigned long leave_oper_channel_time; 1261 enum mac80211_scan_state next_scan_state; --- 244 unchanged lines hidden (view full) --- 1506 u32 changed); 1507void ieee80211_configure_filter(struct ieee80211_local *local); 1508u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); 1509 1510u64 ieee80211_mgmt_tx_cookie(struct ieee80211_local *local); 1511int ieee80211_attach_ack_skb(struct ieee80211_local *local, struct sk_buff *skb, 1512 u64 *cookie, gfp_t gfp); 1513 |
1514void ieee80211_check_fast_rx(struct sta_info *sta); 1515void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata); 1516void ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata); 1517void ieee80211_clear_fast_rx(struct sta_info *sta); 1518 |
|
1492/* STA code */ 1493void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata); 1494int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, 1495 struct cfg80211_auth_request *req); 1496int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, 1497 struct cfg80211_assoc_request *req); 1498int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, 1499 struct cfg80211_deauth_request *req); --- 222 unchanged lines hidden (view full) --- 1722enum ieee80211_sta_rx_bandwidth 1723ieee80211_chan_width_to_rx_bw(enum nl80211_chan_width width); 1724enum nl80211_chan_width ieee80211_sta_cap_chan_bw(struct sta_info *sta); 1725void ieee80211_sta_set_rx_nss(struct sta_info *sta); 1726void ieee80211_process_mu_groups(struct ieee80211_sub_if_data *sdata, 1727 struct ieee80211_mgmt *mgmt); 1728u32 __ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, 1729 struct sta_info *sta, u8 opmode, | 1519/* STA code */ 1520void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata); 1521int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, 1522 struct cfg80211_auth_request *req); 1523int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, 1524 struct cfg80211_assoc_request *req); 1525int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, 1526 struct cfg80211_deauth_request *req); --- 222 unchanged lines hidden (view full) --- 1749enum ieee80211_sta_rx_bandwidth 1750ieee80211_chan_width_to_rx_bw(enum nl80211_chan_width width); 1751enum nl80211_chan_width ieee80211_sta_cap_chan_bw(struct sta_info *sta); 1752void ieee80211_sta_set_rx_nss(struct sta_info *sta); 1753void ieee80211_process_mu_groups(struct ieee80211_sub_if_data *sdata, 1754 struct ieee80211_mgmt *mgmt); 1755u32 __ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, 1756 struct sta_info *sta, u8 opmode, |
1730 enum ieee80211_band band); | 1757 enum nl80211_band band); |
1731void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, 1732 struct sta_info *sta, u8 opmode, | 1758void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, 1759 struct sta_info *sta, u8 opmode, |
1733 enum ieee80211_band band); | 1760 enum nl80211_band band); |
1734void ieee80211_apply_vhtcap_overrides(struct ieee80211_sub_if_data *sdata, 1735 struct ieee80211_sta_vht_cap *vht_cap); 1736void ieee80211_get_vht_mask_from_cap(__le16 vht_cap, 1737 u16 vht_mask[NL80211_VHT_NSS_MAX]); 1738 1739/* Spectrum management */ 1740void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, 1741 struct ieee80211_mgmt *mgmt, --- 11 unchanged lines hidden (view full) --- 1753 * %IEEE80211_STA_DISABLE_160MHZ. 1754 * @bssid: the currently connected bssid (for reporting) 1755 * @csa_ie: parsed 802.11 csa elements on count, mode, chandef and mesh ttl. 1756 All of them will be filled with if success only. 1757 * Return: 0 on success, <0 on error and >0 if there is nothing to parse. 1758 */ 1759int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, 1760 struct ieee802_11_elems *elems, | 1761void ieee80211_apply_vhtcap_overrides(struct ieee80211_sub_if_data *sdata, 1762 struct ieee80211_sta_vht_cap *vht_cap); 1763void ieee80211_get_vht_mask_from_cap(__le16 vht_cap, 1764 u16 vht_mask[NL80211_VHT_NSS_MAX]); 1765 1766/* Spectrum management */ 1767void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, 1768 struct ieee80211_mgmt *mgmt, --- 11 unchanged lines hidden (view full) --- 1780 * %IEEE80211_STA_DISABLE_160MHZ. 1781 * @bssid: the currently connected bssid (for reporting) 1782 * @csa_ie: parsed 802.11 csa elements on count, mode, chandef and mesh ttl. 1783 All of them will be filled with if success only. 1784 * Return: 0 on success, <0 on error and >0 if there is nothing to parse. 1785 */ 1786int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, 1787 struct ieee802_11_elems *elems, |
1761 enum ieee80211_band current_band, | 1788 enum nl80211_band current_band, |
1762 u32 sta_flags, u8 *bssid, 1763 struct ieee80211_csa_ie *csa_ie); 1764 1765/* Suspend/resume and hw reconfiguration */ 1766int ieee80211_reconfig(struct ieee80211_local *local); 1767void ieee80211_stop_device(struct ieee80211_local *local); 1768 1769int __ieee80211_suspend(struct ieee80211_hw *hw, --- 8 unchanged lines hidden (view full) --- 1778 "%s: resume with hardware scan still in progress\n", 1779 wiphy_name(hw->wiphy)); 1780 1781 return ieee80211_reconfig(hw_to_local(hw)); 1782} 1783 1784/* utility functions/constants */ 1785extern const void *const mac80211_wiphy_privid; /* for wiphy privid */ | 1789 u32 sta_flags, u8 *bssid, 1790 struct ieee80211_csa_ie *csa_ie); 1791 1792/* Suspend/resume and hw reconfiguration */ 1793int ieee80211_reconfig(struct ieee80211_local *local); 1794void ieee80211_stop_device(struct ieee80211_local *local); 1795 1796int __ieee80211_suspend(struct ieee80211_hw *hw, --- 8 unchanged lines hidden (view full) --- 1805 "%s: resume with hardware scan still in progress\n", 1806 wiphy_name(hw->wiphy)); 1807 1808 return ieee80211_reconfig(hw_to_local(hw)); 1809} 1810 1811/* utility functions/constants */ 1812extern const void *const mac80211_wiphy_privid; /* for wiphy privid */ |
1786int ieee80211_frame_duration(enum ieee80211_band band, size_t len, | 1813int ieee80211_frame_duration(enum nl80211_band band, size_t len, |
1787 int rate, int erp, int short_preamble, 1788 int shift); 1789void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, 1790 bool bss_notify, bool enable_qos); 1791void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, 1792 struct sta_info *sta, struct sk_buff *skb); 1793 1794void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, 1795 struct sk_buff *skb, int tid, | 1814 int rate, int erp, int short_preamble, 1815 int shift); 1816void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, 1817 bool bss_notify, bool enable_qos); 1818void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, 1819 struct sta_info *sta, struct sk_buff *skb); 1820 1821void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, 1822 struct sk_buff *skb, int tid, |
1796 enum ieee80211_band band); | 1823 enum nl80211_band band); |
1797 1798static inline void 1799ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, 1800 struct sk_buff *skb, int tid, | 1824 1825static inline void 1826ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, 1827 struct sk_buff *skb, int tid, |
1801 enum ieee80211_band band) | 1828 enum nl80211_band band) |
1802{ 1803 rcu_read_lock(); 1804 __ieee80211_tx_skb_tid_band(sdata, skb, tid, band); 1805 rcu_read_unlock(); 1806} 1807 1808static inline void ieee80211_tx_skb_tid(struct ieee80211_sub_if_data *sdata, 1809 struct sk_buff *skb, int tid) --- 105 unchanged lines hidden (view full) --- 1915 * worker starts running... 1916 */ 1917 if (local->suspended) 1918 return false; 1919 1920 return true; 1921} 1922 | 1829{ 1830 rcu_read_lock(); 1831 __ieee80211_tx_skb_tid_band(sdata, skb, tid, band); 1832 rcu_read_unlock(); 1833} 1834 1835static inline void ieee80211_tx_skb_tid(struct ieee80211_sub_if_data *sdata, 1836 struct sk_buff *skb, int tid) --- 105 unchanged lines hidden (view full) --- 1942 * worker starts running... 1943 */ 1944 if (local->suspended) 1945 return false; 1946 1947 return true; 1948} 1949 |
1923void ieee80211_init_tx_queue(struct ieee80211_sub_if_data *sdata, 1924 struct sta_info *sta, 1925 struct txq_info *txq, int tid); | 1950int ieee80211_txq_setup_flows(struct ieee80211_local *local); 1951void ieee80211_txq_teardown_flows(struct ieee80211_local *local); 1952void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata, 1953 struct sta_info *sta, 1954 struct txq_info *txq, int tid); 1955void ieee80211_txq_purge(struct ieee80211_local *local, 1956 struct txq_info *txqi); |
1926void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, 1927 u16 transaction, u16 auth_alg, u16 status, 1928 const u8 *extra, size_t extra_len, const u8 *bssid, 1929 const u8 *da, const u8 *key, u8 key_len, u8 key_idx, 1930 u32 tx_flags); 1931void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, 1932 const u8 *bssid, u16 stype, u16 reason, 1933 bool send_frame, u8 *frame_buf); --- 14 unchanged lines hidden (view full) --- 1948 const u8 *src, const u8 *dst, 1949 const u8 *ssid, size_t ssid_len, 1950 const u8 *ie, size_t ie_len, 1951 u32 ratemask, bool directed, u32 tx_flags, 1952 struct ieee80211_channel *channel, bool scan); 1953 1954u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata, 1955 struct ieee802_11_elems *elems, | 1957void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata, 1958 u16 transaction, u16 auth_alg, u16 status, 1959 const u8 *extra, size_t extra_len, const u8 *bssid, 1960 const u8 *da, const u8 *key, u8 key_len, u8 key_idx, 1961 u32 tx_flags); 1962void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, 1963 const u8 *bssid, u16 stype, u16 reason, 1964 bool send_frame, u8 *frame_buf); --- 14 unchanged lines hidden (view full) --- 1979 const u8 *src, const u8 *dst, 1980 const u8 *ssid, size_t ssid_len, 1981 const u8 *ie, size_t ie_len, 1982 u32 ratemask, bool directed, u32 tx_flags, 1983 struct ieee80211_channel *channel, bool scan); 1984 1985u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata, 1986 struct ieee802_11_elems *elems, |
1956 enum ieee80211_band band, u32 *basic_rates); | 1987 enum nl80211_band band, u32 *basic_rates); |
1957int __ieee80211_request_smps_mgd(struct ieee80211_sub_if_data *sdata, 1958 enum ieee80211_smps_mode smps_mode); 1959int __ieee80211_request_smps_ap(struct ieee80211_sub_if_data *sdata, 1960 enum ieee80211_smps_mode smps_mode); 1961void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata); 1962void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata); 1963 1964size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); --- 6 unchanged lines hidden (view full) --- 1971 u32 cap); 1972u8 *ieee80211_ie_build_vht_oper(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, 1973 const struct cfg80211_chan_def *chandef); 1974int ieee80211_parse_bitrates(struct cfg80211_chan_def *chandef, 1975 const struct ieee80211_supported_band *sband, 1976 const u8 *srates, int srates_len, u32 *rates); 1977int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, 1978 struct sk_buff *skb, bool need_basic, | 1988int __ieee80211_request_smps_mgd(struct ieee80211_sub_if_data *sdata, 1989 enum ieee80211_smps_mode smps_mode); 1990int __ieee80211_request_smps_ap(struct ieee80211_sub_if_data *sdata, 1991 enum ieee80211_smps_mode smps_mode); 1992void ieee80211_recalc_smps(struct ieee80211_sub_if_data *sdata); 1993void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata); 1994 1995size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); --- 6 unchanged lines hidden (view full) --- 2002 u32 cap); 2003u8 *ieee80211_ie_build_vht_oper(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, 2004 const struct cfg80211_chan_def *chandef); 2005int ieee80211_parse_bitrates(struct cfg80211_chan_def *chandef, 2006 const struct ieee80211_supported_band *sband, 2007 const u8 *srates, int srates_len, u32 *rates); 2008int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, 2009 struct sk_buff *skb, bool need_basic, |
1979 enum ieee80211_band band); | 2010 enum nl80211_band band); |
1980int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, 1981 struct sk_buff *skb, bool need_basic, | 2011int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, 2012 struct sk_buff *skb, bool need_basic, |
1982 enum ieee80211_band band); | 2013 enum nl80211_band band); |
1983u8 *ieee80211_add_wmm_info_ie(u8 *buf, u8 qosinfo); 1984 1985/* channel management */ 1986bool ieee80211_chandef_ht_oper(const struct ieee80211_ht_operation *ht_oper, 1987 struct cfg80211_chan_def *chandef); 1988bool ieee80211_chandef_vht_oper(const struct ieee80211_vht_operation *oper, 1989 struct cfg80211_chan_def *chandef); 1990u32 ieee80211_chandef_downgrade(struct cfg80211_chan_def *c); --- 84 unchanged lines hidden --- | 2014u8 *ieee80211_add_wmm_info_ie(u8 *buf, u8 qosinfo); 2015 2016/* channel management */ 2017bool ieee80211_chandef_ht_oper(const struct ieee80211_ht_operation *ht_oper, 2018 struct cfg80211_chan_def *chandef); 2019bool ieee80211_chandef_vht_oper(const struct ieee80211_vht_operation *oper, 2020 struct cfg80211_chan_def *chandef); 2021u32 ieee80211_chandef_downgrade(struct cfg80211_chan_def *c); --- 84 unchanged lines hidden --- |