aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2020-05-01 21:40:07 -0500
committerDenis Kenzior <denkenz@gmail.com>2020-05-01 21:40:07 -0500
commitf9f112b4f5c2237c15ab4c2ce068db89474ad1df (patch)
tree651661c08667b773ea1ddfbcffe72299900db071
parent3f2c84c2a2b716da36c01c609b6e594030ebc3e3 (diff)
downloadiwd-f9f112b4f5c2237c15ab4c2ce068db89474ad1df.tar.gz
monitor: Prettify CQM event decoding
-rw-r--r--monitor/nlmon.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/monitor/nlmon.c b/monitor/nlmon.c
index df628c2c1..94f1e2f90 100644
--- a/monitor/nlmon.c
+++ b/monitor/nlmon.c
@@ -4915,17 +4915,40 @@ static const struct attr_entry frame_types_table[] = {
{ }
};
+static void print_cqm_event(unsigned int level, const char *label,
+ const void *data, uint16_t size)
+{
+ const uint32_t *event = data;
+
+ switch (*event) {
+ case NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW:
+ print_attr(level, "%s: %s", label, "Low");
+ break;
+ case NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH:
+ print_attr(level, "%s: %s", label, "High");
+ break;
+ case NL80211_CQM_RSSI_BEACON_LOSS_EVENT:
+ print_attr(level, "%s: %s", label, "Beacon Loss (unused)");
+ break;
+ default:
+ print_attr(level, "%s: %s", label, "Unknown");
+ break;
+ }
+}
+
static const struct attr_entry cqm_table[] = {
{ NL80211_ATTR_CQM_RSSI_THOLD, "RSSI threshold", ATTR_U32 },
{ NL80211_ATTR_CQM_RSSI_HYST, "RSSI hysteresis", ATTR_U32 },
{ NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
- "RSSI threshold event", ATTR_U32 },
+ "RSSI threshold event", ATTR_CUSTOM,
+ { .function = print_cqm_event } },
{ NL80211_ATTR_CQM_PKT_LOSS_EVENT,
"Packet loss event", ATTR_U32 },
{ NL80211_ATTR_CQM_TXE_RATE, "TX error rate", ATTR_U32 },
{ NL80211_ATTR_CQM_TXE_PKTS, "TX error packets", ATTR_U32 },
{ NL80211_ATTR_CQM_TXE_INTVL, "TX error interval", ATTR_U32 },
{ NL80211_ATTR_CQM_BEACON_LOSS_EVENT, "Beacon Loss Event", ATTR_FLAG },
+ { NL80211_ATTR_CQM_RSSI_LEVEL, "CQM RSSI Level", ATTR_S32 },
{ }
};