diff options
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 66 |
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 | */ |
525 | enum station_info_flags { | 526 | enum 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 | */ |
647 | struct station_info { | 650 | struct 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 { | |||
834 | struct mesh_setup { | 842 | struct 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 | */ |
856 | struct ieee80211_txq_params { | 865 | struct 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 | */ |
1507 | struct cfg80211_ops { | 1529 | struct 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 | */ |
3341 | int cfg80211_can_beacon_sec_chan(struct wiphy *wiphy, | 3368 | bool 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 | */ | ||
3380 | void 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) |