aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h66
1 files changed, 52 insertions, 14 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 83d800c31e3c..0289d4ce7070 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -521,6 +521,7 @@ struct station_parameters {
521 * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled 521 * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled
522 * @STATION_INFO_STA_FLAGS: @sta_flags filled 522 * @STATION_INFO_STA_FLAGS: @sta_flags filled
523 * @STATION_INFO_BEACON_LOSS_COUNT: @beacon_loss_count filled 523 * @STATION_INFO_BEACON_LOSS_COUNT: @beacon_loss_count filled
524 * @STATION_INFO_T_OFFSET: @t_offset filled
524 */ 525 */
525enum station_info_flags { 526enum station_info_flags {
526 STATION_INFO_INACTIVE_TIME = 1<<0, 527 STATION_INFO_INACTIVE_TIME = 1<<0,
@@ -542,7 +543,8 @@ enum station_info_flags {
542 STATION_INFO_CONNECTED_TIME = 1<<16, 543 STATION_INFO_CONNECTED_TIME = 1<<16,
543 STATION_INFO_ASSOC_REQ_IES = 1<<17, 544 STATION_INFO_ASSOC_REQ_IES = 1<<17,
544 STATION_INFO_STA_FLAGS = 1<<18, 545 STATION_INFO_STA_FLAGS = 1<<18,
545 STATION_INFO_BEACON_LOSS_COUNT = 1<<19 546 STATION_INFO_BEACON_LOSS_COUNT = 1<<19,
547 STATION_INFO_T_OFFSET = 1<<20,
546}; 548};
547 549
548/** 550/**
@@ -643,6 +645,7 @@ struct sta_bss_parameters {
643 * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets. 645 * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets.
644 * @sta_flags: station flags mask & values 646 * @sta_flags: station flags mask & values
645 * @beacon_loss_count: Number of times beacon loss event has triggered. 647 * @beacon_loss_count: Number of times beacon loss event has triggered.
648 * @t_offset: Time offset of the station relative to this host.
646 */ 649 */
647struct station_info { 650struct station_info {
648 u32 filled; 651 u32 filled;
@@ -671,6 +674,7 @@ struct station_info {
671 size_t assoc_req_ies_len; 674 size_t assoc_req_ies_len;
672 675
673 u32 beacon_loss_count; 676 u32 beacon_loss_count;
677 s64 t_offset;
674 678
675 /* 679 /*
676 * Note: Add a new enum station_info_flags value for each new field and 680 * Note: Add a new enum station_info_flags value for each new field and
@@ -798,6 +802,8 @@ struct mesh_config {
798 /* ttl used in path selection information elements */ 802 /* ttl used in path selection information elements */
799 u8 element_ttl; 803 u8 element_ttl;
800 bool auto_open_plinks; 804 bool auto_open_plinks;
805 /* neighbor offset synchronization */
806 u32 dot11MeshNbrOffsetMaxNeighbor;
801 /* HWMP parameters */ 807 /* HWMP parameters */
802 u8 dot11MeshHWMPmaxPREQretries; 808 u8 dot11MeshHWMPmaxPREQretries;
803 u32 path_refresh_time; 809 u32 path_refresh_time;
@@ -815,12 +821,14 @@ struct mesh_config {
815 bool dot11MeshGateAnnouncementProtocol; 821 bool dot11MeshGateAnnouncementProtocol;
816 bool dot11MeshForwarding; 822 bool dot11MeshForwarding;
817 s32 rssi_threshold; 823 s32 rssi_threshold;
824 u16 ht_opmode;
818}; 825};
819 826
820/** 827/**
821 * struct mesh_setup - 802.11s mesh setup configuration 828 * struct mesh_setup - 802.11s mesh setup configuration
822 * @mesh_id: the mesh ID 829 * @mesh_id: the mesh ID
823 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes 830 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
831 * @sync_method: which synchronization method to use
824 * @path_sel_proto: which path selection protocol to use 832 * @path_sel_proto: which path selection protocol to use
825 * @path_metric: which metric to use 833 * @path_metric: which metric to use
826 * @ie: vendor information elements (optional) 834 * @ie: vendor information elements (optional)
@@ -834,8 +842,9 @@ struct mesh_config {
834struct mesh_setup { 842struct mesh_setup {
835 const u8 *mesh_id; 843 const u8 *mesh_id;
836 u8 mesh_id_len; 844 u8 mesh_id_len;
837 u8 path_sel_proto; 845 u8 sync_method;
838 u8 path_metric; 846 u8 path_sel_proto;
847 u8 path_metric;
839 const u8 *ie; 848 const u8 *ie;
840 u8 ie_len; 849 u8 ie_len;
841 bool is_authenticated; 850 bool is_authenticated;
@@ -845,7 +854,7 @@ struct mesh_setup {
845 854
846/** 855/**
847 * struct ieee80211_txq_params - TX queue parameters 856 * struct ieee80211_txq_params - TX queue parameters
848 * @queue: TX queue identifier (NL80211_TXQ_Q_*) 857 * @ac: AC identifier
849 * @txop: Maximum burst time in units of 32 usecs, 0 meaning disabled 858 * @txop: Maximum burst time in units of 32 usecs, 0 meaning disabled
850 * @cwmin: Minimum contention window [a value of the form 2^n-1 in the range 859 * @cwmin: Minimum contention window [a value of the form 2^n-1 in the range
851 * 1..32767] 860 * 1..32767]
@@ -854,7 +863,7 @@ struct mesh_setup {
854 * @aifs: Arbitration interframe space [0..255] 863 * @aifs: Arbitration interframe space [0..255]
855 */ 864 */
856struct ieee80211_txq_params { 865struct ieee80211_txq_params {
857 enum nl80211_txq_q queue; 866 enum nl80211_ac ac;
858 u16 txop; 867 u16 txop;
859 u16 cwmin; 868 u16 cwmin;
860 u16 cwmax; 869 u16 cwmax;
@@ -1336,6 +1345,9 @@ struct cfg80211_gtk_rekey_data {
1336 * be %NULL or contain the enabled Wake-on-Wireless triggers that are 1345 * be %NULL or contain the enabled Wake-on-Wireless triggers that are
1337 * configured for the device. 1346 * configured for the device.
1338 * @resume: wiphy device needs to be resumed 1347 * @resume: wiphy device needs to be resumed
1348 * @set_wakeup: Called when WoWLAN is enabled/disabled, use this callback
1349 * to call device_set_wakeup_enable() to enable/disable wakeup from
1350 * the device.
1339 * 1351 *
1340 * @add_virtual_intf: create a new virtual interface with the given name, 1352 * @add_virtual_intf: create a new virtual interface with the given name,
1341 * must set the struct wireless_dev's iftype. Beware: You must create 1353 * must set the struct wireless_dev's iftype. Beware: You must create
@@ -1503,10 +1515,21 @@ struct cfg80211_gtk_rekey_data {
1503 * later passes to cfg80211_probe_status(). 1515 * later passes to cfg80211_probe_status().
1504 * 1516 *
1505 * @set_noack_map: Set the NoAck Map for the TIDs. 1517 * @set_noack_map: Set the NoAck Map for the TIDs.
1518 *
1519 * @get_et_sset_count: Ethtool API to get string-set count.
1520 * See @ethtool_ops.get_sset_count
1521 *
1522 * @get_et_stats: Ethtool API to get a set of u64 stats.
1523 * See @ethtool_ops.get_ethtool_stats
1524 *
1525 * @get_et_strings: Ethtool API to get a set of strings to describe stats
1526 * and perhaps other supported types of ethtool data-sets.
1527 * See @ethtool_ops.get_strings
1506 */ 1528 */
1507struct cfg80211_ops { 1529struct cfg80211_ops {
1508 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); 1530 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
1509 int (*resume)(struct wiphy *wiphy); 1531 int (*resume)(struct wiphy *wiphy);
1532 void (*set_wakeup)(struct wiphy *wiphy, bool enabled);
1510 1533
1511 struct net_device * (*add_virtual_intf)(struct wiphy *wiphy, 1534 struct net_device * (*add_virtual_intf)(struct wiphy *wiphy,
1512 char *name, 1535 char *name,
@@ -1698,7 +1721,15 @@ struct cfg80211_ops {
1698 struct net_device *dev, 1721 struct net_device *dev,
1699 u16 noack_map); 1722 u16 noack_map);
1700 1723
1701 struct ieee80211_channel *(*get_channel)(struct wiphy *wiphy); 1724 struct ieee80211_channel *(*get_channel)(struct wiphy *wiphy,
1725 enum nl80211_channel_type *type);
1726
1727 int (*get_et_sset_count)(struct wiphy *wiphy,
1728 struct net_device *dev, int sset);
1729 void (*get_et_stats)(struct wiphy *wiphy, struct net_device *dev,
1730 struct ethtool_stats *stats, u64 *data);
1731 void (*get_et_strings)(struct wiphy *wiphy, struct net_device *dev,
1732 u32 sset, u8 *data);
1702}; 1733};
1703 1734
1704/* 1735/*
@@ -1732,10 +1763,6 @@ struct cfg80211_ops {
1732 * hints read the documenation for regulatory_hint_found_beacon() 1763 * hints read the documenation for regulatory_hint_found_beacon()
1733 * @WIPHY_FLAG_NETNS_OK: if not set, do not allow changing the netns of this 1764 * @WIPHY_FLAG_NETNS_OK: if not set, do not allow changing the netns of this
1734 * wiphy at all 1765 * wiphy at all
1735 * @WIPHY_FLAG_ENFORCE_COMBINATIONS: Set this flag to enforce interface
1736 * combinations for this device. This flag is used for backward
1737 * compatibility only until all drivers advertise combinations and
1738 * they will always be enforced.
1739 * @WIPHY_FLAG_PS_ON_BY_DEFAULT: if set to true, powersave will be enabled 1766 * @WIPHY_FLAG_PS_ON_BY_DEFAULT: if set to true, powersave will be enabled
1740 * by default -- this flag will be set depending on the kernel's default 1767 * by default -- this flag will be set depending on the kernel's default
1741 * on wiphy_new(), but can be changed by the driver if it has a good 1768 * on wiphy_new(), but can be changed by the driver if it has a good
@@ -1780,7 +1807,7 @@ enum wiphy_flags {
1780 WIPHY_FLAG_IBSS_RSN = BIT(8), 1807 WIPHY_FLAG_IBSS_RSN = BIT(8),
1781 WIPHY_FLAG_MESH_AUTH = BIT(10), 1808 WIPHY_FLAG_MESH_AUTH = BIT(10),
1782 WIPHY_FLAG_SUPPORTS_SCHED_SCAN = BIT(11), 1809 WIPHY_FLAG_SUPPORTS_SCHED_SCAN = BIT(11),
1783 WIPHY_FLAG_ENFORCE_COMBINATIONS = BIT(12), 1810 /* use hole at 12 */
1784 WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13), 1811 WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13),
1785 WIPHY_FLAG_AP_UAPSD = BIT(14), 1812 WIPHY_FLAG_AP_UAPSD = BIT(14),
1786 WIPHY_FLAG_SUPPORTS_TDLS = BIT(15), 1813 WIPHY_FLAG_SUPPORTS_TDLS = BIT(15),
@@ -3338,9 +3365,20 @@ void cfg80211_report_obss_beacon(struct wiphy *wiphy,
3338 * @chan: main channel 3365 * @chan: main channel
3339 * @channel_type: HT mode 3366 * @channel_type: HT mode
3340 */ 3367 */
3341int cfg80211_can_beacon_sec_chan(struct wiphy *wiphy, 3368bool cfg80211_can_beacon_sec_chan(struct wiphy *wiphy,
3342 struct ieee80211_channel *chan, 3369 struct ieee80211_channel *chan,
3343 enum nl80211_channel_type channel_type); 3370 enum nl80211_channel_type channel_type);
3371
3372/*
3373 * cfg80211_ch_switch_notify - update wdev channel and notify userspace
3374 * @dev: the device which switched channels
3375 * @freq: new channel frequency (in MHz)
3376 * @type: channel type
3377 *
3378 * Acquires wdev_lock, so must only be called from sleepable driver context!
3379 */
3380void cfg80211_ch_switch_notify(struct net_device *dev, int freq,
3381 enum nl80211_channel_type type);
3344 3382
3345/* 3383/*
3346 * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units) 3384 * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units)