diff options
| author | John W. Linville <linville@tuxdriver.com> | 2013-04-22 14:58:14 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-04-22 14:58:14 -0400 |
| commit | 6475cb05ee17870c7c8d44146dbe09044e6db33d (patch) | |
| tree | 68fc82e4b9c4c4a1b261869add66bef3ee054926 /include/net | |
| parent | e563589f7187699b0217854467d857f53b29cc50 (diff) | |
| parent | 1eb32179f0593051e7536378a879f5bdd108416a (diff) | |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/cfg80211.h | 34 | ||||
| -rw-r--r-- | include/net/mac80211.h | 90 |
2 files changed, 114 insertions, 10 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 57870b646974..26b5b692c22b 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -2002,6 +2002,12 @@ struct cfg80211_update_ft_ies_params { | |||
| 2002 | * @update_ft_ies: Provide updated Fast BSS Transition information to the | 2002 | * @update_ft_ies: Provide updated Fast BSS Transition information to the |
| 2003 | * driver. If the SME is in the driver/firmware, this information can be | 2003 | * driver. If the SME is in the driver/firmware, this information can be |
| 2004 | * used in building Authentication and Reassociation Request frames. | 2004 | * used in building Authentication and Reassociation Request frames. |
| 2005 | * | ||
| 2006 | * @crit_proto_start: Indicates a critical protocol needs more link reliability | ||
| 2007 | * for a given duration (milliseconds). The protocol is provided so the | ||
| 2008 | * driver can take the most appropriate actions. | ||
| 2009 | * @crit_proto_stop: Indicates critical protocol no longer needs increased link | ||
| 2010 | * reliability. This operation can not fail. | ||
| 2005 | */ | 2011 | */ |
| 2006 | struct cfg80211_ops { | 2012 | struct cfg80211_ops { |
| 2007 | int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); | 2013 | int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); |
| @@ -2231,6 +2237,12 @@ struct cfg80211_ops { | |||
| 2231 | struct cfg80211_chan_def *chandef); | 2237 | struct cfg80211_chan_def *chandef); |
| 2232 | int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev, | 2238 | int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev, |
| 2233 | struct cfg80211_update_ft_ies_params *ftie); | 2239 | struct cfg80211_update_ft_ies_params *ftie); |
| 2240 | int (*crit_proto_start)(struct wiphy *wiphy, | ||
| 2241 | struct wireless_dev *wdev, | ||
| 2242 | enum nl80211_crit_proto_id protocol, | ||
| 2243 | u16 duration); | ||
| 2244 | void (*crit_proto_stop)(struct wiphy *wiphy, | ||
| 2245 | struct wireless_dev *wdev); | ||
| 2234 | }; | 2246 | }; |
| 2235 | 2247 | ||
| 2236 | /* | 2248 | /* |
| @@ -4024,6 +4036,17 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy, | |||
| 4024 | void cfg80211_ch_switch_notify(struct net_device *dev, | 4036 | void cfg80211_ch_switch_notify(struct net_device *dev, |
| 4025 | struct cfg80211_chan_def *chandef); | 4037 | struct cfg80211_chan_def *chandef); |
| 4026 | 4038 | ||
| 4039 | /** | ||
| 4040 | * ieee80211_operating_class_to_band - convert operating class to band | ||
| 4041 | * | ||
| 4042 | * @operating_class: the operating class to convert | ||
| 4043 | * @band: band pointer to fill | ||
| 4044 | * | ||
| 4045 | * Returns %true if the conversion was successful, %false otherwise. | ||
| 4046 | */ | ||
| 4047 | bool ieee80211_operating_class_to_band(u8 operating_class, | ||
| 4048 | enum ieee80211_band *band); | ||
| 4049 | |||
| 4027 | /* | 4050 | /* |
| 4028 | * cfg80211_tdls_oper_request - request userspace to perform TDLS operation | 4051 | * cfg80211_tdls_oper_request - request userspace to perform TDLS operation |
| 4029 | * @dev: the device on which the operation is requested | 4052 | * @dev: the device on which the operation is requested |
| @@ -4126,6 +4149,17 @@ void cfg80211_report_wowlan_wakeup(struct wireless_dev *wdev, | |||
| 4126 | struct cfg80211_wowlan_wakeup *wakeup, | 4149 | struct cfg80211_wowlan_wakeup *wakeup, |
| 4127 | gfp_t gfp); | 4150 | gfp_t gfp); |
| 4128 | 4151 | ||
| 4152 | /** | ||
| 4153 | * cfg80211_crit_proto_stopped() - indicate critical protocol stopped by driver. | ||
| 4154 | * | ||
| 4155 | * @wdev: the wireless device for which critical protocol is stopped. | ||
| 4156 | * | ||
| 4157 | * This function can be called by the driver to indicate it has reverted | ||
| 4158 | * operation back to normal. One reason could be that the duration given | ||
| 4159 | * by .crit_proto_start() has expired. | ||
| 4160 | */ | ||
| 4161 | void cfg80211_crit_proto_stopped(struct wireless_dev *wdev, gfp_t gfp); | ||
| 4162 | |||
| 4129 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ | 4163 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ |
| 4130 | 4164 | ||
| 4131 | /* wiphy_printk helpers, similar to dev_printk */ | 4165 | /* wiphy_printk helpers, similar to dev_printk */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 64faf015dd1e..04c2d4670dc6 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -128,6 +128,7 @@ enum ieee80211_ac_numbers { | |||
| 128 | * 2^n-1 in the range 1..32767] | 128 | * 2^n-1 in the range 1..32767] |
| 129 | * @cw_max: maximum contention window [like @cw_min] | 129 | * @cw_max: maximum contention window [like @cw_min] |
| 130 | * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled | 130 | * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled |
| 131 | * @acm: is mandatory admission control required for the access category | ||
| 131 | * @uapsd: is U-APSD mode enabled for the queue | 132 | * @uapsd: is U-APSD mode enabled for the queue |
| 132 | */ | 133 | */ |
| 133 | struct ieee80211_tx_queue_params { | 134 | struct ieee80211_tx_queue_params { |
| @@ -135,6 +136,7 @@ struct ieee80211_tx_queue_params { | |||
| 135 | u16 cw_min; | 136 | u16 cw_min; |
| 136 | u16 cw_max; | 137 | u16 cw_max; |
| 137 | u8 aifs; | 138 | u8 aifs; |
| 139 | bool acm; | ||
| 138 | bool uapsd; | 140 | bool uapsd; |
| 139 | }; | 141 | }; |
| 140 | 142 | ||
| @@ -209,7 +211,7 @@ struct ieee80211_chanctx_conf { | |||
| 209 | * @BSS_CHANGED_QOS: QoS for this association was enabled/disabled. Note | 211 | * @BSS_CHANGED_QOS: QoS for this association was enabled/disabled. Note |
| 210 | * that it is only ever disabled for station mode. | 212 | * that it is only ever disabled for station mode. |
| 211 | * @BSS_CHANGED_IDLE: Idle changed for this BSS/interface. | 213 | * @BSS_CHANGED_IDLE: Idle changed for this BSS/interface. |
| 212 | * @BSS_CHANGED_SSID: SSID changed for this BSS (AP mode) | 214 | * @BSS_CHANGED_SSID: SSID changed for this BSS (AP and IBSS mode) |
| 213 | * @BSS_CHANGED_AP_PROBE_RESP: Probe Response changed for this BSS (AP mode) | 215 | * @BSS_CHANGED_AP_PROBE_RESP: Probe Response changed for this BSS (AP mode) |
| 214 | * @BSS_CHANGED_PS: PS changed for this BSS (STA mode) | 216 | * @BSS_CHANGED_PS: PS changed for this BSS (STA mode) |
| 215 | * @BSS_CHANGED_TXPOWER: TX power setting changed for this interface | 217 | * @BSS_CHANGED_TXPOWER: TX power setting changed for this interface |
| @@ -326,7 +328,7 @@ enum ieee80211_rssi_event { | |||
| 326 | * your driver/device needs to do. | 328 | * your driver/device needs to do. |
| 327 | * @ps: power-save mode (STA only). This flag is NOT affected by | 329 | * @ps: power-save mode (STA only). This flag is NOT affected by |
| 328 | * offchannel/dynamic_ps operations. | 330 | * offchannel/dynamic_ps operations. |
| 329 | * @ssid: The SSID of the current vif. Only valid in AP-mode. | 331 | * @ssid: The SSID of the current vif. Valid in AP and IBSS mode. |
| 330 | * @ssid_len: Length of SSID given in @ssid. | 332 | * @ssid_len: Length of SSID given in @ssid. |
| 331 | * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode. | 333 | * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode. |
| 332 | * @txpower: TX power in dBm | 334 | * @txpower: TX power in dBm |
| @@ -561,6 +563,9 @@ enum mac80211_rate_control_flags { | |||
| 561 | /* maximum number of rate stages */ | 563 | /* maximum number of rate stages */ |
| 562 | #define IEEE80211_TX_MAX_RATES 4 | 564 | #define IEEE80211_TX_MAX_RATES 4 |
| 563 | 565 | ||
| 566 | /* maximum number of rate table entries */ | ||
| 567 | #define IEEE80211_TX_RATE_TABLE_SIZE 4 | ||
| 568 | |||
| 564 | /** | 569 | /** |
| 565 | * struct ieee80211_tx_rate - rate selection/status | 570 | * struct ieee80211_tx_rate - rate selection/status |
| 566 | * | 571 | * |
| @@ -601,8 +606,8 @@ static inline void ieee80211_rate_set_vht(struct ieee80211_tx_rate *rate, | |||
| 601 | u8 mcs, u8 nss) | 606 | u8 mcs, u8 nss) |
| 602 | { | 607 | { |
| 603 | WARN_ON(mcs & ~0xF); | 608 | WARN_ON(mcs & ~0xF); |
| 604 | WARN_ON(nss & ~0x7); | 609 | WARN_ON((nss - 1) & ~0x7); |
| 605 | rate->idx = (nss << 4) | mcs; | 610 | rate->idx = ((nss - 1) << 4) | mcs; |
| 606 | } | 611 | } |
| 607 | 612 | ||
| 608 | static inline u8 | 613 | static inline u8 |
| @@ -614,7 +619,7 @@ ieee80211_rate_get_vht_mcs(const struct ieee80211_tx_rate *rate) | |||
| 614 | static inline u8 | 619 | static inline u8 |
| 615 | ieee80211_rate_get_vht_nss(const struct ieee80211_tx_rate *rate) | 620 | ieee80211_rate_get_vht_nss(const struct ieee80211_tx_rate *rate) |
| 616 | { | 621 | { |
| 617 | return rate->idx >> 4; | 622 | return (rate->idx >> 4) + 1; |
| 618 | } | 623 | } |
| 619 | 624 | ||
| 620 | /** | 625 | /** |
| @@ -655,7 +660,11 @@ struct ieee80211_tx_info { | |||
| 655 | struct ieee80211_tx_rate rates[ | 660 | struct ieee80211_tx_rate rates[ |
| 656 | IEEE80211_TX_MAX_RATES]; | 661 | IEEE80211_TX_MAX_RATES]; |
| 657 | s8 rts_cts_rate_idx; | 662 | s8 rts_cts_rate_idx; |
| 658 | /* 3 bytes free */ | 663 | u8 use_rts:1; |
| 664 | u8 use_cts_prot:1; | ||
| 665 | u8 short_preamble:1; | ||
| 666 | u8 skip_table:1; | ||
| 667 | /* 2 bytes free */ | ||
| 659 | }; | 668 | }; |
| 660 | /* only needed before rate control */ | 669 | /* only needed before rate control */ |
| 661 | unsigned long jiffies; | 670 | unsigned long jiffies; |
| @@ -676,6 +685,8 @@ struct ieee80211_tx_info { | |||
| 676 | struct { | 685 | struct { |
| 677 | struct ieee80211_tx_rate driver_rates[ | 686 | struct ieee80211_tx_rate driver_rates[ |
| 678 | IEEE80211_TX_MAX_RATES]; | 687 | IEEE80211_TX_MAX_RATES]; |
| 688 | u8 pad[4]; | ||
| 689 | |||
| 679 | void *rate_driver_data[ | 690 | void *rate_driver_data[ |
| 680 | IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)]; | 691 | IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)]; |
| 681 | }; | 692 | }; |
| @@ -1017,13 +1028,13 @@ struct ieee80211_conf { | |||
| 1017 | * the driver passed into mac80211. | 1028 | * the driver passed into mac80211. |
| 1018 | * @block_tx: Indicates whether transmission must be blocked before the | 1029 | * @block_t |
