[PATCH 1/5] network: Add SignalStrength/Frequency properties to BSS interface

James Prestwood <[email protected]> Wed, 23 Apr 2025 09:54:54 -0400
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
This patch adds SignalStrength and Frequencies properties to the
BSS interface, which will provide more information for individual
BSS's.
---
 src/network.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/network.c b/src/network.c
index 4602a110..2443d4c5 100644
--- a/src/network.c
+++ b/src/network.c
@@ -2194,10 +2194,39 @@ static bool network_bss_property_get_address(struct l_dbus *dbus,
 	return true;
 }
 
+static bool network_bss_property_get_signal(struct l_dbus *dbus,
+					struct l_dbus_message *message,
+					struct l_dbus_message_builder *builder,
+					void *user_data)
+{
+	struct scan_bss *bss = user_data;
+	int16_t signal = bss->signal_strength / 100;
+
+	l_dbus_message_builder_append_basic(builder, 'n', &signal);
+
+	return true;
+}
+
+static bool network_bss_property_get_freq(struct l_dbus *dbus,
+					struct l_dbus_message *message,
+					struct l_dbus_message_builder *builder,
+					void *user_data)
+{
+	struct scan_bss *bss = user_data;
+
+	l_dbus_message_builder_append_basic(builder, 'u', &bss->frequency);
+
+	return true;
+}
+
 static void setup_bss_interface(struct l_dbus_interface *interface)
 {
 	l_dbus_interface_property(interface, "Address", 0, "s",
 					network_bss_property_get_address, NULL);
+	l_dbus_interface_property(interface, "SignalStrength", 0, "n",
+					network_bss_property_get_signal, NULL);
+	l_dbus_interface_property(interface, "Frequency", 0, "u",
+					network_bss_property_get_freq, NULL);
 }
 
 static int network_init(void)
-- 
2.34.1