From 6b87d3e7e27eb45eab9fa172be4631b9574f51ae Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Tue, 2 Aug 2022 11:47:28 +0100 Subject: [PATCH] netdev: Add logging for CQM messages Add extra logging around CQM events to help track wifi status. This is useful for headless systems that can only be accessed over the network and so information in the logs is invaluable for debugging outages. Prior to this change, the only log for CQM messages is saying one was received. This adds details to what attributes were set and the associated data with them. The signal strength log format was chosen to roughly match wpa_supplicant's which looks like this: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-60 noise=-96 txrate=6000 --- src/netdev.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/netdev.c b/src/netdev.c index 5a6a7b70..47e076e2 100644 --- a/src/netdev.c +++ b/src/netdev.c @@ -1092,12 +1092,26 @@ static void netdev_cqm_event(struct l_genl_msg *msg, struct netdev *netdev) rssi_event = (uint32_t *) data; break; + case NL80211_ATTR_CQM_PKT_LOSS_EVENT: + if (len != 4) + continue; + + l_debug("Packets lost event: %d", + *(uint32_t *) data); + break; + + case NL80211_ATTR_CQM_BEACON_LOSS_EVENT: + l_debug("Beacon lost event"); + break; + case NL80211_ATTR_CQM_RSSI_LEVEL: if (len != 4) continue; rssi_val = (int32_t *) data; break; + default: + l_debug("Unknown CQM event: %d", type); } } @@ -1106,10 +1120,14 @@ static void netdev_cqm_event(struct l_genl_msg *msg, struct netdev *netdev) } if (rssi_event) { - if (rssi_val) + if (rssi_val) { + l_debug("Signal change event (above=%d signal=%d)", + *rssi_event, *rssi_val); netdev_cqm_event_rssi_value(netdev, *rssi_val); - else + } else { + l_debug("Signal change event (above=%d)", *rssi_event); netdev_cqm_event_rssi_threshold(netdev, *rssi_event); + } } }