summaryrefslogtreecommitdiffstats
path: root/net/wireless/trace.h
diff options
context:
space:
mode:
authorAndrew Zaborowski <andrew.zaborowski@intel.com>2017-02-10 04:02:31 -0500
committerJohannes Berg <johannes.berg@intel.com>2017-03-06 03:21:38 -0500
commit4a4b8169501b18c3450ac735a7e277b24886a651 (patch)
tree0d2f2eadbb3894c25642935db9c497ae0a3ec377 /net/wireless/trace.h
parent3eb0928fc3e4b4702462164b399acddb7f0f09fd (diff)
cfg80211: Accept multiple RSSI thresholds for CQM
Change the SET CQM command's RSSI threshold attribute to accept any number of thresholds as a sorted array. The API should be backwards compatible so that if one s32 threshold value is passed, the old mechanism is enabled. The netlink event generated is the same in both cases. cfg80211 handles an arbitrary number of RSSI thresholds but drivers have to provide a method (set_cqm_rssi_range_config) that configures a range set by a high and a low value. Drivers have to call back when the RSSI goes out of that range and there's no additional event for each time the range is reconfigured as there was with the current one-threshold API. This method doesn't have a hysteresis parameter because there's no benefit to the cfg80211 code from having the hysteresis be handled by hardware/driver in terms of the number of wakeups. At the same time it would likely be less consistent between drivers if offloaded or done in the drivers. Signed-off-by: Andrew Zaborowski <andrew.zaborowski@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/trace.h')
-rw-r--r--net/wireless/trace.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index 776e80cef9b4..fd55786f0462 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -1322,6 +1322,28 @@ TRACE_EVENT(rdev_set_cqm_rssi_config,
1322 __entry->rssi_thold, __entry->rssi_hyst) 1322 __entry->rssi_thold, __entry->rssi_hyst)
1323); 1323);
1324 1324
1325TRACE_EVENT(rdev_set_cqm_rssi_range_config,
1326 TP_PROTO(struct wiphy *wiphy,
1327 struct net_device *netdev, s32 low, s32 high),
1328 TP_ARGS(wiphy, netdev, low, high),
1329 TP_STRUCT__entry(
1330 WIPHY_ENTRY
1331 NETDEV_ENTRY
1332 __field(s32, rssi_low)
1333 __field(s32, rssi_high)
1334 ),
1335 TP_fast_assign(
1336 WIPHY_ASSIGN;
1337 NETDEV_ASSIGN;
1338 __entry->rssi_low = low;
1339 __entry->rssi_high = high;
1340 ),
1341 TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
1342 ", range: %d - %d ",
1343 WIPHY_PR_ARG, NETDEV_PR_ARG,
1344 __entry->rssi_low, __entry->rssi_high)
1345);
1346
1325TRACE_EVENT(rdev_set_cqm_txe_config, 1347TRACE_EVENT(rdev_set_cqm_txe_config,
1326 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 1348 TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate,
1327 u32 pkts, u32 intvl), 1349 u32 pkts, u32 intvl),