aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-10-19 09:44:42 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-10-26 06:57:06 -0400
commit1041638f2bba0f1de75e66086d50fb1251d64dcf (patch)
tree95d5ea3a83302d27887dcdc2d425682216937f3f /include/net/mac80211.h
parent7b20b8e8d70a0f4f18c254b42e5b157f93731e9f (diff)
mac80211: add explicit AP/GO driver operations
Depending on the driver, a lot of setup may be necessary to start operating as an AP, some of which may fail. Add an explicit AP start driver method to make such failures easier to handle, and add an AP stop driver method for symmetry. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 00b7204708b..5f5327452c9 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2381,6 +2381,13 @@ enum ieee80211_rate_control_changed {
2381 * to vif. Possible use is for hw queue remapping. 2381 * to vif. Possible use is for hw queue remapping.
2382 * @unassign_vif_chanctx: Notifies device driver about channel context being 2382 * @unassign_vif_chanctx: Notifies device driver about channel context being
2383 * unbound from vif. 2383 * unbound from vif.
2384 * @start_ap: Start operation on the AP interface, this is called after all the
2385 * information in bss_conf is set and beacon can be retrieved. A channel
2386 * context is bound before this is called. Note that if the driver uses
2387 * software scan or ROC, this (and @stop_ap) isn't called when the AP is
2388 * just "paused" for scanning/ROC, which is indicated by the beacon being
2389 * disabled/enabled via @bss_info_changed.
2390 * @stop_ap: Stop operation on the AP interface.
2384 */ 2391 */
2385struct ieee80211_ops { 2392struct ieee80211_ops {
2386 void (*tx)(struct ieee80211_hw *hw, 2393 void (*tx)(struct ieee80211_hw *hw,
@@ -2406,6 +2413,9 @@ struct ieee80211_ops {
2406 struct ieee80211_bss_conf *info, 2413 struct ieee80211_bss_conf *info,
2407 u32 changed); 2414 u32 changed);
2408 2415
2416 int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
2417 void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
2418
2409 u64 (*prepare_multicast)(struct ieee80211_hw *hw, 2419 u64 (*prepare_multicast)(struct ieee80211_hw *hw,
2410 struct netdev_hw_addr_list *mc_list); 2420 struct netdev_hw_addr_list *mc_list);
2411 void (*configure_filter)(struct ieee80211_hw *hw, 2421 void (*configure_filter)(struct ieee80211_hw *hw,