Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 806f09f1 authored by Sunil Ravi's avatar Sunil Ravi Committed by Android (Google) Code Review
Browse files

Merge "Wifi: Add Radio ID in radiostats" into sc-dev

parents aa32e690 83f79072
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -954,27 +954,29 @@ bool convertLegacyVectorOfDebugRxPacketFateToHidl(

bool convertLegacyLinkLayerRadioStatsToHidl(
    const legacy_hal::LinkLayerRadioStats& legacy_radio_stat,
    V1_3::StaLinkLayerRadioStats* hidl_radio_stat) {
    V1_5::StaLinkLayerRadioStats* hidl_radio_stat) {
    if (!hidl_radio_stat) {
        return false;
    }
    *hidl_radio_stat = {};

    hidl_radio_stat->V1_0.onTimeInMs = legacy_radio_stat.stats.on_time;
    hidl_radio_stat->V1_0.txTimeInMs = legacy_radio_stat.stats.tx_time;
    hidl_radio_stat->V1_0.rxTimeInMs = legacy_radio_stat.stats.rx_time;
    hidl_radio_stat->V1_0.onTimeInMsForScan =
    hidl_radio_stat->radioId = legacy_radio_stat.stats.radio;
    hidl_radio_stat->V1_3.V1_0.onTimeInMs = legacy_radio_stat.stats.on_time;
    hidl_radio_stat->V1_3.V1_0.txTimeInMs = legacy_radio_stat.stats.tx_time;
    hidl_radio_stat->V1_3.V1_0.rxTimeInMs = legacy_radio_stat.stats.rx_time;
    hidl_radio_stat->V1_3.V1_0.onTimeInMsForScan =
        legacy_radio_stat.stats.on_time_scan;
    hidl_radio_stat->V1_0.txTimeInMsPerLevel =
    hidl_radio_stat->V1_3.V1_0.txTimeInMsPerLevel =
        legacy_radio_stat.tx_time_per_levels;
    hidl_radio_stat->onTimeInMsForNanScan = legacy_radio_stat.stats.on_time_nbd;
    hidl_radio_stat->onTimeInMsForBgScan =
    hidl_radio_stat->V1_3.onTimeInMsForNanScan =
        legacy_radio_stat.stats.on_time_nbd;
    hidl_radio_stat->V1_3.onTimeInMsForBgScan =
        legacy_radio_stat.stats.on_time_gscan;
    hidl_radio_stat->onTimeInMsForRoamScan =
    hidl_radio_stat->V1_3.onTimeInMsForRoamScan =
        legacy_radio_stat.stats.on_time_roam_scan;
    hidl_radio_stat->onTimeInMsForPnoScan =
    hidl_radio_stat->V1_3.onTimeInMsForPnoScan =
        legacy_radio_stat.stats.on_time_pno_scan;
    hidl_radio_stat->onTimeInMsForHs20Scan =
    hidl_radio_stat->V1_3.onTimeInMsForHs20Scan =
        legacy_radio_stat.stats.on_time_hs20;

    std::vector<V1_3::WifiChannelStats> hidl_channel_stats;
@@ -996,7 +998,7 @@ bool convertLegacyLinkLayerRadioStatsToHidl(
        hidl_channel_stats.push_back(hidl_channel_stat);
    }

    hidl_radio_stat->channelStats = hidl_channel_stats;
    hidl_radio_stat->V1_3.channelStats = hidl_channel_stats;

    return true;
}
@@ -1089,9 +1091,9 @@ bool convertLegacyLinkLayerStatsToHidl(
    }
    hidl_stats->iface.peers = hidl_peers_info_stats;
    // radio legacy_stats conversion.
    std::vector<V1_3::StaLinkLayerRadioStats> hidl_radios_stats;
    std::vector<V1_5::StaLinkLayerRadioStats> hidl_radios_stats;
    for (const auto& legacy_radio_stats : legacy_stats.radios) {
        V1_3::StaLinkLayerRadioStats hidl_radio_stats;
        V1_5::StaLinkLayerRadioStats hidl_radio_stats;
        if (!convertLegacyLinkLayerRadioStatsToHidl(legacy_radio_stats,
                                                    &hidl_radio_stats)) {
            return false;
+27 −21
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) {
    legacy_stats.iface.num_peers = 1;

    for (auto& radio : legacy_stats.radios) {
        radio.stats.radio = rand();
        radio.stats.on_time = rand();
        radio.stats.tx_time = rand();
        radio.stats.rx_time = rand();
@@ -314,48 +315,53 @@ TEST_F(HidlStructUtilTest, canConvertLegacyLinkLayerStatsToHidl) {

    EXPECT_EQ(legacy_stats.radios.size(), converted.radios.size());
    for (size_t i = 0; i < legacy_stats.radios.size(); i++) {
        EXPECT_EQ(legacy_stats.radios[i].stats.radio,
                  converted.radios[i].radioId);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time,
                  converted.radios[i].V1_0.onTimeInMs);
                  converted.radios[i].V1_3.V1_0.onTimeInMs);
        EXPECT_EQ(legacy_stats.radios[i].stats.tx_time,
                  converted.radios[i].V1_0.txTimeInMs);
                  converted.radios[i].V1_3.V1_0.txTimeInMs);
        EXPECT_EQ(legacy_stats.radios[i].stats.rx_time,
                  converted.radios[i].V1_0.rxTimeInMs);
                  converted.radios[i].V1_3.V1_0.rxTimeInMs);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_scan,
                  converted.radios[i].V1_0.onTimeInMsForScan);
                  converted.radios[i].V1_3.V1_0.onTimeInMsForScan);
        EXPECT_EQ(legacy_stats.radios[i].tx_time_per_levels.size(),
                  converted.radios[i].V1_0.txTimeInMsPerLevel.size());
                  converted.radios[i].V1_3.V1_0.txTimeInMsPerLevel.size());
        for (size_t j = 0; j < legacy_stats.radios[i].tx_time_per_levels.size();
             j++) {
            EXPECT_EQ(legacy_stats.radios[i].tx_time_per_levels[j],
                      converted.radios[i].V1_0.txTimeInMsPerLevel[j]);
                      converted.radios[i].V1_3.V1_0.txTimeInMsPerLevel[j]);
        }
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_nbd,
                  converted.radios[i].onTimeInMsForNanScan);
                  converted.radios[i].V1_3.onTimeInMsForNanScan);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_gscan,
                  converted.radios[i].onTimeInMsForBgScan);
                  converted.radios[i].V1_3.onTimeInMsForBgScan);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_roam_scan,
                  converted.radios[i].onTimeInMsForRoamScan);
                  converted.radios[i].V1_3.onTimeInMsForRoamScan);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_pno_scan,
                  converted.radios[i].onTimeInMsForPnoScan);
                  converted.radios[i].V1_3.onTimeInMsForPnoScan);
        EXPECT_EQ(legacy_stats.radios[i].stats.on_time_hs20,
                  converted.radios[i].onTimeInMsForHs20Scan);
                  converted.radios[i].V1_3.onTimeInMsForHs20Scan);
        EXPECT_EQ(legacy_stats.radios[i].channel_stats.size(),
                  converted.radios[i].channelStats.size());
                  converted.radios[i].V1_3.channelStats.size());
        for (size_t k = 0; k < legacy_stats.radios[i].channel_stats.size();
             k++) {
            auto& legacy_channel_st = legacy_stats.radios[i].channel_stats[k];
            EXPECT_EQ(WifiChannelWidthInMhz::WIDTH_20,
                      converted.radios[i].channelStats[k].channel.width);
            EXPECT_EQ(WifiChannelInMhz(legacy_channel_st.channel.center_freq),
                      converted.radios[i].channelStats[k].channel.centerFreq);
            EXPECT_EQ(WifiChannelInMhz(legacy_channel_st.channel.center_freq0),
                      converted.radios[i].channelStats[k].channel.centerFreq0);
            EXPECT_EQ(WifiChannelInMhz(legacy_channel_st.channel.center_freq1),
                      converted.radios[i].channelStats[k].channel.centerFreq1);
                      converted.radios[i].V1_3.channelStats[k].channel.width);
            EXPECT_EQ(
                WifiChannelInMhz(legacy_channel_st.channel.center_freq),
                converted.radios[i].V1_3.channelStats[k].channel.centerFreq);
            EXPECT_EQ(
                WifiChannelInMhz(legacy_channel_st.channel.center_freq0),
                converted.radios[i].V1_3.channelStats[k].channel.centerFreq0);
            EXPECT_EQ(
                WifiChannelInMhz(legacy_channel_st.channel.center_freq1),
                converted.radios[i].V1_3.channelStats[k].channel.centerFreq1);
            EXPECT_EQ(legacy_channel_st.cca_busy_time,
                      converted.radios[i].channelStats[k].ccaBusyTimeInMs);
                      converted.radios[i].V1_3.channelStats[k].ccaBusyTimeInMs);
            EXPECT_EQ(legacy_channel_st.on_time,
                      converted.radios[i].channelStats[k].onTimeInMs);
                      converted.radios[i].V1_3.channelStats[k].onTimeInMs);
        }
    }

+15 −0
Original line number Diff line number Diff line
@@ -253,6 +253,21 @@ struct StaLinkLayerIfaceStats {
    vec<StaPeerInfo> peers;
};

struct StaLinkLayerRadioStats {
    /**
     * Baseline information as defined in HAL 1.3.
     */
    @1.3::StaLinkLayerRadioStats V1_3;

    /**
     * Radio ID: An implementation specific value identifying the radio interface for which the
     * stats are produced. Framework must not interpret this value. It must use this value for
     * persistently identifying the statistics between calls,
     * e.g. if the HAL provides them in different order.
     */
    int32_t radioId;
};

/**
 * Link layer stats retrieved via |getLinkLayerStats|.
 */