diff options
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/cfg80211.h | 60 | ||||
| -rw-r--r-- | include/net/mac80211.h | 40 |
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 | */ |
| 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 */ |
