wifi: Add radio_id and frequency to StaLinkLayerLinkStats

Bug: 258013268
Test: m android.hardware.wifi-update-api
Change-Id: I725144033cd33e59c201e459e036c2008a8cca58
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerLinkStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerLinkStats.aidl
index 714bba8..2bc3254 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerLinkStats.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerLinkStats.aidl
@@ -35,6 +35,8 @@
 @VintfStability
 parcelable StaLinkLayerLinkStats {
   int linkId;
+  int radioId;
+  int frequencyMhz;
   int beaconRx;
   int avgRssiMgmt;
   android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBePktStats;
diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
index cf1a867..d8d7975 100644
--- a/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
+++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
@@ -32,6 +32,15 @@
      */
     int linkId;
     /**
+     * Radio identifier on which the link is currently operating. Refer
+     * |StaLinkLayerRadioStats.radioId|.
+     */
+    int radioId;
+    /**
+     * Frequency of the link in Mhz.
+     */
+    int frequencyMhz;
+    /**
      * Number of beacons received from the connected AP on the link.
      */
     int beaconRx;
diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp
index fe7579b..3087d66 100644
--- a/wifi/aidl/default/aidl_struct_util.cpp
+++ b/wifi/aidl/default/aidl_struct_util.cpp
@@ -951,6 +951,8 @@
     for (const auto& link : legacy_ml_stats.links) {
         StaLinkLayerLinkStats linkStats = {};
         linkStats.linkId = link.stat.link_id;
+        linkStats.radioId = link.stat.radio;
+        linkStats.frequencyMhz = link.stat.frequency;
         linkStats.beaconRx = link.stat.beacon_rx;
         linkStats.avgRssiMgmt = link.stat.rssi_mgmt;
         linkStats.wmeBePktStats.rxMpdu = link.stat.ac[legacy_hal::WIFI_AC_BE].rx_mpdu;
diff --git a/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp b/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
index c2de012..df788b8 100644
--- a/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
+++ b/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
@@ -125,6 +125,9 @@
         link.peers.push_back(legacy_hal::WifiPeerInfo{});
         link.peers.push_back(legacy_hal::WifiPeerInfo{});
         link.stat.beacon_rx = rand();
+        link.stat.link_id = rand() % 15;
+        link.stat.radio = rand() % 4;
+        link.stat.frequency = rand();
         link.stat.rssi_mgmt = rand();
         link.stat.ac[legacy_hal::WIFI_AC_BE].rx_mpdu = rand();
         link.stat.ac[legacy_hal::WIFI_AC_BE].tx_mpdu = rand();
@@ -227,6 +230,8 @@
     int l = 0;
     for (legacy_hal::LinkStats& link : legacy_ml_stats.links) {
         EXPECT_EQ(link.stat.link_id, (uint8_t)converted.iface.links[l].linkId);
+        EXPECT_EQ(link.stat.radio, converted.iface.links[l].radioId);
+        EXPECT_EQ(link.stat.frequency, (uint32_t)converted.iface.links[l].frequencyMhz);
         EXPECT_EQ(link.stat.beacon_rx, (uint32_t)converted.iface.links[l].beaconRx);
         EXPECT_EQ(link.stat.rssi_mgmt, converted.iface.links[l].avgRssiMgmt);
         EXPECT_EQ(link.stat.ac[legacy_hal::WIFI_AC_BE].rx_mpdu,