Add more nl80211 info to struct wpa_signal_info

Facilitate emitting more station information over D-Bus for use by the
connection manager.

* Add storage for more NL80211_STA_INFO_* fields to data structures, and
  move them through the system.
* Reorder NL80211_STA_INFO_* fields in driver_nl80211.c to match the
  ordering in nl80211.h.
* Convert signal field to an integer to support holding WPA_INVALID_NOISE
  and avoid changing logging.

* Add fields to hostap_sta_driver_data to capture more information
	* fcs_error_count
	* beacon_loss_count
	* expected_throughput
	* rx_drop_misc
	* rx_mpdus
	* rx_hemcs
	* tx_hemcs
	* rx_he_nss
	* tx_he_nss
	* avg_signal
	* avg_beacon_signal
	* avg_ack_signal
* Add struct hostap_sta_driver_data to struct wpa_signal_info and remove
  redundant fields and redundant attribute parsing
	* Change logging when printing txrate to handle unsigned long
	  value

Signed-off-by: David Ruth <druth@chromium.org>
This commit is contained in:
David Ruth 2022-11-30 23:33:09 +00:00 committed by Jouni Malinen
parent 090f0f8c70
commit ad4fa5dd3c
12 changed files with 178 additions and 158 deletions

View file

@ -1969,9 +1969,9 @@ DBusMessage * wpas_dbus_handler_signal_poll(DBusMessage *message,
"a{sv}", &variant_iter) ||
!wpa_dbus_dict_open_write(&variant_iter, &iter_dict) ||
!wpa_dbus_dict_append_int32(&iter_dict, "rssi",
si.current_signal) ||
si.data.signal) ||
!wpa_dbus_dict_append_int32(&iter_dict, "linkspeed",
si.current_txrate / 1000) ||
si.data.current_tx_rate / 1000) ||
!wpa_dbus_dict_append_int32(&iter_dict, "noise",
si.current_noise) ||
!wpa_dbus_dict_append_uint32(&iter_dict, "frequency",
@ -1985,9 +1985,9 @@ DBusMessage * wpas_dbus_handler_signal_poll(DBusMessage *message,
si.center_frq1) ||
!wpa_dbus_dict_append_int32(&iter_dict, "center-frq2",
si.center_frq2))) ||
(si.avg_signal &&
(si.data.avg_signal &&
!wpa_dbus_dict_append_int32(&iter_dict, "avg-rssi",
si.avg_signal)) ||
si.data.avg_signal)) ||
!wpa_dbus_dict_close_write(&variant_iter, &iter_dict) ||
!dbus_message_iter_close_container(&iter, &variant_iter))
goto nomem;