diff options
| author | John W. Linville <linville@tuxdriver.com> | 2013-02-08 14:23:51 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-02-08 14:39:54 -0500 |
| commit | 3549c6b1953c3e951e71fbec94f9ed203c4754e7 (patch) | |
| tree | fb820b173e94f10f1e1fe39ed00e55505057d73f /include | |
| parent | b26f5f09ebdeb85ab152344cc1d6d484a3ce967d (diff) | |
| parent | 3f52b7e328c526fa7a592af9bf5772c591ed38a4 (diff) | |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Fixed-up drivers/net/wireless/iwlwifi/mvm/mac80211.c to change change
IEEE80211_HW_NEED_DTIM_PERIOD to IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC
as requested by Johannes Berg. -- JWL
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ieee80211.h | 8 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 60 | ||||
| -rw-r--r-- | include/net/mac80211.h | 40 | ||||
| -rw-r--r-- | include/uapi/linux/nl80211.h | 35 |
4 files changed, 119 insertions, 24 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 11c8bc87fdcb..7e8a498efe6d 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -151,6 +151,11 @@ | |||
| 151 | /* Mesh Control 802.11s */ | 151 | /* Mesh Control 802.11s */ |
| 152 | #define IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT 0x0100 | 152 | #define IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT 0x0100 |
| 153 | 153 | ||
| 154 | /* Mesh Power Save Level */ | ||
| 155 | #define IEEE80211_QOS_CTL_MESH_PS_LEVEL 0x0200 | ||
| 156 | /* Mesh Receiver Service Period Initiated */ | ||
| 157 | #define IEEE80211_QOS_CTL_RSPI 0x0400 | ||
| 158 | |||
| 154 | /* U-APSD queue for WMM IEs sent by AP */ | 159 | /* U-APSD queue for WMM IEs sent by AP */ |
| 155 | #define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7) | 160 | #define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7) |
| 156 | #define IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK 0x0f | 161 | #define IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK 0x0f |
| @@ -675,11 +680,14 @@ struct ieee80211_meshconf_ie { | |||
| 675 | * @IEEE80211_MESHCONF_CAPAB_FORWARDING: the STA forwards MSDUs | 680 | * @IEEE80211_MESHCONF_CAPAB_FORWARDING: the STA forwards MSDUs |
| 676 | * @IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING: TBTT adjustment procedure | 681 | * @IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING: TBTT adjustment procedure |
| 677 | * is ongoing | 682 | * is ongoing |
| 683 | * @IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL: STA is in deep sleep mode or has | ||
| 684 | * neighbors in deep sleep mode | ||
| 678 | */ | 685 | */ |
| 679 | enum mesh_config_capab_flags { | 686 | enum mesh_config_capab_flags { |
| 680 | IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS = 0x01, | 687 | IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS = 0x01, |
| 681 | IEEE80211_MESHCONF_CAPAB_FORWARDING = 0x08, | 688 | IEEE80211_MESHCONF_CAPAB_FORWARDING = 0x08, |
| 682 | IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING = 0x20, | 689 | IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING = 0x20, |
| 690 | IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL = 0x40, | ||
| 683 | }; | 691 | }; |
| 684 | 692 | ||
| 685 | /** | 693 | /** |
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 | */ |
| 1295 | struct cfg80211_bss { | 1298 | struct 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 | */ | ||
| 1617 | struct 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 | ||
| 3140 | struct 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 | */ | ||
| 3889 | void 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 | */ |
| 212 | enum ieee80211_bss_change { | 214 | enum 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 | */ |
| 1374 | enum ieee80211_hw_flags { | 1375 | enum 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 | */ |
| 4212 | int ieee80211_ave_rssi(struct ieee80211_vif *vif); | 4214 | int 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 | */ | ||
| 4224 | void 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 */ |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 5b7dbc1ea966..9a2ecdc4136c 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -513,6 +513,12 @@ | |||
| 513 | * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For | 513 | * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For |
| 514 | * more background information, see | 514 | * more background information, see |
| 515 | * http://wireless.kernel.org/en/users/Documentation/WoWLAN. | 515 | * http://wireless.kernel.org/en/users/Documentation/WoWLAN. |
| 516 | * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification | ||
| 517 | * from the driver reporting the wakeup reason. In this case, the | ||
| 518 | * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason | ||
| 519 | * for the wakeup, if it was caused by wireless. If it is not present | ||
| 520 | * in the wakeup notification, the wireless device didn't cause the | ||
| 521 | * wakeup but reports that it was woken up. | ||
| 516 | * | 522 | * |
| 517 | * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver | 523 | * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver |
| 518 | * the necessary information for supporting GTK rekey offload. This | 524 | * the necessary information for supporting GTK rekey offload. This |
| @@ -1851,6 +1857,8 @@ enum nl80211_sta_bss_param { | |||
| 1851 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) | 1857 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) |
| 1852 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) | 1858 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) |
| 1853 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) | 1859 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) |
| 1860 | * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) | ||
| 1861 | * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) | ||
| 1854 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) | 1862 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) |
| 1855 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute | 1863 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute |
| 1856 | * containing info as possible, see &enum nl80211_rate_info | 1864 | * containing info as possible, see &enum nl80211_rate_info |
| @@ -1903,6 +1911,8 @@ enum nl80211_sta_info { | |||
| 1903 | NL80211_STA_INFO_LOCAL_PM, | 1911 | NL80211_STA_INFO_LOCAL_PM, |
| 1904 | NL80211_STA_INFO_PEER_PM, | 1912 | NL80211_STA_INFO_PEER_PM, |
| 1905 | NL80211_STA_INFO_NONPEER_PM, | 1913 | NL80211_STA_INFO_NONPEER_PM, |
| 1914 | NL80211_STA_INFO_RX_BYTES64, | ||
| 1915 | NL80211_STA_INFO_TX_BYTES64, | ||
| 1906 | 1916 | ||
| 1907 | /* keep last */ | 1917 | /* keep last */ |
| 1908 | __NL80211_STA_INFO_AFTER_LAST, | 1918 | __NL80211_STA_INFO_AFTER_LAST, |
| @@ -2947,6 +2957,10 @@ struct nl80211_wowlan_pattern_support { | |||
| 2947 | * | 2957 | * |
| 2948 | * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute | 2958 | * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute |
| 2949 | * carrying a &struct nl80211_wowlan_pattern_support. | 2959 | * carrying a &struct nl80211_wowlan_pattern_support. |
| 2960 | * | ||
| 2961 | * When reporting wakeup. it is a u32 attribute containing the 0-based | ||
| 2962 | * index of the pattern that caused the wakeup, in the patterns passed | ||
| 2963 | * to the kernel when configuring. | ||
| 2950 | * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be | 2964 | * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be |
| 2951 | * used when setting, used only to indicate that GTK rekeying is supported | 2965 | * used when setting, used only to indicate that GTK rekeying is supported |
| 2952 | * by the device (flag) | 2966 | * by the device (flag) |
| @@ -2957,8 +2971,25 @@ struct nl80211_wowlan_pattern_support { | |||
| 2957 | * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) | 2971 | * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) |
| 2958 | * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released | 2972 | * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released |
| 2959 | * (on devices that have rfkill in the device) (flag) | 2973 | * (on devices that have rfkill in the device) (flag) |
| 2974 | * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains | ||
| 2975 | * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame | ||
| 2976 | * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN | ||
| 2977 | * attribute contains the original length. | ||
| 2978 | * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11 | ||
| 2979 | * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 | ||
| 2980 | * attribute if the packet was truncated somewhere. | ||
| 2981 | * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the | ||
| 2982 | * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may | ||
| 2983 | * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute | ||
| 2984 | * contains the original length. | ||
| 2985 | * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3 | ||
| 2986 | * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 | ||
| 2987 | * attribute if the packet was truncated somewhere. | ||
| 2960 | * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers | 2988 | * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers |
| 2961 | * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number | 2989 | * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number |
| 2990 | * | ||
| 2991 | * These nested attributes are used to configure the wakeup triggers and | ||
| 2992 | * to report the wakeup reason(s). | ||
| 2962 | */ | 2993 | */ |
| 2963 | enum nl80211_wowlan_triggers { | 2994 | enum nl80211_wowlan_triggers { |
| 2964 | __NL80211_WOWLAN_TRIG_INVALID, | 2995 | __NL80211_WOWLAN_TRIG_INVALID, |
| @@ -2971,6 +3002,10 @@ enum nl80211_wowlan_triggers { | |||
| 2971 | NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, | 3002 | NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, |
| 2972 | NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, | 3003 | NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, |
| 2973 | NL80211_WOWLAN_TRIG_RFKILL_RELEASE, | 3004 | NL80211_WOWLAN_TRIG_RFKILL_RELEASE, |
| 3005 | NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211, | ||
| 3006 | NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN, | ||
| 3007 | NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023, | ||
| 3008 | NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN, | ||
| 2974 | 3009 | ||
| 2975 | /* keep last */ | 3010 | /* keep last */ |
| 2976 | NUM_NL80211_WOWLAN_TRIG, | 3011 | NUM_NL80211_WOWLAN_TRIG, |
