aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h60
-rw-r--r--include/net/mac80211.h40
2 files changed, 76 insertions, 24 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 36e076e374d2..3ec70e1681d3 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -672,8 +672,10 @@ struct station_parameters {
672 * @STATION_INFO_SIGNAL: @signal filled 672 * @STATION_INFO_SIGNAL: @signal filled
673 * @STATION_INFO_TX_BITRATE: @txrate fields are filled 673 * @STATION_INFO_TX_BITRATE: @txrate fields are filled
674 * (tx_bitrate, tx_bitrate_flags and tx_bitrate_mcs) 674 * (tx_bitrate, tx_bitrate_flags and tx_bitrate_mcs)
675 * @STATION_INFO_RX_PACKETS: @rx_packets filled 675 * @STATION_INFO_RX_PACKETS: @rx_packets filled with 32-bit value
676 * @STATION_INFO_TX_PACKETS: @tx_packets filled 676 * @STATION_INFO_TX_PACKETS: @tx_packets filled with 32-bit value
677 * @STATION_INFO_RX_PACKETS64: @rx_packets filled with 64-bit value
678 * @STATION_INFO_TX_PACKETS64: @tx_packets filled with 64-bit value
677 * @STATION_INFO_TX_RETRIES: @tx_retries filled 679 * @STATION_INFO_TX_RETRIES: @tx_retries filled
678 * @STATION_INFO_TX_FAILED: @tx_failed filled 680 * @STATION_INFO_TX_FAILED: @tx_failed filled
679 * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled 681 * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled
@@ -714,6 +716,8 @@ enum station_info_flags {
714 STATION_INFO_LOCAL_PM = 1<<21, 716 STATION_INFO_LOCAL_PM = 1<<21,
715 STATION_INFO_PEER_PM = 1<<22, 717 STATION_INFO_PEER_PM = 1<<22,
716 STATION_INFO_NONPEER_PM = 1<<23, 718 STATION_INFO_NONPEER_PM = 1<<23,
719 STATION_INFO_RX_BYTES64 = 1<<24,
720 STATION_INFO_TX_BYTES64 = 1<<25,
717}; 721};
718 722
719/** 723/**
@@ -835,8 +839,8 @@ struct station_info {
835 u32 filled; 839 u32 filled;
836 u32 connected_time; 840 u32 connected_time;
837 u32 inactive_time; 841 u32 inactive_time;
838 u32 rx_bytes; 842 u64 rx_bytes;
839 u32 tx_bytes; 843 u64 tx_bytes;
840 u16 llid; 844 u16 llid;
841 u16 plid; 845 u16 plid;
842 u8 plink_state; 846 u8 plink_state;
@@ -1289,7 +1293,6 @@ struct cfg80211_bss_ies {
1289 * @beacon_ies: the information elements from the last Beacon frame 1293 * @beacon_ies: the information elements from the last Beacon frame
1290 * @proberesp_ies: the information elements from the last Probe Response frame 1294 * @proberesp_ies: the information elements from the last Probe Response frame
1291 * @signal: signal strength value (type depends on the wiphy's signal_type) 1295 * @signal: signal strength value (type depends on the wiphy's signal_type)
1292 * @free_priv: function pointer to free private data
1293 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes 1296 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
1294 */ 1297 */
1295struct cfg80211_bss { 1298struct cfg80211_bss {
@@ -1301,8 +1304,6 @@ struct cfg80211_bss {
1301 const struct cfg80211_bss_ies __rcu *beacon_ies; 1304 const struct cfg80211_bss_ies __rcu *beacon_ies;
1302 const struct cfg80211_bss_ies __rcu *proberesp_ies; 1305 const struct cfg80211_bss_ies __rcu *proberesp_ies;
1303 1306
1304 void (*free_priv)(struct cfg80211_bss *bss);
1305
1306 s32 signal; 1307 s32 signal;
1307 1308
1308 u16 beacon_interval; 1309 u16 beacon_interval;
@@ -1597,6 +1598,32 @@ struct cfg80211_wowlan {
1597}; 1598};
1598 1599
1599/** 1600/**
1601 * struct cfg80211_wowlan_wakeup - wakeup report
1602 * @disconnect: woke up by getting disconnected
1603 * @magic_pkt: woke up by receiving magic packet
1604 * @gtk_rekey_failure: woke up by GTK rekey failure
1605 * @eap_identity_req: woke up by EAP identity request packet
1606 * @four_way_handshake: woke up by 4-way handshake
1607 * @rfkill_release: woke up by rfkill being released
1608 * @pattern_idx: pattern that caused wakeup, -1 if not due to pattern
1609 * @packet_present_len: copied wakeup packet data
1610 * @packet_len: original wakeup packet length
1611 * @packet: The packet causing the wakeup, if any.
1612 * @packet_80211: For pattern match, magic packet and other data
1613 * frame triggers an 802.3 frame should be reported, for
1614 * disconnect due to deauth 802.11 frame. This indicates which
1615 * it is.
1616 */
1617struct cfg80211_wowlan_wakeup {
1618 bool disconnect, magic_pkt, gtk_rekey_failure,
1619 eap_identity_req, four_way_handshake,
1620 rfkill_release, packet_80211;
1621 s32 pattern_idx;
1622 u32 packet_present_len, packet_len;
1623 const void *packet;
1624};
1625
1626/**
1600 * struct cfg80211_gtk_rekey_data - rekey data 1627 * struct cfg80211_gtk_rekey_data - rekey data
1601 * @kek: key encryption key 1628 * @kek: key encryption key
1602 * @kck: key confirmation key 1629 * @kck: key confirmation key
@@ -3137,10 +3164,6 @@ cfg80211_get_ibss(struct wiphy *wiphy,
3137 WLAN_CAPABILITY_IBSS, WLAN_CAPABILITY_IBSS); 3164 WLAN_CAPABILITY_IBSS, WLAN_CAPABILITY_IBSS);
3138} 3165}
3139 3166
3140struct cfg80211_bss *cfg80211_get_mesh(struct wiphy *wiphy,
3141 struct ieee80211_channel *channel,
3142 const u8 *meshid, size_t meshidlen,
3143 const u8 *meshcfg);
3144/** 3167/**
3145 * cfg80211_ref_bss - reference BSS struct 3168 * cfg80211_ref_bss - reference BSS struct
3146 * @bss: the BSS struct to reference 3169 * @bss: the BSS struct to reference
@@ -3852,6 +3875,21 @@ int cfg80211_get_p2p_attr(const u8 *ies, unsigned int len,
3852 enum ieee80211_p2p_attr_id attr, 3875 enum ieee80211_p2p_attr_id attr,
3853 u8 *buf, unsigned int bufsize); 3876 u8 *buf, unsigned int bufsize);
3854 3877
3878/**
3879 * cfg80211_report_wowlan_wakeup - report wakeup from WoWLAN
3880 * @wdev: the wireless device reporting the wakeup
3881 * @wakeup: the wakeup report
3882 * @gfp: allocation flags
3883 *
3884 * This function reports that the given device woke up. If it
3885 * caused the wakeup, report the reason(s), otherwise you may
3886 * pass %NULL as the @wakeup parameter to advertise that something
3887 * else caused the wakeup.
3888 */
3889void cfg80211_report_wowlan_wakeup(struct wireless_dev *wdev,
3890 struct cfg80211_wowlan_wakeup *wakeup,
3891 gfp_t gfp);
3892
3855/* Logging, debugging and troubleshooting/diagnostic helpers. */ 3893/* Logging, debugging and troubleshooting/diagnostic helpers. */
3856 3894
3857/* wiphy_printk helpers, similar to dev_printk */ 3895/* wiphy_printk helpers, similar to dev_printk */
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5c98d654fc75..7da11211825d 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -208,6 +208,8 @@ struct ieee80211_chanctx_conf {
208 * @BSS_CHANGED_TXPOWER: TX power setting changed for this interface 208 * @BSS_CHANGED_TXPOWER: TX power setting changed for this interface
209 * @BSS_CHANGED_P2P_PS: P2P powersave settings (CTWindow, opportunistic PS) 209 * @BSS_CHANGED_P2P_PS: P2P powersave settings (CTWindow, opportunistic PS)
210 * changed (currently only in P2P client mode, GO mode will be later) 210 * changed (currently only in P2P client mode, GO mode will be later)
211 * @BSS_CHANGED_DTIM_PERIOD: the DTIM period value was changed (set when
212 * it becomes valid, managed mode only)
211 */ 213 */
212enum ieee80211_bss_change { 214enum ieee80211_bss_change {
213 BSS_CHANGED_ASSOC = 1<<0, 215 BSS_CHANGED_ASSOC = 1<<0,
@@ -230,6 +232,7 @@ enum ieee80211_bss_change {
230 BSS_CHANGED_PS = 1<<17, 232 BSS_CHANGED_PS = 1<<17,
231 BSS_CHANGED_TXPOWER = 1<<18, 233 BSS_CHANGED_TXPOWER = 1<<18,
232 BSS_CHANGED_P2P_PS = 1<<19, 234 BSS_CHANGED_P2P_PS = 1<<19,
235 BSS_CHANGED_DTIM_PERIOD = 1<<20,
233 236
234 /* when adding here, make sure to change ieee80211_reconfig */ 237 /* when adding here, make sure to change ieee80211_reconfig */
235}; 238};
@@ -271,9 +274,8 @@ enum ieee80211_rssi_event {
271 * if the hardware cannot handle this it must set the 274 * if the hardware cannot handle this it must set the
272 * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag 275 * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag
273 * @dtim_period: num of beacons before the next DTIM, for beaconing, 276 * @dtim_period: num of beacons before the next DTIM, for beaconing,
274 * valid in station mode only while @assoc is true and if also 277 * valid in station mode only if after the driver was notified
275 * requested by %IEEE80211_HW_NEED_DTIM_PERIOD (cf. also hw conf 278 * with the %BSS_CHANGED_DTIM_PERIOD flag, will be non-zero then.
276 * @ps_dtim_period)
277 * @sync_tsf: last beacon's/probe response's TSF timestamp (could be old 279 * @sync_tsf: last beacon's/probe response's TSF timestamp (could be old
278 * as it may have been received during scanning long ago) 280 * as it may have been received during scanning long ago)
279 * @sync_device_ts: the device timestamp corresponding to the sync_tsf, 281 * @sync_device_ts: the device timestamp corresponding to the sync_tsf,
@@ -406,6 +408,9 @@ struct ieee80211_bss_conf {
406 * @IEEE80211_TX_INTFL_RETRANSMISSION: This frame is being retransmitted 408 * @IEEE80211_TX_INTFL_RETRANSMISSION: This frame is being retransmitted
407 * after TX status because the destination was asleep, it must not 409 * after TX status because the destination was asleep, it must not
408 * be modified again (no seqno assignment, crypto, etc.) 410 * be modified again (no seqno assignment, crypto, etc.)
411 * @IEEE80211_TX_INTFL_MLME_CONN_TX: This frame was transmitted by the MLME
412 * code for connection establishment, this indicates that its status
413 * should kick the MLME state machine.
409 * @IEEE80211_TX_INTFL_NL80211_FRAME_TX: Frame was requested through nl80211 414 * @IEEE80211_TX_INTFL_NL80211_FRAME_TX: Frame was requested through nl80211
410 * MLME command (internal to mac80211 to figure out whether to send TX 415 * MLME command (internal to mac80211 to figure out whether to send TX
411 * status to user space) 416 * status to user space)
@@ -457,7 +462,7 @@ enum mac80211_tx_control_flags {
457 IEEE80211_TX_CTL_NO_PS_BUFFER = BIT(17), 462 IEEE80211_TX_CTL_NO_PS_BUFFER = BIT(17),
458 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18), 463 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18),
459 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19), 464 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19),
460 /* hole at 20, use later */ 465 IEEE80211_TX_INTFL_MLME_CONN_TX = BIT(20),
461 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21), 466 IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21),
462 IEEE80211_TX_CTL_LDPC = BIT(22), 467 IEEE80211_TX_CTL_LDPC = BIT(22),
463 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24), 468 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24),
@@ -1328,9 +1333,9 @@ struct ieee80211_tx_control {
1328 * When this flag is set, signaling beacon-loss will cause an immediate 1333 * When this flag is set, signaling beacon-loss will cause an immediate
1329 * change to disassociated state. 1334 * change to disassociated state.
1330 * 1335 *
1331 * @IEEE80211_HW_NEED_DTIM_PERIOD: 1336 * @IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC:
1332 * This device needs to know the DTIM period for the BSS before 1337 * This device needs to get data from beacon before association (i.e.
1333 * associating. 1338 * dtim_period).
1334 * 1339 *
1335 * @IEEE80211_HW_SUPPORTS_PER_STA_GTK: The device's crypto engine supports 1340 * @IEEE80211_HW_SUPPORTS_PER_STA_GTK: The device's crypto engine supports
1336 * per-station GTKs as used by IBSS RSN or during fast transition. If 1341 * per-station GTKs as used by IBSS RSN or during fast transition. If
@@ -1366,10 +1371,6 @@ struct ieee80211_tx_control {
1366 * @IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF: Use the P2P Device address for any 1371 * @IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF: Use the P2P Device address for any
1367 * P2P Interface. This will be honoured even if more than one interface 1372 * P2P Interface. This will be honoured even if more than one interface
1368 * is supported. 1373 * is supported.
1369 *
1370 * @IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL: On this hardware TX BA session
1371 * should be tear down once BAR frame will not be acked.
1372 *
1373 */ 1374 */
1374enum ieee80211_hw_flags { 1375enum ieee80211_hw_flags {
1375 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, 1376 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
@@ -1379,7 +1380,7 @@ enum ieee80211_hw_flags {
1379 IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, 1380 IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4,
1380 IEEE80211_HW_SIGNAL_UNSPEC = 1<<5, 1381 IEEE80211_HW_SIGNAL_UNSPEC = 1<<5,
1381 IEEE80211_HW_SIGNAL_DBM = 1<<6, 1382 IEEE80211_HW_SIGNAL_DBM = 1<<6,
1382 IEEE80211_HW_NEED_DTIM_PERIOD = 1<<7, 1383 IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 1<<7,
1383 IEEE80211_HW_SPECTRUM_MGMT = 1<<8, 1384 IEEE80211_HW_SPECTRUM_MGMT = 1<<8,
1384 IEEE80211_HW_AMPDU_AGGREGATION = 1<<9, 1385 IEEE80211_HW_AMPDU_AGGREGATION = 1<<9,
1385 IEEE80211_HW_SUPPORTS_PS = 1<<10, 1386 IEEE80211_HW_SUPPORTS_PS = 1<<10,
@@ -1398,7 +1399,6 @@ enum ieee80211_hw_flags {
1398 IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 1<<23, 1399 IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 1<<23,
1399 IEEE80211_HW_SCAN_WHILE_IDLE = 1<<24, 1400 IEEE80211_HW_SCAN_WHILE_IDLE = 1<<24,
1400 IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25, 1401 IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25,
1401 IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL = 1<<26,
1402}; 1402};
1403 1403
1404/** 1404/**
@@ -3877,6 +3877,8 @@ void ieee80211_beacon_loss(struct ieee80211_vif *vif);
3877 * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER, and 3877 * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER, and
3878 * %IEEE80211_CONF_PS and %IEEE80211_HW_CONNECTION_MONITOR are set, the driver 3878 * %IEEE80211_CONF_PS and %IEEE80211_HW_CONNECTION_MONITOR are set, the driver
3879 * needs to inform if the connection to the AP has been lost. 3879 * needs to inform if the connection to the AP has been lost.
3880 * The function may also be called if the connection needs to be terminated
3881 * for some other reason, even if %IEEE80211_HW_CONNECTION_MONITOR isn't set.
3880 * 3882 *
3881 * This function will cause immediate change to disassociated state, 3883 * This function will cause immediate change to disassociated state,
3882 * without connection recovery attempts. 3884 * without connection recovery attempts.
@@ -4211,4 +4213,16 @@ void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif);
4211 */ 4213 */
4212int ieee80211_ave_rssi(struct ieee80211_vif *vif); 4214int ieee80211_ave_rssi(struct ieee80211_vif *vif);
4213 4215
4216/**
4217 * ieee80211_report_wowlan_wakeup - report WoWLAN wakeup
4218 * @vif: virtual interface
4219 * @wakeup: wakeup reason(s)
4220 * @gfp: allocation flags
4221 *
4222 * See cfg80211_report_wowlan_wakeup().
4223 */
4224void ieee80211_report_wowlan_wakeup(struct ieee80211_vif *vif,
4225 struct cfg80211_wowlan_wakeup *wakeup,
4226 gfp_t gfp);
4227
4214#endif /* MAC80211_H */ 4228#endif /* MAC80211_H */