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 { |
