aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2014-12-04 11:29:10 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-12-04 11:29:10 -0500
commitde51f1649ab77f9ad17bdad581a326cbf6e71b49 (patch)
tree82aa375e132b3c639afe239c4e49363636199827 /include/net
parent04bb7ecf8854186f47fb1ea321fc77e7bc931993 (diff)
parentf027c2aca0cf43e0f15fc8de8841f7b566163d94 (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.h63
-rw-r--r--include/net/mac80211.h32
-rw-r--r--include/net/regulatory.h12
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 */
4653void 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 */
4667void 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 */
4679void 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 */
4689void 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 */
4703void 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 */
3637void 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 */
4700void 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 */
140enum ieee80211_regulatory_flags { 151enum 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
149struct ieee80211_freq_range { 161struct ieee80211_freq_range {