aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorPradeep Kumar Chitrapu <pradeepc@codeaurora.org>2018-10-03 23:19:20 -0400
committerJohannes Berg <johannes.berg@intel.com>2018-10-12 06:46:09 -0400
commitbc847970f43281cb07c9f7d0897ee08cd1e08cf3 (patch)
treed9e0f3b2a0463ef7760e2ae574a9de686c935243 /include/net/mac80211.h
parentefb543e61cc3a2e75ffbe52f9b4cfcb850d812fd (diff)
mac80211: support FTM responder configuration/statistics
New bss param ftm_responder is used to notify the driver to enable fine timing request (FTM) responder role in AP mode. Plumb the new cfg80211 API for FTM responder statistics through to the driver API in mac80211. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index c4fadbafbf21..2ccd4d1bef89 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -309,6 +309,8 @@ struct ieee80211_vif_chanctx_switch {
309 * @BSS_CHANGED_KEEP_ALIVE: keep alive options (idle period or protected 309 * @BSS_CHANGED_KEEP_ALIVE: keep alive options (idle period or protected
310 * keep alive) changed. 310 * keep alive) changed.
311 * @BSS_CHANGED_MCAST_RATE: Multicast Rate setting changed for this interface 311 * @BSS_CHANGED_MCAST_RATE: Multicast Rate setting changed for this interface
312 * @BSS_CHANGED_FTM_RESPONDER: fime timing reasurement request responder
313 * functionality changed for this BSS (AP mode).
312 * 314 *
313 */ 315 */
314enum ieee80211_bss_change { 316enum ieee80211_bss_change {
@@ -338,6 +340,7 @@ enum ieee80211_bss_change {
338 BSS_CHANGED_MU_GROUPS = 1<<23, 340 BSS_CHANGED_MU_GROUPS = 1<<23,
339 BSS_CHANGED_KEEP_ALIVE = 1<<24, 341 BSS_CHANGED_KEEP_ALIVE = 1<<24,
340 BSS_CHANGED_MCAST_RATE = 1<<25, 342 BSS_CHANGED_MCAST_RATE = 1<<25,
343 BSS_CHANGED_FTM_RESPONDER = 1<<26,
341 344
342 /* when adding here, make sure to change ieee80211_reconfig */ 345 /* when adding here, make sure to change ieee80211_reconfig */
343}; 346};
@@ -464,6 +467,21 @@ struct ieee80211_mu_group_data {
464}; 467};
465 468
466/** 469/**
470 * ieee80211_ftm_responder_params - FTM responder parameters
471 *
472 * @lci: LCI subelement content
473 * @civicloc: CIVIC location subelement content
474 * @lci_len: LCI data length
475 * @civicloc_len: Civic data length
476 */
477struct ieee80211_ftm_responder_params {
478 const u8 *lci;
479 const u8 *civicloc;
480 size_t lci_len;
481 size_t civicloc_len;
482};
483
484/**
467 * struct ieee80211_bss_conf - holds the BSS's changing parameters 485 * struct ieee80211_bss_conf - holds the BSS's changing parameters
468 * 486 *
469 * This structure keeps information about a BSS (and an association 487 * This structure keeps information about a BSS (and an association
@@ -562,6 +580,9 @@ struct ieee80211_mu_group_data {
562 * @protected_keep_alive: if set, indicates that the station should send an RSN 580 * @protected_keep_alive: if set, indicates that the station should send an RSN
563 * protected frame to the AP to reset the idle timer at the AP for the 581 * protected frame to the AP to reset the idle timer at the AP for the
564 * station. 582 * station.
583 * @ftm_responder: whether to enable or disable fine timing measurement FTM
584 * responder functionality.
585 * @ftmr_params: configurable lci/civic parameter when enabling FTM responder.
565 */ 586 */
566struct ieee80211_bss_conf { 587struct ieee80211_bss_conf {
567 const u8 *bssid; 588 const u8 *bssid;
@@ -612,6 +633,8 @@ struct ieee80211_bss_conf {
612 bool allow_p2p_go_ps; 633 bool allow_p2p_go_ps;
613 u16 max_idle_period; 634 u16 max_idle_period;
614 bool protected_keep_alive; 635 bool protected_keep_alive;
636 bool ftm_responder;
637 struct ieee80211_ftm_responder_params *ftmr_params;
615}; 638};
616 639
617/** 640/**
@@ -3598,6 +3621,8 @@ enum ieee80211_reconfig_type {
3598 * aggregating two specific frames in the same A-MSDU. The relation 3621 * aggregating two specific frames in the same A-MSDU. The relation
3599 * between the skbs should be symmetric and transitive. Note that while 3622 * between the skbs should be symmetric and transitive. Note that while
3600 * skb is always a real frame, head may or may not be an A-MSDU. 3623 * skb is always a real frame, head may or may not be an A-MSDU.
3624 * @get_ftm_responder_stats: Retrieve FTM responder statistics, if available.
3625 * Statistics should be cumulative, currently no way to reset is provided.
3601 */ 3626 */
3602struct ieee80211_ops { 3627struct ieee80211_ops {
3603 void (*tx)(struct ieee80211_hw *hw, 3628 void (*tx)(struct ieee80211_hw *hw,
@@ -3883,6 +3908,9 @@ struct ieee80211_ops {
3883 bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *hw, 3908 bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *hw,
3884 struct sk_buff *head, 3909 struct sk_buff *head,
3885 struct sk_buff *skb); 3910 struct sk_buff *skb);
3911 int (*get_ftm_responder_stats)(struct ieee80211_hw *hw,
3912 struct ieee80211_vif *vif,
3913 struct cfg80211_ftm_responder_stats *ftm_stats);
3886}; 3914};
3887 3915
3888/** 3916/**