diff options
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index bb61f7718c4c..204bfedba306 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -193,8 +193,6 @@ struct ieee80211_tx_data { | |||
193 | struct sta_info *sta; | 193 | struct sta_info *sta; |
194 | struct ieee80211_key *key; | 194 | struct ieee80211_key *key; |
195 | 195 | ||
196 | struct ieee80211_channel *channel; | ||
197 | |||
198 | unsigned int flags; | 196 | unsigned int flags; |
199 | }; | 197 | }; |
200 | 198 | ||
@@ -274,9 +272,15 @@ struct beacon_data { | |||
274 | struct rcu_head rcu_head; | 272 | struct rcu_head rcu_head; |
275 | }; | 273 | }; |
276 | 274 | ||
275 | struct probe_resp { | ||
276 | struct rcu_head rcu_head; | ||
277 | int len; | ||
278 | u8 data[0]; | ||
279 | }; | ||
280 | |||
277 | struct ieee80211_if_ap { | 281 | struct ieee80211_if_ap { |
278 | struct beacon_data __rcu *beacon; | 282 | struct beacon_data __rcu *beacon; |
279 | struct sk_buff __rcu *probe_resp; | 283 | struct probe_resp __rcu *probe_resp; |
280 | 284 | ||
281 | struct list_head vlans; | 285 | struct list_head vlans; |
282 | 286 | ||
@@ -359,6 +363,7 @@ enum ieee80211_sta_flags { | |||
359 | IEEE80211_STA_NULLFUNC_ACKED = BIT(8), | 363 | IEEE80211_STA_NULLFUNC_ACKED = BIT(8), |
360 | IEEE80211_STA_RESET_SIGNAL_AVE = BIT(9), | 364 | IEEE80211_STA_RESET_SIGNAL_AVE = BIT(9), |
361 | IEEE80211_STA_DISABLE_40MHZ = BIT(10), | 365 | IEEE80211_STA_DISABLE_40MHZ = BIT(10), |
366 | IEEE80211_STA_DISABLE_VHT = BIT(11), | ||
362 | }; | 367 | }; |
363 | 368 | ||
364 | struct ieee80211_mgd_auth_data { | 369 | struct ieee80211_mgd_auth_data { |
@@ -1075,6 +1080,8 @@ struct ieee80211_local { | |||
1075 | struct idr ack_status_frames; | 1080 | struct idr ack_status_frames; |
1076 | spinlock_t ack_status_lock; | 1081 | spinlock_t ack_status_lock; |
1077 | 1082 | ||
1083 | struct ieee80211_sub_if_data __rcu *p2p_sdata; | ||
1084 | |||
1078 | /* dummy netdev for use w/ NAPI */ | 1085 | /* dummy netdev for use w/ NAPI */ |
1079 | struct net_device napi_dev; | 1086 | struct net_device napi_dev; |
1080 | 1087 | ||
@@ -1131,7 +1138,7 @@ struct ieee802_11_elems { | |||
1131 | u8 *prep; | 1138 | u8 *prep; |
1132 | u8 *perr; | 1139 | u8 *perr; |
1133 | struct ieee80211_rann_ie *rann; | 1140 | struct ieee80211_rann_ie *rann; |
1134 | u8 *ch_switch_elem; | 1141 | struct ieee80211_channel_sw_ie *ch_switch_ie; |
1135 | u8 *country_elem; | 1142 | u8 *country_elem; |
1136 | u8 *pwr_constr_elem; | 1143 | u8 *pwr_constr_elem; |
1137 | u8 *quiet_elem; /* first quite element */ | 1144 | u8 *quiet_elem; /* first quite element */ |
@@ -1157,7 +1164,6 @@ struct ieee802_11_elems { | |||
1157 | u8 preq_len; | 1164 | u8 preq_len; |
1158 | u8 prep_len; | 1165 | u8 prep_len; |
1159 | u8 perr_len; | 1166 | u8 perr_len; |
1160 | u8 ch_switch_elem_len; | ||
1161 | u8 country_elem_len; | 1167 | u8 country_elem_len; |
1162 | u8 pwr_constr_elem_len; | 1168 | u8 pwr_constr_elem_len; |
1163 | u8 quiet_elem_len; | 1169 | u8 quiet_elem_len; |
@@ -1202,6 +1208,7 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata, | |||
1202 | void ieee80211_send_pspoll(struct ieee80211_local *local, | 1208 | void ieee80211_send_pspoll(struct ieee80211_local *local, |
1203 | struct ieee80211_sub_if_data *sdata); | 1209 | struct ieee80211_sub_if_data *sdata); |
1204 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); | 1210 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); |
1211 | void ieee80211_recalc_ps_vif(struct ieee80211_sub_if_data *sdata); | ||
1205 | int ieee80211_max_network_latency(struct notifier_block *nb, | 1212 | int ieee80211_max_network_latency(struct notifier_block *nb, |
1206 | unsigned long data, void *dummy); | 1213 | unsigned long data, void *dummy); |
1207 | int ieee80211_set_arp_filter(struct ieee80211_sub_if_data *sdata); | 1214 | int ieee80211_set_arp_filter(struct ieee80211_sub_if_data *sdata); |
@@ -1291,6 +1298,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local); | |||
1291 | void ieee80211_recalc_idle(struct ieee80211_local *local); | 1298 | void ieee80211_recalc_idle(struct ieee80211_local *local); |
1292 | void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, | 1299 | void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, |
1293 | const int offset); | 1300 | const int offset); |
1301 | int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up); | ||
1302 | void ieee80211_sdata_stop(struct ieee80211_sub_if_data *sdata); | ||
1294 | 1303 | ||
1295 | static inline bool ieee80211_sdata_running(struct ieee80211_sub_if_data *sdata) | 1304 | static inline bool ieee80211_sdata_running(struct ieee80211_sub_if_data *sdata) |
1296 | { | 1305 | { |
@@ -1425,7 +1434,6 @@ void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, | |||
1425 | struct ieee80211_hdr *hdr); | 1434 | struct ieee80211_hdr *hdr); |
1426 | void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, | 1435 | void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, |
1427 | struct ieee80211_hdr *hdr, bool ack); | 1436 | struct ieee80211_hdr *hdr, bool ack); |
1428 | void ieee80211_beacon_connection_loss_work(struct work_struct *work); | ||
1429 | 1437 | ||
1430 | void ieee80211_wake_queues_by_reason(struct ieee80211_hw *hw, | 1438 | void ieee80211_wake_queues_by_reason(struct ieee80211_hw *hw, |
1431 | enum queue_stop_reason reason); | 1439 | enum queue_stop_reason reason); |
@@ -1457,13 +1465,15 @@ int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer, | |||
1457 | u8 channel); | 1465 | u8 channel); |
1458 | struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, | 1466 | struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, |
1459 | u8 *dst, u32 ratemask, | 1467 | u8 *dst, u32 ratemask, |
1468 | struct ieee80211_channel *chan, | ||
1460 | const u8 *ssid, size_t ssid_len, | 1469 | const u8 *ssid, size_t ssid_len, |
1461 | const u8 *ie, size_t ie_len, | 1470 | const u8 *ie, size_t ie_len, |
1462 | bool directed); | 1471 | bool directed); |
1463 | void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, | 1472 | void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, |
1464 | const u8 *ssid, size_t ssid_len, | 1473 | const u8 *ssid, size_t ssid_len, |
1465 | const u8 *ie, size_t ie_len, | 1474 | const u8 *ie, size_t ie_len, |
1466 | u32 ratemask, bool directed, bool no_cck); | 1475 | u32 ratemask, bool directed, bool no_cck, |
1476 | struct ieee80211_channel *channel); | ||
1467 | 1477 | ||
1468 | void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata, | 1478 | void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata, |
1469 | const size_t supp_rates_len, | 1479 | const size_t supp_rates_len, |
@@ -1487,9 +1497,11 @@ u8 *ieee80211_ie_build_ht_oper(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, | |||
1487 | u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, | 1497 | u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, |
1488 | u32 cap); | 1498 | u32 cap); |
1489 | int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, | 1499 | int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata, |
1490 | struct sk_buff *skb, bool need_basic); | 1500 | struct sk_buff *skb, bool need_basic, |
1501 | enum ieee80211_band band); | ||
1491 | int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, | 1502 | int ieee80211_add_ext_srates_ie(struct ieee80211_sub_if_data *sdata, |
1492 | struct sk_buff *skb, bool need_basic); | 1503 | struct sk_buff *skb, bool need_basic, |
1504 | enum ieee80211_band band); | ||
1493 | 1505 | ||
1494 | /* channel management */ | 1506 | /* channel management */ |
1495 | enum ieee80211_chan_mode { | 1507 | enum ieee80211_chan_mode { |