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
This commit is contained in:
Michael Johnson 2022-08-02 11:47:28 +01:00 committed by Denis Kenzior
parent f4c3278a7b
commit 6b87d3e7e2
1 changed files with 20 additions and 2 deletions

View File

@ -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);
}
}
}