diff options
author | Denis Kenzior <denkenz@gmail.com> | 2020-05-01 21:40:07 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2020-05-01 21:40:07 -0500 |
commit | f9f112b4f5c2237c15ab4c2ce068db89474ad1df (patch) | |
tree | 651661c08667b773ea1ddfbcffe72299900db071 | |
parent | 3f2c84c2a2b716da36c01c609b6e594030ebc3e3 (diff) | |
download | iwd-f9f112b4f5c2237c15ab4c2ce068db89474ad1df.tar.gz |
monitor: Prettify CQM event decoding
-rw-r--r-- | monitor/nlmon.c | 25 |
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 }, { } }; |