diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-12-04 11:29:10 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-12-04 11:29:10 -0500 |
commit | de51f1649ab77f9ad17bdad581a326cbf6e71b49 (patch) | |
tree | 82aa375e132b3c639afe239c4e49363636199827 /include/net | |
parent | 04bb7ecf8854186f47fb1ea321fc77e7bc931993 (diff) | |
parent | f027c2aca0cf43e0f15fc8de8841f7b566163d94 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg <johannes@sipsolutions.net> says:
"This time I have Felix's no-status rate control work, which will allow
drivers to work better with rate control even if they don't have perfect
status reporting. In addition to this, a small hwsim fix from Patrik,
one of the regulatory patches from Arik, and a number of cleanups and
fixes I did myself.
Of note is a patch where I disable CFG80211_WEXT so that compatibility
is no longer selectable - this is intended as a wake-up call for anyone
who's still using it, and is still easily worked around (it's a one-line
patch) before we fully remove the code as well in the future."
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 63 | ||||
-rw-r--r-- | include/net/mac80211.h | 32 | ||||
-rw-r--r-- | include/net/regulatory.h | 12 |
3 files changed, 80 insertions, 27 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index bb748c4da5af..4ebb816241fa 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -4643,33 +4643,6 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev, | |||
4643 | gfp_t gfp); | 4643 | gfp_t gfp); |
4644 | 4644 | ||
4645 | /** | 4645 | /** |
4646 | * cfg80211_radar_event - radar detection event | ||
4647 | * @wiphy: the wiphy | ||
4648 | * @chandef: chandef for the current channel | ||
4649 | * @gfp: context flags | ||
4650 | * | ||
4651 | * This function is called when a radar is detected on the current chanenl. | ||
4652 | */ | ||
4653 | void cfg80211_radar_event(struct wiphy *wiphy, | ||
4654 | struct cfg80211_chan_def *chandef, gfp_t gfp); | ||
4655 | |||
4656 | /** | ||
4657 | * cfg80211_cac_event - Channel availability check (CAC) event | ||
4658 | * @netdev: network device | ||
4659 | * @chandef: chandef for the current channel | ||
4660 | * @event: type of event | ||
4661 | * @gfp: context flags | ||
4662 | * | ||
4663 | * This function is called when a Channel availability check (CAC) is finished | ||
4664 | * or aborted. This must be called to notify the completion of a CAC process, | ||
4665 | * also by full-MAC drivers. | ||
4666 | */ | ||
4667 | void cfg80211_cac_event(struct net_device *netdev, | ||
4668 | const struct cfg80211_chan_def *chandef, | ||
4669 | enum nl80211_radar_event event, gfp_t gfp); | ||
4670 | |||
4671 | |||
4672 | /** | ||
4673 | * cfg80211_cqm_pktloss_notify - notify userspace about packetloss to peer | 4646 | * cfg80211_cqm_pktloss_notify - notify userspace about packetloss to peer |
4674 | * @dev: network device | 4647 | * @dev: network device |
4675 | * @peer: peer's MAC address | 4648 | * @peer: peer's MAC address |
@@ -4697,6 +4670,42 @@ void cfg80211_cqm_txe_notify(struct net_device *dev, const u8 *peer, | |||
4697 | u32 num_packets, u32 rate, u32 intvl, gfp_t gfp); | 4670 | u32 num_packets, u32 rate, u32 intvl, gfp_t gfp); |
4698 | 4671 | ||
4699 | /** | 4672 | /** |
4673 | * cfg80211_cqm_beacon_loss_notify - beacon loss event | ||
4674 | * @dev: network device | ||
4675 | * @gfp: context flags | ||
4676 | * | ||
4677 | * Notify userspace about beacon loss from the connected AP. | ||
4678 | */ | ||
4679 | void cfg80211_cqm_beacon_loss_notify(struct net_device *dev, gfp_t gfp); | ||
4680 | |||
4681 | /** | ||
4682 | * cfg80211_radar_event - radar detection event | ||
4683 | * @wiphy: the wiphy | ||
4684 | * @chandef: chandef for the current channel | ||
4685 | * @gfp: context flags | ||
4686 | * | ||
4687 | * This function is called when a radar is detected on the current chanenl. | ||
4688 | */ | ||
4689 | void cfg80211_radar_event(struct wiphy *wiphy, | ||
4690 | struct cfg80211_chan_def *chandef, gfp_t gfp); | ||
4691 | |||
4692 | /** | ||
4693 | * cfg80211_cac_event - Channel availability check (CAC) event | ||
4694 | * @netdev: network device | ||
4695 | * @chandef: chandef for the current channel | ||
4696 | * @event: type of event | ||
4697 | * @gfp: context flags | ||
4698 | * | ||
4699 | * This function is called when a Channel availability check (CAC) is finished | ||
4700 | * or aborted. This must be called to notify the completion of a CAC process, | ||
4701 | * also by full-MAC drivers. | ||
4702 | */ | ||
4703 | void cfg80211_cac_event(struct net_device *netdev, | ||
4704 | const struct cfg80211_chan_def *chandef, | ||
4705 | enum nl80211_radar_event event, gfp_t gfp); | ||
4706 | |||
4707 | |||
4708 | /** | ||
4700 | * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying | 4709 | * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying |
4701 | * @dev: network device | 4710 | * @dev: network device |
4702 | * @bssid: BSSID of AP (to avoid races) | 4711 | * @bssid: BSSID of AP (to avoid races) |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index cff3a26a9dae..58d719ddaa60 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -3619,6 +3619,26 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, | |||
3619 | struct sk_buff *skb); | 3619 | struct sk_buff *skb); |
3620 | 3620 | ||
3621 | /** | 3621 | /** |
3622 | * ieee80211_tx_status_noskb - transmit status callback without skb | ||
3623 | * | ||
3624 | * This function can be used as a replacement for ieee80211_tx_status | ||
3625 | * in drivers that cannot reliably map tx status information back to | ||
3626 | * specific skbs. | ||
3627 | * | ||
3628 | * Calls to this function for a single hardware must be synchronized | ||
3629 | * against each other. Calls to this function, ieee80211_tx_status_ni() | ||
3630 | * and ieee80211_tx_status_irqsafe() may not be mixed for a single hardware. | ||
3631 | * | ||
3632 | * @hw: the hardware the frame was transmitted by | ||
3633 | * @sta: the receiver station to which this packet is sent | ||
3634 | * (NULL for multicast packets) | ||
3635 | * @info: tx status information | ||
3636 | */ | ||
3637 | void ieee80211_tx_status_noskb(struct ieee80211_hw *hw, | ||
3638 | struct ieee80211_sta *sta, | ||
3639 | struct ieee80211_tx_info *info); | ||
3640 | |||
3641 | /** | ||
3622 | * ieee80211_tx_status_ni - transmit status callback (in process context) | 3642 | * ieee80211_tx_status_ni - transmit status callback (in process context) |
3623 | * | 3643 | * |
3624 | * Like ieee80211_tx_status() but can be called in process context. | 3644 | * Like ieee80211_tx_status() but can be called in process context. |
@@ -4672,6 +4692,14 @@ void ieee80211_cqm_rssi_notify(struct ieee80211_vif *vif, | |||
4672 | gfp_t gfp); | 4692 | gfp_t gfp); |
4673 | 4693 | ||
4674 | /** | 4694 | /** |
4695 | * ieee80211_cqm_beacon_loss_notify - inform CQM of beacon loss | ||
4696 | * | ||
4697 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. | ||
4698 | * @gfp: context flags | ||
4699 | */ | ||
4700 | void ieee80211_cqm_beacon_loss_notify(struct ieee80211_vif *vif, gfp_t gfp); | ||
4701 | |||
4702 | /** | ||
4675 | * ieee80211_radar_detected - inform that a radar was detected | 4703 | * ieee80211_radar_detected - inform that a radar was detected |
4676 | * | 4704 | * |
4677 | * @hw: pointer as obtained from ieee80211_alloc_hw() | 4705 | * @hw: pointer as obtained from ieee80211_alloc_hw() |
@@ -4829,6 +4857,10 @@ struct rate_control_ops { | |||
4829 | void (*free_sta)(void *priv, struct ieee80211_sta *sta, | 4857 | void (*free_sta)(void *priv, struct ieee80211_sta *sta, |
4830 | void *priv_sta); | 4858 | void *priv_sta); |
4831 | 4859 | ||
4860 | void (*tx_status_noskb)(void *priv, | ||
4861 | struct ieee80211_supported_band *sband, | ||
4862 | struct ieee80211_sta *sta, void *priv_sta, | ||
4863 | struct ieee80211_tx_info *info); | ||
4832 | void (*tx_status)(void *priv, struct ieee80211_supported_band *sband, | 4864 | void (*tx_status)(void *priv, struct ieee80211_supported_band *sband, |
4833 | struct ieee80211_sta *sta, void *priv_sta, | 4865 | struct ieee80211_sta *sta, void *priv_sta, |
4834 | struct sk_buff *skb); | 4866 | struct sk_buff *skb); |
diff --git a/include/net/regulatory.h b/include/net/regulatory.h index dad7ab20a8cb..b776d72d84be 100644 --- a/include/net/regulatory.h +++ b/include/net/regulatory.h | |||
@@ -136,6 +136,17 @@ struct regulatory_request { | |||
136 | * otherwise initiating radiation is not allowed. This will enable the | 136 | * otherwise initiating radiation is not allowed. This will enable the |
137 | * relaxations enabled under the CFG80211_REG_RELAX_NO_IR configuration | 137 | * relaxations enabled under the CFG80211_REG_RELAX_NO_IR configuration |
138 | * option | 138 | * option |
139 | * @REGULATORY_IGNORE_STALE_KICKOFF: the regulatory core will _not_ make sure | ||
140 | * all interfaces on this wiphy reside on allowed channels. If this flag | ||
141 | * is not set, upon a regdomain change, the interfaces are given a grace | ||
142 | * period (currently 60 seconds) to disconnect or move to an allowed | ||
143 | * channel. Interfaces on forbidden channels are forcibly disconnected. | ||
144 | * Currently these types of interfaces are supported for enforcement: | ||
145 | * NL80211_IFTYPE_ADHOC, NL80211_IFTYPE_STATION, NL80211_IFTYPE_AP, | ||
146 | * NL80211_IFTYPE_AP_VLAN, NL80211_IFTYPE_MONITOR, | ||
147 | * NL80211_IFTYPE_P2P_CLIENT, NL80211_IFTYPE_P2P_GO, | ||
148 | * NL80211_IFTYPE_P2P_DEVICE. The flag will be set by default if a device | ||
149 | * includes any modes unsupported for enforcement checking. | ||
139 | */ | 150 | */ |
140 | enum ieee80211_regulatory_flags { | 151 | enum ieee80211_regulatory_flags { |
141 | REGULATORY_CUSTOM_REG = BIT(0), | 152 | REGULATORY_CUSTOM_REG = BIT(0), |
@@ -144,6 +155,7 @@ enum ieee80211_regulatory_flags { | |||
144 | REGULATORY_COUNTRY_IE_FOLLOW_POWER = BIT(3), | 155 | REGULATORY_COUNTRY_IE_FOLLOW_POWER = BIT(3), |
145 | REGULATORY_COUNTRY_IE_IGNORE = BIT(4), | 156 | REGULATORY_COUNTRY_IE_IGNORE = BIT(4), |
146 | REGULATORY_ENABLE_RELAX_NO_IR = BIT(5), | 157 | REGULATORY_ENABLE_RELAX_NO_IR = BIT(5), |
158 | REGULATORY_IGNORE_STALE_KICKOFF = BIT(6), | ||
147 | }; | 159 | }; |
148 | 160 | ||
149 | struct ieee80211_freq_range { | 161 | struct ieee80211_freq_range { |