[PATCH] Report guard interval and dual carrier modulation.
Jouni Malinen
j at w1.fi
Tue Feb 21 04:16:56 PST 2023
On Sat, Jan 07, 2023 at 07:29:17AM +0000, David Ruth wrote:
> Allows collecting and exposing more information about the station's
> current connection from the kernel to the connection manager.
>
> * Add an enum to represent guard interval settings to driver.h.
> * Add fields for storing guard interval and dual carrier modulation
> information into the hostap_sta_driver_data struct.
> * Add bitmask values indicating the presence of fields.
> * STA_DRV_DATA_TX_HE_DCM
> * STA_DRV_DATA_RX_HE_DCM
> * STA_DRV_DATA_TX_HE_GI
> * STA_DRV_DATA_RX_HE_GI
> * Retrieve NL80211_RATE_INFO_HE_GI and NL80211_RATE_INFO_HE_DCM in
> get_sta_handler, and set appropriate flags.
Thanks, I applied the nl80211 related parts now, but as far as the D-Bus
interface is concerned:
> * Propagate the values over D-Bus.
I have some open questions on this below:
> diff --git a/src/drivers/driver.h b/src/drivers/driver.h
> +enum guard_interval {
> + GUARD_INTERVAL_0_4 = 1,
> + GUARD_INTERVAL_0_8 = 2,
> + GUARD_INTERVAL_1_6 = 3,
> + GUARD_INTERVAL_3_2 = 4,
> +};
These feels like an implementation internal definition where those
values might change.. At minimum, this would need a comment if there is
requirement for the values to be maintained as-is.
> diff --git a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbus/dbus_new_helpers.c
> @@ -1146,6 +1146,18 @@ int wpas_dbus_new_from_signal_information(DBusMessageIter *iter,
> + !wpa_dbus_dict_append_uint32(&iter_dict, "rx-guard-interval",
> + si->data.rx_guard_interval)) ||
> + (si->data.tx_guard_interval &&
> + !wpa_dbus_dict_append_uint32(&iter_dict, "tx-guard-interval",
> + si->data.tx_guard_interval)) ||
This would expose those enum guard_interval values as-is over the D-Bus
interface. Is that really appropriate? How would the application at the
other end know what these values 1-4 mean? The actual values 0.4, 0.8,
1.6, 3.2 might make more sense there or at least this mapping would need
to be clearly documented somewhere.
> + (si->data.rx_dcm &&
> + !wpa_dbus_dict_append_uint32(&iter_dict, "rx-dcm",
> + si->data.rx_dcm)) ||
> + (si->data.tx_dcm &&
> + !wpa_dbus_dict_append_uint32(&iter_dict, "tx-dcm",
> + si->data.tx_dcm)) ||
These might be fine as-is, but I'll note that the values from the kernel
are 0 or 1, so there might be cleaner encoding options for these than
uint32.
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list